2

谁能帮我?我已经有很多时间环顾四周来解决这个问题。现在我知道了,如何制作新的内容类型以及如何为其输出设置主题。这很简单。只需在我的模板文件夹中创建一个“node--content-type-name.tpl.php”文件。现在我想主题输入表单。

当我找到它的方式时,只是说,制作一个新模块或在 template.php 中放置一些代码,但我尝试了数千次但没有任何结果。我想我没有很好地理解它。这比仅仅制作一个 tpl.php 文件太难了。

所以,我的问题是。

  1. 有什么方法可以制作像 node--content--edit.tpl.php 这样的输入主题文件?(我发现,在页面情况下,制作一个页面--node--add--content-type.tpl.php)

  2. 我必须制作自定义模块吗?如果我想在内容类型中输入主题?

  3. 有人说,将 theme() 函数放在 site/all/theme/bartik 文件夹中的 template.php 中。我在下面放了一个代码,但它没有用。我错过了什么吗?

内容类型名称:mycontent

function mycontent_theme() {
    return array(
        'mycontent_node_form' => array(
        'agruments' => array('form' => NULL),
        'template' => 'mycontent-node-form',
        ),
    );
}

然后我在 site/all/theme/bartik/template 文件夹中创建了 mycontent-node-form.tpl.php 文件,并在其中放入了随机文本。(adsfasdfkajsdhfkash) 但什么也没发生。

实际上我只想在我的内容类型(INPUT)中制作一个协议框,但我花了很多时间。谁能帮我?

4

1 回答 1

1

有人说,把theme()函数放在site/all/theme/bartik文件夹的template.php中。我在下面放了一个代码,但它没有用。我错过了什么吗?

而不是mycontent,您应该使用主题的短名称。如果您将其添加到 Bartik 主题中,那么函数名称应该是bartik_theme(),而不是mycontent_theme()

您正在使用的代码包含一个错字:它是arguments,而不是agruments。但是,Drupal 7 中没有使用该属性。Drupal 7 使用变量渲染元素

function bartik_theme() {
  return array(
    'mycontent_node_form' => array(
      'render element' => array('form' => NULL),
      'template' => 'mycontent-node-form',
    ),
  );
}

作为旁注,如果要向已启用的模块/主题添加功能,则需要先禁用它,然后重新启用它,因为 Drupal 缓存了模块/主题实现的某些功能的名称。

于 2012-12-18T06:57:32.613 回答