我应该调用一个函数来在自定义内容类型模板中查询数据库吗? -- 7 领域 和 theming 领域 drupal 相关 的问题

Should I call a function to query the database in a custom content type template?


0
vote

问题

中文

我在模板中调用以下函数,以进行自定义内容类型,但我的高级开发人员建议调用模板文件中的函数不是Drupal标准。

  function some_function($AA_tid = 0) {   $dis_pt = db_select('some_tble', 'v')     ->fields('v', array('title'))     ->condition('some_fld', $AA_tid)     ->distinct();   $dis_pt->join('another_tble', 'ss', 'v.title = ss.type');   $dis_pt->fields('ss', array('name'));   $result = $dis_pt->execute()->fetchAll();   return $result; }   

我应该调用将从内容类型模板查询数据库的函数吗?一般来说,避免模板文件中的这样的代码更好吗?

编辑:模板内部存在函数调用;其定义在某些模块文件中可用。

英文原文

I am calling the following function inside a template for a custom content type, but my senior developer suggested that calling a function inside a template file is not Drupal standard.

function some_function($AA_tid = 0) {   $dis_pt = db_select('some_tble', 'v')     ->fields('v', array('title'))     ->condition('some_fld', $AA_tid)     ->distinct();   $dis_pt->join('another_tble', 'ss', 'v.title = ss.type');   $dis_pt->fields('ss', array('name'));   $result = $dis_pt->execute()->fetchAll();   return $result; } 

Should I call the function which will query the database from a content type template? Generally speaking, is it better to avoid such code in a template file?

Edit: function call is present inside the template & its definition is available in some module file.

     

回答列表

0
 
vote

我相信这取决于你对你的查询做些什么。根据这个 drupal.org社区doc 您应该"避免在" .tpl文件中" "对于输出的所有条件逻辑和数据处理,存在template.php文件" 。 IOW模板文件用于主题/输出操作,而其他功能或逻辑应进入自定义模块。因此,如果您的查询是主题进程的一部分,则是它应该在您的模板文件中。否则在您的自定义模块中。

afaik其他开发人员不会在模板中寻找一个非主题函数,这就是为什么我认为高级DEV建议。

 

I believe that depends on what you're doing with your query. According to this Drupal.org community doc you should "refrain from having complex logic in" .tpl files and "for all the conditional logic and data processing of the output, there is the template.php file". IOW template files are for theming/output manipulation while other functions or logic should go into your custom module. So if your query is part of a theming process, yes it should be in your template file. Otherwise in your custom module.

AFAIK other developers will not be looking for a non-theming function in a template, which is why I think the senior dev suggested that.

 
 

相关问题

0  渲染地址菲尔德  ( Rendering addressfield ) 
在我的Drupal 7 Commerce网站上,我有我的结账页面,它将添加我的结算和运输配置文件。我需要只显示我的送货地址和帐单地址,而不是输入字段。 (从ERP后端提供的数据。) 所以我隐藏了一个输入字段。现在我想渲染addresfield值并将其添加到我的表单中以供显示。但我似乎无法这样做。 我的表单中有以下代码...

2  多语种分类观点 - 实体翻译  ( Multilingual taxonomy views entity translation ) 
我正在尝试使用 Entity翻译。到目前为止,即使在使用语言代码时,我也卡住了英语视图。 我正在寻找这个需要的步骤。最简单,我正在尝试根据语言创建分类术语的块或页面。 任何建议? ...

-1  有没有办法将自定义类/包装器添加到页面节点,类似于使用视图创建的页面?  ( Is there a way to add custom classes wrappers to page nodes similar to pages cr ) 
我正在研究设计师提出的5个主题颜色,我需要与特定页面相关联。主题有2个区域需要受主题颜色的影响:侧边栏和内容。 我希望将一个字段添加到基本页面内容类型链接到分类词词汇表,其中术语将是颜色,所以我可以在创建页面时选择主题。我需要将一个类添加一个术语高度,足以影响页面内容类型的所有其他字段。 这将是在视图中的行等级,其中...

1  如何用破碎的URL删除分类学期  ( How to delete a taxonomy term with a broken url ) 
我试图改变分类学术语指向的URL,以便点击它将将用户带到地图。但是,在更改URL之后,我不再能够进入术语来编辑值。 我如何在我无法访问它的编辑屏幕时切换回电源,或者删除术语? ...

