Атестаційні завдання K2 ERP/CMS: відмінності між версіями

Перенос з Гугл док.
 
Немає опису редагування
 
Рядок 1: Рядок 1:
'''Атестаційне завдання K2 ERP CMS''' — практична задача для розробника K2 ERP, що передбачає створення модуля управління контентом сайту або корпоративного порталу: сторінками, новинами, статтями, оголошеннями, медіафайлами, багатомовністю, публікацією та історією змін.
{{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-спеціалісти, менеджери або адміністратори повинні мати можливість самостійно додавати й оновлювати контент: сторінки, новини, статті, оголошення, документи, банери, акційні блоки або внутрішні повідомлення.
* редагувати новини, статті та оголошення;
 
* керувати медіафайлами: зображеннями, PDF-файлами та іншими документами;
Без 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%;"
! Тип
! Призначення
|-
| Новина
| Публікації про події, оновлення, зміни, анонси
|-
| Стаття
| Аналітичні або інформаційні матеріали
|-
| Сторінка
| Статичні сторінки сайту: про компанію, контакти, послуги
|-
| Оголошення
| Короткі повідомлення або внутрішні публікації
|}


== Основні завдання ==
== Довідник «Мови» ==


=== 1. Структура довідників ===
Довідник мов містить перелік мов, якими публікується контент.


==== Довідник «Категорії контенту» ====
Мінімальний склад даних:
Довідник категорій контенту повинен містити:


* назву категорії;
{| class="wikitable" style="width:100%;"
* тип категорії:
! Поле
** новина;
! Опис
** стаття;
|-
** сторінка;
| Назва мови
** оголошення;
| Наприклад: українська, англійська, польська
* батьківську категорію для побудови ієрархії.
|-
| Код мови
| Наприклад: <code>uk</code>, <code>en</code>, <code>pl</code>
|-
| Активність
| Чи доступна мова для публікації
|-
| Мова за замовчуванням
| Ознака основної мови сайту
|}


==== Довідник «Мови» ====
Код мови використовується у формуванні URL матеріалу.
Довідник мов повинен містити:


* назву мови, наприклад українська, англійська, польська;
== Журнал «Матеріали» ==
* код мови, наприклад <code>uk</code>, <code>en</code>, <code>pl</code>.


=== 2. Журнал «Матеріали» ===
Журнал матеріалів повинен відображати всі одиниці контенту сайту або корпоративного порталу.
Журнал матеріалів повинен відображати всі одиниці контенту сайту або корпоративного порталу.


==== Колонки журналу ====
У журналі редактор має швидко бачити, які матеріали є чернетками, які опубліковані, які приховані, хто автор, якою мовою матеріал створено і до якої категорії він належить.
У журналі мають бути такі колонки:


* заголовок;
== Колонки журналу матеріалів ==
* категорія;
 
* автор;
{| class="wikitable" style="width:100%;"
* дата створення;
! Колонка
* статус публікації:
! Опис
** чернетка;
|-
** опубліковано;
| Заголовок
** приховано;
| Назва матеріалу
* мова.
|-
| Категорія
| Розділ, до якого належить матеріал
|-
| Автор
| Користувач, який створив матеріал
|-
| Дата створення
| Коли матеріал створено
|-
| Дата останньої зміни
| Коли матеріал редагували востаннє
|-
| Статус публікації
| Чернетка, опубліковано, приховано
|-
| Мова
| Мова матеріалу
|-
| URL
| Адреса опублікованого матеріалу
|}
 
== Функціональність журналу матеріалів ==


==== Функціональність журналу ====
Журнал має підтримувати:
Журнал має підтримувати:


Рядок 58: Рядок 222:
* пошук по категорії;
* пошук по категорії;
* фільтрацію за статусом;
* фільтрацію за статусом;
* фільтрацію за мовою.
* фільтрацію за мовою;
* фільтрацію за датою створення;
* швидку зміну статусу;
* відкриття матеріалу на редагування;
* попередній перегляд;
* перехід до опублікованої сторінки;
* копіювання матеріалу;
* створення перекладу.
 
== Статуси публікації ==
 
{| class="wikitable" style="width:100%;"
! Статус
! Значення
|-
| Чернетка
| Матеріал збережено, але він не доступний на сайті
|-
| Опубліковано
| Матеріал доступний на сайті
|-
| Приховано
| Матеріал знято з публікації, але він збережений у системі
|}


=== 3. Форма створення матеріалу ===
<div style="border:3px solid #b71c1c; background:#ffebee; padding:14px; margin:16px 0;">
'''Критично.''' Чернетка не повинна відображатися на публічному сайті. Опублікований матеріал має бути доступний за сформованим URL.
</div>


==== Основна інформація ====
== Форма створення та редагування матеріалу ==
Форма створення або редагування матеріалу повинна містити:


* заголовок;
Форма матеріалу повинна дозволяти створювати й редагувати контент без залучення розробника.
* короткий опис або анонс;
* повний текст матеріалу через WYSIWYG-редактор;
* категорію з вибором із довідника через AJAX;
* мову;
* зображення-прев’ю із завантаженням через медіабібліотеку;
* статус:
** чернетка;
** опубліковано.


==== Додаткові поля ====
== Основна інформація ==
Додатково потрібно передбачити:


* теги для SEO;
У формі потрібно передбачити:
* 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-адреса може генеруватися автоматично на основі заголовка або задаватися вручну.
 
== Медіабібліотека ==


=== 4. Управління медіафайлами ===
Модуль має містити медіабібліотеку з каталогами.
Модуль має містити медіабібліотеку з каталогами.
Медіабібліотека потрібна для централізованого зберігання файлів, які використовуються в матеріалах сайту або порталу.
== Функції медіабібліотеки ==


Потрібно реалізувати:
Потрібно реалізувати:


* завантаження зображень та файлів через AJAX;
* створення каталогів;
* завантаження зображень;
* завантаження PDF-файлів;
* завантаження інших документів;
* завантаження файлів через AJAX;
* підключення файлів до матеріалів;
* підключення файлів до матеріалів;
* перегляд списку файлів;
* пошук файлів;
* видалення файлів за наявності прав;
* можливість обрізки зображень при завантаженні;
* можливість обрізки зображень при завантаженні;
* зберігання медіафайлів у структурованих каталогах.
* зберігання медіафайлів у структурованих каталогах.


=== 5. Мультимовність ===
Для завантаження файлів можна використовувати 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 з урахуванням коду мови.
== Публікація на сайті ==


=== 6. Публікація на сайті ===
Після публікації матеріал автоматично відображається на сайті за налаштованим шаблоном.
Після публікації матеріал автоматично відображається на сайті за налаштованим шаблоном.


URL повинен формуватися за правилом:<pre>
URL повинен формуватися за правилом:
 
<pre>
/<код мови>/<категорія>/<url матеріалу>/
/<код мови>/<категорія>/<url матеріалу>/
</pre>Приклад URL:<pre>
</pre>
 
Приклад URL:
 
<pre>
/en/news/open-new-office/
/en/news/open-new-office/
</pre>
</pre>


=== 7. Специфіка функціоналу ===
Для української мови приклад може мати вигляд:
Модуль повинен підтримувати:


* редагування контенту без перезавантаження сторінки через AJAX;
<pre>
* автоматичне збереження чернеток кожні X хвилин;
/uk/news/vidkryttia-novoho-ofisu/
* відображення історії змін;
</pre>
* фіксацію того, хто редагував матеріал;
 
* фіксацію дати та часу останньої зміни;
== Попередній перегляд ==
* можливість відкату до попередньої версії.
 
Перед публікацією потрібно передбачити попередній перегляд матеріалу.
 
Попередній перегляд дозволяє редактору побачити, як матеріал виглядатиме на сайті, ще до зміни статусу на '''«Опубліковано»'''.
 
== Автозбереження чернеток ==
 
Модуль повинен підтримувати автоматичне збереження чернеток кожні X хвилин.
 
Автозбереження потрібно для того, щоб редактор не втрачав текст у разі закриття сторінки, збою браузера або помилки з’єднання.
 
Автозбереження не повинно автоматично публікувати матеріал.
 
== Історія змін ==
 
Потрібно реалізувати історію змін матеріалу.
 
Історія змін має фіксувати:
 
* хто редагував матеріал;
* дату й час зміни;
* змінений заголовок;
* змінений текст;
* зміну статусу;
* зміну категорії;
* зміну SEO-полів;
* стару версію;
* нову версію.
 
== Відкат до попередньої версії ==
 
Модуль повинен дозволяти відкотити матеріал до попередньої версії.
 
Це важливо, якщо редактор випадково видалив частину тексту, опублікував неправильну версію або зламав форматування.
 
== Модульні блоки контенту ==


=== 8. Модульні блоки контенту, опціонально ===
Рівень Advanced передбачає можливість створення окремих блоків контенту для розміщення в різних частинах сайту.
Рівень Advanced передбачає можливість створення окремих блоків контенту для розміщення в різних частинах сайту.


Рядок 126: Рядок 447:
* банер;
* банер;
* акційний блок;
* акційний блок;
* слайдер.
* слайдер;
* інформаційна вставка;
* блок переваг;
* блок партнерів;
* блок контактів.


Потрібно передбачити конфігурування розташування блоку через панель адміністратора.
Потрібно передбачити конфігурування розташування блоку через панель адміністратора.


== Технічні вимоги ==
== Розташування модульних блоків ==
{| class="wikitable"
 
!Параметр
Для кожного блоку бажано передбачити:
!Опис
 
{| class="wikitable" style="width:100%;"
! Поле
! Опис
|-
| Назва блоку
| Внутрішня назва для адміністратора
|-
| Тип блоку
| Банер, слайдер, HTML-блок, акційний блок тощо
|-
| Область показу
| Головна сторінка, категорія, стаття, футер, сайдбар
|-
| Порядок
| Черговість показу
|-
|-
|Бекенд
| Статус
|K2 ERP на Python або PHP
| Активний або вимкнений
|-
|-
|БД
| Мова
|PostgreSQL або MySQL
| Мова блоку, якщо він має мовні версії
|}
 
== Права доступу ==
 
CMS-модуль має підтримувати розмежування прав.
 
Можливі ролі:
 
{| class="wikitable" style="width:100%;"
! Роль
! Можливості
|-
|-
|Фронтенд
| Автор
|HTML5, JavaScript, AJAX через Axios або Fetch API
| Створює та редагує власні чернетки
|-
|-
|UI-компоненти
| Редактор
|DataTables, Select2, WYSIWYG-редактор TinyMCE або CKEditor
| Редагує матеріали, працює з медіа, готує публікації
|-
|-
|Медіауправління
| Модератор
|Завантаження файлів через FilePond або Dropzone.js
| Перевіряє матеріали й змінює статуси
|-
|-
|Друк
| Адміністратор
|Немає необхідності
| Керує категоріями, мовами, правами, шаблонами та публікацією
|}
|}


== Критерії оцінки ==
<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%;"
! Параметр
! Опис
|-
|-
|Реалізація журналу матеріалів
| Бекенд
|20
| K2 ERP на Python або PHP
|-
|-
|Форма створення та редагування матеріалу
| База даних
|20
| PostgreSQL або MySQL
|-
|-
|Робота медіабібліотеки
| Фронтенд
|20
| HTML5, JavaScript
|-
|-
|Підтримка багатомовності
| AJAX
|20
| Axios або Fetch API
|-
|-
|Інтерактивність через AJAX
| UI-компоненти
|10
| DataTables, Select2, WYSIWYG-редактор TinyMCE або CKEditor
|-
|-
|Управління статусами публікації
| Медіауправління
|10
| FilePond або Dropzone.js
|-
|-
!Разом
| Друк
!100
| Немає обов’язкової необхідності
|}
|}


== Примітка ==
== Рекомендовані сутності бази даних ==
Цей модуль потрібен практично кожній компанії, що має сайт або внутрішній портал: IT-компаніям, маркетинг-агентствам, торговим мережам, освітнім установам і банкам.


== Очікуваний результат ==
Для реалізації задачі доцільно передбачити такі сутності:
У результаті виконання атестаційного завдання має бути створений CMS-модуль K2 ERP, який підтримує довідники категорій і мов, журнал матеріалів, форму створення та редагування контенту, WYSIWYG-редактор, медіабібліотеку, багатомовність, автоматичну публікацію, SEO-поля, історію змін, AJAX-інтерактив і, за потреби, модульні блоки контенту.
 
== Рекомендовані сутності бази даних ==


* категорії контенту;
* категорії контенту;
Рядок 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]]