D7自定义模块:将标签转换为上下文链接 -- 7 领域 和 routes 领域 和 navigation 领域 drupal 相关 的问题

D7 Custom Module: Turning tabs into contextual links


1
vote

问题

中文

创建了一个模块(d7),将每个节点编辑到上下文链路中。工作很好......但是在第一个初始加载到页面上我得到警告。我刷新一次后消失。然后它回到另一个页面并再次回来了。

  Warning: Invalid argument supplied for foreach()  in mytheme_contextual_contextual_links_view_alter()  line 19....   

让我疯狂。代码下面。它具有我的 foreach($tabs as $tab)...

的问题
    function mytheme_contextual_block_view_system_main_alter(&$data, $block) {       if (user_access('access contextual links')) {         $tabs = menu_primary_local_tasks();         $data['content']['#contextual_links']['block'] = array(           'admin/structure/block/manage',           array('system', 'main'),         );       }   }    function mytheme_contextual_contextual_links_view_alter(&$element, &$items) {       if (arg(2) != 'edit' && arg(3) != 'edit' && arg(0) != 'admin' && arg(1) != 'add') {         if (isset($element['#element']['#block']) && $element['#element']['#block']->delta == "main") {           $tabs = menu_primary_local_tasks();           foreach( $tabs as $tab ){               $element['#links'][$tab['#link']['path']] = array(                 'title' => $tab['#link']['title'],                 'href' => url($tab['#link']['href'], array('absolute' => TRUE)),               );           }         }       }   }    function mytheme_contextual_preprocess_page(&$variables) {       if (arg(2) != 'edit' && arg(3) != 'edit' && arg(0) != 'admin' && arg(1) != 'add') {         $variables['tabs']['#primary'] = array();       }    }   
英文原文

Created a module (D7) that turns every nodes edit tabs into contextual links instead. Works great... But on the first initial load to the page I get a warning. Disappears after I refresh once. Then it comes back around surfing to another page and back again.

Warning: Invalid argument supplied for foreach()  in mytheme_contextual_contextual_links_view_alter()  line 19.... 

Driving me bonkers. Code below. It's having an issue with my foreach($tabs as $tab)...

  function mytheme_contextual_block_view_system_main_alter(&$data, $block) {       if (user_access('access contextual links')) {         $tabs = menu_primary_local_tasks();         $data['content']['#contextual_links']['block'] = array(           'admin/structure/block/manage',           array('system', 'main'),         );       }   }    function mytheme_contextual_contextual_links_view_alter(&$element, &$items) {       if (arg(2) != 'edit' && arg(3) != 'edit' && arg(0) != 'admin' && arg(1) != 'add') {         if (isset($element['#element']['#block']) && $element['#element']['#block']->delta == "main") {           $tabs = menu_primary_local_tasks();           foreach( $tabs as $tab ){               $element['#links'][$tab['#link']['path']] = array(                 'title' => $tab['#link']['title'],                 'href' => url($tab['#link']['href'], array('absolute' => TRUE)),               );           }         }       }   }    function mytheme_contextual_preprocess_page(&$variables) {       if (arg(2) != 'edit' && arg(3) != 'edit' && arg(0) != 'admin' && arg(1) != 'add') {         $variables['tabs']['#primary'] = array();       }    } 
        
 
 

回答列表

1
 
vote
vote
最佳答案
 

在if语句中放置for循环

  $tabs = menu_primary_local_tasks(); if($tabs) {       foreach( $tabs as $tab ){           $element['#links'][$tab['#link']['path']] = array(             'title' => $tab['#link']['title'],             'href' => url($tab['#link']['href'], array('absolute' => TRUE)),           );       } }   
 

Place the for loop inside an if statement

$tabs = menu_primary_local_tasks(); if($tabs) {       foreach( $tabs as $tab ){           $element['#links'][$tab['#link']['path']] = array(             'title' => $tab['#link']['title'],             'href' => url($tab['#link']['href'], array('absolute' => TRUE)),           );       } } 
 
 
     
     

相关问题

