Есть разные способы организовать публикацию новостей на сайте под Drupal. Рассмотрим парочку.

1 вариант

Самый простой способ - использовать под новости встроенный в ядро Drupal модуль Blog
Тип материала для каждой новости - "Заметка Блога".
Если нужно отображать новости на главной, то просто в создаваемом материале ставим флажок "Помещать на главную" в разделе "Настройка публикации".
В любом случае, все заметки будут доступны по адресу: http://имя_сайта/blog. Можно сделать в меню пункт, который будет ссылаться на этот адрес.

2 вариант

Создать отдельный тип материала и упростить иллюстрацию новости картинкой.

(Ниже в разделах "ТЗ" (Техзадание) и "Анализ ТЗ" цветом помечены конкретные задачи и соответствующие модули, с помощью которых они решаются.)

ТЗ:

Организовать публикацию новостей с одной картинкой в левом верхнем углу материала: в тизере - 100х100, на странице новости - 300х300. При щелчке по картинке в тизере переход на страницу новости. При щелчке на картинку в новости - открывается её полное изображение во всплывающем окне.

Анализ ТЗ:

Добавлять изображения в материал можно и средствами HTML с помощью тега IMG или воспользоваться функциями визуального редактора, например, CKEditor, но если мы хотим упростить добавление изображений для обычных пользователей, то задействуем модули CCK и ImageField. CCK обеспечивает возможность добавления полей к существующим типам материалов, а ImageField предоставляет для него необходимый нам тип поля.
Автоматическое генерирование нескольких размеров изображения из одного оригинала (мы же не собираемся каждый раз создавать их вручную у себя на ПК и выгружать на сервер по 3 изображения вместо одного) нам поможет модуль ImageCache.
Поведение при щелчках по изображениям в тизере и в ноде реализует тот же модуль CCK.
Всплывающие окна сделает нам модуль Lightbox2.

Решение по шагам

1. Скачиваем модули и копируем на сайт в каталог sites/all/modules:
ImageCache и для него: ImageAPI module, Transliteration module.
  ImageCache Позволяет для обработки изображений создавать наборы настроек (Preset, пресет, представление)
CCK (для создания материалов с определенным набором полей)
    ImageField - создает тип поля Изображение  
        FileField (требуется для ImageField) - создает тип поля Файл, который работает и с имагами

2. Подключение модулей (на странице /admin/build/modules):
- в группе CCK отмечаем Content, FileField, ImageField
- в группе ImageCache - из двух вариантов: GD2 и ImageMagick выбираем один и остальные компоненты выбираем все.
GD более распространенная и поддерживается большим количеством других модулей. На сервере с поддержкой PHP 5.x она есть, а ImageMagick - отдельный программный модуль, который может и отсутствовать на вашем сервере.
- в группе Другой - Transliteration, Lightbox2 (в этом описании подключаем на шаге 5, но можно и сразу)


3. Создаем новый тип материала "Новость"
В админке /admin/content/types нажимаем "Добавить тип материала" и задаем ему два имени: для людей и для программы.


остальное можно оставить без изменений. Сохраняем новый тип материала.
После включения модуля CCK в админке на странице /admin/content/types появляется пункт "Поля", а напротив каждого типа материала - ссылка "manage fields (Управление полями)". Нажимаем на эту ссылку напротив типа материала "Новость". В нижней части заполняем параметры добавляемого поля

Нажимаем кнопку "Сохранить" и при необходимости изменяем параметры созданного поля. Здесь можно ограничить размер изображения, как в пикселах, так и в килобайтах, задать разрешенные расширения файлов и указать количество изображений, которое может быть добавлено в каждый материал данного типа. Для порядка зададим параметр "File path:" в разделе "Path settings", введем в это поле "img/news", чтобы все иллюстрации к новостям хранились в отдельном месте.
На странице /admin/content/node-type/news/display мы можем управлять отображением нашего поля в тизере и в полной версии материала.

Мы уже можем публиковать новости на сайте. Расположение картинки относительно остальных элементов материала задается на странице /admin/content/node-type/news/fields. По умолчанию новые поля добавляются в конец, но здесь мы можем мышко перетащить созданное поле, например, под заголовок.

4. На странице /admin/build/imagecache выбираем вкладку "Add new preset"

Вводим имя нового представления "100x100" и сохраняем его кнопкой "Save Preset". На появившейся странице задаем действие "Add Scale" (масштабирование с сохранением пропорций) и указываем для ширины (Width) и высоты (Height) по 100 пикселов, т.е. просто пишем число 100 без обозначений и снова сохраняем кнопкой "Save Preset".
Возвращаемся на /admin/build/imagecache и повторяем создание представления (Preset) для размеров 300 на 300 и соответствующим именем.

5. Теперь на странице /admin/content/node-type/news/display только что созданные представления (preset) появились в качестве способов отображения:


Подключаем модуль Lightbox2 и список существенно расширяется.
Окончательно делаем настройки, как показано на рис. ниже:


Настройки поля Image в новостях на Drupal
Заголовок: Hidden
Teaser: 100x100 image linked to node
Full node: Lightbox2:300x300->original


6. Остался последний штрих в оформлении - нужно задать обтекание изображения текстом. Для этого используем CSS.
Добавляем в CSS файл своей темы строку:

div.odd, div.even {float: left; margin:  5px; }

Рубрики: