【问题标题】:Theming a form: Which is the correct ID?为表单设置主题:哪个是正确的 ID?
【发布时间】:2017-09-27 06:50:17
【问题描述】:

在模板方面,我有点了解 Drupal 主题的基础知识。但是,我不知道如何更改网站上使用的表单。

我正在使用带有 Omega Kickstart 主题的 Commerce Kickstart。有几种表单,例如搜索框或添加到购物车表单。

我做了一些研究,并为我的主题 template.php 想出了类似的东西:

<?php  
function mytheme_form_alter(&$form, &$form_state, $form_id){
  if($form_id == "form_id") {
  $form['form_id']['#title'] = t('Something');
  }
}

我尝试这样做来更改搜索栏中显示的占位符:

<?php  
function mytheme_form_alter(&$form, &$form_state, $form_id){
  if($form_id == "edit_search_api_views_fulltext") {
  $form['edit_search_api_views_fulltext']['#attributes']['placeholder']= t('Something');
  }
}

我使用了edit_search_api_views_fulltext,因为当我检查网站代码时,它会显示id=edit-search-api-views-fulltext。但是,当我使用一个应该在 Drupal 页面上打印出表单 ID 的模块时,它会向我显示类似 id=views-exposed-form 之类的东西,它不起作用而且似乎也不正确。

所以我的问题是如何访问该表单并更改我想要的内容?该表单的 HTML 甚至位于何处?我根本找不到它。

【问题讨论】:

  • views-exposed-form = Module Views ,需要更改 DisplayHandler gist.github.com/rafinskipg/4001140
  • @Fky 老实说,我不知道这对我意味着什么。你能再详细一点吗?
  • 您的表单是由 Views 模块生成的,它是一个暴露的表单。所以你需要修改它的显示。您可以在路径 /admin/structure/views 上找到您的视图
  • 由于包含搜索栏的块被称为“公开表单:display_products-page”,我想我必须在“显示产品”视图中搜索。但不知道从那里做什么。它只是搜索结果的代表,但我找不到有关表单的任何信息

标签: php forms drupal drupal-7 theming


【解决方案1】:
function hook_form_alter(&$form, &$form_state, $form_id){
    switch ($form_id)

    case 'views_exposed_form':
        switch ($form['#id']) {
            case 'views-exposed-form-calendar':
                $form['search-phrase']['#attributes']['placeholder'] = t('Search All Calendar');

                break;
        }
        break;
}}

使用“views-exposed-form”时,您必须检查正确的 $form['#id']

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2016-05-31
    • 1970-01-01
    • 2017-05-12
    • 2019-06-19
    • 2012-02-19
    • 1970-01-01
    • 2023-01-08
    • 1970-01-01
    相关资源
    最近更新 更多