【问题标题】:Completely change the design of a page in Drupal 7彻底改变 Drupal 7 中的页面设计
【发布时间】:2012-02-03 13:27:53
【问题描述】:

有没有一种方法可以在 Drupal 中完全自定义页面?我不希望 Drupal 标头或任何其他由 Drupal 生成的 HTML 出现,但我希望能够访问 Drupal 函数。

【问题讨论】:

    标签: drupal-7 drupal-theming


    【解决方案1】:

    基本上你想要一个新的页面模板(而不是节点模板)。这在 Drupal 7 中不能开箱即用,因此有几个步骤:

    第 1 步 为这个特殊主题的页面创建一个新的内容类型,称它为“特殊”或其他...

    第 2 步 将此代码添加到您的模板的 template.php 文件中。 (将下面代码中的“yourthemename”替换为你的主题的机器名,即/sites/all/中你的主题文件夹的名称)

     function yourthemename_preprocess_page(&$vars) {
          if (isset($vars['node']->type)) {
          $vars['theme_hook_suggestions'][] = 'page__' . $vars['node']->type;
          }
         }
    

    第 3 步 在您的主题文件夹中创建一个新的页面模板,并以新的内容类型命名。例如:page--special.tpl.php 和“特殊”是内容类型的名称。自定义!

    第 4 步 清除缓存

    第 5 步 使用您的新内容类型创建新的内容——它将在您的新页面模板的设计中。

    最终结果就像拥有一个完全独立的主题,但仍保留在您现有的主题中。

    注意,我写了一篇关于如何为 Drupal 6 执行此操作的博客文章,但如果您阅读了 cmets,则有一些想法和链接如何为 D7 执行此操作,但基本上就是我在这里所说的。

    http://highrockmedia.com/blog/creating-custom-content-type-page-templates-drupal-php

    【讨论】:

      【解决方案2】:

      您可以运行替代的page.tpl.php 文件。例如。 page--front.tpl.php

      不确定这是最好的方法,但它会起作用。您可以从文件中删除您不想要的任何内容,使其与其他页面完全不同。

      【讨论】:

        【解决方案3】:

        Drupal 非常灵活:

        <?php
        $json = array(
          'body' => 'This is the body of the page.',
          'title' => 'This is the page title',
        );
        return drupal_json_output($json);
        ?>
        

        【讨论】:

        • 他正在寻找一个完全不同的布局,没有标题等...你能解释一下你的代码是如何做到的吗?
        猜你喜欢
        • 2015-06-23
        • 2011-05-05
        • 1970-01-01
        • 1970-01-01
        • 2020-10-23
        • 1970-01-01
        • 2013-08-24
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多