This shows you the differences between two versions of the page.
Both sides previous revision Previous revision Next revision | Previous revision | ||
contents [2009/08/03 16:05] celutp |
contents [2012/06/21 15:48] (current) celutp |
||
---|---|---|---|
Line 1: | Line 1: | ||
======Контенты====== | ======Контенты====== | ||
- | Контенты управляются на уровне сайта с использованием окна **Контенты** (**Сайты/Название сайта/Контенты**). Эта вкладка открывается по умолчанию при переходе на уровень конкретного сайта. Рабочая область страницы отображает список контентов созданных для данного сайта c разбиением по группам. Сортировка также работает в пределах групп. Чтобы просмотреть список без разбиения, можно воспользоваться деревом. | + | Контенты управляются на уровне сайта с использованием окна **Контенты** (**Сайты/Название сайта/Контенты**). Эта вкладка открывается по умолчанию при переходе на уровень конкретного сайта. Рабочая область страницы отображает список контентов созданных для данного сайта c разбиением по группам. Сортировка также работает в пределах групп. Чтобы просмотреть список без разбиения, можно воспользоваться деревом. При переходе внутрь контента (по ссылке на названии контента) открывается страница [[articles|Статьи (Articles)]]. |
Контенты представляют по своей сути пользовательские таблицы базы данных, управляемые с помощью QP7. Информация из контентов может выводиться на сайте с помощью: | Контенты представляют по своей сути пользовательские таблицы базы данных, управляемые с помощью QP7. Информация из контентов может выводиться на сайте с помощью: | ||
- | * Специального типа объектов **Publishing Container** | + | * [[development:container|Специального типа объектов Publishing Container]] |
- | * Генерируемых классов **LINQ-to-SQL** | + | * [[developer:linq|Генерируемых классов LINQ-to-SQL]] |
- | * **QP7 API** | + | * [[api:dbconnector:get_article|QP7 API]] |
- | * Прямого доступа к базе (не рекомендуется) | + | * [[api:dbconnector:sql|Прямого доступа к базе]] (не рекомендуется) |
- | Разработчик определяет структуру контентов, связи между ними, настраивает доступ пользователей к ним, задает правила Workflow, которые будут применяться к статьям этого контента, а также выполняет другие необходимые настройки. | + | Основная настройка контента и задание его структуры производится на страницах: |
+ | * [[content|Новый контент (New Content) / Данные контента (Content Info)]] | ||
+ | * [[fields|Поля (Fields)]] | ||
+ | * [[field|Новое поле (New Field) / Данные поля (Field Info)]] | ||
+ | Редактирование контента в-основном сосредоточено на страницах: | ||
+ | * [[articles|Статьи (Articles)]] | ||
+ | * [[articles:archives|Архивы (Аrchives)]] | ||
+ | * [[article|Новая статья (New Article) / Данные статьи (Article Info)]] | ||
+ | * [[article:schedule|Расписание статей(Article Schedule)]] | ||
+ | * [[articles:history|История изменений (Audit Trail)]] | ||
+ | * [[content:library|Библиотека контента]] | ||
+ | * [[articles:import|Импорт статей (Article Import)]] | ||
+ | * [[articles:export|Экспорт статей (Article Export)]] | ||
+ | |||
+ | Кроме этого, дополнительно для контента и его статей могут быть настроены: | ||
+ | * Права доступа (страницы Доступ к контенту (Content Permissions) и Доступ к статье (Article Permissions) | ||
+ | * Уведомления (страница Уведомления (Notifications)) | ||
+ | * Правила Workflow (страницы Данные контента (Content Info) и Workflow статьи (Article Workflow)) | ||
+ | | ||
+ | |||
+ | |||
+ | |||
+ | |||
+ | Разработчик определяет структуру контентов, связи между ними, настраивает доступ пользователей к ним, задает правила Workflow, которые будут применяться к статьям этого контента, а также выполняет другие необходимые настройки. | ||
{{:contents.gif|}} | {{:contents.gif|}} | ||
Line 24: | Line 47: | ||
В режиме нестрогого соответствия ищутся все слофоформы указанного слова. Если слов несколько, то ищутся все словоформы для каждого из них. В результирующий набор попадают те статьи, в которых найдена хотя бы одна словоформа одного слова. В режиме строгого соответствия морфология не учитывается и слово ищется в той форме, в которой указано. Если задано несколько слов, то ищется словосочетание. Следует отметить, что поиск по строгому соответствию - это не LIKE-поиск, он ищет слова, а не произвольные последовательности символов, но тем не менее, есть возможность префиксного поиска, когда задается несколько букв в начале слова, а оставшааяся часть слова заменяется символом звездочки (*) | В режиме нестрогого соответствия ищутся все слофоформы указанного слова. Если слов несколько, то ищутся все словоформы для каждого из них. В результирующий набор попадают те статьи, в которых найдена хотя бы одна словоформа одного слова. В режиме строгого соответствия морфология не учитывается и слово ищется в той форме, в которой указано. Если задано несколько слов, то ищется словосочетание. Следует отметить, что поиск по строгому соответствию - это не LIKE-поиск, он ищет слова, а не произвольные последовательности символов, но тем не менее, есть возможность префиксного поиска, когда задается несколько букв в начале слова, а оставшааяся часть слова заменяется символом звездочки (*) | ||
+ | |||
+ | ==== Результаты поиска ==== | ||
+ | |||
+ | Результаты полнотестового поиска показываются на той же странице **Контенты** (**Contents**). Каждая запись в таблице соответствует статье, релевантной запросу. Статьи сгруппированы по контентам. Количество показываемых статей для каждого контента ограничено. Если для какого-то контента найдено больше статей, то для него выводится ссылка **Eще статьи** (**More articles**), которая переводит в режим [[:articles#поиск_статей|полнотекстового поиска внутри выбранного контента]]. | ||
====Создать по образцу==== | ====Создать по образцу==== | ||
Line 29: | Line 56: | ||
Кнопка **Создать по образцу** создает копию структуры выбранного контента. Статьи при этом не копируются. Чтобы скопировать статьи, можно воспользоваться функционалом Импорта статей, указав в качестве источника необходимый контент. | Кнопка **Создать по образцу** создает копию структуры выбранного контента. Статьи при этом не копируются. Чтобы скопировать статьи, можно воспользоваться функционалом Импорта статей, указав в качестве источника необходимый контент. | ||
- | =====Редактирование свойств контента===== | ||
- | |||
- | ====Управление группами==== | ||
- | |||
- | При создании нового контента можно также создать новую группу или привязать его к существующей. Выбор группы влияет только на отображение на странице **Контенты**. Привязку к группе во время жизни контента можно поменять. Если в группе не остается ни одного контента, она автоматически удаляется. Переименование групп также возможно со страницы **Контенты**. По умолчанию контенты добавляются в **Группу по умолчанию**, которая показывается раскрытой в конце списка на странице **Контенты**. Все остальные группы по умолчанию свернуты. | ||
- | |||
- | ====Работа с дружественными именами==== | ||
- | |||
- | Данная функциональность в большей степени относится к англоязычной версии из-за развитой системы склонения существительных в русском языке. В данном интерфейсе задаются поля **Единственное** и **Множественное**. Значения этих полей заменяют в интерфейсе QP7 термины **Статья** и **Статьи** соответственно. | ||
- | |||
- | ====Настройки контроля версий==== | ||
- | |||
- | **Максимальное число хранимых версий** - задается какое число версий сохраняется для каждой статьи. При достижения максимального числа самая старая версия будет затираться новой. | ||
- | **Создать View для версионной информации** - данная опция может быть необходима для доступа к версионной информации с фронтэнда. | ||
- | |||
- | ====Прочие настройки==== | ||
- | |||
- | ***Разрешить доступ из контейнеров других сайтов** -- при создании нового объекта типа **Publishing Container** на других сайтах этой же базы данных данный контент появится в списке доступных для выбора. Контент будет показан как **<название сайта>.<название контента>**. Данная настройка относится только к интерфейсу и никак не ограничивает динамическое изменение имени контента в объектах типа **Publishing Container**. | ||
- | |||
- | ***Архивировать при удалении** -- вместо удаления статья будет помещена в архив, таким образом при настройках по умолчанию она исчезнет с сайта (как live, так и stage), но впоследствии ее можно будет легко восстановить, найдя ее на вкладке **Архивы** контента. | ||
- | |||
- | ***Число записей на странице** -- настройка постраничного разбиения для статей контента | ||
- | |||
- | ***Workflow** - назначение существующего набора правил Workflow на контент. С этого момента все статьи контента должны пройти цепочку утверждений, чтобы быть опубликованными на сайте. | ||
- | |||
- | =====Виртуальные контенты===== | ||
- | |||
- | Интересной возможностью при создании нового контента является опция, позволяющая сделать его виртуальным. Его виртуальность проявляется в том, что он не содержит реальных статей, а получает информацию из других контентов и таблиц базы данных. В отличие от обычных контентов на уровне базы данных виртуальный контент является //представлением//. | ||
- | |||
- | Доступны виртуальные контенты 3-х типов: | ||
- | |||
- | - JOIN | ||
- | - UNION | ||
- | - Пользовательский запрос (USER QUERY) | ||
- | |||
- | ====Тип Join==== | ||
- | |||
- | Применяется в сценарии **Родительская <-> Дочерняя таблицы**. При создании виртуального контента нужно выбрать первичный контент и далее галочками отметить те поля справочных таблиц, которые нас интересуют. QP7 предложит для этих полей имена, составленные из названия контента и названия поля, которые по желанию можно переименовать. Также JOIN-контент может быть применен для "разворачивания" одного или нескольких уровней контента с иерархической структурой. Основной смысл применения JOIN-контента - упрощение кода за счет того, что можно применить один **Publishing Container**, там где в случае обычных контентов пришлось бы использовать несколько. В последней версии QP7.Framework от использования JOIN-контентов можно отказаться в пользу генерируемых LINQ-to-SQL классов. | ||
- | |||
- | {{:join.gif|}} | ||
- | |||
- | |||
- | |||
- | |||
- | ====Тип Union==== | ||
- | |||
- | Позволяет объединить несколько контентов одного сайта в один (для объединения контентов с разных сайтов нужно использовать USER QUERY). По умолчанию в результирующий контент попадают все поля всех составляющих контентов. Сопоставление полей производится по имени, но при этом производится проверка типов. Если в объединяемых контентах есть два поля с одним именем и несовместимым типом, то UNION-контент не может быть создан. Если в объединяемом контенте поле остутствует, то в виртуальном на этом месте будет NULL. Существует опция **Использовать выбранный контент как главный контент и создать отсутствующие поля в других контентах**. Она позволяет выбрать один из объединяемых контентов в качестве главного, построить виртуальный контент по его структуре и досоздать недостающие поля в других контентах. | ||
- | |||
- | ====User Query==== | ||
- | |||
- | В отличие от двух других типов виртуального контента данный тип позволяет использовать в качестве источников данных не только контенты, но и произвольные таблицы базы данных. Структура запроса также жестко не задана, так как пользователь сам определяет 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 | | ||