Современная, быстрая и удобная система управления сайтом

mso_get_pages() - получение записей

Центр помощиКомментарии: 0Просмотров: 20706

Функция mso_get_pages() возвращает массив страниц из БД. Данная функция является универсальной, поэтому содержит множество параметров, изменяя которые можно получать самые разные страницы для разных задач и не прибегать к составлению своих SQL-запросов.

function mso_get_pages($r = array(), &$pag)

Первый параметр - массив опций. Второй - переменная пагинации.

Все опции являются строковыми. Ниже приведены все определенные в функции, а также их значение по-умолчанию.

  • limit = 7 : сколько отдавать страниц.
  • cut = 'Далее' : текст ссылки cut.
  • xcut = true : для тех страниц у которых нет cut, но есть xcut выводить текст после xcut.
  • cat_order = 'category_name' : сортировка рубрик в списке рубрик записи.
  • cat_order_asc = 'asc' : порядок рубрик (asc - прямой, desc - обратный).
  • pagination = true : нужно ли использовать пагинацию; если страница не требует пагинации, следует установить false - это съэкономит один запрос к БД.
  • content = true : получать весь текст; если указать false, то текст записи не возвращается (пустая строка); можно использовать на страницах, где требуется получить только заголовки.
  • page_id = 0 : если 0, значит все страницы; только для главной (тип данных home).
  • cat_id = 0 : если 0, значит записи всех рубрики; только для главной (тип данных home); рубрики можно указать через запятую или пробел.
  • type = 'blog' : тип страницы; если false - то все; если указан page_id, то type всегда равен false (то есть тип не учитывается).
  • order = 'page_date_publish' : поле сортировки страниц.
  • order_asc = 'desc' : порядок сортировки страниц (asc - прямой, desc - обратный).
  • no_limit = false : если нужно вывести данные, невзирая на limit, то no_limit=true - пагинация при этом отключается.
  • custom_type = false : custom_type - аналог is_type() - анализ явного указания типа данных. Функция анализирует тип данных (is_type) и, в зависимости от результата по разному формирует SQL-запрос. Для того, чтобы явно указать по какому алгоритму получить данные, можно явно указать custom_type. Возможные варианты: home, page, category, tag, archive, search, author.
  • custom_func = false : можно указать свою кастомную функцию, которая будет формировать SQL-запрос. Данная функция должна быть подобна _mso_sql_build_home() и другим аналогичным (см. файл common/page.php).
  •  link_page_type = 'page' : тип (префикс ссылки) для страниц. В MaxSite CMS принято указывать страницы с page: http://сайт/page/slug. Вы можете указать свой префикс. Учитите, что в этом случае теряется совместимость с функциями MaxSite CMS, которые анализируют типы данных по URL.
  • categories = array() : массив номеров по которому можно получить все записи указанных рубрик. Используется для типа данных category (рубрики).
  • exclude_page_id = array() : исключить указанные в массиве записи.
  • slug = false : получение страницы с указанным slug; используется там, где вычисляется mso_segment(2) страница, рубрика, метка, поиск.
  • date_now = true : если true, то получаются только те записи, которые старше текущей даты;  если false - то публикуются все.
  • only_feed = false : если true, то отдаются только те записи, в которых отмечена эта опция при создании/редактировании.
  • page_status = 'publish' : статус страниц - если false, то статус не учитывается (например для черновиков).
Примеры использования mso_get_pages() можно посмотреть в default-шаблоне в файлах каталога type.