【发布时间】: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' => t('The text you want to display'), 'region' => '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