Как конкретно отображать любой контент в модуле drupal

это будет мой первый вопрос на сайте, надеюсь понятно!

Поэтому я работаю над адаптацией обычного веб-сайта 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 и реализовать hook_theme в my_module.module.

Это довольно размыто, поэтому мне действительно нужна помощь, чтобы понять основы.

Заранее спасибо!


person Nikolai    schedule 10.10.2013    source источник
comment
Предполагая, что вы знаете 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.   -  person Mihaela    schedule 10.10.2013
comment
Что касается drupal_add_js(), вы не можете просто так использовать его, если вы прочитаете описание на сайте drupal, вы увидите, что возвращает эта функция, и я не думаю, что это то, что вам нужно. Вы можете добавить файл js либо с помощью drupal_add_js(), либо с зависимостями в .info из модуля.   -  person Mihaela    schedule 10.10.2013


Ответы (1)


Вы можете вызывать drupal_add_js() и drupal_add_css() в функции hook_preprocess_block__module() или hook_preprocess_block__module__delta() (заменяя "hook", "module" и "delta" конкретными значениями), которые вы определяете в своем модуле вместе с функцией hook_block_view() или в файле "template.php" вашей темы. .

person mesr    schedule 30.10.2013