В Datalife Engine (DLE), как и во многих других CMS, присутствует такая вещь как дополнительные поля новостей, которые во многих случаях могут быть полезны владельцу сайта. Допустим, Вам надоело к каждой новости приписывать «Источник: bla-bla-bla». Так что же мешает Вам создать поле «Источник», записать одну строчку в шаблон и впредь просто писать URL источника в отдельное поле при добавлении новости? Ну разве что незнание того, что в DLE есть такая удобная функция.
В каких же случаях особенно удобно использовать дополнительные поля? Допустим, Вы являетесь владельцем сайта, на котором можно скачать фильмы. Конечно, если Вы воруете новости с других сайтов, Вам, возможно это и не нужно — скопировал всё до единого символа с сайта конкурента и вставил в описание новости. А вот если Вы совестливый человек, который лично ищет подробную информацию о фильмах, то поверьте, можно значительно облегчить себе жизнь, создав дополнительные поля: Оригинальное название, Страна, Режиссер, Жанр, Продолжительность, Год выпуска, Перевод, В ролях, Описание, Доп. информация, Формат, Видео, Аудио, ну и конечно Ссылки для скачивания. И нужные данные по фильму вписывать в отдельное поле, а привычное «Краткое описание» использовать только для добавления обложки фильма через инструмент «Загрузка файлов на сервер». В такое случае поле «Полное описание» Вам вообще не понадобится, просто поле с ссылками для скачивания будет присутствовать только в полной новости.
Использование дополнительных полей особенно удобно в тех случаях, когда на сайте предусмотрено добавление новостей пользователями. Конечно, чтобы пользователи по собственной инициативе добавляли на Ваш сайт новости, он должен быть довольно популярным, но не об этом речь. Поверьте, без использования вышеприведённого способа Вам не удастся донести до всех Ваших пользователей правила добавления новостей на сайт. А если на странице добавления новости уже присутствуют поля с пояснениями, то Вы существенно облегчите жизнь и пользователям, и себе.
Перейдём к практике. Думаю, раздел «Дополнительные поля новостей» Вы найдёте. Теперь щёлкнем «Добавить поле» и посмотрим, какие данные нам предлагают ввести.
Название поля. Это значение мы пишем, чтобы идентифицировать поле для последующего добавления в шаблон. Пользователи этого на сайте не увидят, это поле мы заполняем только для себя. Использовать можно только латинские буквы, например для поля «Оригинальное название» можно написать «originalnoye_nazvaniye» или как-нибудь попроще, например «original».
Описание поля. Для примера, приведённого выше, пишем «Оригинальное название».
Категория: Те категории, в которых при добавлении новости Вам будет предложено ввести данные в поле.
Тип поля: Одна строка, несколько строк (т. е. textarea) или выбор из предложенного списка.
Значение по умолчанию: Без комментариев. Скажу лишь, что при типе поля «Список» здесь нужно указать варианты, предлагаемые в выпадающем меню.
Нам придётся немного помучиться и добавить каждое поле по отдельности. После этого нужно сделать так, чтобы данные, введённые в эти поля, отображались на сайте. Для этого отредактируем шаблон. Нам понадобится внести изменения в два файла: templates/Ваш_шаблон/shortstory.tpl и templates/Ваш_шаблон/fullstory.tpl. Сделать это можно прямо из админки в разделе «Шаблоны сайта», эти файлы там носят названия «Краткое содержание» и «Статья целиком». В оба файла мы записываем одно и то же, за исключением поля «Ссылки для скачивания» — оно должно присутствовать только в полной новости. Для того, чтобы данные в дополнительных полях отображались в шаблоне, используем BB-теги [xfgiven_x] (парный) и [xfvalue_x], где x — это название поля, которое мы задавали при его создании. Например:
Code
[xfgiven_original]Оригинальное название: [xfvalue_original]
[/xfgiven_original]
Как Вы понимаете, [xfvalue_x] — это значение поля, введённое при создании новости, а парным тегом [xfgiven_original] нужно ограничить ту часть текста, где содаржится описание и значение поля — если Вы оставили то или иное поле пустым, то текст между открывающим и закрывающим тегом не будет отображаться. Итак, Вы теперь знаете всё, что Вам нужно для оформления шаблона, можете располагать элементы на странице как угодно, например таблицей — обложка фильма слева, а информация о нём справа (Как Вы помните, обложку фильма мы задаём в кратком описании, поэтому за него отвечает привычный нам {short-story}).
Дам ещё один совет. Если Ваши фильмы находятся на файлообменниках, причём нескольких, то имеет смысл сделать для каждого из них отдельное поле для ссылок и в шаблон краткой новости добавить что-нибудь вроде этого:
Quote
Залито на:
[xfgiven_rapidshare]Rapidshare[/xfgiven_rapidshare][xfgiven_megaupload], Megaupload[/xfgiven_megaupload][xfgiven_depositfiles], Depositfiles[/xfgiven_depositfiles]
Кажется, это всё. Хотя нет, на самом деле осталось одна мелочь. Вы наверняка знаете, что DLE автоматически генерирует meta-теги в соответствии с {short-story} и {full-stоry}. Сами понимаете, что ничего толкового в meta-тегах не окажется если в {short-story} у нас будет только картинка. Давайте сделаем так, чтобы meta-теги генерировались на основе содержимого поля «Описание». Для этого открываем файл engine/modules/show.full.php
Находим:
Code
if ($row['keywords'] == '' AND $row['descr'] == '') create_keywords ($row['short_story'].$row['full_story']);
Заменяем на:
Code
$dscname = "opisaniye"; //Название поля с описанием, на основе которого мы будем составлять meta-теги
preg_match("|$dscname\|(.*?)\|\||i", $row['xfields'], $dsc);
if ( empty($dsc[1]) ) $dsc[1] = substr($row['xfields'], strpos($row['xfields'], "$dscname|")+strlen($dscname)+1);
if ($row['keywords'] == '' AND $row['descr'] == '') create_keywords ($dsc[1]);
Написано, конечно, немного по-извращенски, но я только так умею. Главное что работает. 