Добавляем с помощью cck новое поле, с именем скажем field_announce, отмечаем как обязательное, устанавливаем ограничение на длину. На вкладке Шаблон ставим галочку "Применить к выводу teaser" в разделе Анонс, там пишем например так:
<?=$node->field_announce?>
Всё, собственно. Вместо тизеров будут показываться "анонсы".
Граждане! Извините за резкий тон, но вы что - издеваетесь?
> Как сделать, чтобы при добавлении статьи
> пользователями было всегда два поля:
> анонс статьи (его длина должна быть ограничена)
> и полный текст статьи?
в 6ке официально есть такая возможность. И не надо городить тут ССК
В 6ке по умолчанию выводится поле для основной части статьи и есть дурацкая кнопочка при нажатии на которую появляется поле анонса. Т.е по умолчанию анонса нет. Мне нужно чтобы было два поля и никакой дурацкой кнопочки.
Странно, но манипуляции описанные Portnov никак не влияют на форму добавления статьи. То ли дело в версии, то ли я что-то не понимаю. Вообще сколько бы я не менял шаблон в contemplates - форма добавления никак не меняется.
Нашел решение проблемы сам. Проблема решается элементарно, не нужно никаких дополнительных модулей (только CCK) и никаких хитрых приемов. Нужно просто выключить стандартное поле контента для этого типа материала и добавить вместо него с помощью CCK два новых поля - анонс и полный текст. Все.
Если вас так устраивает - хорошо. Только теряется функциональность автоматического дублирования анонса - в краткой и полной версии. Дабы проиллюстрировать свои слова, быстро написал вчера модуль - но не выложил, ибо 500 error была на сервере. Сейчас прикладываю. А по hook_form_alter замечательно подходит первая ссылка в Google — Drupal API.
Я конечно согласен, что предложенный вами способ более правильный, но мне не хватает знаний чтобы такое сделать. Ваш модуль у меня почему-то не работает (версия 6.2). Просто ничего не меняется. Нужные типы ноды в коде прописывал.
Если поправите, выложите пожалуйста, мне на самом ваш вариант больше нравится, т.к. сохраняется автоматическое дублирование анонса, но сам я пока не могу такой модуль написать:)
Тогда посмотрите чуть повыше - там актуальная версия. Вроде работает (у меня на типе story...) Как считаете: надо ли доводить до состояния нормального модуля (сделать нормальные настройки, например)?
Модуль работает, спасибо. Вещь действительно полезная.
Если делать модуль так сказать для массового использования, то конечно настройки хорошо бы вынести в админку. Мне лично несложно залезть в код и поправить там нужную строчку, но не всем наверное это удобно.
Но самое замечательное, что после установки TinyMCE пропадает и стандартная кнопка разделения на анонс и основной текст, и разделение которое делает выложенный здесь модуль split-teaser. Остается только одно поле и все..... АААААА!!!!!!!! Я уже устал от глюков Друпала.........
P.S. Вряд ли это есть глюк Drupal... Скорее всего, просто TinyMCE с помощью отдельного javascript убирает поле teaser-js... В принципе, это тоже можно исправить...
Не совсем понимаю какие есть варианты. Залил в папку модулей соответствующий модуль и сам tinymce, пошел в админку включил, права раздал. Сам tinymce работает прекрасно, но он убивает всю эту функциональность по разделению на анонс и основной текст. И базовую и ту которую дает Ваш модуль при его включении.
Да... Делает он это в строках 91-95 файла tinymce.module с помощью tinymce_form_alter. Попробуйте просто убрать эту функцию (закомментировать). Что получится?
Комментарии
мне кажется вот это поле для скк подойдет: http://drupal.org/project/cck_teaser_field
Подошло бы, но к сожалению у меня 6 друпал, по другому никак нельзя?
Можно просто cck+contemplate.
Portnov, не могли бы Вы объяснить как с помощью contemplate решить эту задачу?
Добавляем с помощью cck новое поле, с именем скажем field_announce, отмечаем как обязательное, устанавливаем ограничение на длину. На вкладке Шаблон ставим галочку "Применить к выводу teaser" в разделе Анонс, там пишем например так:
Всё, собственно. Вместо тизеров будут показываться "анонсы".
Граждане! Извините за резкий тон, но вы что - издеваетесь?
> Как сделать, чтобы при добавлении статьи
> пользователями было всегда два поля:
> анонс статьи (его длина должна быть ограничена)
> и полный текст статьи?
в 6ке официально есть такая возможность. И не надо городить тут ССК
Хы. Радует. Я просто шестерку еще не видел, по пятерке сужу.
В 6ке по умолчанию выводится поле для основной части статьи и есть дурацкая кнопочка при нажатии на которую появляется поле анонса. Т.е по умолчанию анонса нет. Мне нужно чтобы было два поля и никакой дурацкой кнопочки.
Странно, но манипуляции описанные Portnov никак не влияют на форму добавления статьи. То ли дело в версии, то ли я что-то не понимаю. Вообще сколько бы я не менял шаблон в contemplates - форма добавления никак не меняется.
Так и не нашел решение проблемы - как в 6м Друпале сделать анонс обязательным?
Пишется функция, реализующая hook_form_alter. Покопайтесь - посмотрите. в каком виде приходит форма и измените её...
А где про это можно прочитать? Из того что Вы сказали почти ничего не понял...
Нашел решение проблемы сам. Проблема решается элементарно, не нужно никаких дополнительных модулей (только CCK) и никаких хитрых приемов. Нужно просто выключить стандартное поле контента для этого типа материала и добавить вместо него с помощью CCK два новых поля - анонс и полный текст. Все.
Если вас так устраивает - хорошо. Только теряется функциональность автоматического дублирования анонса - в краткой и полной версии. Дабы проиллюстрировать свои слова, быстро написал вчера модуль - но не выложил, ибо 500 error была на сервере. Сейчас прикладываю. А по hook_form_alter замечательно подходит первая ссылка в Google — Drupal API.
Я конечно согласен, что предложенный вами способ более правильный, но мне не хватает знаний чтобы такое сделать. Ваш модуль у меня почему-то не работает (версия 6.2). Просто ничего не меняется. Нужные типы ноды в коде прописывал.
Раз не надо - ну и ладно. Просто, раз сделал, то уж выложил.
P.S. Несколько поправил. Будет время и желание - можете проверить...
Если поправите, выложите пожалуйста, мне на самом ваш вариант больше нравится, т.к. сохраняется автоматическое дублирование анонса, но сам я пока не могу такой модуль написать:)
Тогда посмотрите чуть повыше - там актуальная версия. Вроде работает (у меня на типе story...) Как считаете: надо ли доводить до состояния нормального модуля (сделать нормальные настройки, например)?
Модуль работает, спасибо. Вещь действительно полезная.
Если делать модуль так сказать для массового использования, то конечно настройки хорошо бы вынести в админку. Мне лично несложно залезть в код и поправить там нужную строчку, но не всем наверное это удобно.
Но самое замечательное, что после установки TinyMCE пропадает и стандартная кнопка разделения на анонс и основной текст, и разделение которое делает выложенный здесь модуль split-teaser. Остается только одно поле и все..... АААААА!!!!!!!! Я уже устал от глюков Друпала.........
А как ставится TinyMCE?
P.S. Вряд ли это есть глюк Drupal... Скорее всего, просто TinyMCE с помощью отдельного javascript убирает поле teaser-js... В принципе, это тоже можно исправить...
Не совсем понимаю какие есть варианты. Залил в папку модулей соответствующий модуль и сам tinymce, пошел в админку включил, права раздал. Сам tinymce работает прекрасно, но он убивает всю эту функциональность по разделению на анонс и основной текст. И базовую и ту которую дает Ваш модуль при его включении.
Сейчас не один модуль для включения TinyMCE... А два или даже три. Вот и спрашиваю, какой модуль использован...
Я использовал этот:
http://drupal.org/project/tinymce
Друпал 6.2. Версия модуля 6.x-1.1-dev
Да... Делает он это в строках 91-95 файла tinymce.module с помощью tinymce_form_alter. Попробуйте просто убрать эту функцию (закомментировать). Что получится?