СMS Made Simple — использование модуля News
модуль Новости CMSMS

СMS Made Simple — использование модуля News

Nikel, 22.11.2014

Отображение Новостей на сайте

Модуль Новостей (News) очень гибкий и может применяться для различных целей, давайте посмотрим, как  добавлять новости на странице объявлений. Предположим, что вы уже создали эту страницу, в противном случае,  вы всегда можете поместить новости на главной странице сайта.

1. Откройте страницу объявлений (либо главную страницу) для редактирования (Контент | Страницы).
2. Добавьте тег Smarty {news} в том месте, где новости должны быть отображены.
3. Нажмите кнопку Применить, и просмотрите  результат. Должно выглядеть следующим образом:
news
Лишь используя один короткий тег Smarty, возможно отобразить первую новость на сайте. Но где ее отредактировать и как создавать новые статьи?

Добавление новостей

Все новости, которые когда-либо были созданы, можно найти в консоли администратора. Откройте Контент | Новости. Вы увидите админку этого модуля с множеством настроек. На первой вкладке обычно  отображается весь список новостей, если у вас есть их много. Но при первоначальной установке у вас только одна новость, которая называется News Module Installed и создается автоматически  при установке CMS Made Simple.

На этой же вкладке предусмотрен Фильтр. Он позволяет настраивать  вывод новостей в админке по вашему желанию: задать их количество на одной странице, сортировать по какому-либо критерию, показать новости из определенной категории.

Фильтр новостей
Давайте попробуем добавить  новую статью к списку новостей.

  • Нажмите Добавить новость.добавить новость
  • Введите Заголовок, Резюме (краткое содержание текста) и Полный текст.
  • Нажмите Отправить.

Откройте страницу объявлений, чтобы увидеть новую статью, опубликованную.

новая статья
Вы опубликовали новое объявление в консоли администратора веб-сайта. Разницей между первой статьей добавленной во время установки и в статьей, опубликованной Вами является ссылка Далее(more) в конце статьи. Эта ссылка отображается, если поле Резюме  заполнено. В этом случае на странице  выводится только краткий текст статьи.
Давайте посмотрим, какие поля могут быть изменены во время редактирования и добавления статей.
Откройте  статью на редактирование, щелкнув по ней в списке статей (Контент | Новости).

  • Имя автора (Автор) будет добавлено автоматически. Это ваше имя пользователя.
  • Поле Категория показывает все доступные категории. В стандартной установке, есть только одна категория General. Мы скоро узнаем, как добавлять новые категории.
  • Ниже области контента, вы увидите поле Экстра. Оно может быть использовано для получения дополнительной информации. Однако, поле не отображается в шаблоне автоматически.
  • Поле Дата публикации показывает дату публикации статьи, и может быть изменено как угодно. При добавлении новых статей заполняется автоматически фактической датой.
  • Статус является очень важным полем. Вы можете выбрать между Опубликовано и Черновик. Черновик никогда не отображается на сайте. Таким образом, вы  дорабатываете статью так долго, как вам необходимо и изменяете статус на Опубликовано после того, как текст  готов. В общем списке статей всегда можно легко увидеть где  черновики, а где опубликованные новости и быстро изменять их статус (убирая и устанавливая галочки).
    статьи
  • Новости также могут иметь начало и окончание срока. Обычно, если срок не установлен, статья опубликована на сайте навсегда. Но что, если вы просто хотели поздравить ваших посетителей с каким-либо праздником? В этом случае нужно ставить галочку Использовать дату окончания(и задавать Дату начала и Дату окончания в появившихся полях). Истекшие статьи автоматически удаляются с вашего сайта, но их все еще можно найти в списке статей в консоли администратора. Имейте в виду, что даты хранятся в соответствии с местным часовым поясом, определенным на вашем сервере.

Категории новостей

Вы можете упорядочивать  новости, назначая им различные категории. Эта функция не только позволит вам сортировать и отображать новости в админ-панели, но и дает  возможность вывода новостей из различных категорий на различных страницах или даже на одной странице в разных местах. Модуль News поддерживает создание категорий  в виде иерархической структуры — дерева, когда есть  родительская и дочерняя.

