dashan 提交于
新建主题经常使用的API(功能)摘要
Drupal的主题或,例如,当您想要创建一个模块,一个经常使用的功能,我们总结备忘录的基础。
Drupal的版本,但你必须检查的D7,D6和,并享受看到对D8的链接,你也可以参考相应的代码。
在Drupal的主题创建的,是你经常使用的功能。这么多,至少是要记住它可能是不错的。
特别重要的,在的template.php中描述,而“template_preprocess_page”,和主题文件命名约定,它是将被读取的顺序。
请求URI
CMS登录用户信息
功能帮助主题化
- 头版检查
- 获取某个特定领域
- 我做一个字符串翻译
- 元素渲染
- 自定义窗体调用
- 消息输出
- 阵列结构信息输出
- 主题目录信息采集
- 关于主题文件命名约定
- 页面饲料定制
- Views转换,这是输出从Unixtime意见的日期
- 「public://」转换为「/stes/default/files」
请求URI,如
$GLOBALS['base_url'] => http://example.com/drupal base_path() => /drupal/ request_uri() => /drupal/documentation?page=1 request_path() => documentation current_path() => node/26419 arg(0) . arg(1) => node/1
无论您是登录。
user_is_logged_in()
用户信息获取
global $user; print $user->name;
为了得到当前路径
$ _GET ['Q']或者我可以得到的current_path()
要确定当前主题的路径
我用path_to_theme()。
为了寻求一个特定的主题或模块的路径,你可以使用drupal_get_path()。
为了获得在Drupal的URL查询参数,你可以使用drupal_get_query_parameters()。
你可以在和PHP是否正常$ _GET,但对我们塑造它很容易使用Drupal。
首页检查
drupal_is_front_page()
通过使用下面的代码代替,所以能够输出一个特定的字段。以下代码是输出body
print render(field_view_field('node', $node, 'body'));
上面的代码是很好的呈现,但你可以得到下面的代码,如果你想获得只有特定的领域。
field_get_items('node', $node, 'field_name');
我做翻译的字符串
Drupal是基本的,t($string, array $args = array(), array $options = array())中,指定一个字符串输出。
print '<p>'.t($content).'</p>';
元素的渲染(屏幕输出)
print render($content);
调用自定义窗体
Drupal的可以用来轻松地创建自定义表单。一旦创建形式,则可以通过从主题的API调用。
drupal_get_form()
print render(drupal_get_form('my_add_form'));
消息输出
例如,在输出消息中,如当页面更新时
drupal_set_message()
例如:
drupal_set_message(t('我已经注册的文章 '));
结构信息输出阵列的
$content和$node,当如何创建配置正在或主题,它是必要的。
如那些谁不熟悉的Drupal,使用的print_r(PHP函数),可能也有那些谁确认配置。
如果是的Drupal的情况下,通过下面的代码安装devel模块,您就可以确认。
dsm($content);
目录信息获取的主题
drupal_get_path('theme', 'THEME_NAME');
为Drupal的主题文件名是由一定的规则来确定。
例如,在“节点/ 1 /编辑”,和文件名的情况下,按如下方法测定。在这些中,它是一个模板文件6是当务之急。
1. page.tpl.php
2. page--node.tpl.php
3. page--node--%.tpl.php
4. page--node--1.tpl.php
5. page--node--edit.tpl.php
6. page--front.tpl.php (もしnode/1/edit がフロントページだった場合)
除了这些命名约定,如果你想添加一个主题文件名,可以在下面的代码更改。
function bootstrap_subtheme_preprocess_page(&$variables, $hook) { //Add multiple suggestions for pages based on Node if(isset($vars['node']->type)) { //有些条件 $variables['theme_hook_suggestions'][] = 'page__mytemplate'; } }
主题文件是如下。
page--mytemplate.tpl.php
「public://」转换的文件路径为「/sites/default/files」
$file_path = file_create_url('public://img.png');
template_preprocess_page
为了更强烈地定制的Drupal主题,template_preprocess_page功能是可用的。
page.tpl.php中的处理之前,要使用template_preprocess_page,你可以传递一个变量page.tpl.php中,你可以通过改变环境的模板文件,这样就可以。
我给上面,甚至改变模板文件,我们有一个过程使用preprocess_page。其他的处理之前node.tpl.php也template_preprocess_node并且,象template_preprocess(),具有各种功能都可用。
preprocess_page确实在的template.php的描述。
简单的示例
template.php
<?php // $Id: $ function THEMENAME_preprocess_page(&$vars) { //如果你想看到什么样的价值是 dsm($vars); //获取节点的主体,它被传递给page.tpl.php中 $vars['body_content'] = field_view_field('node', $vars['node'], 'body') // 我通过在page.tpl.php中的内容 $vars['my_content'] = '<p>ほげほげテスト</p>'; }
page.tpl.php
<?php print render($my_content); ?>
路过的每一本书锁定数据
// template.php
// 我通过该块数据被设置到页脚块html.tpl.php
function THEMENAME_preprocess_html(&$variables) { $variables['footer'] = block_get_blocks_by_region('footer'); } //html.tpl.php print render('footer');
- 登录以发表评论
数据库功能
Select
例如:
例如)多个记录
Update
- 登录以发表评论
dashan 答复于 永久连接Drupal的缓存清除
- 登录以发表评论
dashan 答复于 永久连接