Drupal formları API aracılığıyla Blok formu ekleyin theming

3 Cevap php

Herkes Ekle Engelle formunu özelleştirme konusunda bana tavsiyelerde bulunabilir? (/ Admin / build / block / add)

Ben "Kullanıcı özel görünürlük ayarları" ve kullanıcıların Rolü "özel görünürlük ayarları" gizlemek istiyorum. Bu şimdiye kadar ne var, ama açıkçası bu doğru değil ve ben dizisi ne olduğunu çözemiyorum. Herkes bu konuda deneyimi var?

function theme_add_block_form($form) {
    $form['roles']['#prefix'] = '<div class="hidden">';
    $form['roles']['#suffix'] = '</div>';
    return drupal_render($form);
}

Thanks, H

EDIT - API çeşitli formu kanca kullanılarak Comforable değilim, ama bu durumda benim sorunum benim işlevi kullanmak için dizi öğelerini tespit edemez ki - belki de net değildi. Devel modül blokları sayfada hareket görünmüyor, ve Themer up blok şey açıktır azdır.

3 Cevap

In modules/block/block.admin.inc, fonksiyon block_admin_configure,

$form['user_vis_settings'] = array(
    '#type' => 'fieldset',
    '#title' => t('User specific visibility settings'),
    '#collapsible' => TRUE,
  );

(...)

$form['role_vis_settings'] = array(
    '#type' => 'fieldset',
    '#title' => t('Role specific visibility settings'),
    '#collapsible' => TRUE,
  );

Sadece $form['user_vis_settings'] ve $form['role_vis_settings'] gizlemek için deneyin.

EDIT:

Dokunmayın modules/block/block.admin.inc! (Ben form alanları, isimleri nereden bulduğunu sadece işaret ediyordu). Lütfen theme_add_block_form alanları gizlemek. Bunun yerine bir div içindeki alanları sarma, size $form['user_vis_settings']['#access'] = false; yazabilirsiniz

Bu gitmek için yoludur. http://api.drupal.org/api/function/hook_form_alter/6 başka bir cevap dediği gibi kullanma. Bir kostüm modülünde bu kodu yazmak gerekir.

<?php   
 function module_name_form_alter(&$form, $form_state, $form_id) {
      if ($form_id == 'block_admin_configure') {
       $form['user_vis_settings'] = array(
        '#type' => 'fieldset',
        '#title' => t('User specific visibility settings'),
        '#collapsible' => TRUE,
        '#access' = FALSE,
       );
       $form['role_vis_settings'] = array(
        '#type' => 'fieldset',
        '#title' => t('Role specific visibility settings'),
        '#collapsible' => TRUE,
        '#access' = FALSE,
       );
      }
    }