【问题标题】:Drupal 7 Creating Full Page Custom ModuleDrupal 7 创建整页自定义模块
【发布时间】:2017-08-16 14:09:22
【问题描述】:

我想创建一个完整的页面,自定义模块。我的意思是一个模块,它没有被包装到主要的 Drupal 站点中。这是我的代码:

myapp.module:

function myapp_menu() 
{
 $result = array();
 $result['myapp/home'] = array(
  'title' => 'My App Title', // Title of our page
  'description'=> 'My App Web Site', // Description of our page
  'page callback' => 'myapp_function', 
  'access arguments' => array('access content'), // permission to access this page
  'type' => MENU_NORMAL_ITEM, // type of menu item
 );

 return $result;
}

function myapp_function(){      
  return theme('my_custom_template');
}       

function myapp_theme(){
  return array(
    'my_custom_template' => array(          
      'template' => 'myapp-page',
    ),
  );
}

myapp-page.tpl.php

Hello World

问题在于,当页面显示时,它仍然保留在 Drupal 站点的主主题中。我想让这个页面成为它自己的整页网站。有人可以帮忙吗?

谢谢

【问题讨论】:

    标签: drupal drupal-7 drupal-modules drupal-views


    【解决方案1】:

    你可以这样破解:

    function myapp_function(){      
      print theme('my_custom_template');
      exit;
    } 
    

    您也可以使用https://api.drupal.org/api/drupal/modules%21system%21system.api.php/function/hook_theme/7.x中列出的声明选项

    参数

    array $existing:可以使用的现有实现的数组 用于覆盖目的。这主要对可能的主题有用 希望检查现有的实现以提取数据(例如 参数),以便它可以正确注册自己的更高优先级 实现。

    $type:是否正在处理主题、模块等。这是 主要有用,以便主题判断它们是否是实际主题 被调用或父主题。可能是以下之一:

    'module':正在检查一个模块的主题实现。 'base_theme_engine':正在检查主题引擎是否有一个主题 是正在使用的实际主题的父级。 'theme_engine':一个主题 引擎正在检查正在使用的实际主题。 'base_theme': 正在检查基本主题的主题实现。 “主题”: 正在检查实际使用的主题。 $theme:实际名称 正在处理的主题、模块等。

    $path:主题或模块的目录路径,这样就不会 需要查一下。

    【讨论】:

    • 这很好用。但是,你提到这是一个“黑客”。这是不被接受的吗?或者有没有更“hacky”的方法?
    • 我不太确定,但您也可以通过 url drupal.stackexchange.com/questions/812/… 创建另一个主题(自定义)和大小写,或者尝试 hook_theme 声明中的所有选项。但简单有效的方法就是这个 hack
    猜你喜欢
    • 2011-07-08
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-03-19
    相关资源
    最近更新 更多