【发布时间】:2009-09-08 07:56:04
【问题描述】:
假设我有一个名为“产品”的节点。当我创建这样一个节点时,它总是会显示:“创建产品”作为节点的标题。创建节点时如何更改此标题?
【问题讨论】:
标签: drupal drupal-6 content-type
假设我有一个名为“产品”的节点。当我创建这样一个节点时,它总是会显示:“创建产品”作为节点的标题。创建节点时如何更改此标题?
【问题讨论】:
标签: drupal drupal-6 content-type
你的意思是你有一个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 个选项可以改变这一点:
t() 表示)
locale_custom_strings_,或$form['title']['#title'] = 'foobar' - 你只需要drupal_set_title('foobar'))。这有点难,因为你必须write your own module。 【讨论】:
这应该可以在您的自定义模块中解决问题,只是特定于内容类型。
function your_module_form_alter(&$form, $form_state, $form_id) {
if ($form_id == 'contenttype_node_form') {
drupal_set_title(t("Title you prefer"));
}
}
【讨论】:
如果以上方法都不奏效,试试这个:
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');
}
}
}
【讨论】:
试试
yourmodule_form_product_node_form_alter(&$form, $form_state)
{
drupal_set_title($foobar);
}
【讨论】:
我假设您的意思是要更改“创建产品”一词
要获得快速简便的解决方案,您可以使用 [string override][1] 模块。这有点像 hack,但它很简单,并且有一个很好的 UI 来改变它 - 为了简单起见,有一些话要说:-)
【讨论】:
我贡献了一个模块来解决这个问题。查看Node Add Title。
希望对你有帮助。
【讨论】:
试试这个,
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的回答。