我很有可能只是寻找帮助找到drupal(7)中已存在的函数的名称,但有时文档有点难以导航.希望有人可以帮助我.
我有一个具有自定义字段的节点.
我正在模板中工作field--mycustomcontenttype.tpl.php,所以我试图找到输出的PHP函数的名称和图像样式的图像字段.
mycustomcontenttype 是一个具有以下附加字段的NODE:
[field_image] => Array
(
[und] => Array
(
[0] => Array
(
[fid] => 51
[alt] => ImageAltText
[title] =>
[width] => 150
[height] => 150
[uid] => 29
[filename] => myimagename.jpg
[uri] => public://myimagename.jpg
[filemime] => image/jpeg
[filesize] => 8812
[status] => 1
[timestamp] => 1339445372
[uuid] => a088ea8f-ddf9-47d1-b013-19c8f8cada07
[metatags] => Array
(
)
)
Run Code Online (Sandbox Code Playgroud)
所以我可以使用(丑陋的)手动滚动函数来显示图像,这些函数获取了找到的值$item['#options']['entity']->field_image并替换public://了实际的服务器路径,然后我也可能想要加载正确的图像drupal图像样式(缩略图,自定义样式等...)
可悲的是,我只是不知道函数的名称是什么类似于:unknown_function_name_drupal_image_print($item['#options']['entity']->field_image, 'thumnail');是.
有没有人可以帮我找到这个?
我正在尝试修改我正在创建的Drupal 7主题中的HTML输出.
基本上,我希望在<a>中包含一些额外的HTML,而不是仅包含带有文本的简单<a>的<li>.
我知道可以修改Drupal中菜单创建的HTML.我可以在page.tpl.php中看到以下调用:
<?php print theme('links__system_main_menu', array(
'links' => $main_menu,
'attributes' => array(
'id' => 'main-menu',
'class' => array('links', 'clearfix'),
),
'heading' => array(
'text' => t(''),
'level' => 'h2',
'class' => array('element-invisible'),
),
)); ?>
Run Code Online (Sandbox Code Playgroud)
它显然调用了主题函数,它创建了输出.修改输出的一种方法是修改theme.inc中的theme_links函数,对吧?
http://api.drupal.org/api/drupal/includes--theme.inc/function/theme_links
我也知道你可以在template.php中放一个钩子来覆盖创建HTML的函数.我无法弄清楚如何创建实际的覆盖功能.有人能指出我正确的方向吗?
我正在努力完成以下任务.我需要使用Drupal 6作为项目要求,但我想将它与我自己的HTML和CSS样式表一起用于每个节点/视图/面板等.
问题是,无论主题是什么,我总是发现Drupal将我的CSS样式应用于我的HTML内容以及与所选主题相关的CSS.我也尝试过使用stylestripper模块(安装在sites/all/modules中),但没有成功.无论我做什么,我的页面都会应用额外的CSS样式表,完全破坏了我的布局.
实现这个目标的正确方法是什么?为什么stylestripper根本不起作用?是否有完全空白的主题?我已经尝试过基本,母舰,禅等,但我总是看到应用于我的页面的其他CSS样式表.
这让我发疯,Drupal因其灵活性而被其他人选中.先感谢您.
Drupal 7如何渲染页面?它与MVC的视图系统相当.
当谈到呈现请求的最终HTML页面时,我使用的大多数PHP框架(基于MVC)采用了一种方法,其中顶级布局/页面PHP文件设置基本文档结构,然后呈现我们的各种子视图通过包含或查看渲染方法.
//Simplified version
Page.phtml
Head.phtml
Body.phtml
Banner.phtml
Topnav.phtml
Left.phtml
Content.phtml
Footer.phtml
Run Code Online (Sandbox Code Playgroud)
我对Drupal对此的看法感到有些困惑.我正在通过Pro Drupal Development阅读,它开始于类似的领域page.tpl.php.然而,它掩盖了主题引擎(正确的术语?)如何将PHP的各个部分带入此页面(不是批评,本书的方法与我所使用的路径不同).
此外,Drupal 7主题似乎没有该page.tpl.php文件,所以它(页面骨架)的来源不明确(对我而言).另外,从我所看到的内容看起来似乎涉及"块",但我不清楚"块"是否构成整个页面,或者块是否是主题选择性使用的东西.
因此,从高级概念开始工作(或者根据您的喜好获得详细信息),Drupal 7如何渲染页面?
我意识到你可以,而且可能应该从Drupal开始,而不了解一切是如何结合在一起的.我特意试着学习各种Drupal系统是如何组合在一起的.向厌倦阅读此免责声明的人致歉!
有谁知道PHP代码检查你是否处于编辑模式?我想编辑我的主题在编辑模式下的样子,所以如果我不在,需要解决.
我正在尝试为drupal博客制作一个自定义主题,我希望搜索框出现在标题中.为此,我将以下代码放在page.tpl.php模板文件中:*
<?php if ($search_box): ?>
<div id="search-box"><?php print $search_box; ?></div>
<?php else: ?>
<h2>Pas de search box</h2>
<?php endif; ?>
Run Code Online (Sandbox Code Playgroud)
但该死的东西不会出现.我做了一些研究谷歌,并检查了搜索模块admin/build/modules和admin/build/themes/settings/mytheme,以及增加的搜索形式在标题中admin/build/block/list/mytheme.我错过了什么,或者我做错了什么?因为它仍然不起作用,并开始惹恼我......
谢谢.
来自法国的问候;)
themes drupal content-management-system drupal-themes drupal-theming
我有一个HTML主题.如何将我们的HTML模板转换为Drupal 7主题?
我为Drupal 7创建了一个模块,它有一个hook_theme函数,告诉它使用usertemp.tpl.php模板.我将模板放在模块文件夹和主题文件夹中.问题是该功能仅从模块文件夹中获取模板,而不是从主题文件夹中获取模板.我已经反复清理了缓存,并寻找以前的答案,但没有任何帮助.可能是什么问题呢?
我的hook_theme代码如下所示:
function usuar_theme() {
return array(
'usuarbuild' => array(
'variables' => array('profilesloaded' => array()),
'template' => 'usertemp',
),
);
}
Run Code Online (Sandbox Code Playgroud)
其余的模块代码是这样的:
function usuar_menu() {
$items['userx'] = array(
'title' => 'User page',
'description' => 'User page',
'page callback' => 'usuar_exe',
'access callback' => TRUE,
'type' => MENU_CALLBACK,
);
return $items;
}
function usuar_exe($id) {
$ar = array('uid' => $id, 'profilesloaded' => profile2_load_by_user($id));
return theme('usuarbuild', array('collected' => $ar));
}
function theme_usuarbuild($variables) {
return $variables['collected'];
}
Run Code Online (Sandbox Code Playgroud) 如何为特定视图创建自定义page.tpl.php?
我不是在谈论视图本身的样式,而只是视图呈现的页面.
谢谢.
@Keith Morgan - 这是页面.
在drupal 6中,您可以编辑用户,它可以让您选择设置他们使用的主题.此选项在Drupal 7中似乎不可用.如何在每个用户的基础上设置主题?
非常感谢先进.