为什么不是['field_name'] [0] ['#marp']为获取此节点的分类? -- nodes 领域 和 entities 领域 和 taxonomy-terms 领域 drupal 相关 的问题

Why isn't ['field_name'][0]['#markup'] work for getting taxonomy of this node?


0
vote

问题

中文

我有两个内容类型:案例和新闻。
在节点 - case.tpl.php中,我正在使用 echo $content['field_case_category'][0]['#markup']; ,以便打印页面的分类学术语,这很好。在节点 - news.tpl.php中,我无法使用 echo $content['field_news_category'][0]['#markup']; ;实际上,#markup甚至甚至都不存在于此阵列中。

  1. 为什么这种方法在第二个案例中没有工作?我该怎么做才能解决它?
  2. 在节点中打印分类术语是更好/正确的方法?

错误我得到以下内容:

注意:未定义的索引:#markup包含()

英文原文

I have two content types: Case and News.
In node--case.tpl.php, I'm using echo $content['field_case_category'][0]['#markup']; in order to print the taxonomy term for the page and that works fine. In node--news.tpl.php, I can't use echo $content['field_news_category'][0]['#markup'];; in fact, #markup is not even present in this array at all.

  1. Why doesn't this method work in the second case? What can I do to solve it?
  2. Is there a better/right way to print taxonomy terms in nodes?

The error I get is the following:

Notice: Undefined index: #markup in include()

        
       
       

回答列表

1
 
vote

请不要直接打印一些结果。您应该打印以下字段的内容。

  print drupal_render($content['field_case_category']);   

希望这解决了你的问题。另请检查您的节点是否包含Field_case_category字段的值。

 

Please don't print some result directly. You should print the content of field like below.

print drupal_render($content['field_case_category']); 

Hope this solves your problem. Also please check whether your node contains the value for the field_case_category field.

 
 
       
       
1
 
vote

渲染字段API字段的正确方法是使用 render() print render($content['field_case_category']) print render($content['field_news_category']) ),通过 drupal_render() ,能够正确处理所有情况,包括案例#markup是未设置,因为字段为空。

注意您通常不需要显式打印节点字段,如果不是在调用 render($content) 之前隐藏它们,那么您需要单独呈现它们。从节点模块中使用的默认节点。或ropal附带的任何主题。

   if ($secondary = menu_secondary_local_tasks()) {     $output .= "<ul class="tabs secondary clear-block"> ". $secondary ."</ul> ";   } 0  
   if ($secondary = menu_secondary_local_tasks()) {     $output .= "<ul class="tabs secondary clear-block"> ". $secondary ."</ul> ";   } 1  

如果您的模板已经使用 if ($secondary = menu_secondary_local_tasks()) { $output .= "<ul class="tabs secondary clear-block"> ". $secondary ."</ul> "; } 2 ,并且您没有看到分类术语,那么您需要检查字段尚未隐藏在显示设置中,或者模块隐藏在一起。

 

The correct way to render a field API field is using render() (print render($content['field_case_category']) or print render($content['field_news_category'])) that, through drupal_render(), is able to correctly handle all the cases, including the case #markup is not set because the field is empty.

Notice that you don't normally need to explicitly print node fields, if not in the case you hide them before calling render($content), and then you need to render them separately. The default node.tpl.php file used from the Node module, or any theme that comes with Drupal.

// node/node.tpl.php <div id="node-<?php print $node->nid; ?>" class="<?php print $classes; ?> clearfix"<?php print $attributes; ?>>    <?php print $user_picture; ?>    <?php print render($title_prefix); ?>   <?php if (!$page): ?>     <h2<?php print $title_attributes; ?>><a href="<?php print $node_url; ?>"><?php print $title; ?></a></h2>   <?php endif; ?>   <?php print render($title_suffix); ?>    <?php if ($display_submitted): ?>     <div class="submitted">       <?php print $submitted; ?>     </div>   <?php endif; ?>    <div class="content"<?php print $content_attributes; ?>>     <?php       // We hide the comments and links now so that we can render them later.       hide($content['comments']);       hide($content['links']);       print render($content);     ?>   </div>    <?php print render($content['links']); ?>    <?php print render($content['comments']); ?>  </div> 
//bartik/templates/node.tpl.php <div id="node-<?php print $node->nid; ?>" class="<?php print $classes; ?> clearfix"<?php print $attributes; ?>>    <?php print render($title_prefix); ?>   <?php if (!$page): ?>     <h2<?php print $title_attributes; ?>>       <a href="<?php print $node_url; ?>"><?php print $title; ?></a>     </h2>   <?php endif; ?>   <?php print render($title_suffix); ?>    <?php if ($display_submitted): ?>     <div class="meta submitted">       <?php print $user_picture; ?>       <?php print $submitted; ?>     </div>   <?php endif; ?>    <div class="content clearfix"<?php print $content_attributes; ?>>     <?php       // We hide the comments and links now so that we can render them later.       hide($content['comments']);       hide($content['links']);       print render($content);     ?>   </div>    <?php     // Remove the "Add new comment" link on the teaser page or if the comment     // form is being displayed on the same page.     if ($teaser || !empty($content['comments']['comment_form'])) {       unset($content['links']['comment']['#links']['comment-add']);     }     // Only display the wrapper div if there are links.     $links = render($content['links']);     if ($links):   ?>     <div class="link-wrapper">       <?php print $links; ?>     </div>   <?php endif; ?>    <?php print render($content['comments']); ?>  </div> 

