帮助在template.php中的函数 -- nodes 领域 和 theming 领域 drupal 相关 的问题

Help with function in template.php


0
vote

问题

中文

drupal 7.

任何人都可以发现这个功能有什么问题吗?我只是想拉一个分类学期或其父母。分类学称为"Pubissue" 。

在template.php中:

   function ain_core_getpubname() {  // Load the node from unaliased url if ((arg(0) == 'node') && is_numeric(arg(1))) { $node = node_load(arg(1));}   // first find out if it's level two or not $query = "SELECT t1.tid, t1.parent FROM taxonomy_term_hierarchy t1 JOIN field_revision_field_pubissue t2 ON t1.tid = t2.field_pubissue_tid WHERE t2.entity_id = ".$node->nid;      $result = mysql_query($query);     print_r(mysql_fetch_assoc($result));          $mytid = $row["tid"];         $myparent = $row["parent"];      if ($myparent == 0) {          // No parent, top level         $query = "SELECT t1.name FROM taxonomy_term_data t1 WHERE tid = ".$mytid;          $result = mysql_query($query);         $row = mysql_fetch_assoc($result);             $pubname = $row["name"];             }      else {          $query = "SELECT t1.name FROM taxonomy_term_data t1 WHERE tid = ".$myparent;          $result = mysql_query($query);         $row = mysql_fetch_assoc($result);             $pubname = $row["name"];          }  print $pubname;   

}

然后在我的node.tpl.php文件中:

   <!-- Begin Publication -->     <div class="<?php print $node->type; ?>-pubname"><?php ain_core_getpubname() ?></div> <!-- End Publication -->   
