Подскажите как сделать так, чтобы при создании публикации в поле Title (Название публикации) автоматически вставлялась текущая дата?
Автозаполнение поля Title при создании публикации
Главные вкладки
Лучший ответ
Друзья, всем спасибо за помощь. Разобрался. Если знать - там работы на 5 минут
1. создаем папку для модуля /drupal/sites/all/modules/myhook
2. в ней создаем два файла myhook.info и myhook.module
3. myhook.info:
<?php
name = myhook
description = Module for hooks and some functions
core = 7.x
?>
4. myhook.module:
<?php
// $Id$
/**
* @file
* Custom Functions
*/
//список hook тут https://api.drupal.org/api/drupal/includes%21module.inc/group/hooks/7.x
/*Этот hook (hook_form_alter) срабатывает при создании любой формы*/
function myhook_form_alter(&$form, &$form_state, $form_id) {
// если разремить строки ниже, то при создании формы будет выведена информация о ней, необходимаюя в разработке
//print_r('$form_id='.$form_id);
//print '<pre>';
//print_r($form);
//print '</pre>';
}
/*Этот hook (hook_form_FORM_ID_alter) срабатывает только при создании формы journal_incoming_node_form*/
function myhook_form_journal_incoming_node_form_alter(&$form, &$form_state, $form_id) {
// работа с базой данных тут http://xandeadx.ru/blog/drupal/88
$query = "SELECT COUNT(*)+1 amount FROM {node} n ".
"WHERE n.type = :type and n.created >= :cdate";
$content_type = 'journal_incoming'; // тип контента
$date_begin_year = date('Y-01-01'); // первый день текущего года
$count_node = db_query($query, array(':type' => $content_type,'cdate' => $date_begin_year))->fetch();
// var_dump($count_node); // тип возвращаемых данных
$form['title']['#default_value'] = $count_node->amount .'-'. date('y') ;
}
?>
5. заходим в список модулей и активируем наш
Комментарии
Два модуля могут решить проблему: auto_nodetitle и token.
Можно также решить данный конкретный вопрос при помощи легкой коррекции шаблона node.tpl.php
Туда надо вставить что-то в этом духе (точнее заменить схожий кусок кода):
<h2 class="title"><a href="<?php print $node_url?>"><?php print $title?> <?php print format_date($node->created, 'custom', 'd.m.Y') ?></a></h2>
<?php }; ?>
В этом случае, правда заголовок полного материала останется неизменным. Но это можно и по-другому исправить.
спасибо огромное
буду разбираться с этими модулями
А Вы не подскажете есть ли в Друпале понятие - Текущая дата?
Установил эти два модуля и в настройках ввел
<?php print format_date($node->created, 'custom', 'd.m.Y') ?>
Может вместо $node->created, нужно что-то другое вставить?
функция time() подойдёт?
time() - время в секундах начиная с 01.01.1970 ))))))))))))))
Не совсем понимаю в чем проблема, это разве не подходит?
print format_date(time(), 'custom', 'd.m.Y');
?>
Спасибо все работает!!!
Это я тупанул и тайм зафигачил без формат дэйт))))))
Добрый день! Вопрос схожий с этой темой, пишу тут.
Подскажите, пожалуйста, как правильно решить задачку.
Drupal 7
Делаю журнал входящей корреспонденции для деловодов. Необходимо для "Регистрационный номер" (поле Titel) рассчитать номер исходя от количества существующих записей в этом году и при создании новой записи в журнале поле уже должно быть заполнено. Так же есть поля, редактирования которых необходимо запретить (поле с датой создания записи)
Немного почитал о хуках, пока ничего не понял (где его создавать, как привязать к определенному типу) Возможно для этой задачи есть другие решения.... Пока в растерянности...
Есть модули типа auto_nodetitle, но для него всё равно нужно будет писать свой токен.
Либо нужно использовать hook alter формы создания ноды и там подставлять нужное значение
Изучение хуков начните с http://xandeadx.ru/blog/drupal/256
auto_entitylabel
Друзья, всем спасибо за помощь. Разобрался. Если знать - там работы на 5 минут
1. создаем папку для модуля /drupal/sites/all/modules/myhook
2. в ней создаем два файла myhook.info и myhook.module
3. myhook.info:
<?php
name = myhook
description = Module for hooks and some functions
core = 7.x
?>
4. myhook.module:
<?php
// $Id$
/**
* @file
* Custom Functions
*/
//список hook тут https://api.drupal.org/api/drupal/includes%21module.inc/group/hooks/7.x
/*Этот hook (hook_form_alter) срабатывает при создании любой формы*/
function myhook_form_alter(&$form, &$form_state, $form_id) {// если разремить строки ниже, то при создании формы будет выведена информация о ней, необходимаюя в разработке
//print_r('$form_id='.$form_id);
//print '<pre>';
//print_r($form);
//print '</pre>';
} /*Этот hook (hook_form_FORM_ID_alter) срабатывает только при создании формы journal_incoming_node_form*/
function myhook_form_journal_incoming_node_form_alter(&$form, &$form_state, $form_id) {
// работа с базой данных тут http://xandeadx.ru/blog/drupal/88
$query = "SELECT COUNT(*)+1 amount FROM {node} n ".
"WHERE n.type = :type and n.created >= :cdate";
$content_type = 'journal_incoming'; // тип контента
$date_begin_year = date('Y-01-01'); // первый день текущего года
$count_node = db_query($query, array(':type' => $content_type,'cdate' => $date_begin_year))->fetch();
// var_dump($count_node); // тип возвращаемых данных
$form['title']['#default_value'] = $count_node->amount .'-'. date('y') ;
}
?>5. заходим в список модулей и активируем наш