If your template is already using render($content), and you are not seeing the taxonomy terms, then you need to check the field has not been hidden in the display setting, or a module is hiding it.

 
 
 
 

相关问题

0  每用户获得修订次数?  ( Get number of revisions per user ) 
我正在尝试展示用户编辑一个节点的次数,如下所示,因此我已经启用了对我的内容类型的修订。 user1(300) user2(288) user3(200) 问题是,当有人创建一个新节点时,它会在node_revision表中保存为修订,但我不想将其计算为编辑。 如何实现这一目标? 这是我正在使用的代码,到目前...

2  如何从节点中删除一些注释?  ( How to remove some comments from a node ) 
我在数据库中创建了一个新表,以将评论与他们提交的节点版本相关联。现在,当节点渲染时,我只想显示与特定节点VID关联的注释。我考虑在hook_node_view中查询db以删除不适用的注释,但理想情况下,只有与vid关联的注释首先将添加到节点。有没有更好的方法来实现这个?我可以在评论添加到它之前是否在节点上? ...

1  如何获取标题包含某个字符串的节点的节点ID?  ( How to get node ids of nodes whose titles contain a certain string ) 
我正在尝试获取标题包含给定字符串的节点列表,在这种情况下,术语附加到另一个节点的术语名称。 基于我在线找到的其他答案,我认为这可以工作: $sql = 'SELECT title FROM {node} WHERE title LIKE :title'; $result = db_query($sql, arr...

3  管理菜单链接管理内容类型  ( Manage content type by admin menu link ) 
我想通过管理员菜单选项卡管理内容类型,假设我有一个"新闻" 内容类型,如果我会去一些新闻,那么我必须先走"内容" 选项卡然后"添加内容选项" 将出现在导航之后,它显示所有内容类型,我将选择新闻,这是默认的drupal功能,但我希望在管理菜单中应该有链接,如新闻,所以当我点击新闻时它直接导航到新闻内容类型页面并且应该只...

4  从模板节点中的多值字段中只能获得一个值  ( Get only one value from a multivalue field in template node ) 
我有一个具有多值图像字段的内容类型。我需要创建一个模板,显示该类型的节点列表,但仅显示该多字段的一个值,而不是它们一起。 我知道如果我们在这里解释的"多字段设置" 下使用视图,我们可以执行此操作 视图3:从多值中选择一个值字段,但我不使用视图,我们只能使用模板节点吗? 节点标题1 第一图像 节点标题2 ...

0  在不同内容类型上选择的节点页面上的节点页面列表  ( List on node page where node selected on different content types ) 
我有一个内容类型'项目'和内容类型'员工'。因此,在项目节点上,我有两个字段列出了"员工节点" ,"项目管理器" (一个员工节点)和"其他人" (多个员工节点)。所以我想做的就是在"员工" 节点上,当您自己录取的项目中,可以列出他们所涉及的项目。模板中是否有办法获取此人可能涉及的任何项目链接。它领导或刚列出? ...

2  论坛如何确定每个用户的新答复?  ( How does forum determine new replies for each user ) 
当我访问 998876661 时,在 Replies 列中,我可以看到添加了多少新帖子。 Drupal还将它们标记为 New 标记。 我想知道Drupal如何确定哪些回复是我的新答复?自上次访问页面以来是新的,还是我的最后一个注销drupal.org?如果稍后是正确的,Drupal如何知道最后一次退出时如何知道? ...

1  正在使用Drupal进行前端和一个非Drupal API的后端?  ( Is using drupal for a frontend and a non drupal api for a backend possible ) 
对于我的设计,我想让司布处理所有的安全和演示。我的后端是返回JSON的API。我所能发现的只是司布是"无头" ,其中德鲁佩尔是后端。 我试图避免建造太多的笨拙并依赖它。 正在使用Drupal进行前端,并且可以为后端分开API?听起来我倒退了,但我不在司布中建造一切。我想在Drupal之外做所有的数据库和业务逻辑。 编...

1  我可以在admin中的节点编辑页面上添加垂直选项卡  ( Can i add vertical tab on a node edit page in admin ) 
我希望在节点编辑页面中添加自定义垂直选项卡。是否有可能? 作为一个例子,有人这样做了: - 感谢 ...

1  使用不同的自定义字段创建每个论坛  ( Create each forum with different custom fields ) 
我正在使用提前论坛模块,我正在尝试拥有不同的自定义字段的每个论坛。我创建了一种新的内容类型和非论坛分类术语。我的问题是如何在论坛集装箱中显示分类术语,因为它们未被视为论坛词汇术语。 ...

0  “全球”名单(浮动)?  ( Global list float ) 
假设我有一个内容类型,其中包含列表字段(float),可以包含以下值:a,b,c。 我创建了具有这些字段值的三个节点(a,b,c)。 创建一个新节点,有没有办法进入自动清除/删除已存在于旧节点中的现有值? 例如,如果我在新节点中选择 a ,则我希望在节点 a 中删除该值。 唯一字段模块阻止重复值的作业,但它不允许从...

0  将代码插入到已经有1000个节点的内容类型的字段或内容类型的中心  ( Insert code in to field or center of content type that already has 1000s of nod ) 
所以我试图将Google Adsense放入一些不同内容类型的节点中间,并尝试以各种方式执行此操作,但无济于。 最新方法是将Google Adsense放入一个块,它有效,然后使用块参考模块作为一个字段,该位也有效,从而显示了我想要的确切地方的Google AdSense领域和主体领域旁边。此方法的问题是我希望它能够...

0  改变发布的修订版  ( Changing published revision ) 
我正在尝试为节点发布版本,同时保存。 目前D8管理修订,但最后一个修改始终是"发布" 修订版。 我正在使用hook_entity_preveave,但我找不到一种方法来执行此操作。 一些建议? ...

0  为每个用户创建新的个人页面实例  ( Create a new personal page instance for each user ) 
我有一个名为"personal" 的内容类型,也称为"personal" 的节点(页面),它是那个内容类型。 我希望我的用户在我的网站上拥有自己的私有"个人" 页面,每个用户都可以发布自己的私人东西。就像一个博客页面,页面布局对每个人都相同,但每个用户在其个人资料页面上有自己的帖子。 我正在尝试实现类似www.myw...

0  如何列出未保存节点的上载文件(图像文件)?  ( How to list the uploaded files image file of unsaved nodes ) 
从问题如果用户上传图像但不保存节点?和它的答案,有一个名为 file_managed 的表,以及任何上传的文件(我的情况下的图像),它设置 0 在 status 列中,如果保存图像节点,则设置为 1 。在每个Cron运行期间,将删除包含 0 状态的所有文件。 我正在使用 bulk_file_nodes 模块上传图像。...

2  如何在节点中列出用户标志  ( How to list user flags in node ) 
我有一个节点,人们可以标记以指示他们在该节点的活动中的出勤/兴趣。但是,我想展示在该节点页面上标记了给定节点的用户列表。虽然我可以找到一种方法来显示用户的当前标志状态或在视图中为该节点的标志计数,但我找不到为节点表示本身执行此操作的方法。 ...

0  如何将视图附加到节点?  ( How do i attach views to nodes ) 
我已经创建了一个 page 名为' page1 '的内容类型'文章' - 我创建了 View1 在 Views 中,并且想知道如何将该视图添加到我的页面。 确实查看我的管理页面上"添加内容" 按钮的需要? ...

0  节点块模块与添加内容在Body Field中添加内容是什么?  ( What is the benefit of node blocks module versus adding content to blocks in bod ) 
节点块模块与在Body Field中添加内容的内容是什么? 似乎功能是相同的? 要么创建内容,并将其用作块。 或创建一个块并向它添加内容。 ...

0  将上传的内容自动从一个节点移动到另一个节点  ( Move uploaded content automatically from one node to another ) 
是在不同页面上发布 images/text 之外的帖子? 我有一个 insert 页面,其中用户可以添加 images/text ,但我希望无论他们发布到另一个页面吗('页面'页)排序最近第一的。我只想将"插入" 页面保持为"插入" ,而无需内容! ...

1  如何以编程方式创建新的修订并发布它?  ( How to programmatically create new revision and publish it ) 
(我正在使用修订版。)我调用 node_load(nid, vid) (使用最新版本ID),为某些字段提供新值,然后保存节点。设置 $node->is_current = TRUE 保存前将确保此版本的节点现已发布。但是,它不会创建一个新的修订版。所以我尝试设置 $node->revision = TRUE 也是一个...




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


Licensed under cc by-sa 3.0 with attribution required.