1  媒体模块未正确渲染媒体的YouTube视频:YouTube  ( The media module does not correctly render youtube videos added with media yout ) 
尝试允许用户从 wysiwyg ,ckeditor 3.6,< href ="https://www.drupal.org/project/media_youtube" rel ="nofollow noreferrer" >媒体:youtube 。 这是模块配置: 然后我尝试通过向视频或嵌入代码(iframe...

1  显示在发票PDF Comperce Billy上的订单付款方法  ( Display the method of payment of an order on the invoice pdf comerce billy ) 
我安装了商务billy 。 如何在我的账单上显示付款方式? $info2 以下是我的文件"commerme_order - commerce_order - pdf.tpl.php" 的内容。 我在哪里放置代码? ...

1  向WebForm提交发送电子邮件通知  ( Sending email notifications to webform submissions ) 
我正在尝试创建一个规则,该规则将发送电子邮件到WebForm提交的列表,在创建新内容时通知它们。到目前为止,这是我有的: 事件:保存类型[类型] 的新内容后 条件:内容是类型 操作:使用规则视图显示,我正在抓住WebForm提交,然后循环发送邮件到WebForm提交的值。 一切都很好,直到我需要发送邮件。而不是...

1  视图:添加(链接到文件字段)到映像字段  ( Views add link to file field to image field ) 
在d7中,我有一个事件内容类型,其中包含图像字段("特色图像" )和文件字段("文档")。我有一个包含文档的事件的视图,并希望将链接包裹在图像周围,导致文档。这是一个 sample link 。 如何重写图像(或使用其他技术)以获取图像周围的所需链接?查看可用的令牌(我确实在图像上方添加了一秒钟的隐藏文档字段以定义...

0  如何在内容创建期间允许查看模式选择?  ( How to allow view mode selection during content creation ) 
我们有一个内容类型,基本页面,可以是三种类型 出版 网络广播 音频/视频 有一个基于基本页面类型的字段,我们切换显示的字段。因此,对于键入="音频/视频" 时,我们将显示字段A-C,但如果Type ="网络广播" ,则我们在节点编辑页面上显示字段D-G。 基于基本页面类型,节点视图应根据类型显示。我们正在考虑使...

2  如何配置总订阅模块? [关闭]  ( How to configure the total subscription module ) 
关闭。这个问题需要详细信息或清晰度。它目前不接受答案。 想要改进这个问题?添加详细信息并阐明编辑此帖的问题。 closed 4年前。 ...

1  如何使Blob文件可下载?  ( How to make blob file downloadable ) 
我已经创建了一个模块,以在Drupal 7中可用于下载Blob文件。 在我的代码下面.module文件 <?php function blobfile_block_info() { $blocks = array(); $blocks['blobfile_block'] = array( 'in...

0  如果字段是自动完成的字段,则以编程方式保存节点字段?  ( Programatically save node fields if fields is autocomplete ) 
我已经创建了一个包含3个字段的内容类型,我的一个字段是node_refrence在此文件中,我使用node_refrence填充其他节点的标题。 我正在使用这个代码。 > $node = new stdClass(); $node->type = 'application'; > node_object_pr...

1  如何引用自定义字段到内容类型条目  ( How to reference a custom field to content type entry ) 
在Drupal 7中我创建了一个"产品" 内容类型和自定义模块,它创建了一个具有字段"产品" 的实体"订单" 。 我想用来自内容类型的产品引用我的字段"产品" 。 任何建议如何使其审理? ...

0  在没有任何HTML标记的情况下获得清洁日期  ( Get clean date without any html tags ) 
我正在使用日期模块以及显示日期的视图,我需要获取日期时间戳。问题是 $fields['date_in_timestamp'] 内容在html包装。 <span class="date-display-single"> 1468473300 </span> 我只需要值,没有html。 ps:我的字段"dat...

6  Drupal_static的预期用途是什么?  ( What is the intended use of drupal static ) 
我理解Drupal静态缓存用于存储内存中的静态值,以便更快地访问它们的要求。然而,在德鲁佩尔和贡献的模块中,我倾向于看到两个不同的版本: 示例来自 drupal_is_front_page : function drupal_is_front_page() { // Use the advanced dru...

1  如何在规则操作中替换关于[node:url]的文本吗?  ( How to replace text about nodeurl within a rules action ) 
我正在使用规则模块,并在保存新时创建规则内容,发送电子邮件包含节点标题,以及节点的URL。非常直接。也就是说,我想在发送的消息之前替换网址中的文本。我正在使用str_replace(),但它不起作用。 任何建议? 更新: 路径当前看起来像这样: domain.com/cron.php/newsroom/press-...

0  单击链接时,从表中检索值并显示在WebForm字段上  ( When a link is clicked a value is retrieved from the table and displayed on a w ) 
我创建了一个带有两个按钮的基本页面,"是" 和"否" 。单击"是" 按钮时,它将引导到WebForm。 目的:当出现WebForm时,它会将表中的值显示为字段。 数据库 表名:房间 领域:房间 数据:培训室 基本页 webform 我为此功能创建了一个模块: test_presa...

0  devel dpq()不起作用?  ( Devel dpq not working ) 
我正在尝试打印从视图生成的SQL,但它不起作用。以下是我获得的错误消息: - Fatal error: Call to a member function arguments() on a non-object in /var/www/Exaxmple-Site/sites/all/modules/devel...

1  从自定义URL删除语言前缀  ( Remove language prefix from custom url ) 
我们的网站存在于多种语言中。我已安装XMLSitemap模块和默认链接看起来像SitEname / en / sitemap.xml 我需要删除此链接的语言前缀。似乎没有设置为任何特定的自定义链接禁用翻译。 可以是我可以以编程方式做到这一点? ...

1  在不使用拖放的情况下编辑块的权重  ( Edit weight of block without using drag and drop ) 
我正在尝试重新排序块。我明白它可以通过拖放块结构页面拖放来完成,但是我有一个限制。 保存时,订单不会保存。这很可能是因为存在非常大量的块,服务器无法以一种形式处理许多输入。所以它只是恢复到它的原始位置。我无法访问服务器,因此我无法进行更改以允许服务器处理许多输入。 我也无法访问MySQL数据库。 我希望能够在块中手动...




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


Licensed under cc by-sa 3.0 with attribution required.