Чаще всего для сайтов (не блогов) форма добавления материала используется не автором(админом), а простыми пользователями. И эта форма может быть совсем не похожа на стандартную форму новой статьи или новости. Если форма будет иметь какие-то свои поля, то типовые элементы уже будут не нужны и будут только отвлекать пользователей. В этой статье хочу свести воедино то, что использовал в своих проектах, чтобы не рыскать каждый раз в поисках того, что уже когда-то где-то делал.
Во-первых, часто в материале нет надобности заставлять пользователя вводить название. Например, при подаче какого-нибудь объявления. Здесь на помощь приходит модуль auto_nodetitle. После его установки в форме настройки типа материала можно задать опцию "Automatically generate the title and hide the title field" (Автоматически генерировать название и прятать это поле). Здесь же можно задать шаблон по которому будет формироваться автоматическое название.
Второй элемент, который мешается в подобного рода материалах - это кнопка "Отделить анонс от основного материала". Я ее прячу обычно в своем модуле с помощью хука hook_form_alter.
function my_module_form_alter(&$form, &$form_state, $form_id) { if (substr($form_id, -10) == '_node_form') { // Прячем кнопку тизера $user_is_admin = $user->uid == 1; if (!$user_is_admin) { $form['body_field']['#after_build'] = NULL; $form['body_field']['teaser_js'] = NULL; $form['body_field']['teaser_include'] = NULL; } } }
Третий элемент из этой серии - это информационный блок под полем текста материала. Т.е. там где ссылка "Подробнее о форматировании" и то, что над ней. Текст, который находится над этой ссылкой, заключен в ul с классом tips, поэтому его легко можно скрыть в css:
ul.tips{ display: none; }
А вот с самой ссылкой немного сложнее. Но и ее можно убрать в файле template.php из вашей темы:
function phptemplate_filter_tips_more_info() { return ''; }
Получилось, что все по разным местам разбросано. Может как-то и можно все упростить, но я пока хожу вот такой, протоптанной дорожкой.
Я случайно зашел на этот сайт, но задержался тут надолго. Задержался, потому что все интересно.
Отправить комментарий