这是一个总是困扰我的好人。
我很想看到D6和D7的解决方案。
我创建自定义模块,通常使用菜单api创建菜单类型 - > MENU_CALLBACK。
这是一个例子:
function example_menu() {
$items['example/page1'] = array(
'page callback' => 'example_page1_callback',
'access callback' => TRUE,
'type' => MENU_CALLBACK,
);
return $items;
}
我想看到确切的代码解决方案,根据以下代码提供三个不同的变量打印在自定义主题模板中。要添加到该挑战,我希望代码只能在菜单回调函数中编写。我知道有很多可能的方法可以做到但却无法弄清楚如何在菜单回调函数中执行此操作,这将是最有用的方法。
//****************************************
// This code block goes in a custom module called example_menu_variables.module
// hook_menu example
function example_menu() {
$items['example/page1'] = array(
'page callback' => 'example_page1_callback',
'access callback' => TRUE,
'type' => MENU_CALLBACK,
);
return $items;
}
// hook_meny callback function
function example_page1_callback() {
// please provide code within this function to turn these next three
// variables into separate output variables for the template.
$variable_to_print1 = 'Foo';
$variable_to_print2 = 'Bar';
$variable_to_print3 = array('bing', 'bang', 'bong');
return;
}
//****************************************
//****************************************
// This block of code represents the part of the custom theme template related to the menu location from the hook_menu call
// D6 template name would be page-example-page1.tpl.php
// D7 template name would be page--example--page1.tpl.php
<div><?php print $variable_to_print1?></div>
<div><?php print $variable_to_print2?></div>
<div><?php print $variable_to_print3[0] . ' ' . $variable_to_print3[1] . ' ' . $variable_to_print3[2]?></div>
/*
output should look like:
Foo
Bar
bing bang bong
*/
//****************************************
希望这是有人不介意解决的问题。谢谢你的时间。:)
雷詹姆斯
评论
为什么不使用视图模块
为什么不使用视图模块和现有的视图库模块?
登录或注册以发表评论
我想扩大一点
我想扩展gallery节点的一些自定义列表,它将为我的项目提供额外的自定义操作。另外,我必须像在Joomla上多年来一样学习如何在drupal中编写自定义模块。
谢谢你的评论。
登录或注册以发表评论
最后我实现了我的目标
最后,我实现了我的小目标。
我在.module文件中使用以下代码从db中选择一些数据并将它们传递给tpl文件。
然后我可以使用我的tpl文件上的数据作为
当然这是一个简单的例子,不是有用的东西,但它是我的自定义代码的开始。
回声和结果的形式当然需要对它们进行一些工作才行,但我认为我将数据传递给tpl文件。
如果我使用了一些错误的编码公式,请发表评论以征求意见。
谢谢。
登录或注册以发表评论
我也是。请帮忙。
我也是。请帮忙。
感谢和关心ARUN
AK
www.developersdocs.com
登录或注册以发表评论
你好,
你好,
上面的代码是真的。
您也可以使用template_preprocess执行相同的操作。
<?PHP
/ **
* hook_menu()的实现。
* /
function test_menu(){
$ items ['test /%'] = array(
'title'=>'Test',
'page call'=>'user_show',
'page arguments'=> array(1),/ /匹配的通配符 。'access
callback'=> TRUE,
'type'=> MENU_CALLBACK,
);
返回$ items;
}
/ **
*页面回调。
* /
function user_show($ uid = 0){
/* 做一点事 */
/ *调用主题函数* /
return theme('test',array('results'=> $ uid));
}
函数test_theme(){
返回阵列(
'试验'=>数组(
'模板'=> '测试',
'变量'=>阵列(
'结果'=> NULL,
),
),
);
}
/ *在模板预处理函数中构建变量。
此函数在主题函数模板调用之前调用。所以要分离逻辑和你可以在test.tpl.php的tempate预处理函数中构建/处理变量。* /
function template_preprocess_test(&$ variables){
/ *做一些*
/ * * build $ variables数组,它将在你的.tpl文件中提供。* /
$ variables ['user'] =某个值;
$ variables ['uid'] =一些值;
返回$ variables;
}
/ *现在在.tpl文件中打印变量。* /
print $ user;
打印$ uid;
希望这可以帮助。
谢谢,
Preksha
登录或注册以发表评论
我需要帮助,如何在模板文件中打印视图信息
大家好,
1.这是我的page.tpl.php,在鼠标悬停时我需要从视图中显示ImpLinks,否则日期应隐藏在幻灯片激情中。
$(document).ready(function(){$(“。icon”)。hover(function(){$ .ajax({url:'sampledb.php',success:function(data){//成功时调用// alert(data); $('#result')。html(data);},error:function(e){//在出现错误时调用//console.log (e.message);}} );}};});2.我在template.php中编写了代码,我无法打印此代码。
function hp_karma_preprocess_view(&$ results){
$ results = db_query(“select node.title AS node_title,node.nid AS nid,
node.created AS node_created
FROM
{node} node
WHERE(((node.status ='1')AND (node.type IN('imp_links'))))
ORDER BY node_created DESC“) - > fetchAll();
//注意:db_fetch_object和db_fetch_array已从D7中删除!
foreach($结果为$ res){
print $ res-> node_title;
print $ res-> node_created;
}
}
登录或注册以发表评论
用于传递数组变量
你好,
好主题。它适用于单值变量。但是当我尝试传递数组时,会产生问题。一般的解决方法id将数组的每个索引作为单独的变量发送。但是,对于大阵列而言,这实际上不是解决方案。任何解决方案?
- Pratip Ghosh
登录或注册以发表评论
非常有用
感谢这些代码片段,tarasiadis。它工作得很好。没有其他解决方案适合我。
登录或注册以发表评论
很有用
感谢这些代码片段,tarasiadis。它对我来说很完美。
登录或注册以发表评论
完善
你的答案解决了我很多问题,因为它指出,drupal文档不会如此清楚地说明:theme()函数调用直接将参数带入模板。谢谢!
登录或注册以发表评论