Урок один. Создаем модуль на Drupal. Как с Drupal создать форму и вывести данные из формы на этой или другой страници. Хук hook
Прислано: _Lenchik
пн, 09/01/2012 - 02:18
Пример 1. Как с Drupal создать форму и вывести данные из формы на этой или другой страници.
------------------------
| Создаем форму |
------------------------
|
---------------------------------------------------------------------
| Выводим данные с помощью функции variable_get() |
----------------------------------------------------------------------
Для этого:
Создаем модуль.
Для этого:
- создаем папку и называем ее по названию модуля, например urokone и сохраняем его в my_site/sites/all/modules
- в этой папке создаем в notepad++ два файла в формате utf-8 without BOM. Что такое BOM и где скачать notepad++ смотрим в википедии.
Создаем два файла в этой папке и называем их
urokone.info
urokone.module
Темизация Блока модуля
Прислано: AK_design
пн, 28/02/2011 - 09:21
Хочу создать модуль который выводит простой блок, а содержание блока можно менять с помощью темы/темплейта( например block-example.tpl.php в папке с модулем, который потом можно перекрыть).
вот текст модуля block-example.module:
<?php
function block_example_menu() {
$items['examples/block_example'] = array(
'page callback' => 'block_example_page',
'access callback' => TRUE,
'title' => 'Block Example',
);
return $items;
}
/**
* Simple page function to explain what the block example is about.
*/
function block_example_page() {
$page = array(
'#type' => 'markup',
'#markup' => t('The Block Example provides one price block.'),
);
return $page;
}
function block_example_block_info() {
$blocks['example_configurable_text'] = array(
// info: The name of the block.
'info' => t('Example: configurable text string'),
// Block caching options (per role, per user, etc.)
'cache' => DRUPAL_CACHE_PER_ROLE, // default
);
return $blocks;
}
function block_example_block_view($delta = 0) {
$name = 'Andrey';
$block['content'] = theme('block_example_content', $name);
return $block;
}
function block_example_theme() {
return array(
'block_example_content' => array(
'arguments' => array('name' => NULL))
);
}
function theme_block_example_content($name){
return 'Hello ' . $name;
}
?>Модуль вообще не выводится! Подскажите где ошибка ?
Листинг выше пока без внешнего темплейта, но и он не работает.
- AK_design's blog
- Для комментирования войдите или зарегистрируйтесь
как задать видимость блока в модуле?
Прислано: WiseMan
вт, 30/03/2010 - 12:28
Решил написать небольшой модуль для облегчения задачи управления видимостью блоков на страницах словарей и их терминов.
Все это можно сделать сниппетом (приведу ниже, мож кому пригодится), но для менеджера сайта это слишком сложно.
Споткнулся на этапе, когда нужно вывести блок. Настройки, с указанием в каком словаре выводить - сделал:
<?php
/**
* Implementation of hook_form_alter().
*/
function custom_mod_form_alter(&$form, &$form_state, $form_id) {
if (($form_id == 'block_admin_configure' || $form_id == 'block_box_form' || $form_id == 'block_add_block_form')) {
$module = $form['module']['#value'];
$delta = $form['delta']['#value'];
$form['custom_mod_vis_settings'] = array(
'#type' => 'fieldset',
'#title' => t('Vocabulary visibility settings'),
'#collapsible' => TRUE,
'#collapsed' => FALSE,
'#weight' => 0,
);
// Vocab-based visibility settings
$default_vocab_vis_options = array();
$result = db_query("SELECT vid FROM {blocks_vocabulary} WHERE module = '%s' AND delta = '%s'", $module, $delta);
while ($vocab = db_fetch_object($result)) {
$default_vocab_vis_options[] = $vocab->vid;
}
$result = db_query('SELECT vid, name FROM {vocabulary} ORDER BY name');
$vocab_vis_options = array();
while ($vocab = db_fetch_object($result)) {
$vocab_vis_options[$vocab->vid] = $vocab->name;
}
$form['custom_mod_vis_settings']['vocab_visability_blocks'] = array(
'#type' => 'radios', //checkboxes?>Разработка модуля на примере создания блока
Прислано: i_byte
вс, 28/02/2010 - 17:53
Судя по форуму, количество людей работающих с Drupal не так уж и мало, а количество и объем русскоязычных статей о разработке модулей под Drupal оставляют желать лучшего. Поэтому решил один раз сесть, разобраться, написать русскоязычную документацию по написанию шаблона для модуля типа блок, дабы каждый раз не вгрызаться в дебри англоязычного текста.
Приведенный ниже материал является вольной интерпретацией документации с drupal.org. Попытался не обойти стороной и локализацию модуля. Подразумевается, что используется переведенный на русский "движок" Drupal. В конце теории будет приведен код простого модуля для отображения самых активных пользователей сайта на основе подсчета количества оставленных комментариев.
Любые конструктивные замечания и советы приветствуются.
Итак
Разработка модулей для Drupal 6.x на примере блока
В каталоге modules создаем каталог латиницей по имени модуля (без пробелов)
Создаем файл латиницей имямодуля.info
В файле необходимо заполнить как минимум следующие данные
; $Id$
name = Module name
description = A description of what your module does.
core = 6.xгде
; $Id$ - тег для подстановки системой контроля версий (CVS) номера версии, даты создания и автора данного файла; используется при публикации модуля на drupal.org и контроля версий
name - отображаемое имя модуля
Изменить вывод блока
Прислано: player
вт, 11/08/2009 - 10:08
Можно ли изменить вывод блока? Имеется в виду не темизация, а добавление или изменение вывода данных. Ну что-то типа hook_nodeapi только для блока. Или нужно свой блок писать?
(решено) проблема с hook_block
Прислано: karakurt
пт, 28/11/2008 - 11:06
решил написать модуль для D6 и сразу же столкнулся с проблемой...
модуль mymod.module:
<?php
// $Id$
function mymod_block($op = 'list', $delta = 0, $edit = array()) {
if ($op == 'list') {
$blocks[0]['info'] = t('mymod');
return $blocks;
} else if ($op == 'view') {
$output = '';
$output .= '<div id=mymod>'. t('mymod_text') .'</div>';
if ($output) {
$block['subject'] = t('mymod_subject');
$block['content'] = $output;
return $block;
}
}
}
?>в результате напрочь пропадают все менюшки, и не пойму что за касяк :(
id нодов на странице в hook_block()
Прислано: jeehadina
пт, 11/07/2008 - 04:28
Товарищи,
можно ли получить доступ к списку всех nid'ов со страницы из хука hook_block()?
Имеется в виду страница с пейджером, на которой находятся анонсы материалов.
Так вот мне нужны айдишники этим самых анонсов.
Пожалуйста, направте на путь правильный.
Заранее благодарен!