【问题标题】:Changing the Node Creation Title in Drupal?更改 Drupal 中的节点创建标题?
【发布时间】:2009-09-08 07:56:04
【问题描述】:

假设我有一个名为“产品”的节点。当我创建这样一个节点时,它总是会显示:“创建产品”作为节点的标题。创建节点时如何更改此标题?

【问题讨论】:

    标签: drupal drupal-6 content-type


    【解决方案1】:

    你的意思是你有一个content type“产品”?

    创建“产品”类型节点时的“创建产品”标题设置在node_add($type)

    // ...
    drupal_set_title(t('Create @name', array('@name' => $types[$type]->name)));
    $output = drupal_get_form($type .'_node_form', $node);
    // ...
    

    至少有 2 个选项可以改变这一点:

    【讨论】:

      【解决方案2】:

      这应该可以在您的自定义模块中解决问题,只是特定于内容类型。

       function your_module_form_alter(&$form, $form_state, $form_id) {
            if ($form_id == 'contenttype_node_form') {
              drupal_set_title(t("Title you prefer"));
            }
          }
      

      【讨论】:

        【解决方案3】:

        如果以上方法都不奏效,试试这个:

        function YOUR-THEME_process_page(&$variables) {
          if (arg(0) == 'node' && arg(1) == 'add') {
            switch(arg(2)) {
              case 'YOUR-CONTENT-TYPE':
               $variables['title'] = t('New Record');
            }
          }
        }
        

        【讨论】:

        • 在发布多个问题的复制和粘贴样板/逐字答案时要小心,这些往往会被社区标记为“垃圾邮件”。如果您这样做,则通常意味着问题是重复的,因此请标记它们。
        【解决方案4】:

        试试

        yourmodule_form_product_node_form_alter(&$form, $form_state)
        {
          drupal_set_title($foobar);
        }
        

        【讨论】:

        • 不起作用。我使用drupal 6?表单对象中没有title值,
        • 你说得对,不过 drupal_set_title 应该足够了(我编辑帖子)
        【解决方案5】:

        我假设您的意思是要更改“创建产品”一词

        要获得快速简便的解决方案,您可以使用 [string override][1] 模块。这有点像 hack,但它很简单,并且有一个很好的 UI 来改变它 - 为了简单起见,有一些话要说:-)

        [1]:http://drupal.org/project/stringoverrides 字符串覆盖

        【讨论】:

          【解决方案6】:

          我贡献了一个模块来解决这个问题。查看Node Add Title

          希望对你有帮助。

          【讨论】:

            【解决方案7】:

            试试这个,

            function hook_node_view($node, $view_mode, $langcode) { 
              if (arg(0) == 'node') {
              $nid = arg(1);
              .
              .
              .
              .
              drupal_set_title($title);
            }  
            

            }

            这是工作。

            谢谢, 拉蒂卡 S.

            【讨论】:

            • 这似乎很不完整。 $title 变量未定义,$nid 也没有使用。 if 应该检查 arg(0) == 'node' && arg(1) == 'add'。看看Francisco Luz的回答。
            猜你喜欢
            • 1970-01-01
            • 1970-01-01
            • 1970-01-01
            • 1970-01-01
            • 1970-01-01
            • 1970-01-01
            • 1970-01-01
            • 2014-08-14
            • 2023-03-24
            相关资源
            最近更新 更多