Drupal

Drupal开发人员和管理员的问答


2
在hook_menu的访问回调中重定向用户会产生不良影响吗?
这个答案引发了关于如果用户无权访问他们要访问的页面的最佳方式将用户重定向到特定页面的讨论。 一种选择是将访问回调设置为true,然后在页面回调中重定向用户。尽管这似乎是正确的,但我认为它在页面回调中混合了访问功能和页面构建功能。 例如 function hook_menu() { $items['player/my_page'] = array( 'title' => t('My Page'), // note this is a required parameter 'access callback' => TRUE, 'page callback' => 'some_function', ); return $items; } function some_function() { global $user; if(!$user->uid) { // here checking if the user is logged in but could …

1
如何添加可以通过相对值过滤的日期字段?
如果创建视图,则可以添加一个过滤器,以对某些内置日期字段(例如过帐日期)上的相对值进行过滤。例如,下面的屏幕截图显示了我创建的过滤器,该过滤器将显示过去四天发布的文章。 不幸的是,核心中没有日期字段类型。要获取日期字段类型,您可以安装日期模块。这使您可以创建漂亮的小部件来输入日期。但是,我找不到用相对值来过滤由date模块创建的日期字段的方法(例如上面显示的Post date过滤器)。在“配置过滤器条件”屏幕中有Is equal to和Is not equal to运算符,但不超过运算符。 我相信这应该是可行的,从奈杰尔·沃特斯(Nigel Waters)对这个问题的最高评价中也可以看出这一点:希望显示带有未来日期的内容。但是,我必须采取确切的步骤来重现上面提到的答案中显示的结果。
8 views  entities 

3
Drupal 8 page.html.twig中的Devel dsm()函数
在page.html.twig中可以使用Devel模块的dsm()函数吗?如果不可用,是否有办法使它可用? 我可以在.theme文件中使用dsm(),但不能在page.html.twig中使用。 我知道.twig中的dump()函数。dump()与php的var_dump()类似,并且输出不如Devel模块的dsm()函数那么干净。 在page.html.twig中使用dsm()或dpr()会导致错误,并且网站无法加载。
8 8  debugging  theming 


3
如何将CSS和JavaScript添加到<head>?
我想使用Bartik的Drupal 8子主题在首页的以下部分中添加以下代码。 有人可以帮忙吗?在这个新的树枝版本主题中,最佳方法是什么?page.tpl在哪里? &lt;script type="text/javascript" src="http://ajax.googleapis.com/ajax/libs/jquery/1.3.2/jquery.min.js"&gt;&lt;/script&gt; &lt;script type="text/javascript" src="stepcarousel.js"&gt;&lt;/script&gt;
8 8  javascript 

1
使用drupal_add_js和['#attached']有什么区别
drupal_add_js()和之间有什么区别$form['#attached']['js'][]? 何时使用以上每个功能? (我的意思是我知道,如果在表单内部使用它,则使用它附加js来表示表单,但何时drupal_add_js使用以及何时$form['#attached']['js'][]使用?)
8 7  javascript 

5
将JS添加到Drupal 8主题(代替drupal_add_js)
在Drupal 7中,我可以drupal_add_js在主题的template.php文件中使用以下theme_preprocess_html(&amp;$vars)功能: drupal_add_js(drupal_get_path('theme', 'mytheme') . '/js/scripts.js', array( 'group' =&gt; JS_THEME, 'preprocess' =&gt; TRUE, 'weight' =&gt; '999', )); $vars['scripts'] = drupal_get_js(); 在Drupal 8中,我尝试attached在主题的.theme文件中使用进行如下转换: $vars['#attached']['js'] = array( array( 'data' =&gt; drupal_get_path('theme', 'mytheme') . '/js/scripts.js', 'options' =&gt; array( 'group' =&gt; JS_THEME, 'preprocess' =&gt; TRUE, 'every_page' =&gt; TRUE, ), ), ); ...但是那不起作用,并且看门狗/控制台或其他方面没有错误。 按照D8 API页面为drupal_add_js: …
8 theming  8  javascript 

1
为什么对模块的开发版本进行“更新”而不包含对代码的任何更改?
当我使用drush来检查对我的站点的更新时,该站点已安装了大约100个模块,我被告知该模块的多个版本的dev版本都有更新。 但是,当我更新新版本时,唯一更改的是包装信息和日期戳。 例如,这是Prepopulate模块dev版本的git diff: -; Information added by drupal.org packaging script on 2013-05-25 +; Information added by drupal.org packaging script on 2013-10-01 version = "7.x-2.x-dev" core = "7.x" project = "prepopulate" -datestamp = "1369450574" +datestamp = "1380623732" 就这样-代码没有实际更改。如果这只是一个模块,那么我不会考虑太多。但是,我有几个这样的模块-Role Expire模块,Views PHP模块,PHP Mailer模块,i18nviews,并且可能还有更多模块。 对于我来说,下载这些更新中的每一个并进行比较非常令人沮丧,只是看到没有任何变化。我觉得我真的是在浪费时间。维护人员正在这样做吗?这与Drupalcon有关系吗?

2
如何在<head>中添加<noscript>标记?
如果要在head标签中添加JavaScript,请使用drupal_add_js($js, 'inline')。这将添加一个&lt;script type="text/javascript"&gt;。 如何添加&lt;noscript&gt;标签?我也想添加以下内容&lt;head&gt;。 &lt;noscript&gt; &lt;meta http-equiv="refresh" content="5;url=&lt;?php echo $file ?&gt;" /&gt; &lt;/noscript&gt; 顺便说一句,我为此使用了一个简单的模块。 function custom_download_menu() { $items['download-code'] = array( 'title callback' =&gt; 'custom_download_page_title', 'page callback' =&gt; 'custom_download_view', 'access arguments' =&gt; array('access content'), 'access callback' =&gt; TRUE, ); return $items; } function custom_download_view() { $js = "var time_left = 5; …
8 7 


4
是否可以挂钩到variable_set()事件?
我想跟踪系统更改事件,使其可恢复。当检查variable_set()时,我看到没有为该事件提供钩子。有什么办法可以做到吗? 我可以更改以挂钩到设置表格,但是要跟踪很多设置表格,如果我可以直接挂钩到variable_set(),则代码将变得更加简单。 我还可以使用功能+ Strongarm模块跟踪变量的更改,但是最好是Drupal管理员可以浏览变量历史记录而无需触摸代码。
8 7  hooks 

2
如何根据用户角色限制节点访问?[关闭]
已关闭。这个问题需要更加集中。它当前不接受答案。 想改善这个问题吗?更新问题,使其仅通过编辑此帖子来关注一个问题。 6年前关闭。 如何仅允许基于用户角色显示特定节点? 基本上,我不想让某些特定角色的用户访问节点。
8 users 

2
查看节点时如何调用函数?
每当我查看节点页面时,我都想调用一个函数,但是我不确定该怎么做。 我当时想我应该使用hook_menu()路径并将其声明为node /%,并将回调函数附加到该路径。这是正确的方法,还是有正确/更好的方法?
8 7  nodes  routes 

2
有关Drupal.settings和#attached的信息
我试图第一次使用Drupal.settings将变量从PHP传递到JavaScript。关于该主题的文档很少,我遇到了一些问题。 是否可以使用#attached通过设置而不是通过设置drupal_add_js(array('myModule' =&gt; $settings), 'setting');?我问的原因是,有人告诉我这#attached是添加设置的“正确”方法。(我知道这也是添加文件的正确方法,但不确定是否可以与设置变量一起使用。) 我正在使用下面的代码,但是无法将其加载到DOM对象下,并且被卡住了。 (function ($) { Drupal.behaviors.myModule = { attach: function(context, settings) {} }; });(jQuery); 任何建议将不胜感激。请记住,这是我第一次开始使用Drupal.settings,因此欢迎并赞赏每个细节。

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.