Post
Внимание!
Этот API устарел начиная с WS 0.95.
Post является устаревшим классом. Он сохранён для поддержки старого кода, но не должен использоваться в новой разработке.Единой полной замены у класса нет:
- для чтения опубликованных записей используйте
PostManager - для данных записи текущего запроса используйте
PageData - для устаревших операций изменения и произвольных SQL-запросов прямой высокоуровневой замены нет
Чтение опубликованных записей
Вместо методов получения публичных записей используйте PostManager:
php
$postManager = new PostManager('news');
$posts = $postManager->getPublishedList(
limit: 10
);Получение записи по URL:
php
$post = $postManager->getPublishedByUrl('release-notes');
if ($post === null) {
return;
}Получение нескольких записей по идентификаторам:
php
$posts = $postManager->getPublishedByIds([
15,
27,
]);PostManager проверяет статус и дату публикации, ограничивает сортировку и не принимает произвольные SQL-условия.
Данные текущей записи
Если CMS уже определила запись текущего запроса, используйте PageData:
php
$postId = PageData::getId();
$title = PageData::getTitle();
$content = PageData::getContent();
$postType = PageData::getPostType();Сохранённый API
Методы класса остаются доступными для поддержки старого кода.
Получение записей
| Метод | Назначение |
|---|---|
getPost() |
Получает запись по идентификатору и типу. |
getAllPost() |
Получает список независимо от статуса публикации. |
getPublishPost() |
Получает опубликованные записи. |
getPostQuery() |
Выполняет выборку по SQL-условию. |
getPostQueryUnion() |
Объединяет выборку нескольких типов. |
getPublishPostUnion() |
Получает опубликованные записи нескольких типов. |
getPublishPostCategory() |
Получает опубликованные записи с активной локальной категорией. |
Подсчёт записей
| Метод | Назначение |
|---|---|
postCount() |
Подсчитывает записи одного типа. |
postCountUnion() |
Подсчитывает записи нескольких типов. |
Изменение записей
| Метод | Назначение |
|---|---|
addPost() |
Добавляет запись из SQL-фрагмента. |
updatePost() |
Обновляет запись из SQL-фрагмента. |
updateMeta() |
Изменяет одно метаполе. |
updateMetaAll() |
Полностью заменяет метаданные. |
updateCategory() |
Изменяет одну локальную категорию. |
updateCategoryAll() |
Полностью заменяет локальные категории. |
Формат результатов legacy API
Списочные методы класса Post используют индексы начиная с 1.
Методы преобразуют структурированные поля в массивы:
metacategoryglobal_metaglobal_categorycomment
Записи также могут получать поле post_type. Метод getPost() дополнительно получает логин автора в поле author_login.
Формат результатов отличается от PostManager, списки которого индексируются начиная с 0.
Ограничения
- класс использует устаревший объект базы данных
- типы записей и условия подставляются в SQL-запросы строками
- некоторые методы принимают готовые SQL-фрагменты
- не передавайте методам данные, полученные от пользователя
- методы изменения не используют актуальный безопасный API базы данных
- часть методов может вернуть пустой массив или
nullбез единого строгого формата getPublishPostCategory()не использует переданный ключ категории в условии выборки- для нового кода используйте актуальные классы CMS