Атестаційні завдання K2 ERP/CMS: відмінності між версіями
R (обговорення | внесок) Перенос з Гугл док. |
R (обговорення | внесок) Немає опису редагування |
||
| Рядок 1: | Рядок 1: | ||
{{DISPLAYTITLE:Атестаційні завдання K2 ERP/CMS}} | |||
== Назва == | '''Атестаційне завдання K2 ERP — CMS''' — це практична задача для перевірки навичок розробника або впроваджувача [[K2 ERP]] у створенні модуля управління контентом сайту або корпоративного порталу. | ||
'''Модуль CMS: | |||
Модуль має забезпечувати роботу зі сторінками, новинами, статтями, оголошеннями, медіафайлами, багатомовністю, SEO-полями, публікацією, історією змін і правами доступу. | |||
<div style="border:3px solid #1565c0; background:#e3f2fd; padding:14px; margin:16px 0;"> | |||
'''Коротко.''' Потрібно реалізувати CMS-модуль, який дозволяє менеджерам самостійно створювати й редагувати матеріали сайту, працювати з медіафайлами, публікувати контент різними мовами, керувати статусами та бачити історію змін. | |||
</div> | |||
__TOC__ | |||
== Назва завдання == | |||
'''Модуль CMS: управління контентом сайту і корпоративного порталу'''. | |||
== Мета завдання == | |||
Мета завдання — створити в K2 ERP CMS-модуль, який дозволяє керувати контентом сайту або внутрішнього корпоративного порталу без постійного залучення розробників. | |||
Система повинна дозволяти: | |||
* створювати сторінки; | |||
* створювати новини, статті та оголошення; | |||
* редагувати матеріали через WYSIWYG-редактор; | |||
* працювати з категоріями контенту; | |||
* публікувати матеріали різними мовами; | |||
* завантажувати зображення, PDF-файли та інші документи; | |||
* підключати медіафайли до матеріалів; | |||
* керувати статусами публікації; | |||
* формувати зрозумілі URL; | |||
* заповнювати SEO-поля; | |||
* зберігати історію змін; | |||
* відновлювати попередні версії матеріалів; | |||
* керувати модульними блоками контенту. | |||
<div style="border:3px solid #2e7d32; background:#e8f5e9; padding:14px; margin:16px 0;"> | |||
'''Головний принцип.''' CMS у K2 ERP — це не просто форма для введення тексту. Це система керування життєвим циклом контенту: створення → редагування → медіа → переклади → публікація → історія змін → аналітика та підтримка. | |||
</div> | |||
== Реальний бізнес-контекст == | == Реальний бізнес-контекст == | ||
Компанія має публічний сайт або внутрішній корпоративний портал. | |||
Маркетологи, редактори, HR-спеціалісти, менеджери або адміністратори повинні мати можливість самостійно додавати й оновлювати контент: сторінки, новини, статті, оголошення, документи, банери, акційні блоки або внутрішні повідомлення. | |||
Без CMS кожна зміна на сайті перетворюється на задачу для розробника. Це сповільнює роботу, створює чергу дрібних правок і заважає бізнесу швидко публікувати інформацію. | |||
CMS-модуль має зняти цю залежність і дати користувачам контроль над контентом у межах зрозумілих прав доступу. | |||
== Основний бізнес-процес == | |||
Типовий процес роботи CMS-модуля виглядає так: | |||
# редактор створює новий матеріал; | |||
# обирає категорію та мову; | |||
# вводить заголовок, короткий опис і основний текст; | |||
# додає зображення-прев’ю або інші медіафайли; | |||
# заповнює SEO-поля; | |||
# зберігає матеріал як чернетку; | |||
# за потреби створює версію іншою мовою; | |||
# переглядає попередній вигляд матеріалу; | |||
# змінює статус на '''«Опубліковано»'''; | |||
# матеріал автоматично з’являється на сайті за налаштованим URL; | |||
# система зберігає історію змін і автора останнього редагування. | |||
== Основні об’єкти модуля == | |||
{| class="wikitable" style="width:100%;" | |||
! Об’єкт | |||
! Призначення | |||
|- | |||
| Категорії контенту | |||
| Класифікація матеріалів: новини, статті, сторінки, оголошення | |||
|- | |||
| Мови | |||
| Перелік мов, якими публікується контент | |||
|- | |||
| Матеріали | |||
| Основні одиниці контенту: сторінки, новини, статті, оголошення | |||
|- | |||
| Переклади матеріалів | |||
| Версії одного матеріалу різними мовами | |||
|- | |||
| Медіафайли | |||
| Зображення, PDF, документи та інші файли | |||
|- | |||
| Каталоги медіабібліотеки | |||
| Структура зберігання файлів | |||
|- | |||
| Теги | |||
| Додаткова класифікація матеріалів | |||
|- | |||
| SEO-налаштування | |||
| Title, description, keywords, URL-slug | |||
|- | |||
| Історія змін | |||
| Версії матеріалу та дані про редагування | |||
|- | |||
| Статуси публікації | |||
| Чернетка, опубліковано, приховано | |||
|- | |||
| Модульні блоки | |||
| Банери, слайдери, акційні блоки, інформаційні вставки | |||
|} | |||
== Довідник «Категорії контенту» == | |||
Довідник категорій контенту потрібен для структурування матеріалів сайту або порталу. | |||
Категорії можуть мати ієрархію. Наприклад, категорія '''«Новини»''' може містити підкатегорії '''«Компанія»''', '''«Продукти»''', '''«Події»'''. | |||
Мінімальний склад даних: | |||
{| class="wikitable" style="width:100%;" | |||
! Поле | |||
! Опис | |||
|- | |||
| Назва категорії | |||
| Назва, яку бачить користувач | |||
|- | |||
| Тип категорії | |||
| Новина, стаття, сторінка, оголошення | |||
|- | |||
| Батьківська категорія | |||
| Для побудови ієрархії | |||
|- | |||
| URL-код | |||
| Частина адреси категорії | |||
|- | |||
| Статус | |||
| Активна або прихована | |||
|} | |||
== Типи категорій == | |||
{| class="wikitable" style="width:100%;" | |||
! Тип | |||
! Призначення | |||
|- | |||
| Новина | |||
| Публікації про події, оновлення, зміни, анонси | |||
|- | |||
| Стаття | |||
| Аналітичні або інформаційні матеріали | |||
|- | |||
| Сторінка | |||
| Статичні сторінки сайту: про компанію, контакти, послуги | |||
|- | |||
| Оголошення | |||
| Короткі повідомлення або внутрішні публікації | |||
|} | |||
== | == Довідник «Мови» == | ||
Довідник мов містить перелік мов, якими публікується контент. | |||
Мінімальний склад даних: | |||
{| class="wikitable" style="width:100%;" | |||
! Поле | |||
! Опис | |||
|- | |||
| Назва мови | |||
| Наприклад: українська, англійська, польська | |||
|- | |||
| Код мови | |||
| Наприклад: <code>uk</code>, <code>en</code>, <code>pl</code> | |||
|- | |||
| Активність | |||
| Чи доступна мова для публікації | |||
|- | |||
| Мова за замовчуванням | |||
| Ознака основної мови сайту | |||
|} | |||
Код мови використовується у формуванні URL матеріалу. | |||
== Журнал «Матеріали» == | |||
Журнал матеріалів повинен відображати всі одиниці контенту сайту або корпоративного порталу. | Журнал матеріалів повинен відображати всі одиниці контенту сайту або корпоративного порталу. | ||
У журналі редактор має швидко бачити, які матеріали є чернетками, які опубліковані, які приховані, хто автор, якою мовою матеріал створено і до якої категорії він належить. | |||
У журналі | |||
== Колонки журналу матеріалів == | |||
{| class="wikitable" style="width:100%;" | |||
! Колонка | |||
! Опис | |||
|- | |||
| Заголовок | |||
| Назва матеріалу | |||
|- | |||
| Категорія | |||
| Розділ, до якого належить матеріал | |||
|- | |||
| Автор | |||
| Користувач, який створив матеріал | |||
|- | |||
| Дата створення | |||
| Коли матеріал створено | |||
|- | |||
| Дата останньої зміни | |||
| Коли матеріал редагували востаннє | |||
|- | |||
| Статус публікації | |||
| Чернетка, опубліковано, приховано | |||
|- | |||
| Мова | |||
| Мова матеріалу | |||
|- | |||
| URL | |||
| Адреса опублікованого матеріалу | |||
|} | |||
== Функціональність журналу матеріалів == | |||
Журнал має підтримувати: | Журнал має підтримувати: | ||
| Рядок 58: | Рядок 222: | ||
* пошук по категорії; | * пошук по категорії; | ||
* фільтрацію за статусом; | * фільтрацію за статусом; | ||
* фільтрацію за мовою. | * фільтрацію за мовою; | ||
* фільтрацію за датою створення; | |||
* швидку зміну статусу; | |||
* відкриття матеріалу на редагування; | |||
* попередній перегляд; | |||
* перехід до опублікованої сторінки; | |||
* копіювання матеріалу; | |||
* створення перекладу. | |||
== Статуси публікації == | |||
{| class="wikitable" style="width:100%;" | |||
! Статус | |||
! Значення | |||
|- | |||
| Чернетка | |||
| Матеріал збережено, але він не доступний на сайті | |||
|- | |||
| Опубліковано | |||
| Матеріал доступний на сайті | |||
|- | |||
| Приховано | |||
| Матеріал знято з публікації, але він збережений у системі | |||
|} | |||
= | <div style="border:3px solid #b71c1c; background:#ffebee; padding:14px; margin:16px 0;"> | ||
'''Критично.''' Чернетка не повинна відображатися на публічному сайті. Опублікований матеріал має бути доступний за сформованим URL. | |||
</div> | |||
== | == Форма створення та редагування матеріалу == | ||
Форма створення | |||
Форма матеріалу повинна дозволяти створювати й редагувати контент без залучення розробника. | |||
==== | == Основна інформація == | ||
У формі потрібно передбачити: | |||
* URL- | |||
{| class="wikitable" style="width:100%;" | |||
! Поле | |||
! Опис | |||
|- | |||
| Заголовок | |||
| Основна назва матеріалу | |||
|- | |||
| Короткий опис або анонс | |||
| Текст для списків, прев’ю або SEO-опису | |||
|- | |||
| Повний текст | |||
| Основний вміст матеріалу через WYSIWYG-редактор | |||
|- | |||
| Категорія | |||
| Вибір із довідника через AJAX | |||
|- | |||
| Мова | |||
| Мова поточної версії матеріалу | |||
|- | |||
| Зображення-прев’ю | |||
| Завантаження або вибір із медіабібліотеки | |||
|- | |||
| Статус | |||
| Чернетка, опубліковано, приховано | |||
|- | |||
| Автор | |||
| Користувач, який створив матеріал | |||
|} | |||
== WYSIWYG-редактор == | |||
Для редагування повного тексту матеріалу потрібно використати WYSIWYG-редактор. | |||
Можливі варіанти: | |||
* TinyMCE; | |||
* CKEditor; | |||
* інший редактор, сумісний з K2 ERP. | |||
Редактор має дозволяти: | |||
* форматувати текст; | |||
* додавати заголовки; | |||
* вставляти списки; | |||
* вставляти посилання; | |||
* додавати зображення; | |||
* працювати з таблицями; | |||
* редагувати HTML у межах дозволених прав. | |||
== SEO-поля == | |||
Додатково потрібно передбачити SEO-поля. | |||
{| class="wikitable" style="width:100%;" | |||
! Поле | |||
! Опис | |||
|- | |||
| SEO title | |||
| Заголовок сторінки для пошукових систем | |||
|- | |||
| SEO description | |||
| Опис сторінки для пошукових систем | |||
|- | |||
| SEO keywords | |||
| Ключові слова, якщо вони використовуються | |||
|- | |||
| URL-адреса / slug | |||
| Частина адреси матеріалу | |||
|- | |||
| Теги | |||
| Тематичні мітки матеріалу | |||
|} | |||
URL-адреса може генеруватися автоматично на основі заголовка або задаватися вручну. | |||
== Медіабібліотека == | |||
Модуль має містити медіабібліотеку з каталогами. | Модуль має містити медіабібліотеку з каталогами. | ||
Медіабібліотека потрібна для централізованого зберігання файлів, які використовуються в матеріалах сайту або порталу. | |||
== Функції медіабібліотеки == | |||
Потрібно реалізувати: | Потрібно реалізувати: | ||
* завантаження зображень | * створення каталогів; | ||
* завантаження зображень; | |||
* завантаження PDF-файлів; | |||
* завантаження інших документів; | |||
* завантаження файлів через AJAX; | |||
* підключення файлів до матеріалів; | * підключення файлів до матеріалів; | ||
* перегляд списку файлів; | |||
* пошук файлів; | |||
* видалення файлів за наявності прав; | |||
* можливість обрізки зображень при завантаженні; | * можливість обрізки зображень при завантаженні; | ||
* зберігання медіафайлів у структурованих каталогах. | * зберігання медіафайлів у структурованих каталогах. | ||
=== | Для завантаження файлів можна використовувати FilePond або Dropzone.js. | ||
<div style="border:2px solid #f57c00; background:#fff3e0; padding:14px; margin:16px 0;"> | |||
'''Важливо.''' Медіафайли мають бути пов’язані з матеріалами, але не повинні безконтрольно дублюватися при кожному редагуванні сторінки. | |||
</div> | |||
== Мультимовність == | |||
Кожен матеріал може мати окремі версії різними мовами. | Кожен матеріал може мати окремі версії різними мовами. | ||
| Рядок 99: | Рядок 371: | ||
* '''Про нас''' українською мовою → '''About us''' англійською мовою. | * '''Про нас''' українською мовою → '''About us''' англійською мовою. | ||
* '''Новини компанії''' українською мовою → '''Company news''' англійською мовою. | |||
Система має дозволяти: | |||
* створювати переклад із поточного матеріалу; | |||
* бачити, які мовні версії вже існують; | |||
* перемикатися між мовними версіями; | |||
* не втрачати зв’язок між перекладами; | |||
* формувати URL з урахуванням коду мови. | |||
== Публікація на сайті == | |||
Після публікації матеріал автоматично відображається на сайті за налаштованим шаблоном. | Після публікації матеріал автоматично відображається на сайті за налаштованим шаблоном. | ||
URL повинен формуватися за правилом:<pre> | URL повинен формуватися за правилом: | ||
<pre> | |||
/<код мови>/<категорія>/<url матеріалу>/ | /<код мови>/<категорія>/<url матеріалу>/ | ||
</pre>Приклад URL:<pre> | </pre> | ||
Приклад URL: | |||
<pre> | |||
/en/news/open-new-office/ | /en/news/open-new-office/ | ||
</pre> | </pre> | ||
Для української мови приклад може мати вигляд: | |||
<pre> | |||
/uk/news/vidkryttia-novoho-ofisu/ | |||
</pre> | |||
* | |||
* | == Попередній перегляд == | ||
* | |||
Перед публікацією потрібно передбачити попередній перегляд матеріалу. | |||
Попередній перегляд дозволяє редактору побачити, як матеріал виглядатиме на сайті, ще до зміни статусу на '''«Опубліковано»'''. | |||
== Автозбереження чернеток == | |||
Модуль повинен підтримувати автоматичне збереження чернеток кожні X хвилин. | |||
Автозбереження потрібно для того, щоб редактор не втрачав текст у разі закриття сторінки, збою браузера або помилки з’єднання. | |||
Автозбереження не повинно автоматично публікувати матеріал. | |||
== Історія змін == | |||
Потрібно реалізувати історію змін матеріалу. | |||
Історія змін має фіксувати: | |||
* хто редагував матеріал; | |||
* дату й час зміни; | |||
* змінений заголовок; | |||
* змінений текст; | |||
* зміну статусу; | |||
* зміну категорії; | |||
* зміну SEO-полів; | |||
* стару версію; | |||
* нову версію. | |||
== Відкат до попередньої версії == | |||
Модуль повинен дозволяти відкотити матеріал до попередньої версії. | |||
Це важливо, якщо редактор випадково видалив частину тексту, опублікував неправильну версію або зламав форматування. | |||
== Модульні блоки контенту == | |||
Рівень Advanced передбачає можливість створення окремих блоків контенту для розміщення в різних частинах сайту. | Рівень Advanced передбачає можливість створення окремих блоків контенту для розміщення в різних частинах сайту. | ||
| Рядок 126: | Рядок 447: | ||
* банер; | * банер; | ||
* акційний блок; | * акційний блок; | ||
* слайдер. | * слайдер; | ||
* інформаційна вставка; | |||
* блок переваг; | |||
* блок партнерів; | |||
* блок контактів. | |||
Потрібно передбачити конфігурування розташування блоку через панель адміністратора. | Потрібно передбачити конфігурування розташування блоку через панель адміністратора. | ||
== | == Розташування модульних блоків == | ||
{| class="wikitable" | |||
! | Для кожного блоку бажано передбачити: | ||
!Опис | |||
{| class="wikitable" style="width:100%;" | |||
! Поле | |||
! Опис | |||
|- | |||
| Назва блоку | |||
| Внутрішня назва для адміністратора | |||
|- | |||
| Тип блоку | |||
| Банер, слайдер, HTML-блок, акційний блок тощо | |||
|- | |||
| Область показу | |||
| Головна сторінка, категорія, стаття, футер, сайдбар | |||
|- | |||
| Порядок | |||
| Черговість показу | |||
|- | |- | ||
| | | Статус | ||
| | | Активний або вимкнений | ||
|- | |- | ||
| | | Мова | ||
| | | Мова блоку, якщо він має мовні версії | ||
|} | |||
== Права доступу == | |||
CMS-модуль має підтримувати розмежування прав. | |||
Можливі ролі: | |||
{| class="wikitable" style="width:100%;" | |||
! Роль | |||
! Можливості | |||
|- | |- | ||
| | | Автор | ||
| | | Створює та редагує власні чернетки | ||
|- | |- | ||
| | | Редактор | ||
| | | Редагує матеріали, працює з медіа, готує публікації | ||
|- | |- | ||
| | | Модератор | ||
| | | Перевіряє матеріали й змінює статуси | ||
|- | |- | ||
| | | Адміністратор | ||
| | | Керує категоріями, мовами, правами, шаблонами та публікацією | ||
|} | |} | ||
== | <div style="border:3px solid #1565c0; background:#e3f2fd; padding:14px; margin:16px 0;"> | ||
{| class="wikitable" | '''Практичний сенс.''' Не кожен користувач CMS має право публікувати матеріали. Частина користувачів може готувати чернетки, а публікацію виконує редактор або адміністратор. | ||
! | </div> | ||
! | |||
== AJAX-інтерактив == | |||
Модуль повинен підтримувати роботу без зайвих перезавантажень сторінки. | |||
Через AJAX мають працювати: | |||
* збереження матеріалу; | |||
* автозбереження чернетки; | |||
* завантаження медіафайлів; | |||
* вибір категорії; | |||
* зміна статусу; | |||
* створення перекладу; | |||
* додавання тегів; | |||
* оновлення SEO-полів; | |||
* відновлення попередньої версії. | |||
== Технічні вимоги == | |||
{| class="wikitable" style="width:100%;" | |||
! Параметр | |||
! Опис | |||
|- | |- | ||
| | | Бекенд | ||
| | | K2 ERP на Python або PHP | ||
|- | |- | ||
| | | База даних | ||
| | | PostgreSQL або MySQL | ||
|- | |- | ||
| | | Фронтенд | ||
| | | HTML5, JavaScript | ||
|- | |- | ||
| | | AJAX | ||
| | | Axios або Fetch API | ||
|- | |- | ||
| | | UI-компоненти | ||
| | | DataTables, Select2, WYSIWYG-редактор TinyMCE або CKEditor | ||
|- | |- | ||
| | | Медіауправління | ||
| | | FilePond або Dropzone.js | ||
|- | |- | ||
| Друк | |||
| Немає обов’язкової необхідності | |||
|} | |} | ||
== | == Рекомендовані сутності бази даних == | ||
Для реалізації задачі доцільно передбачити такі сутності: | |||
* категорії контенту; | * категорії контенту; | ||
| Рядок 201: | Рядок 569: | ||
* модульні блоки; | * модульні блоки; | ||
* розташування блоків; | * розташування блоків; | ||
* автори | * автори; | ||
* права доступу. | |||
== Практичне завдання == | |||
У межах атестації потрібно продемонструвати робочий сценарій. | |||
Мінімальний сценарій: | |||
# створити категорію контенту; | |||
# створити мову; | |||
# створити новий матеріал; | |||
# вказати заголовок, короткий опис і повний текст; | |||
# обрати категорію через AJAX; | |||
# заповнити SEO-поля; | |||
# завантажити зображення-прев’ю через медіабібліотеку; | |||
# зберегти матеріал як чернетку; | |||
# перевірити автозбереження; | |||
# створити переклад матеріалу іншою мовою; | |||
# перевірити зв’язок між мовними версіями; | |||
# виконати попередній перегляд; | |||
# змінити статус на '''«Опубліковано»'''; | |||
# перевірити сформований URL; | |||
# переконатися, що матеріал доступний на сайті; | |||
# внести зміни в матеріал; | |||
# переглянути історію змін; | |||
# відкотити матеріал до попередньої версії; | |||
# створити модульний блок, якщо виконується Advanced-рівень; | |||
# показати журнал матеріалів із фільтрами. | |||
== Критерії оцінювання == | |||
{| class="wikitable" style="width:100%;" | |||
! Критерій | |||
! Бали | |||
! Що перевіряється | |||
|- | |||
| Реалізація журналу матеріалів | |||
| 20 | |||
| Список матеріалів, пошук, фільтри, статуси, мови, автори, категорії | |||
|- | |||
| Форма створення та редагування матеріалу | |||
| 20 | |||
| Заголовок, опис, WYSIWYG-редактор, категорія, мова, SEO, статус | |||
|- | |||
| Робота медіабібліотеки | |||
| 20 | |||
| Каталоги, завантаження файлів, прив’язка до матеріалів, AJAX-завантаження | |||
|- | |||
| Підтримка багатомовності | |||
| 20 | |||
| Мовні версії, зв’язок перекладів, URL з кодом мови | |||
|- | |||
| Інтерактивність через AJAX | |||
| 10 | |||
| Збереження, автозбереження, зміна статусу, медіафайли без перезавантаження | |||
|- | |||
| Управління статусами публікації | |||
| 10 | |||
| Чернетка, опубліковано, приховано, попередній перегляд | |||
|- | |||
! Разом | |||
! 100 | |||
! Максимальна оцінка | |||
|} | |||
== Шкала оцінювання == | |||
{| class="wikitable" style="width:100%;" | |||
! Бали | |||
! Рівень | |||
! Опис | |||
|- | |||
| 90–100 | |||
| Відмінно | |||
| CMS-модуль повністю працює: матеріали, медіа, мультимовність, публікація, SEO, історія змін і AJAX реалізовані коректно | |||
|- | |||
| 75–89 | |||
| Добре | |||
| Основна логіка працює, є незначні недоліки, які не руйнують процес публікації контенту | |||
|- | |||
| 60–74 | |||
| Зараховано | |||
| Базовий сценарій працює, але частина функцій реалізована неповно або потребує доопрацювання | |||
|- | |||
| 0–59 | |||
| Не зараховано | |||
| Відсутня критична логіка: створення матеріалів, публікація, медіафайли, мультимовність або статуси | |||
|} | |||
== Критичні помилки == | |||
Критичними помилками вважаються ситуації, коли: | |||
* неможливо створити матеріал; | |||
* матеріал не має статусу публікації; | |||
* чернетка відображається на публічному сайті; | |||
* опублікований матеріал недоступний за URL; | |||
* URL формується некоректно або дублюється; | |||
* неможливо завантажити медіафайл; | |||
* медіафайл не прив’язується до матеріалу; | |||
* мультимовні версії не пов’язані між собою; | |||
* історія змін не зберігається; | |||
* неможливо відновити попередню версію; | |||
* немає розмежування прав між автором, редактором і адміністратором; | |||
* AJAX-збереження або автозбереження не працює. | |||
<div style="border:3px solid #b71c1c; background:#ffebee; padding:14px; margin:16px 0;"> | |||
'''Умова складання.''' Завдання не може бути зараховане, якщо система не дозволяє пройти базовий цикл CMS: створення матеріалу → збереження чернетки → додавання медіа → публікація → перегляд на сайті → історія змін. | |||
</div> | |||
== Очікуваний результат == | |||
У результаті виконання атестаційного завдання має бути створений CMS-модуль K2 ERP. | |||
Модуль має підтримувати довідники категорій і мов, журнал матеріалів, форму створення та редагування контенту, WYSIWYG-редактор, медіабібліотеку, багатомовність, автоматичну публікацію, SEO-поля, історію змін, AJAX-інтерактив і, за потреби, модульні блоки контенту. | |||
== Примітка == | |||
CMS-модуль потрібен практично кожній компанії, що має сайт або внутрішній портал: IT-компаніям, маркетинг-агентствам, торговим мережам, освітнім установам, банкам, сервісним компаніям і виробникам. | |||
Правильна реалізація CMS дозволяє бізнесу швидко оновлювати інформацію, не створюючи кожного разу задачу для розробника. | |||
== Коротко == | |||
{| class="wikitable" style="width:100%;" | |||
! Питання | |||
! Відповідь | |||
|- | |||
| Що потрібно створити? | |||
| CMS-модуль для керування контентом сайту або корпоративного порталу | |||
|- | |||
| Які довідники потрібні? | |||
| Категорії контенту та мови | |||
|- | |||
| Який головний журнал? | |||
| Журнал матеріалів | |||
|- | |||
| Що має бути у формі матеріалу? | |||
| Заголовок, опис, WYSIWYG-текст, категорія, мова, медіа, SEO, статус | |||
|- | |||
| Що має підтримувати медіабібліотека? | |||
| Каталоги, завантаження файлів, прив’язку до матеріалів | |||
|- | |||
| Як має працювати мультимовність? | |||
| Один матеріал може мати пов’язані версії різними мовами | |||
|- | |||
| Який URL потрібен? | |||
| <code>/код-мови/категорія/url-матеріалу/</code> | |||
|- | |||
| Що є критичною вимогою? | |||
| Повний цикл: чернетка → медіа → публікація → URL → історія змін | |||
|} | |||
== Див. також == | == Див. також == | ||
* [[K2 Cloud ERP|K2 ERP]] | * [[K2 Cloud ERP|K2 ERP]] | ||
* [[K2 ERP]] | |||
* [[Атестаційні завдання K2 ERP]] | * [[Атестаційні завдання K2 ERP]] | ||
* [[CMS]] | * [[CMS]] | ||
| Рядок 214: | Рядок 735: | ||
* [[TinyMCE]] | * [[TinyMCE]] | ||
* [[CKEditor]] | * [[CKEditor]] | ||
* [[SEO]] | |||
* [[AJAX]] | |||
[[Категорія:K2 ERP]] | |||
[[Категорія:Атестаційні завдання K2]] | |||
[[Категорія:CMS]] | |||
[[Категорія:Контент]] | |||
[[Категорія:Медіабібліотека]] | |||
[[Категорія:Багатомовність]] | |||
[[Категорія:Корпоративна Wiki]] | |||