Questions tagged «theming»

将其用于有关渲染或修改模块/主题产生的HTML标记的问题。

2
将变量从html预处理功能传递到页面预处理功能?
在我的自定义主题hook_preprocess_page()和hook_preprocess_html()功能中,我经常需要标识相同的信息。与其本质上运行相同的if语句来检查两个标识相同的信息,不如在两个对象中都执行一次,然后将该信息传递给另一个预处理函数,将更加有意义。我怎样才能做到这一点?我尝试了以下操作,但没有成功: function myTheme_preprocess_page(&$vars){ $vars['myValue'] = 7; } function myTheme_preprocess_html(&$vars){ //$vars['myValue'] should equal 7... } 我还尝试了另一种方法(在preprocess html函数中设置值,然后在页面preprocess函数中检索它),但这也不起作用。哪个提出了一个相关的问题:这些预处理功能按什么顺序处理?在我看来,页面预处理功能位于html之前,是正确的吗?
10 7  theming 

2
在html.tpl.php中打印区域
我需要在html.tpl.php模板中输出一些区域,因为这些区域在page.tpl.php和page-front.tpl.php之间不会改变(仅举两个例子)。基本上,我想避免代码重复。 但是,似乎没有任何与html.tpl.php中的区域相关联的内容,也无法使用drupal_get_region_content检索任何内容(无论是否包含参数,它都只会返回一个空数组)。 有想法吗?
10 7  theming  regions 

6
如何向使用图像样式生成的图像添加CSS属性
标题中几乎所有内容。我想向通过图像样式主题函数生成的图像添加CSS类,以便输出看起来像: <img class="MYCLASS" alt="" src="site.com/sites/default/files/styles/profile_picture/public/pictures/picture-1-1318455022.jpg" typeof="foaf:Image"> 反正有这样做吗?
10 7  theming  media 


5
如何在主题中添加条件javascript?
我想使用Selectivizr脚本模拟IE6-8中的CSS3选择器。 但是我很难将其添加到主题中。到目前为止尝试: 1)强制将其放入html.tpl.php头部分: <!--[if lt IE 9]> <script src="<?php print base_path() . path_to_theme(); ?>/js/selectivizr.js"></script> <![endif]--> 但是base_path()在D7中似乎没有返回任何内容(至少在html.tpl.php中-可能在page.tpl.php中)。而且我知道这不是Drupal的方式。 2)添加到主题的.info文件中: scripts[] = selectivizr.js 但这当然是无条件的:( 3)在我的template.php中使用drupal_add_js()。 但是,我不确定是否可以在此处有条件地设置它?
10 7  theming  javascript 

5
Drupal 7-抑制分类页面上节点的输出
有没有一种方法可以抑制分类页面上节点的输出,而无需安装模块(即仅在template.php中)? 标有分类术语的节点显示在“分类索引页面”上(例如yoursite.com/taxonomy/term/[id])。 Drupal 7中的新功能,分类索引页面可以附加字段。但是,如果尝试使用视图超越分类法页面(例如,以控制节点的显示方式),则不会显示“分类法索引”页面上的字段。 因此,我已将“分类视图”放置在“分类索引”页面上。这样,我可以控制节点的显示方式,并且仍然具有“分类索引”页面字段。 因此,分类页面仍在输出其节点。我可以通过将节点的预告片设置为隐藏来隐藏它们,但它仍会加载节点(因此,即使未显示节点,也将附加到节点的任何CSS / Jquery)。如何抑制节点出现,最好是从template.php内部出现?

3
重新编写taxonomy_term_page()的输出,而无需修改内核
在Drupal 7中,taxonomy.pages.inc包含taxonomy_term_page(),它将放在<div class="term-listing-heading">分类法标题输出周围。 我该如何在主题中重写taxonomy_term_page()的输出,以便可以删除DIV而无需改动内核? 我很惊讶没有可用的tpl.php文件,taxonomy_term_page()因为这会使主题化变得更加容易。

7
显示以逗号分隔的分类术语列表?
Drupal 7。 在我的node.tpl.php中,我想打印出一个分类术语列表(该分类称为“通道”。)。如果我使用: <?php print render($content['field_channel']); ?> 显然,它可以工作,但是要使它们内联,我能做的最好的就是使用CSS使它们浮动。我希望它们之间用逗号分隔。有任何想法吗? 谢谢。