Создадим новую категорию, которая будет содержать предложения работы, а затем покажем список рабочих мест на стартовой странице.

  • В административной панели  нажмите Контент | Новости.
  • На вкладке Категории, нажмите Добавить категорию и создайте новую под названием  Вакансии, как показано на следующем скриншоте:
    категории
  •  Нажмите Отправить.
  • Создайте новую статью со следующей информацией:
    Категория: Вакансии
    Заголовок: Менеджер по маркетингу
    Полный текст: Мы ищем отличного человека, который сможет развивать европейский рынок для нашей компании. Пожалуйста, свяжитесь с нашим отделом кадров.
  • Откройте главную страницу веб-сайта для редактирования и добавьте тег Smarty куда-нибудь в поле Контент.
  • Сохраните страницу и просмотрите изменения на сайте.
    Вы использовали модуль Новостей для отображения рабочих мест на стартовой странице.  Но там будут отображаться все новости(и в том числе рабочие места), так как не было ограничения на одну категорию. Если вы хотите ограничить объявления на этой странице пунктами отнесеными к категории Вакансии, то вам следует изменить Smarty тег таким образом — {news category="Вакансии"}.

добавление категории на главную

Вы видите, что модуль дает возможность показывать новости в разных местах сайта и ограничивать их одной категорией. Вы можете использовать его для всего, что хотели бы классифицировать.

Настройка шаблонов новостей

Для каждого модуля  действует принцип «шаблона в шаблоне». Это означает, что все шаблоны модулей можно редактировать отдельно от основного шаблона CMS Made Simple.
Шаблон модуля будет показан в том месте, где помещается Smarty тег.
Существуют различные шаблоны для новостей:

  • Шаблоны-резюме: список новостей с короткими текстами-резюме и ссылками для дальнейшего чтения
  • Подробные Шаблоны: полный текст новости
  • Обзор Шаблонов категории: список всех категорий новостей
  • Шаблоны форм: Используется когда установлен модуль User Management .

Каждый шаблон может быть создан или изменен с помощью комбинации переменных Smarty и HTML.

С помощью тега Smarty {news} вызывается шаблон для новостей-резюме (по умолчанию).
Если для тега {news} добавить атрибут action , то  можно выбирать, какой шаблон вызывать в том или ином  случае:

  • {news action="default"} - Шаблоны-резюме
  • {news action="detail"} — Подробные шаблоны
  • {new action="browsecat"} — Обзор Шаблонов Категорий
  • {news action="fesubmit"} — Шаблоны форм

Вы найдете шаблоны в консоли администратора ( Контент | Новости) на вкладках рядом с вкладками Новости и Категории.

шаблоны новостей

Создание нового шаблона резюме

Предположим, что вам нужно просто список новостей без текста резюме и даты. Заголовки новостей должны быть связаны с полной новостью (подробный вид).
1. В консоли администратора откройте Контент | Новости и выберите вкладку Шаблон для резюме.
2. Нажмите Создать новый шаблон.

новый шаблон
3. Введите Имя — NewsList и замените исходный код шаблона следующим фрагментом кода

4. Шаблон появится в списке шаблонов для резюме.
5. Откройте любой произвольный шаблон страниц  (Оформление | Шаблоны) и вставьте список новостей в сайдбар при помощи тега {news summarytemplate="NewsList"}.

6. Нажмите Отправить и просмотрите результат на странице. Если вы добавили уже несколько новостей, сайдбар должен быть похож на следующий скриншот:

news-list

Параметр summarytemplate точно указывает, какой шаблон следует использовать для отображение сводки новостей в этом месте, а по умолчанию используется стандартный шаблон CMS Made Simple. У вас есть возможность изменить его, нажав на галочку в колонке По умолчанию (Контент| Новости |Шаблон для резюме).

шаблон по умолчанию для резюме

Добавление пользовательских полей в модуле Новостей

Иногда нужна дополнительная информация, которая будет выводиться в объявлениях. Для примера, вы хотели бы добавить местонахождение, или связать файлы с новостями анонсирующими  новые продукты. В этом случае необходимо определить пользовательские поля в модуле Новостей.
Давайте рассмотрим, как в специальное поле новостей может быть добавлено  местонахождение.
1. В административной панели откройте Контент | Новости и выберите вкладку Определения поля.
2. Нажмите Добавить Определение Поля и заполните все как показано на  скриншоте. Обязательно поставьте галочку Общий, так как только в этом случае поле  будет отображаться на сайте

определение поля
3. Нажмите Отправить.
4. Откройте последнюю статью, которую вы добавили, например, Менеджер по маркетингу (Содержание | Новости), и вы найдете новое поле Местонахождение  внизу страницы.
5. Введите Мюнхен в поле Местонахождение и нажмите кнопку Отправить.
6. Открыв страницу, вы можете обнаружить, что Местонахождение добавлено внизу новости. Как на следующем скриншоте:

