[Решено]Как переопределить функцию молуля Comment?

Главные вкладки

Аватар пользователя Capt._Jack Capt._Jack 14 июня 2015 в 21:22

Имеется функция в модуле Comment вида:

function _comment_per_page() {
return drupal_map_assoc(array(10, 30, 50, 70, 90, 150, 200, 250, 300));
}

Она отвечает за настройку количества комментариев на странице в настройках типа материала в админке. Мне нужно задать свой вариант (к примеру, 15 или 20 комментариев на страницу). Попробовал добавить свой вариант в файл модуля - работает. Как бы теперь это дело переопределить без правок в самом файле модуля Comment?

Лучший ответ

Аватар пользователя Orion76 Orion76 15 июня 2015 в 21:56
1
<?php
/**
 * Implements hook_form_FORM_ID_alter().
 */
function MY_MODULE_form_node_type_form_alter(&$form$form_state) {
// Назначаем элементу process-функцию
$form['comment']['comment_default_per_page']['#process'][] = 'MY_MODULE_comment_default_per_page_process';
}

// Рализация process-функции элемента comment_default_per_page
function MY_MODULE_comment_default_per_page_process($element$form_state$form){
$element['#options']=array(15=>'15',20=>'20');
// Элемент вернуть ОБЯЗАТЕЛЬНО.
return $element;
}
?>

Комментарии

Аватар пользователя Capt._Jack Capt._Jack 15 июня 2015 в 23:55

sas@drupal.org, ближайший hook_ это

/**
* Implements hook_forms().
*/
function comment_forms() {
$forms = array();
foreach (node_type_get_types() as $type) {
$forms["comment_node_{$type->type}_form"]['callback'] = 'comment_form';
}
return $forms;
}

hook_forms, что и куда дальше не знаю Smile

Сейчас еще поиском нашел схожее, ознакамливаюсь. Спасибо за наводку.

Аватар пользователя Orion76 Orion76 15 июня 2015 в 21:56
1
<?php
/**
 * Implements hook_form_FORM_ID_alter().
 */
function MY_MODULE_form_node_type_form_alter(&$form$form_state) {
// Назначаем элементу process-функцию
$form['comment']['comment_default_per_page']['#process'][] = 'MY_MODULE_comment_default_per_page_process';
}

// Рализация process-функции элемента comment_default_per_page
function MY_MODULE_comment_default_per_page_process($element$form_state$form){
$element['#options']=array(15=>'15',20=>'20');
// Элемент вернуть ОБЯЗАТЕЛЬНО.
return $element;
}
?>