如何在树枝中注册新的PHP功能? -- 7 领域 和 theming 领域 drupal 相关 的问题

How to register a new PHP function in Twig?


2
vote

问题

中文

我正在尝试用树枝创建一个主题。如果我想注册一个新的PHP函数,我应该实现"hook_twig_function()" 作为模块解释。

我的简单问题是:我应该在哪里实现我的功能?如果我写代码 - 像往常一样 - 在我的"template.php" 中,我有这个警报:"未知" my_module_coolfunction"sites /所有/主题/ abc / templates / page.tpl.twig "

如果我在每次更新后编辑了"extension.php" 文件,我会丢失所有自定义函数。

英文原文

I am trying to create a theme for Drupal 7 with Twig. If I wanted to register a new PHP function, I should implement "hook_twig_function()" as the module explains.

My simple question is: where should I implement my functions? If I write code - as usual - inside my "template.php", I have this alert: "Unknown "my_module_coolfunction" function in "sites/all/themes/abc/templates/page.tpl.twig"

If I edited the "Extension.php" file, after every update, I would lost all my custom functions.

     

回答列表

0
 
vote

在文档中它说:

功能

要注册新过滤器,您应该实现 hook_twig_function()和 使用唯一键和新的Twig_simpleFunction返回索引数组 作为价值。
  function my_module_twig_function(){   
要回答您的问题:

我的简单问题是:我应该在哪里实现我的功能?

注意它如何使用"my_module" ,所以在您的自定义模块中显然 .module 文件是应该添加这些函数的位置。如果您还没有自定义模块,那么您需要创建一个。

因此,如果您的自定义模块名为Hello Kitty,那么在 hello_kitty.module

  function hello_kitty_twig_function(){     $functions = [];     $functions['coolfunction'] = new Twig_SimpleFunction('coolfunction','hello_kitty_coolfunction');     return $filters; }  function hello_kitty_coolfunction($param_1,$param_2...){     // do what you need to do, and return something. }   
 

In the docs it says:

Functions

To register a new filter you should implement hook_twig_function() and return an indexed array with unique keys and new Twig_SimpleFunction as value.

function my_module_twig_function(){ 

To answer your question:

My simple question is: where should I implement my functions?

Notice how it uses "my_module", so clearly in your custom module .module file is where these function(s) should be added. If you don't have a custom module yet, then you will need to create one.

So if your custom module is named Hello Kitty, then in hello_kitty.module

function hello_kitty_twig_function(){     $functions = [];     $functions['coolfunction'] = new Twig_SimpleFunction('coolfunction','hello_kitty_coolfunction');     return $filters; }  function hello_kitty_coolfunction($param_1,$param_2...){     // do what you need to do, and return something. } 
 
 

相关问题

1  渲染基于访问权限的内容  ( Render a content based on access permission ) 
我有两个content_types, Type_A 和 Type_B 。我使用实体参考类型将 998887669 998876669 中的一个字段引用为 MYSITE.install0 。但是,当特定 998876611 节点未发布时,那么匿名用户也能从 MYSITE.install2 查看字段。 显示 MYSI...

0  如何将外部js附加到drupal.behaviours  ( How to attach external js to drupal behaviours ) 
如果我们在drupal.behaviours中编写JS代码,如下面 (function($) { Drupal.behaviors.my_module = { attach : function(context, settings) { } }; })(jQuery); 如果在AJAX回调之后...

2  “全局:自定义文本”字段翻译[重复]  ( Global custom text field translation ) 
这个问题已经在这里有答案: content-f"> for textgroup视图内容不是由于其文本格式而允许翻译 (1答) ...

2  我如何获得一个简单的模板来工作?  ( How do i get a simple template to work ) 
我有一个drupal模块,其中我想通过将它放在模板文件中来与逻辑分离html。你认为这很容易,但我无法弄清楚它是如何在笨蛋中工作的。当我谷歌时,我会在大规模的指南上制作笨拙的主题或关于专注于模板过程的一个方面的文章。我下载并安装了开发人员模块的示例,该模块有一个用于模板的部分,但即使在我做出任何重大变化时也不会这样做...

4  如何使用当前用户名替换辅助菜单标题?  ( How to replace the secondary menu title with the current username ) 
辅助菜单 - 这是系统辅助菜单标题。 我需要用当前的用户名替换它,与用户菜单块相同。 我不想因为某种原因而使用用户菜单块。 我想使用deault系统菜单: <?php if ($secondary_menu): ?> <div id="secondary-menu" class="navigation">...

2  在D7中的登录失败后将用户重定向到不同的页面  ( Redirect users to different page after a login failure in d7 ) 
我想将用户重定向到不同的页面,如果他们输入错误的登录详细信息,因为我正在使用以下代码,但它不起作用。 function bartik_form_alter(&$form, &$form_state, $form_id) { if ($form_id == "user-login") { ...

1  如何在Drupal查询中使用较低函数? [复制]  ( How to use the lower function in a drupal query ) 
这个问题已经在这里有答案: 在drupal 7 db_select()中的条件下使用sql函数 (3个答案) ...

1  在某些页面上重定向用户登录表  ( Redirecting user login form on certain page ) 
方案是: 我已经使用hook_menu实现了一个菜单,在该页面中,它检查用户是否可以访问创建某些内容类型(调用请求),如果他/她确实可以访问它将使用drupal_get_form加载内容创建页面,否则它会检查是否用户尚未登录,在这种情况下它加载user_login_block,再次使用drupal_get_form函...

0  是否可以从统计模块配置读取计数?  ( Is it possible to configure read count from statistics module ) 
我在我的网站上使用博客,所以我想在用户查看博客时显示每个博客的读数。对于此,我使用了核心模块,称为统计信息。但我的要求与统计模块的可用功能不同。 我想预先设置读取计数器,以便我手动输入读取计数器的数量。例如,如果我输入100,下一个计数应该像101,102一样开始100,所以我如何实现这一目标,请建议任何模块或编程方...

0  如何防止使用饲料和Elysia Cron导入困扰  ( How to prevent that import with feeds and elysia cron gets stuck ) 
我有几个 feeds ,由 elysia cron 。 在给定时间调用饲料,后面的最后两个饲料每2分钟称为,因为它是防止它们停止的唯一方法。但是,当数据的大小和复杂性增加时,Cron过程被停止,因为最后一个馈送中的一个或两个都被卡住,永无止境。 我已经看到,通过更新数据库表 elysia_cron 通过将字段 run...

1  如何以定制金额(100或200或其他)以编程方式将产品类型捐赠添加到购物车中?  ( How to add product type donation into cart programmatically with custom amount1 ) 
我正在使用Commerce_Donate模块,我想在以某些其他页面上选择的用户,以编程方式向购物车添加产品(类型=捐赠)。在一些自定义表单上提交,我想将此捐赠类型产品添加到购物车中以处理通常的商务订单/结账。 如何实现这一目标? 谢谢。 ...

0  联系表单节点集成  ( Contact form node integration ) 
我有内容类型,我想在节点页面底部添加联系人按钮,但是 我有问题所以如何添加一个简单的联系表单,即在消息中添加节点标题以及当匿名用户转到名为"示例12" 的节点页面时,主体文本之后有"联系人" 或"提出更多" 按钮它表明了页面。 用户离开消息后,它进入管理员内容列表和管理员知道他/她去那里的页面。 示例i检查页面名为...

0  在哪里可以找到用户菜单块的代码?  ( Where can i find the code for the user menu block ) 
我正在尝试编写自定义用户菜单,但我想查看内置用户菜单块的原始代码。我在哪里可以找到它? ...

0  与独特的分页不同的观点? [关闭]  ( Different views with unique pagination ) 
关闭。这个问题需要详细信息或清晰度。它目前不接受答案。 想要改进这个问题?添加详细信息并阐明编辑此帖的问题。 关闭 4年前。 ...

0  如何在Page.tpl.php文件中覆盖主题()部分?  ( How to override theme part in page tpl php file ) 
这个问题是这个问题的扩展:当前用户名标题为辅助菜单标题,但它是不同的。 我想如何覆盖代码 99887661 中的以下部分,其中 page.tpl.php 例如,如果我想将 text => t('Secondary menu') 更改为 text => t('Any new text') 。 一种方法来做这...

0  如何修改媒体OEMBED模块生成的IFRame的输出?  ( How do i modify the output of iframes generated by media oembed module ) 
我正在尝试向D7 Media_oembed模块与YouTube视频输出的所有IFRame添加标题属性,但找不到它的写入切口点。没有任何模板具有覆盖的原始结构。 有人可以将我指向正确的地方吗? ...

1  如何使用视频模块嵌入视频?  ( How to embed videos using the video module ) 
我使用Drupal 7安装了视频模块和激活的视频和视频UI模块: https://www.drupal.org/project/video 我创建了一个带有视频字段的内容类型。现在我可以使用此内容类型上传视频。 但我无法嵌入YouTube视频。我找不到任何设置或任何嵌入的小部件,如此处所示。 我想上传视频,我想...

0  使用xdebug和phpupit调试自定义模块[关闭]  ( Debugging a custom module with xdebug and phpunit ) 
关闭。这个问题需要更多聚焦。它目前不接受答案。 想要改进这个问题?更新问题,因此它仅关注一个问题,仅通过编辑此帖。 closed 4年前。 ...

0  在视图中获得每年使用的分类法  ( Get taxonomy used for each year in a view ) 
我创建了一个观点,列出了我网站上使用了分类术语(标签)的时间数量(标签)。 tag1 (236) tag2 (200) tag3 (157) tag4 (161) tag5 (10) tag6 (90) tag7 (86) tag8 (50) t...

0  如何使用自定义列使用user_save?  ( How to use user save with custom column ) 
我在用户表中添加了自定义列,我想使用user_save以编程方式创建新用户。我怎样才能做到这一点?此代码不适用于自定义列: $new_user = array( 'name' => 'Foo', 'pass' => $...




© 2021 it.wenda123.org All Rights Reserved. 问答之家 版权所有


Licensed under cc by-sa 3.0 with attribution required.