Pull to refresh

Comments 16

должны дать Вам готовый модуль

вообще шикарно было бы, для особо ленивых, прикрепить архив с уже собранным модулем.
А как же увлекательный процесс сборки? :) Однако если будет спрос, прикреплю.
Думаю модуль полезный. Я бы на одном ресурсе использовал бы
Выкладывай (или поищи готовое решение) на drupal.org. Там все отрецензируют, поправят, посоветуют.
Несколько замечаний по коду. Все функции в модулях принято называть с префиксом module_name_. Y вас page callback называется просто main_config, это не очень хорошая практика.

'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'),
    );

Скажите, а для друпала это в порядке вещей использовать такие конструкции?
$items = array(); 
$items['admin/config/content/yandex_pdd'] = array( // Ключ массива - системный путь к странице


if ($mailboxcreate->ok[0]) { // Если создался


global $user;
global $base_url;
Глобальные переменные это нормально для 7 Друпала.
$items = array();
$items['admin/config/content/yandex_pdd'] = array( // Ключ массива - системный путь к странице
Это правило роутинга.

if ($mailboxcreate->ok[0]) { // Если создался
Это авторское.

global $user;
Глобальных переменных для работы не требуется очень много, эта, например, для текущего пользователя.
На сколько сложно применить это для Wordpress?
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);
}
Еще прочитайте про Plural-Forms, чтобы не было такого:
$newmail.t(' new messages')

а было бы так:
t('%count new messages', array('%count', $newmail))

Тогда можно и правильно писать 1 письмо, 2 письма и т.д.
$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,

Никогда так не делайте, лучше всегда проверять право доступа, о чём вам уже писали выше.
UFO just landed and posted this here
Спасибо за интересный модуль. Действительно, желательно модуль выложить на drupal.org. Или хотя бы на github, чтобы можно было стянуть быстро.

Также, хотел отметить, то, что сразу бросается в глаза ( кроме всего вышесказанного ):

$select->addField('ypdd', 'id');
$select->addField('ypdd', 'login');
$select->addField('ypdd', 'activated');


можно написать проще:

$select->fields('ypdd', array('id', 'login', 'activated'));


И стандарты кода. Если нужно будет помочь со стандартами, напишите в личку.
Sign up to leave a comment.