дополнительное поле
Внимание: Это работает только с  дефолтными предустановленными шаблонами! В шаблоне по умолчанию Sample, все дополнительные поля добавляются внизу новости.
В свой собственный шаблон можно добавить любые пользовательские значения поля с помощью такого кода:

Вообще говоря, дополнительную информацию на страницу есть возможность выводить и  при помощи поля Экстра, за это отвечает такой код в шаблоне

Но возможности такого инструмента, как пользовательские поля гораздо шире, поскольку позволяют определять не только простую текстовую строку, но также текстовую область, флажок, выпадающее меню и даже файл.

тип пользовательского поля

Возможно вам пригодятся еще такие полезные параметры для модуля Новостей:

  • pagelimit — максимальное число элементов для отображения (на странице). Если этот параметр не будет указан, то будут отображены все соответствующие элементы. Если будет указан, и есть больше доступных элементов, чем указано в параметре, то будет появляться пагинация (текст и ссылки для просмотра результатов). Вывод пагинации должен быть предусмотрен в шаблоне.
  • number — Максимальное число отображаемых элементов. В случае незаполнения будет показывать все объекты. Это синоним параметра pagelimit.
  • browsecattemplate — параметр для задания шаблона для категорий. Показывает как будут отображаться категории на странице. Если не задан, то используется  шаблон по умолчанию (Новости | Обзор категории Шаблонов)
  • browsecat = "1" — показывает список категорий.
  • showall = "1" — показывает все статьи, независимо от даты окончания.
  • showarchive = "0" — показывает только истекшие статьи.
  • sortasc = "true" — сортировать новости в порядке возрастания даты
  • moretext = "далее ..." — текст, отображаемый в конце новости, если поле Резюме не является пустым. По умолчанию "more ..."
  • start = "0" — с какого по счету номера статьи отображать список. Если этот параметр пуст — список начинается с первой статьи.
  • articleid — применим только к подробному представлению. Он задает какая новость отображается  в полном режиме. Если используется специальное значение -1 , система покажет новейшую, опубликованную, не истекшую статью.
  • idlist — этот параметр работает  только в режиме  action="default" (для шаблонов — резюме ). Он принимает список разделённых запятыми числовых идентификаторов статей и осуществляет фильтрацию, отображая только те статьи,  id  которых перечислены.

Недостатки модуля Новостей

Использование заголовка новостей как заголовка страницы

Обратите внимание на заголовок окна браузера на странице, где отображается полный текст статьи. Вы обнаружите, что тег заголовка будет одинаковым для каждой статьи, так как существует только одна реальная страница, в которой отображается каждая новость. Тем не менее, поисковая оптимизация требует уникального названия для каждой страницы. Вы можете настроить тайтлы новостей с помощью небольшого трюка. Откройте Контент| Новости в консоли администратора и выберите вкладку Шаблон для полного текста новости. В начале кода добавьте следующую строку:

Эта строка будет генерировать Smarty переменную {$ pagetitle} содержащую название новости. Чтобы добавить переменную в основной шаблон, откройте его  и замените название тега на структуру IF, как показано ниже:

Этот фрагмент кода проверяет определена ли переменная {$ pagetitle} и не является ли пустой. Если переменная существует, то название новости используется для тега заголовка и отображается в строке заголовка браузера. Если нет, тогда используется обычный тайтл страницы.

Кроме того, модуль Новости дает возможность выбрать страницу по умолчанию (в разделе Опции), в которой будет показываться полный текст новости.

страница по умолчанию

Предварительно нужно создать эту страницу и применить к ней подходящий шаблон (с помощью Контент | Страницы )

 Проблемы с отображением дат

При создании новых статей в модуле  Новости можно наблюдать такую картину

не отображается дата

Вместо даты отображаются непонятные кракозябры. То же можно наблюдать и для новостей уже опубликованных на сайте

не отображается дата в статье

Как с этим бороться? Очень просто — установить локаль.  Под локалью подразумевается совокупность параметров, таких как  набор символов, язык пользователя, часовой пояс, формат чисел, даты, времени и т.д.

В файле config.php (который находится в корне вашего сайта) добавьте строку

Проверяем даты и видим, что теперь все стало на свои места
нормальные даты

даты в опубликованных статьях