This is an old revision of the document!
Контенты управляются на уровне сайта с использованием окна Контенты (Сайты/Название сайта/Контенты). Эта вкладка открывается по умолчанию при переходе на уровень конкретного сайта. Рабочая область страницы отображает список контентов созданных для данного сайта c разбиением по группам. Сортировка также работает в пределах групп. Чтобы просмотреть список без разбиения, можно воспользоваться деревом.
Контенты представляют по своей сути пользовательские таблицы базы данных, управляемые с помощью QP7. Информация из контентов может выводиться на сайте с помощью:
Разработчик определяет структуру контентов, связи между ними, настраивает доступ пользователей к ним, задает правила Workflow, которые будут применяться к статьям этого контента, а также выполняет другие необходимые настройки.
Кнопка Поиск выводит на экран панель полнотекстового поиска по всем контентам данного сайта. Повторное нажатие на эту кнопку приводит закрытию панели и отмене результатов поиска. Того же результата можно добиться, нажав кнопку закрытия в правой части панели поиска. Поиск работает в двух режимах:
В режиме нестрогого соответствия ищутся все слофоформы указанного слова. Если слов несколько, то ищутся все словоформы для каждого из них. В результирующий набор попадают те статьи, в которых найдена хотя бы одна словоформа одного слова. В режиме строгого соответствия морфология не учитывается и слово ищется в той форме, в которой указано. Если задано несколько слов, то ищется словосочетание. Следует отметить, что поиск по строгому соответствию - это не LIKE-поиск, он ищет слова, а не произвольные последовательности символов, но тем не менее, есть возможность префиксного поиска, когда задается несколько букв в начале слова, а оставшааяся часть слова заменяется символом звездочки (*)
Результаты полнотестового поиска показываются на той же странице Контенты (Contents). Каждая запись в таблице соответствует статье, релевантной запросу. Статьи сгруппированы по контентам. Количество показываемых статей для каждого контента ограничено. Если для какого-то контента найдено больше статей, то для него выводится ссылка Eще статьи (More articles), которая переводит в режим полнотекстового поиска внутри выбранного контента.
Кнопка Создать по образцу создает копию структуры выбранного контента. Статьи при этом не копируются. Чтобы скопировать статьи, можно воспользоваться функционалом Импорта статей, указав в качестве источника необходимый контент.
При создании нового контента можно также создать новую группу или привязать его к существующей. Выбор группы влияет только на отображение на странице Контенты. Привязку к группе во время жизни контента можно поменять. Если в группе не остается ни одного контента, она автоматически удаляется. Переименование групп также возможно со страницы Контенты. По умолчанию контенты добавляются в Группу по умолчанию, которая показывается раскрытой в конце списка на странице Контенты. Все остальные группы по умолчанию свернуты.
Данная функциональность в большей степени относится к англоязычной версии из-за развитой системы склонения существительных в русском языке. В данном интерфейсе задаются поля Единственное и Множественное. Значения этих полей заменяют в интерфейсе QP7 термины Статья и Статьи соответственно.
Максимальное число хранимых версий - задается какое число версий сохраняется для каждой статьи. При достижения максимального числа самая старая версия будет затираться новой. Создать View для версионной информации - данная опция может быть необходима для доступа к версионной информации с фронтэнда.
Интересной возможностью при создании нового контента является опция, позволяющая сделать его виртуальным. Его виртуальность проявляется в том, что он не содержит реальных статей, а получает информацию из других контентов и таблиц базы данных. В отличие от обычных контентов на уровне базы данных виртуальный контент является представлением.
Доступны виртуальные контенты 3-х типов:
Применяется в сценарии Родительская ↔ Дочерняя таблицы. При создании виртуального контента нужно выбрать первичный контент и далее галочками отметить те поля справочных таблиц, которые нас интересуют. QP7 предложит для этих полей имена, составленные из названия контента и названия поля, которые по желанию можно переименовать. Также JOIN-контент может быть применен для “разворачивания” одного или нескольких уровней контента с иерархической структурой. Основной смысл применения JOIN-контента - упрощение кода за счет того, что можно применить один Publishing Container, там где в случае обычных контентов пришлось бы использовать несколько. В последней версии QP7.Framework от использования JOIN-контентов можно отказаться в пользу генерируемых LINQ-to-SQL классов.
Позволяет объединить несколько контентов одного сайта в один (для объединения контентов с разных сайтов нужно использовать USER QUERY). По умолчанию в результирующий контент попадают все поля всех составляющих контентов. Сопоставление полей производится по имени, но при этом производится проверка типов. Если в объединяемых контентах есть два поля с одним именем и несовместимым типом, то UNION-контент не может быть создан. Если в объединяемом контенте поле остутствует, то в виртуальном на этом месте будет NULL. Существует опция Использовать выбранный контент как главный контент и создать отсутствующие поля в других контентах. Она позволяет выбрать один из объединяемых контентов в качестве главного, построить виртуальный контент по его структуре и досоздать недостающие поля в других контентах.
В отличие от двух других типов виртуального контента данный тип позволяет использовать в качестве источников данных не только контенты, но и произвольные таблицы базы данных. Структура запроса также жестко не задана, так как пользователь сам определяет SQL-запрос. Единственное требование - для корректного функционирования SQL-запрос должен возвращать служебные поля, используемые QP7.Framework:
Имя поля | Описание | Тип данных SQL | Рекомендуемое значение |
---|---|---|---|
content_item_id | Уникальный идентификатор статьи | NUMERIC | Автоинкремент |
created | Дата создания статьи | DATETIME | |
modified | Дата последней модификации статьи | DATETIME | |
last_modified_by | Пользователь, последним модифицировавший статью | NUMERIC | 1 (administrator) |
status_type_id | ID текущего статуса статьи | NUMERIC | ID статуса Published |
visible | Флаг видимости | NUMERIC | 1 |
archive | Флаг нахождения в архиве | NUMERIC | 0 |
Discussion