【问题标题】:Display Views exposed form item label inside selects (Instead of the default '- Any -')?显示视图在选择内显示表单项标签(而不是默认的“-任何-”)?
【发布时间】:2014-04-17 11:59:04
【问题描述】:

如何在 Views 公开表单中显示表单项标签而不是 '- Any -'?更具体地说,我使用此代码将选择的默认值文本替换为自定义文本,并希望该自定义文本成为该元素的标签:

function THEMENAME_form_views_exposed_form_alter(&$form, &$form_state) {
  //dpm($form);
  if ($form['#id'] == 'views-exposed-form-FORMID') {
$form['ITEMNAME']['#options']['All'] = t('My custom translatable text');    
  }
}

这适用于自定义文本。我想要的是显示它的标签而不是 My custom translatable text 使用简单的代码:

$form['ITEMNAME']['#options']['All'] = $form['ITEMNAME']['#name'];

但是在这样和类似的代码上没有运气。根据 fo $dpm($form) 输出 '#name', '#title' 元素似乎根本不存在。

目标是在没有其他 Javascript 库的情况下拥有 https://drupal.org/project/compact_formshttps://drupal.org/project/In-Field-Labels 的类似功能(最好使用几个 PHP 行,请不要使用 JS 解决方案)

【问题讨论】:

    标签: forms drupal drupal-7 views


    【解决方案1】:

    您的上述代码适用于选择字段,但不适用于文本字段。如果你需要它来处理文本字段,你可以试试这个

    $form['ITEMNAME']['#attributes'] = array('placeholder' => array('My custom translatable text'));
    

    $form['ITEMNAME']['#attributes'] = array('placeholder' =>$form['ITEMNAME']['#name']);
    

    希望对你有帮助

    【讨论】:

    • 哇,忘记了那个属性,文本字段的问题已经解决了,但我想要两个解决方案:选择和文本字段。选择似乎没有“占位符”属性,并且我在上面发布的代码不起作用,我得到“1”作为 $form['ITEMNAME']['#name']; 的输出
    • 为此,您将需要一个 if 条件,该条件将首先检查类型,然后为其应用解决方案。它不能使用单一的解决方案来完成
    • 似乎问题是这些选择中不存在#title 属性。我完全理解你的逻辑 - 这部分很清楚
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2017-02-12
    • 1970-01-01
    • 1970-01-01
    • 2015-11-13
    • 2020-06-19
    • 2019-03-22
    • 1970-01-01
    相关资源
    最近更新 更多