5
hook_preprocess_page():如何区分视图页面?
我正在编写一个自定义模块,该模块仅需要在“视图”页面中插入一些JavaScript和CSS文件。 我正在使用hook_preprocess_page,但是我不能确定当前页面是否来自视图: function mymodule_preprocess_page(&vars) { var_dump($vars); //output: nothings that reference the views! if([view page]) { drupal_add_js([...]); drupal_add_css([...]); // Rebuild scripts $scripts = drupal_get_js(); $vars['scripts'] = $scripts; // Same for css } } 我知道我可以使用模板文件(page-my_view_page_path.tpl.php),但是只有在启用了模块的情况下,才必须包括js和额外的CSS;所以我喜欢把这些东西直接放在我的模块代码中。 有想法吗?
10 views  7  theming  javascript 

4
向节点/编辑和其他形式添加JS和CSS的正确方法
我正在制作一个包含很多JS的网站,我想知道应该将JS代码放在哪里。理想情况下,我希望每个模块都保留JS,而不是主题层。某些内容可能显示为块等。 但是我在缓存方面遇到了一些问题。在我的示例中,我需要将JS&CSS添加到节点编辑表单中。我使用过hook_block_view,但已缓存。因此,如果节点编辑表单中存在错误,则不会调用drupal_add_js和drupal_add_css函数。hook_node_prepare似乎也是如此。 您将在哪里输入JS&CSS层?并且即使在节点编辑表单中有错误,也有被调用的钩子吗?
10 theming  hooks 

3
如何从树枝模板中查找图像样式的URL?
我正在实现使用两次图像的节点模板;一次以“正常”方式(即,使用该视图模式在字段的显示配置中定义的图像样式),另一次作为css背景图像属性。 我需要以下两件事之一: (理想情况下)一种获取同一图像的不同图像样式的URL的方法。 一种获取图像字段URL的方法。 我正在努力使用dump()并kint()帮助自己找到答案。它们都输出太多(由于嵌入了到“父”等的链接),并且似乎没有我需要的信息。例如,查看dump(content.field_image)输出时,图像的实际URL不存在(因此它来自何处,从而可以使用{{ content.field_image }}?!进行渲染)。kint()另一方面,如果我给它传递一个参数,它会完全死掉,而顶级版本又太大了,无法导航。使用phptemplate + xdebug进行调试非常容易。(是的,我知道用户不能删除数据库是很好的。) 对于(1),有一个答案表示您无法执行此操作,但是我不明白为什么我无法在(2)中获得现有的URL?
10 theming  8  media 

2
如何在预处理函数中为Twig模板添加变量?
我正在使用以下代码对模板的变量进行预处理: function template_preprocess_imagegallery_format(&$vars) { template_preprocess_image_formatter($vars); $vars['image']['#theme'] = 'igimage'; $vars['image']['#thumbnail'] = ImageStyle::load('thumbnail')->buildUrl($vars ['image']['#uri']); $vars['image']['#fullimage'] = file_create_url($vars ['image']['#uri']); } #uri变量已经存在,如果我只修改它,一切都可以正常工作。但是我需要在此处添加其他变量,因为我需要同一张图片的两种不同样式。但是,仅将这些变量添加到数组中是行不通的。 如果我使用来将Twig模板中的可用变量转储{{ dump(_context|keys) }},则看不到在其中添加的变量。如果我尝试在模板中使用它们,则不会插入任何内容。 我可以看到这些值已添加到数组中,当我在呈现整个字段的主题中转储图像变量时,我会在数组中看到变量。但是它们在渲染图像变量本身的模板中仍然不可用。 要在Twig模板中可以使用的预处理函数中添加变量,我还需要做什么?
10 8  theming 

4
遍历Twig中的子元素,例如Element :: children()
在PHP中处理可渲染数组时,我可以使用Element :: children()来访问不是#属性而是从属可渲染元素的元素(字段集中的表单项,字段小部件内的项等)。例如,来自file.module的此代码段: <?php if ($element['#multiple']) { foreach (Element::children($element) as $name) { // ... } } ?> 如何在Twig模板中做同样的事情?如果我这样做{% for child in element %},它也将包括#type,#cache等等。
9 8  theming 

4
如何在内容中使用PHP检测移动浏览器?
将Drupal 7.14与PHP过滤器一起使用时,我在Basic Page内容类型中具有以下内容: <?php if ($is_mobile == TRUE):?> <div class="fb-like-box" data-href="http://www.facebook.com/a page" data-width="710" data-height="600" data-show-faces="false" data-border-color="#73AA4B" data-stream="true" data-header="false"></div> <?php else: ?> <div class="fb-like-box" data-href="http://www.facebook.com/a page" data-width="900" data-height="600" data-show-faces="false" data-border-color="#73AA4B" data-stream="true" data-header="false"></div> <?php endif; ?> 我收到错误消息: 注意:未定义的变量:eval()中的is_mobile(D:\ websites \ modules \ php \ php.module(80)的第1行:eval()的代码)。 我有点理解-我正在尝试从Drupal系统中获取一个变量,但是有什么方法可以做到这一点?也许使用令牌?
9 theming 

4
计算树枝中的多值字段值
我想计算试过的枝条tempalate中无限字段的值数量 {{ node.field_mytext.count }} => 面对错误 然后再尝试 {{ content.field_mytext.count }}=> 没有任何回报 (在这种方法中,我检查了我的字段不在禁用字段中是显示管理器)。 我的问题是如何计算Twig中一个字段的项目数? 我希望我面对的解决方案期望这些解决方案:D 将其添加到preprocess_node 使用Twig Tweak
9 theming  8 

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.