让我们说Drupal中的内容类型在Drupal中有三个字段机器名称:
company_color_schema
,company_logo
和company_some_picture
我想检索company_color_schema
,它会使用JavaScript为我提供纯文本十六进制颜色代码,以便我可以将它用作div背景颜色。
有没有办法使用JavaScript访问这些值?我查看了可用的文档,但似乎都没有覆盖它。
答案 0 :(得分:0)
您可以这样做的一种方法是将JavaScript代码放在视图模板文件中,至少是其中的一部分。所以假设你有一个像这样的JavaScript行:
<?php $value_you_get_from_php = ... ; ?>
<script>
var bcgColor = <?php echo $value_you_get_from_php; ?>;
</script>
因此,您将从PHP获取颜色字段值并将其打印在内联JavaScript代码中,恰好位于您定义JavaScript变量值的位置。然后,您可以在任何需要的地方使用该JavaScript变量。
另一种方法是使用节点id作为参数进行Ajax调用,但如果可以接受则第一个选项更容易。
或者,最简单的解决方案(灵感来自Artreaktor的答案):只需直接从模板文件中拍摄颜色 - 添加style
标签属性并设置颜色。 Artreaktor的解决方案可能更多的是规则,但我的更容易实现。
答案 1 :(得分:0)
您应该使用drupalSettings。
您可以根据需要以hook_node_view或类似方式附加
实际上,您不需要javascript来设置div背景。更好的方法是使用hook_preprocess_HOOK:
mymodule_preprocess_node(&$vars) {
$vars['background'] = $vars['node'][WHATEVER_VALUE];
}
将此代码放入您的模块,清除缓存,然后您可以在$background
node.tpl.php
变量
答案 2 :(得分:0)
哦,是的。在Drupal 8中: