CMS
Передмова
Існує нині величезна кількість "CMS" — систем управління контентом сайту (Content Management System) та "фреймворків PHP" для цієї мети. Начебто й величезний вибір — а почати використовувати: наштовхуєшся на зайві обмеження, незручності — більш шаманство, ніж розробка. Та ще й дуже повільне у дії — потребує кєшування сторінок на сервері, що не завжди можливо.
Тому зробив свій варіант основи веб-сервісу — максимально простий і логічний, де зручно поступово розвивати проект від простого до як завгодно складного — з наочним відображенням ієрархії об'єктів, зв'язків файлів верстки та скриптів зі сторінками сайту.
Цю основу можна просто використовувати "як є" — наповнювати контентом, або створювати проекти будь-якої складності.
Огляд
У пропонованій системі редагувати сторінки сайту можна прямо на сторінках сайту — у "режимі редагування" — як у програмі "Word" — наочно бачити результат. Контролювати і редагувати HTML-код можна одночасно й в консолі браузера. Також редагувати код можна й в формі редагування сторінки, та у вбудованому редакторі HTML.
У цьому режимі є й інструменти створювання нових сторінок, галерея файлів сторінок…
У редакторах файлів верстки і скриптів можна — крім як створювати, редагувати та видаляти файл — ще й керувати підключенням цих файлів до сторінок сайту. Для сторінки, яка містить вкладені сторінки, можна вказати підключення вибраних у списку файлів до всіх цих вкладених сторінок.
Адміністративна панель — "адмінка" — переважно для розробника сайту, багато її інструментів доступні як редагування — для конкретної сторінки. Мова інтерфейсу адміністратора — вибрана мова сайту. Передбачені "uk", "ru", "en". Якщо мова сайту інша — то англійська.
Мови сайту вказуються при установці у конфігурації — переліком двосимвольних кодів. Перша мова — основна: за відсутності тексту іншої мови — відображається текст основної мови. У формі редагування сторінки є кнопка для візуалізації наочної відсутності текстів мови: виділенням запозиченого тексту кольором та списком полів без тексту мови.
Публічність сторінки визначається її статусом, публічність мовної версії сторінки — і наявністю "людино-зрозумілої Url": зазвичай формується транслітом імені сторінки. Url може бути ієрархічним: містити імена батьківських сторінок.
Пропонована система відрізняється високою швидкодією: програмування процедурне з використанням класів — наприклад, для роботи з базою даних.
При виконанні запиту просто виконуються відповідні дії — на відміну від систем, де перш завантажується громіздка система — аналогічно "Windows" при включенні комп'ютера, притому завантажується заново перед виконанням кожного (!) запиту..
Публічні сторінки відображаються шаблоном "public.php", де можуть підключатися шаблони "шапки сторінки ("header.php"), тексту сторінки ("p.php" або інші), "підвалу сторінки" ("footer.php") ). Шаблони відображають тексти для кожної мови сайту з бази даних. Файли сайту можна редагувати, створювати та видаляти прямо в адмінці
Установка
Встановлювати CMS на хостинг або локальний сервер можна майстром "/setup" : у полях форми перерахувати мови сайту, вказати параметри підключення бази даних, виконати форму — після наступних двох натискань на посилання продовження установки (другий та третій кроки) — вказати email та пароль адміну (четвертий крок) — відобразиться посилання на відкриття адміністративної панелі створеного сайту. На кожному кроці відображається журнал виконаних дій, можна продовжити або розпочати з початку. На будь-якому кроці можна перерватися, потім відкрити програму встановлення та продовжити.
Для копіювання сайту з локального сервера на хостинг і навпаки або з одного хостингу на інший хостинг — достатньо скопіювати файли, скопіювати базу даних (експорт / імпорт SQL) та редагувати параметри доступу до бази даних у файлі конфігурації. Нескладно — на відміну від багатьох інших CMS.
Зручно мати робочу копію сайту на комп'ютері — до того ж можна зберігати сайти на зовнішньому диску (або на флешці) та працювати з ними на будь-якому комп'ютері. Тоді серйозні зміни сайту зручно спочатку робити в копії — і потім копіювати зміни на публічний сайт. Це важливо для серйозних сайтів — де кожна секунда доступності сторінки може коштувати дорого.
Частини CMS
- Публічна частина — власне сайт. Менеджер або розробник сайту після авторизації може включити режим редагування — І редагувати контент безпосередньо на сторінці сайту.
Початковий функціонал — відвідувачі також можуть реєструватися та авторизуватися, наприклад — покупці для перегляду своїх замовлень. - Адміністративна панель – інструмент розробника сайту.
Може використовуватися і контент-менеджером як додатковий інструмент.
Ця "адмінка" та інші сторінки для адміністрування сайту (редактори, робота із замовленнями, постачальниками…) доступні після авторизації, їх точка входу одна — "/index.php", як і сторінки сайту.
Якщо на публічній сторінці немає посилання для авторизації (прихована або видалена - не потрібна по дизайну сайту), то режим редагування можна включати в цій панелі, в ній можна і змінювати свій пароль. Докладніше… - Довідкова система менеджера /help/ — може бути публічною чи ні — код вимоги авторизації може бути закоментований. Точка входу своя, система від сайту практично незалежна, база даних не використовується. Адмін з правами розробника може редагувати сторінки, додавати, видаляти, генерувати зміст…
Режим редагування безпосередньо на сторінках сайту
У цьому режимі при редагуванні, як у редакторі Word, всі зміни відображаються в реальному вигляді, можна також редагувати в консолі браузера, бачачи структуру HTML. Якщо результат Вас влаштовує, можете зберегти зміни. Натисніть кнопку "ZIP" на панелі інструментів блоку редагування — зберегти колишній текст в архіві — на Вашому комп'ютері — для можливості повернутися — якщо щось піде не так.
Картинки можна вставляти в текст, що редагується, просто перетягуванням звідки завгодно: з галереї файлів сторінок, з "провідника Windows", зі сторінок браузера, з буфера обміну… Кнопкою "img src" панелі інструментів перевіряються коди картинок — якщо картинка посилається на файл в інтернеті або містить код (base64) — вона зберігається в галерею файлів сторінки — відповідно змінюється і код картинки.
Організовано роботу з файлами верстки (CSS) та скриптів (JS) — створення та редагування і — головне — підключення їх до будь-якої сторінки, або до всіх вкладених сторінок, або до всіх сторінок, що містять редагований блок: шапку або підвал сторінки. Можна відобразити зв'язки цих файлів зі сторінками сайту.
Мови сайту
У конфігурації сайту вказується список мовних версій сайту, перша мова — основна.
Поки будь-яке текстове поле сторінки іншої мови порожнє — відображається текст основної мови. Для сторінки кожної мови — своя людино-зрозуміла URL-адреса.
Якщо мов сайту більше однієї, то карта сайту для пошукових систем (sitemap.xml) - мультимовна: для кожної сторінки основної мови вказуються існуючі сторінки альтернативних мовних версій.
Щоб сторінка була присутня в карті сайту — вона повинна мати статус "публічна" і мати людину зрозумілу URL.
Якщо сторінок у карті сайту багато (у Google ліміт — 50 000) — то карта сайту містить архівовані томи.
Реалізовано вказівку бажаного часового поясу для PHP — на початку файлу index.php. Зазначений пояс встановлюється і для SQL – у класі для бази даних (class.db.php).
Принцип побудови системи
Web-система відрізняється відносно простою та наочною реалізацією — побудована об'єктами, переліченими в таблиці "cat" бази даних, ієрархія об'єктів наочно відображається в "адмінці", зв'язки між об'єктами зберігаються в таблиці "r", кожен об'єкт може мати титульну картинку, галерею файлів, крім власних текстових полів: ім'я та анонс — додатковий набір текстових полів: опис, мета, людино-зрозуміла URL.
Реалізовано на цій CMS й інтернет-магазини. Кількість товарів та характеристик, ієрархія каталогу — не обмежені, наприклад "servisvsem.com" працює із сотнями тисяч товарів та із тисячами характеристик товарів.