【问题标题】:How to concretely display any kind of content within a drupal module如何在 drupal 模块中具体显示任何类型的内容
【发布时间】:2013-10-10 07:26:02
【问题描述】:

这将是我在网站上的第一个问题,希望我能说清楚!

所以我正在努力将常规的 php/html/js 网站改编为 drupal 网站。有些特定的事情不能用可用的模块做,所以需要创建一些。我一直在网上徘徊,观看和阅读一些教程,但我不知道如何使用块模块显示简单的 html/js/php。

例如,我想在块模块中显示这个:

`<script type="text/javascript" src="jquery-min.js"></script> 
<div class="myDiv"></div> 
<script> 
$(".maparea").append('<p class='myText'>Hello there!</p>'); 
</script>`

另一方面,我有我的 block_view 功能:

`function my_module_block_view($delta = '') {
    $block = array();
    $block['subject'] = 'my Module title';
    $block['content'] = 'some content';
    return $block;
}`

如果我用我的原始代码替换那个“一些内容”,首先我认为这不是最好的方法,总体来说效果不太好。另外,我想用drupal API插入js(drupal_add_js),但是怎么做呢?

`block['content'] .= drupal_add_js(drupal_get_path('module', 'my_module').'/myScript.js');`

最后,我找到了一些关于主题系统和模板的信息。所以看来我必须实现my_module_template.tpl.php,并在my_module.module中实现hook_theme。

它很模糊,所以我真的需要一些帮助来理解基础知识。

提前致谢!

【问题讨论】:

  • 假设你知道 Drupal,要创建一个块,你应该使用 hook_block_info() function module_name_block_info() { $blocks['block_name'] = array( 'info' =&gt; t('The text you want to display'), 'region' =&gt; 'Region you want the block', ); return $blocks; } 如果在此之后你想改变那个块,你可以从 hook_block_info_alter() 来完成。您可以从 Drupal Block Api 获得更多详细信息
  • 关于drupal_add_js(),你不能就这样使用它,如果你阅读drupal网站的描述,你可以看到那个函数返回什么,我不认为是什么你要。您可以使用 drupal_add_js() 添加一个 js 文件,或者使用来自模块的 .info 中的依赖项。

标签: php drupal-7 drupal-modules drupal-theming


【解决方案1】:

您可以在 hook_preprocess_block__module()hook_preprocess_block__module__delta() 函数中调用 drupal_add_js()drupal_add_css()(将“挂钩”、“模块”和“增量”替换为特定值),您在模块中与 @987654325 一起定义@ 函数,或在主题的“template.php”文件中。

【讨论】:

    猜你喜欢
    • 2019-11-05
    • 1970-01-01
    • 2021-05-07
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-06-25
    • 1970-01-01
    • 2023-03-20
    相关资源
    最近更新 更多