【问题标题】:Drupal 7 Custom module with different theme具有不同主题的 Drupal 7 自定义模块
【发布时间】:2019-08-05 21:17:13
【问题描述】:

我被要求通过自定义模块构建现有 Drupal 7 站点的自定义登录页面/部分,但该部分的设计需要与父站点的设计完全不同。它只是一个全尺寸的背景图片,没有导航、没有页脚、没有页眉和一个新表单。

您能否通过自定义模块从“页面”中删除所有基本站点主题,以便创建自定义设计?

【问题讨论】:

    标签: drupal drupal-7 drupal-modules drupal-theming


    【解决方案1】:

    简答:可以!这需要很多工作,但你可以。

    长答案:如果对来自自定义模块的解决方案的要求很严格,请跳到此答案的最后一部分。否则,欢迎您完整阅读。

    我会做什么

    如果对custom module的要求不严格,你可以创建一个页面并为其添加自定义模板。看看Template (theme hook) suggestions

    即创建一个名为 My custom page 的页面,假设节点 ID 为 23,因此您可以在当前主题中创建一个名为 page--node--23.tpl.php 的文件。

    在该页面中,您可以修改所有需要的 html(甚至是页眉、页脚等)

    自定义模块

    如果上述解决方案对您不起作用,您必须:

    1. 创建自定义模块
    2. 创建自定义主题

    在自定义模块中,您可以像这样添加新路径:

    <?php
    function mymodule_menu() {
      $items['my-page-path'] = array(
        'page callback' => 'mymodule_render_page',
      );
      return $items;
    }
    function mymodule_render_page() {
    
      // Render your content
    }
    

    稍后使用模块中的hook_custom_theme 在满足某些条件时加载您的自定义主题。

    类似:

    <?php
    function mymodule_custom_theme() {
      if ($criteria_is_true) {
        // Use the machine name of your custom theme
        return 'my_custom_theme';
      }
    }
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2016-08-22
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多