3  如何使用自定义参数添加远程JavaScript脚本?  ( How do you add remote javascript script with custom parameters ) 
在Drupal 7中添加JS到主题有很多教程,但omega子主题的示例似乎省略了关于远程脚本,范围和重量的部分: 在主题 .info 文件: scripts[] = js/map.js 所以如何指定远程URL,标题或页脚,以及分配的权重? scripts[] = https://maps.googlea...

1  如何在第一次评论后隐藏Fivestar评级字段?  ( How to hide fivestar rating field after first comment ) 
如何将用户限制在使用fiveStar时的投票?对我不起作用,但提交人还没有提供解决方案,所以我觉得这是值得一个新的问题。 我的目标与上面提到的文章中的目标完全相同:我想在节点上的用户评论时隐藏评论表单中的Fivestar额定值字段(称为 field_stars )他/她已经评论过哪些。 是另一个解决方案(例如,使用...

4  如何隐藏评级字段在添加评论到自己的节点时?  ( How to hide rating field when adding comment to own node ) 
在我的网站上,用户可以在添加注释时使用FiveStar模块评分节点。换句话说,评级字段(称为'stars')是评论的一部分。现在,我想在他们对自己的节点评论时隐藏用户的评级字段(或者在它们之前已经评论 - 请参阅:如何在第一次评论后隐藏fivestar额定值字段?)。 如何做到这一点? 编辑1: i应用这个补丁(...

3  商业产品选择产品基础  ( Commerce product options on product basis ) 
我正在使用Drupal Commerce,我想创建产品属性。因此,客户可以在购买项目之前调整一些属性。 我知道,有一些商业模块,可以启用产品的属性/选项。但我找不到这样的模块,这将为每个产品分别设置属性选项。 我已经找到了 pricing属性模块,但我只能在全球范围内设置选项,而不是每种产品。我只能单独设置价格并启用...

3  如何将Java应用程序与Drupal集成?  ( How can i integrate java application with drupal ) 
我是一个新的drupal。根据我的知识,Drupal是基于PHP。如何从Drupal获得内容并在我的Java Web应用程序中使用? 是否有任何方法可以从Drupal模式获取内容,我需要Drupal表结构的完整信息,内容如何保存在表中? ...

2  从Drupal 5到7迁移CCK字段内容  ( Migrate content of cck fields from drupal 5 to 7 ) 
我需要将特定内容类型的内容与束文本菲尔德CCK转移到新D7网站,是我发现很多方法可以通过互联网做这样的事情,我想知道最简单和最简单的事情最快的方法。 我从drupal 5到7迁移。 ...

2  Hook_Form_Alter如果启用缓存,则不运行  ( Hook form alter not running if cache enabled ) 
我已经启用了管理员的缓存 - >开发 - >性能。我使用 hook_form_alter 更改了用户配置文件。但是 hook_form_alter中的代码在几天后自动播放。我想,它可能是缓存问题。 我在hook_form_alter中所做的一切都没有运行。我更改了提交按钮值。我添加了一个自定义保存并继续...

3  翻译默认值有两种语言的网站  ( Translating a site where default is in two languages ) 
drupal是用英文编写的。我们创建了一些自定义模块,其中模块中的字符串是用法语编写的。这些都通过t(),所以可以翻译。 当默认的网站语言英语是两种语言时,我有点困惑如何在法语和英语中显示我的网站。请你能指向正确的方向吗? ...

0  Entity_creation期间这个奇怪的错误是什么?  ( Whats this strange error during entity creation ) 
我正在尝试使用实体API从FEED创建(无捆绑包)实体,但我继续跑步陷入奇怪的问题。实体的代码是这样: function my_entity_provision() { $a = entity_create('entityType', array( 'pid' => NULL, 'aid' =...

9  防止WYSIWYG + CKEDITOR剥离HTML类  ( Prevent wysiwygckeditor from stripping html classes ) 
我正在使用带ckeditor的wysiwyg编辑器。我发现在从"源" 视图中向我的元素添加自定义类时,CKEditor在切换出源视图时会在这些类中删除。 当谷歌作一个解决方案时,我找到了 ckeditor模块页面,它描述了使用CKEDITOTITOTITOTITOTITOTITOTITONS。 (基本上,我们需要在其...

1  如何在我的主题中制作一个可折叠的现场集?  ( How to make a collapsible fieldset in my theme ) 
我希望在我的Drupal 7网站中具有可折叠的Firstalset在添加内容中。我在 html.tpl.php 中添加了这个: <?php print $styles; drupal_add_js('misc/form.js'); drupal_add_js('misc/collapse.js'); ...

5  查看页面上的页面上使用哪个上下文  ( See which context is used on a page when looking at the page ) 
在您观看页面时,是否有一种快速的方法来查看正在应用的所有上下文?理想情况下,我希望能够看到每个块负责哪个上下文。 ...

0  为什么Devel块显示性能,执行PHP和Switch用户块?  ( Why is the devel block displaying the performance execute php and switch user b ) 
我的devel block正在显示性能,交换机用户,也在侧边栏中执行PHP块,也使其非常难看和臃肿。 我看不出我本可以做些什么来引起它,并想知道它是否是由于与一些第三方模块的一些互动。 可能导致的是什么? 编辑:i hve将块的代码添加到低电平。在那里似乎有很多 admin-pane-xxxx 类和ID,我怀疑它与管...

0  如何阻止匿名用户的内部Drupal路径?  ( How to block internal drupal paths for anonymous users ) 
是否可以阻止匿名用户的内部Drupal路径,并只留下由PathAuto生成的路径?例如: 块路径:/分类学/术语/ 5 留言:/产品/书籍 在Google网站管理员工具中为我的网站,所有分类页面都有一个名为"页面的问题,具有重复标题标记" ,谷歌正在向两个术语显示两个路径,这是一个问题。如何阻止匿名用户的内部D...

4  如何检索产品ID?  ( How can i retrieve the product id ) 
我正在尝试检索产品ID。我可以通过查找产品页面找到产品SKU,并使用<代码> commerce_product_load_by_sku() 加载它。 如何找到实际的身份证?我想在 commerce_cart_product_add_by_id() 中使用它。 ...

1  如何设置规则来重定向到购物车?  ( How to setup a rule to redirect to shopping cart ) 
我正在尝试创建一个规则,在用户创建一个帐户之后,它们被发送到结账页面,最终将通过paypal支付(我使用的商务模块)。 我到目前为止的步骤 1.创建一个事件"保存新用户帐户后" 2.留空空白。 3.选择订单完整结帐的操作 在第三步,它要求数据选择器:"选择类型商务单的数据。" 我不知道从这里去哪里。 ...

2  如何为jQuery DatePicker设置日期显示格式?  ( How to set date display format for jquery datepicker ) 
我在drupal 7中使用标准的jquery datepicker,我想改变它的保存和显示日期。我希望它能够清楚地显示2013年11月10日至11月10日。是否可以完成此操作? ...

1  查看3模板或UI问题  ( Views 3 template or ui question ) 
我有一个包含多个值的文本字段。该字段并不总是包含任何值。显示时,该字段需要有一个标签。 iow,行应该看起来像下面的一个行 Coauthor:人X,人物Y 或 Coauthor:人x 这是我的问题:当我使用视图UI添加标签时,我得到 Coauthor:Person X,Coauthor:人Y 当我使用模...

4  视图:未查询具有关系的自定义表  ( Views custom table with relationship is not queried ) 
我使用自定义表来存储我的节点上的数据,并挂钩 _views_data 以显示或排序从此表。 一切都很好: /** * Implements hook_views_data() */ function MYMODULE_views_data() { $data['MYTABLE']['table']['joi...

3  设置私有文件目录(nginx)  ( Setting up the private file directory nginx ) 
问题 我正在尝试在LEMP堆栈上为Drupal设置私人文件目录(Ubuntu 12.04,Nginx,MySQL,PHP),我不是100%确定权限或设置,所以我以为我'D问,你应该怎么做? 到目前为止 需要是网络服务器可写的文件夹,但无法从Web访问。 示例: 位置:drupal_root / private...




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


Licensed under cc by-sa 3.0 with attribution required.