Pull to refresh

CMS интерфейс для обычных людей

Reading time4 min
Views2.5K
Идеала в интерфейсах нет, всегда можно придумать немного лучше… Разберемся с интерфейсом CMS для обычных людей с наименьшими познаниями в программировании (php), верстке (html/css) и дизайне (шаблоны/обработка изображений и т.д.). Допустим, такая CMS будет сделана для простого сайта со статьями, новостями и форумом без регистрации пользователей и одним администратором.

Многие пишут CMS. У всех этот процесс протекает по-своему:
— Я написал кучу ЦМСок! Все — лажа, решил пользоваться сторонней…
— Вот уже второй год пишу одну, неплохо, но сыровато, все слишком быстро меняется, я не успеваю приписывать новые навороты :(
— Мы работаем в команде и сообща пишет отличную CMS. Она не лучше тех, что на рынке, но это наша разработка и мы ею вполне довольны. Клиенты ни хрена в ней не рубят, поэтому мы зарабатываем еще и на поддержке!

— Добавьте ваш вариант, очень надеюсь, что я его не написал.

Что нужно для построения интерфейса? Составляющее будущего интерфейса — всё то, что будет пользовать пользователь (синонимы по вкусу).

Начальную форму входа в администрирование опустим — здесь мало что нового можно предложить, да и чаще всего побеждает минимализм.

Далее — основное окно администратора с кучей функций для облегчения жизни.
Нам нужно что-то понятное и адекватное.
Начнем с представления и расположения информации:
— список разделов, ссылка на создание раздела
— ссылка на выход из администрирования (нужна, если за компьютер могут сесть посторонние)
— ссылка на редактирование главной страницы сайта
— раскрывающийся список недавно редактируемых «статей» для быстрого доступа к ним в случае необходимости исправлений
— раскрывающийся список свежих комментариев (если они нужны) для их быстрого чтения/ответа/удаления
— ссылки на открытие сайта и статистики (точно не помешают)

Раскидаем солянку по листу:

Открытие списков можно сделать как на Аяксе, так и по простому — все зависит от вашего усердия, желания и знаний.

Еще не плохо бы добавить встроенный поиск по сайту — если страниц будет много, нужные будет легко найти, да и посетителям встроенный поиск будет больше по нраву, чем сторонний. Ну а дальше идут «плюшки»: иконки, немного графики, работа над стилем, постоянная подгонка, добавление новых функций по мере их написания.



Лирическое отступление


В своей CMS я отказался от многих устоявшихся понятий, но не пропагандирую подобное активно (у каждого свой путь при создании CMS).
Примеры:
— модульность (отдельные модули под каждый тип данных) заменена на моноблок-конструктор разделов
— привычные шаблоны на простейшие — html + вставки аля bbcode [название блока], ориентированные на «части света» (верх, низ, право, лево) блоки (встречающиеся во многих CMS) заменены на автоматические, полуавтоматические и html вставки с любым названием, которые могут применяться везде: в шаблонах дизайна, в разделах, на страницах
— css и шаблоны дизайна (главной страницы, разделов и отдельных блоков) редактируются онлайн
— многое вынесено в фоновое исполнение без участия пользователя (кеширование, бэкап БД, резервное копирование страниц перед их правкой ради возможной отмены изменений)

По сути большинство данных однотипны, поэтому и новости и статьи и даже топики форума можно хранить в одной таблице и обращаться к ним по отдельности с разными настройками за счет разделения типа данных, а не создавать под каждый тип данных свой модуль.
Пример простой структуры подобной таблицы БД: id, type, catalog, title, open_text, main_text, counter, data, keywords, description, active.
id — номер записи (новости, статьи, топика, заметки...)
type — id раздела, соответствует таблице с названиями и настройками разных разделов
catalog — id каталога (или папки) раздела, если равно 0 — корень раздела, соответствует таблице с названиями папок.
title — заголовок
open_text — предисловие
main_text — содержание
counter — счетчик посещений
data — дата создания
keywords — ключевые слова, используются для поиска по тегам и meta keywords
description — описание, используется для meta description
active — активность, 0 — отключено (черновик), 1 — активно (видят все), возможно и другие режимы…



Вот что получилось у меня в итоге (около 3 лет разработки):


МОЙ ВАРИАНТ — НЕ ПАНАЦЕЯ! Просто это моё движение к идеалу. У вас будет совершенно другое, возможно даже более продвинутое/лучшее/«правильное» решение. Я хочу показать дорогу к нему, если вы сами до такого не додумались или ваше творение вас не устраивает. Если с вашей CMS всё «тип-топ» — надо радоваться, что этот топик не для вас.

Ну и ещё несколько скринов:


Пояснения:
1. справа сверху — Записки — текстовое раскрывающееся окно для «общения» админов, например: разработчик может оставить здесь помощь по тем моментам, которые не понятны пользователю-администратору.
2. Три цветных карандашика — 2 разных WYSIWYG-редактора и html-режим для быстрого изменения настроек/заголовка или текста (при наличии у пользователя знаний о разметке HTML)


Пояснения:
1. показано имя комментатора и начало комментария. При нажатии по началу — раскрывается весь комментарий. Функция быстрого ответа еще не реализована, но уже запланирована.


Пояснения:
1. неограниченным деревом никого сейчас не удивишь. Но здесь более продуманное дерево, наличие различной сортировки, возможные действия над папками и страницами быстро (js, не аякс) открываются по нажатию на них
2. красные значки RSS — значит, что страница не выводится в поток RSS
3. две звездочки (**) — не введены description и keywords, одна — что-то одно не введено.
4. Обновить раздел — не особо нужная кнопка и скоро отомрет как рудимент (затирать на скринах не стал)


Пояснения:
1. Есть возможность выделения разделов разными цветами, обозначающими процесс над этим разделом (без метки, новый, часто-, редко- или не используется) — это нужно лишь администратору. Маководы оценят )))

Ну так вот. Если пользователь видел хоть одну CMS — от моей сразу или через небольшое время «писают» от радости. Объяснять особо ничего не надо. Трачу 10-15 минут. Если совсем не знаком с системами редактирования — полчаса-час.



Согласны с вышенаписанным — дополняйте, не согласны — постарайтесь не писать в чем я по вашему мнению не прав — просто предложите своё творчество (не страшно, если вы не умеете «рисовать» — можно и описать) и всё сразу станет ясно.
Аналогов нет, ваше мнение — это ваше мнение и у каждого оно свое, а выбирать между разными мнениями при отсутствии своего намного проще, если про них никто не «вылил бочку дёгтя».

P.S.: Я бы очень хотел начать открытое тестирование, но сильно сомневаюсь в безопасности своей CMS, поэтому буду рад, если в комментариях (или в личке) увижу отзывы хабралюдей, хорошо разбирающихся в безопасности CMS. Готов предложить им закрытое тестирование и лицензию на использование будущей платной версии CMS «ДвижОк» (а также всех последующих версий). Можно сказать, что приглашаю соавторов. Советы не связанные с безопасностью также принимаются.
Tags:
Hubs:
-15
Comments40

Articles