好的,所以通过以下建议进行:
  function ain_core_getpubname() {  // Load the node from unaliased url if ((arg(0) == 'node') && is_numeric(arg(1))) { $node = node_load(arg(1));}   // first find out if it's level two or not $query = "SELECT t1.tid, t1.parent FROM taxonomy_term_hierarchy t1 JOIN field_revision_field_pubissue t2 ON t1.tid = t2.field_pubissue_tid WHERE t2.entity_id = ".$node->nid;      $result = db_query($query);     $row = db_fetch_array($result);          $mytid = $row->tid;         $myparent = $row->parent;      if ($myparent == 0) {          // No parent, top level         $pubname = db_query("SELECT t1.name FROM taxonomy_term_data t1 WHERE tid = ".$mytid)->fetchField();     }      else {          $pubname = db_query("SELECT t1.name FROM taxonomy_term_data t1 WHERE tid = ".$myparent)->fetchField();          }  print $pubname;   

仍然没有工作。将继续排除故障,我想我在正确的轨道上。再次感谢。

英文原文

Drupal 7.

Can anyone spot what could be wrong with this function? I'm just trying to pull a taxonomy term or its parent. The taxonomy is called "pubissue."

In template.php:

 function ain_core_getpubname() {  // Load the node from unaliased url if ((arg(0) == 'node') && is_numeric(arg(1))) { $node = node_load(arg(1));}   // first find out if it's level two or not $query = "SELECT t1.tid, t1.parent FROM taxonomy_term_hierarchy t1 JOIN field_revision_field_pubissue t2 ON t1.tid = t2.field_pubissue_tid WHERE t2.entity_id = ".$node->nid;      $result = mysql_query($query);     print_r(mysql_fetch_assoc($result));          $mytid = $row["tid"];         $myparent = $row["parent"];      if ($myparent == 0) {          // No parent, top level         $query = "SELECT t1.name FROM taxonomy_term_data t1 WHERE tid = ".$mytid;          $result = mysql_query($query);         $row = mysql_fetch_assoc($result);             $pubname = $row["name"];             }      else {          $query = "SELECT t1.name FROM taxonomy_term_data t1 WHERE tid = ".$myparent;          $result = mysql_query($query);         $row = mysql_fetch_assoc($result);             $pubname = $row["name"];          }  print $pubname; 

}

Then in my node.tpl.php file:

 <!-- Begin Publication -->     <div class="<?php print $node->type; ?>-pubname"><?php ain_core_getpubname() ?></div> <!-- End Publication --> 

OK, so going with the suggestion below:

function ain_core_getpubname() {  // Load the node from unaliased url if ((arg(0) == 'node') && is_numeric(arg(1))) { $node = node_load(arg(1));}   // first find out if it's level two or not $query = "SELECT t1.tid, t1.parent FROM taxonomy_term_hierarchy t1 JOIN field_revision_field_pubissue t2 ON t1.tid = t2.field_pubissue_tid WHERE t2.entity_id = ".$node->nid;      $result = db_query($query);     $row = db_fetch_array($result);          $mytid = $row->tid;         $myparent = $row->parent;      if ($myparent == 0) {          // No parent, top level         $pubname = db_query("SELECT t1.name FROM taxonomy_term_data t1 WHERE tid = ".$mytid)->fetchField();     }      else {          $pubname = db_query("SELECT t1.name FROM taxonomy_term_data t1 WHERE tid = ".$myparent)->fetchField();          }  print $pubname; 

Still not working. Will continue to troubleshoot, I think I am on the right track. Thanks again.

     
   
   

回答列表

1
 
vote

您的查询应该看起来像这样:

  $query = "SELECT t1.tid, t1.parent FROM {taxonomy_term_hierarchy} t1 JOIN {field_revision_field_pubissue} t2 ON t1.tid = t2.field_pubissue_tid WHERE t2.entity_id = :nid"; $result = db_query($query,array(':nid' => $node->nid)); // Result is returned as a iterable object that returns a stdClass object on each iteration (@see http://api.drupal.org/api/drupal/includes--database--database.inc/function/db_query/7#comment-7019)   

毕竟我建议你看看 drupal分类API 。使用像 caxonomy_get_tree()可能会好得多。

编辑:

使用分类学API,我会说出你想要做的事情会是如下所示:

  $parents = taxonomy_get_parents($tid); if(!empty($parents)) {     // use whatever you need from your $parents } else {     $term = taxonomy_term_load($tid);     // use whatever you need from the term (No parent, top level) }   

编辑2:固定代码示例...

 

Your queries should look something like this:

$query = "SELECT t1.tid, t1.parent FROM {taxonomy_term_hierarchy} t1 JOIN {field_revision_field_pubissue} t2 ON t1.tid = t2.field_pubissue_tid WHERE t2.entity_id = :nid"; $result = db_query($query,array(':nid' => $node->nid)); // Result is returned as a iterable object that returns a stdClass object on each iteration (@see http://api.drupal.org/api/drupal/includes--database--database.inc/function/db_query/7#comment-7019) 

After all I would suggest you check out the drupal taxonomy api. Using something like taxonomy_get_tree() could be much better.

EDIT:

Using the taxonomy api I would say what you want to do would be something like:

$parents = taxonomy_get_parents($tid); if(!empty($parents)) {     // use whatever you need from your $parents } else {     $term = taxonomy_term_load($tid);     // use whatever you need from the term (No parent, top level) } 

EDIT 2: fixed code example...

 
 
   
   

相关问题

6  复合田的MultureCoup(CCK3)/ Flexifield样溶液?  ( Multigroup cck3 flexifield like solution for compound fields ) 
我已经使用了 flexifield 在过去做乘以发生的跨越字段组;现在,在Drupal 7项目上工作,我正在建立一个"恢复" 内容类型,并需要一种方法来设置教育/工作经验的重复条目。 IE:对于"教育" ,我需要动态地添加由所研究的每个机构的日期和地点组合的新行。 在drupal 7中完成CCK3 MultiG...

2  跟踪用户联系表单提交  ( Tracking user contact form submissions ) 
如何在Drupal 6上跟踪用户联系表单提交? 我正在考虑类似于webform结果表的东西,但是对于用户联系表单。 如果不是那种复杂的东西,那么只有关于触点表单的简单统计数据,例如, "Userx本月收到了10封电子邮件。" 我很确定我必须创建自己的模块,这很好,我只需要知道如何走这个问题。 你有什么想法吗? ...

2  自定义有机组论坛的显示  ( Customize the display for organic group forum ) 
我正在使用有机组,我想改变论坛主题的方式。更精确地,我希望能够添加一个显示 webfm 附件的块。 我发现的一种方式是自定义"节点模板" 页面(用于路径 function mh_integration_connect_form($form, &$form_state) { $form['#method'] =...

0  显示具有视图格式的一个节点的多行中的字段  ( Displaying fields in multiple rows for one node with views format ) 
在一个视图中,我需要在多行中显示节点的字段,我如何实现这一点? 节点包含: port1name port1arrival port1departure Port2 Port2Arrival port2departure port3name port3arrival port3departure 我需...

1  在节点中,如何通过节点引用引用与当前用户相关联的节点的字段的值?  ( Within a node how can i reference the value of a field of a node associated to ) 
我正在为客户创建一个客户外联网。用户是我的客户客户。在页面节点的正文中,我需要显示当前用户所属的客户(公司)的ID。 这是到目前为止我如何设置它: Drupal 7 我有一个客户内容类型,具有一个名为customer_id的字段(以及其他东西)。 我已将一个节点参考字段添加到引用一个客户节点的用户字段中。 (换...

4  在管理员/内容中搜索表格  ( Search form at admin content ) 
我尝试在drupal 7中管理大量内容。 如何在内容管理页面(admin / content)中添加搜索表单? 我需要它,以便在有数百个节点时可以轻松找到节点。 ...

2  如何在节点中自动链接到其他节点的特定单词?  ( How to automatically link specific words in a node to other nodes ) 
让我们说我有一个带有的节点,如: " Lorem Ipsum Dolor Sit Amet,贴筑精英的白叶。 nunc cursus dapibus diam sit and amquet。 " 我正在寻找一种方法来将对草地>(例如)字转换为另一个节点的链接到另一个节点(而不是编辑时!) 如何定义节点血管链接到该词(...

1  显示通过关系在另一个节点上引用的节点的字段  ( Display a field of a node that is referenced on another node via a relationship ) 
我有两个内容类型,"商店" 和"提供" 。在"提供" 内容类型中,存在引用"存储" 节点的CCK节点参考字段类型。所以基本上,我创建一个商店,如果商店有优惠,我创建了"提供" 节点,然后选择它关联的商店。 我有一个显示存储列表的视图(默认词汇表视图)。我想显示与它相关的任何优惠的节点标题,但我无法弄清楚如何进行。 我...

3  删除仅在预告片上的文本  ( Remove submitted by text on teaser only ) 
我在我在节点显示上删除了"提交的" 文本?在其中可以在节点本身的内容类型设置中删除它,但有没有办法改变预告片,因此它不会显示"由" 显示"提交" 文字? 我正在寻找一个非预处理功能或模块方式来执行此操作;我不能使用我的主题来处理它。 我希望避免使用计算字段模块,以便如此微不足道的东西。 ...

1  是否可以从节点内使用drupal_goto()?  ( Is it okay to use drupal goto from within a node ) 
我实现了一个节点,它使用此功能自动将产品添加到购物车 uc_cart_add_item(33); 但我希望它将访问者重定向到签出页面。我看到Drupal有一个drupal_goto()函数,但这基本上只是php标题(位置: http:// mysite。 com /购物车/ checkout )如果在任何内容吐...

1  为什么我必须在嵌入式YouTube视频之前刷新?  ( Why do i have to refresh before embedded youtube video will show ) 
我刚刚使用嵌入代码上传了YouTube视频。每次访问它时,视频都只会在第二页加载上显示(当刷新页面时)。这是在Drupal 7站点上使用AdaptiveTeme作为基本主题,具有很小的CSS变化。 我只是在这里发布的一半,以便在意识到问题之前,没有其他人花费45分钟敲击输入过滤器。但如果有人知道为什么这是这样的,我会...

2  在同一节点和视图中使用多个模板  ( Using multiple templates for the same node views ) 
好的,我的问题是,我希望能够在Drupal 7站点上以简单的形式管理事件。我创建了相关的内容类型并插入了一些虚拟内容,一切都很好。然后,我继续创建用于以各种形式显示此操作的视图(1即将到来的事件查看,1用于存档/过去的事件)。这些似乎再次工作。现在问题来了,当我想在此内容类型的页面上显示此内容类型的视图时,因此您转到...

2  更改内容类型  ( Change content types ) 
是否可以更改节点内容类型?我有一堆故事节点,我想创建几种内容类型并将每个故事重新分配到不同的内容类型。有没有办法通过Drupal管理区或数据库自动化这一点? 谢谢! 简 ...

3  节点分页  ( Node pagination ) 
我想知道drupal是否有一种方法,以在特定内容类型的大约100个节点之间创建以前/下一个链接。我知道有一个寻呼机模块,但这允许您将一个节点分成几页,但我无法弄清楚在一个内容类型中实现所有节点之间的结果。 ...

0  如何修改“选择列表”字段的内容?  ( How do i modify the content of a select list field ) 
我有一个包含节点参考字段的内容类型,因此用户可以从列表中选择节点标题。我需要从列表中过滤掉一些节点(那些与当前日期大的日期字段的节点)。 我知道 hook_form_alter ()可以用来修改表单字段的显示和验证,但可能不会更改现场使用的查询。所以我想我需要为此字段编写某种预处理函数,这对内容进行了第二个过滤器? ...

4  如何以编程方式创建一个简单的“页面”节点?  ( How do i programmatically create a simple page node ) 
我已经找到了 drupal 6文档关于如何编程方式地创建页面节点。 如何在Drupal 7中实现这一点? 我改变了我的策略,我正在使用另一种方法,但我收到以下错误: 致命错误:无法访问C: ... ... ... ... modules field field.attach.inc中的空的属性在198...

3  用户单击选项卡时如何切换视图过滤?  ( How to toggle views filter when user click on tab ) 
我有两个选项卡,我想实现这个目标:一旦用户单击选项卡1,例如,它会向他显示Tab1的过滤器,如果他点击其他选项卡,它将表单切换到其他"by" 表单与Tab2相关的元素,即时使用Drupal 6和jQuery demo附加图像: http://www.media396.com/tmp/tabsexampleugly.p...

5  缓存问题:更新节点  ( Cache problem update node ) 
我正在运行一个带有"匿名用户的缓存页面" 和"缓存块" 启用的Drupal 7网站。 "最小缓存生命周期" 和"缓存页面的到期" 都设置为1天。 当我更新节点时,例如,编辑图片,并将该页面视为匿名用户时,未显示新图片。当我手动清除缓存时,页面将显示出来。它就像在更新节点后未清除缓存。 API的提取物: 模块/ n...

4  节点内容中令牌更换的最佳方法是什么?  ( What is best method for token replacement within node content ) 
我是一个新手,并彻底进行了彻底的论坛(包括这一个),书籍和文档,但找不到明确的答案: 是什么是最好的方法(自定义模块?节点内容中的PHP?其他?)以替换节点主体内的令牌,其中包含自定义用户配置文件字段的值? 用例:我需要用特定于当前用户的字符串替换外部URL中的文本。我希望我可以将一个令牌字符串放入节点内容中的URL...

0  将Node_revisions从版本5导入版本6  ( Importing node revisions records from version 5 to version 6 ) 
可能是一个愚蠢的问题,但我可以从Drupal 5站点的数据库中导出SQL文件,并将其导入在同一表中的Drupal 6数据库中,所以我对两者都使用相同的CCK字段?我试图在这么多不同的方式迁移内容,几乎所有事情都失败了......通过饲料模块导入CSV是我最大的希望,并且是为了看起来很容易,但我一直在得到HTTP错误。...




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


Licensed under cc by-sa 3.0 with attribution required.