sakrab
@sakrab
Не будь побежден злом, но побеждай зло добром...

Вопрос про свой модуль. Куда копать?

Ребята, ребята, ребятушки... Подскажите пожалуйста... Пробую сделать свой модуль...

<?php
/**
*
* Test my first module
*
*/
function test_menu() {
	$items['admin/config/system/test'] = array(
		'title' => 'Test Modul',
		'description' => 'Hello, this my first module',
		'page callback' => 'drupal_get_form',
		'page arguments' => array('test_form'),
		'access callback' => TRUE,
		'type' => MENU_NORMAL_ITEM,
	);
	return $items;
}

function test_form(){
	$form['quantity_comments'] = array(
		'#title' => t('Убрать количество комментариев в Тизере...'),
		'#type' => 'checkbox',
	);
	$form['quantity_new_comments'] = array(
		'#title' => t('Убрать количество новых комментариев в Тизере...'),
		'#type' => 'checkbox',
	);
	$form['add_new_comments'] = array(
		'#title' => t('Убрать "Добавить комментарий"...'),
		'#type' => 'checkbox',
	);
	$form['submit'] = array(
		'#type' => 'submit',
		'#value' => t('Save'),
	);
	return $form;
}
function test_form_submit($form,&$form_state){
	if ($_POST['quantity_comments'] == TRUE) {
		//Что тут должно быть...!!!
	}
}


Если не использовать модуль то в node.tpl.php я пишу:
if ($teaser) {
    unset($content['links']['comment']['#links']['comment-comments']);
}

Все ок.

А вот если в модуле, то куда обращаться (достучатся) до этого поля?
  • Вопрос задан
  • 123 просмотра
Решения вопроса 1
tlito
@tlito
drupal, c++, seo
тс, вам надо использовать одну из функций Drupal API, чтобы в своем модуле определить хук системной функции. для влияния на тизер материалов, вам нужно использовать следующую функцию:
function test_node_view_alter(&$build)
https://api.drupal.org/api/drupal/modules!node!nod...
Ответ написан
Пригласить эксперта
Ответы на вопрос 1
@serega_kaktus
Программист-самоучка, фрилансер
смотрите hook_preprocess_node(&$vars). $vars содержит набор переменных, которые будут доступны в node.tpl.php. Должно быть что-то типа
function test_preprocess_node(&$vars) {
  if ($vars['teaser']) {
    unset($vars['content']['links']['comment']['#links']['comment-comments']);
  }
}


PS Аргументом функции t() должен быть текст на английском языке.
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы