Comments 16
должны дать Вам готовый модуль
вообще шикарно было бы, для особо ленивых, прикрепить архив с уже собранным модулем.
+1
Выкладывай (или поищи готовое решение) на drupal.org. Там все отрецензируют, поправят, посоветуют.
+2
Несколько замечаний по коду. Все функции в модулях принято называть с префиксом module_name_. Y вас page callback называется просто main_config, это не очень хорошая практика.
Нет необходимости использовать функцию t() для поля title в hook_menu(), Drupal сделает это за вас.
И вообще логичней было отрендерить форму без собственного page callback:
'access callback' => TRUE
Правильней: 'access arguments' => array('access content'),
Нет необходимости использовать функцию t() для поля title в hook_menu(), Drupal сделает это за вас.
И вообще логичней было отрендерить форму без собственного page callback:
$items['admin/config/content/yandex_pdd'] = array(
'title' => 'Yandex PDD',
'page callback' => 'drupal_get_form',
'page arguments' => array('pdd_config_form'),
'type' => MENU_NORMAL_ITEM,
'access arguments' => array('access content'),
);
+2
Скажите, а для друпала это в порядке вещей использовать такие конструкции?
$items = array();
$items['admin/config/content/yandex_pdd'] = array( // Ключ массива - системный путь к странице
if ($mailboxcreate->ok[0]) { // Если создался
global $user;
global $base_url;
+1
Глобальные переменные это нормально для 7 Друпала.
0
Это правило роутинга.$items = array(); $items['admin/config/content/yandex_pdd'] = array( // Ключ массива - системный путь к странице
Это авторское.if ($mailboxcreate->ok[0]) { // Если создался
Глобальных переменных для работы не требуется очень много, эта, например, для текущего пользователя.global $user;
0
На сколько сложно применить это для Wordpress?
-1
pdd_config_form_submit
Мдя. Чтобы не заниматься такой фигнёй в друпале есть system_settings_form.
Для того чтобы сделать форму с настройками достаточно сделать так:
function pdd_config_form($form, &$form_state){
$form=array();
$form['yandex_pdd_domain'] = array(
'#type' => 'textfield', // Тип поля
'#title' => t('Domain zone'), // Название поля, понятное пользователю
'#description' => t('A domain zone in which email should be created.'), // Описание поля
'#default_value' => variable_get('yandex_pdd_domain'), // Значение по умолчанию
'#required' => 1, // Флаг обязательности
);
return system_settings_form($form);
}
+1
Еще прочитайте про Plural-Forms, чтобы не было такого:
а было бы так:
Тогда можно и правильно писать 1 письмо, 2 письма и т.д.
$newmail.t(' new messages')
а было бы так:
t('%count new messages', array('%count', $newmail))
Тогда можно и правильно писать 1 письмо, 2 письма и т.д.
0
$items['admin/config/content/yandex_pdd'] = array( // Ключ массива - системный путь к странице 'title' => t('Yandex PDD'), // <title> страницы 'page callback' => 'main_config', // Функция, которая отвечает за генерацию страницы 'type' => MENU_NORMAL_ITEM, // Способ подвязки страницы в систему меню CMS 'access callback' => TRUE, // Определяет возможность доступа к странице );
Слишком заморочено, достаточно делать так:
$items['admin/config/content/yandex_pdd'] = array( // Ключ массива - системный путь к странице
'title' => t('Yandex PDD'), // <title> страницы
'page callback' => 'drupal_get_form',
'page arguments' => array('pdd_config_form'),
'access callback' => TRUE, // Определяет возможность доступа к странице
);
И тогда функцию main_config можно вообще выбросить.
'access callback' => TRUE,
Никогда так не делайте, лучше всегда проверять право доступа, о чём вам уже писали выше.
+1
Спасибо за интересный модуль. Действительно, желательно модуль выложить на drupal.org. Или хотя бы на github, чтобы можно было стянуть быстро.
Также, хотел отметить, то, что сразу бросается в глаза ( кроме всего вышесказанного ):
можно написать проще:
И стандарты кода. Если нужно будет помочь со стандартами, напишите в личку.
Также, хотел отметить, то, что сразу бросается в глаза ( кроме всего вышесказанного ):
$select->addField('ypdd', 'id');
$select->addField('ypdd', 'login');
$select->addField('ypdd', 'activated');
можно написать проще:
$select->fields('ypdd', array('id', 'login', 'activated'));
И стандарты кода. Если нужно будет помочь со стандартами, напишите в личку.
0
Sign up to leave a comment.
Былина о том, как я Drupal и Яндекс.ПДД связывал