【问题标题】:Drupal Module - Is it rightDrupal 模块 - 对吗
【发布时间】:2013-06-07 04:01:43
【问题描述】:

我之前没有为 Drupal 开发过任何模块,我想我真的只是想验证一下这是否“正确”,我希望有人能提供帮助。它是为 Drupal 7 开发的,用于将 javascript 文件注入页面的页脚

sessioncam.module 文件:

<?php
/**
* @file
* The code below adds the sessioncam.js file in the footer section of your site
*/
?>

<?php
drupal_add_js(drupal_get_path('module', 'sessioncam') .'/sessioncam.js', array('type' => 'external', 'scope' => 'footer')) ;
?>

sessioncam.info 文件:

name = SessionCam
description = Module to inject the SessionCam recorder code
core = 7.x

感谢任何帮助

【问题讨论】:

  • 是的,看起来是正确的。你也测试过吗?
  • 嗨@Lenin 感谢您的快速回复。该标签似乎也可以正常工作。我想我只是没想到它看起来“如此简单”,如果这是正确的表达方式
  • 你学会了第一个剪辑。现在,您将超越并学习惯例并不断发展。 :)

标签: drupal drupal-7


【解决方案1】:

这不是完全正确的。对drupal_add_js() 的调用不应在全局范围内,而应在挂钩函数中。如果您希望在每个页面上添加它hook_init() 将是合适的:

function sessioncam_init() {
  drupal_add_js(drupal_get_path('module', 'sessioncam') .'/sessioncam.js', array('type' => 'external', 'scope' => 'footer')) ;
}

【讨论】:

  • 谢谢@Clive,非常感谢您的意见。与 add_js 调用相比,将 scripts[] 放在 info 文件中是否有任何偏好??
  • 实际上我错过了您添加到页脚的事实,我认为您不能在信息文件中指定它,所以使用钩子方法可能更好
  • 不过,优点是您可以使用 info 文件方法获得更好的开箱即用的 JS 聚合。您可以通过将every_page 选项添加到您传递给drupal_add_js() 的选项来模拟它。 Managing Javascript in Drupal 7 有更多信息,如果你有兴趣
  • 我是否认为代码应该更改为drupal_add_js(drupal_get_path('module', 'sessioncam') .'/sessioncam.js', array('type' =&gt; 'external', 'scope' =&gt; 'footer', 'every_page' =&gt; 'TRUE')) ; 才能出现在每个页面上?
  • 几乎...这将起作用,但为了完整起见,请从“TRUE”周围删除引号,因此您使用的是 PHP 布尔值
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2018-11-28
  • 1970-01-01
  • 2023-04-02
  • 2014-04-12
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多