jquery - 有没有一种简单的方法来实现 jQuery 插件作为 Drupal 内容节点的一部分?

标签 jquery drupal jquery-plugins ckeditor wysiwyg

我有一个自己编写的 jQuery 插件,我希望它只出现在我的 Drupal 6 网站的一个节点上。我有 FTP 和 Linux shell,可用于将文件上传到站点,但问题实际上是将它们附加到节点。将 JavaScript 放入节点的 Body 中可能会变得非常难看,尤其是当 Body 在 WYSIWYG 编辑器中呈现时(乱七八糟的缩进、WYSIWYG 尝试用

标签包装所有 <script> 标签等)

是否有任何类型的 Drupal 插件或任何类型的解决方法可以使这种集成更容易?

编辑:

我已经尝试过Code Per Node ,这对于将 JavaScript 与正文分离非常有用,但我确实需要链接到单独的 JavaScript 文件的选项(此插件需要多个支持文件)。

最佳答案

我在项目中执行此操作的方法是将 CCK 文本字段添加到接受多个值的名为“其他资源”的内容类型。然后,在节点中,我在此字段中添加了多个值——我想要在该节点上加载的 CSS 和 JS 文件的路径。然后,在我的主题中,我在 template.php 中添加了自己的函数,名为 themename_node_process_fields。该函数是在 node-content_type_name.tpl.php 中执行的第一件事。除此之外,它还做了以下事情:

  // Loop through the additional resources and add them to the <head>.
  if (isset($node->field_additional_resources) && count($node->field_additional_resources) > 0) {
    foreach ($node->field_additional_resources as $resource) {
      if (strpos($resource['safe'], '.css') !== FALSE)
        drupal_add_css($resource['safe'], 'theme', 'all', FALSE);
      else if (strpos($resource['safe'], '.js') !== FALSE)
        drupal_add_js($resource['safe'], 'theme', 'header', FALSE, TRUE, FALSE);
    }
  }

请注意,我还没有考虑过这是否有任何安全考虑。我是唯一有权访问该字段的人,但如果恶意用户能够输入任意文本,我不确定会做什么。

关于jquery - 有没有一种简单的方法来实现 jQuery 插件作为 Drupal 内容节点的一部分?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4629846/

相关文章:

javascript - 表单数据未通过 ajax 调用提交

javascript - 如何在 Drupal 7 中订购 javascript 文件以加载 Foundation 5

jquery - 多个 jQuery Cycle 寻呼机导航

jquery - Facebook/Youtube 喜欢多个项目 选择

JavaScript 按星期几对数组数组进行排序

javascript - 防止默认不起作用

javascript - 在什么条件下链接的 jQuery 对象提供性能提升?

javascript - Php 和 javascript 在本地主机上工作,但在托管网站上不工作

firebase - 将 drupal 用户迁移到 firebase auth

css - 如何更改 Select NoUISlider JQuery 插件的句柄?