Секретные записки WEB-программиста




100mbru, bitrix, CentOS, cms, drupal, java, joomla, LAMP, linux, mysql, nicru, Open-Source, php, Red Hat, seo, Typo3, ubuntu, win, windows, авто, администрирование, алгоритмы, алкоголь, бизнес, битрикс, видео, военмех, выборы, германия, джино, домены, интересности, исследования, картинки, кино, компьютеры, ливия, магазин, маразм, мастерхост, обработка-изображений, пейнтбол, политика, политэкономия, прикольное-видео, программирование, путешествия, работа, религия, рунет, сайтостроение, сео, сми, технологии, украина, форум, хиханьки, холивары, хостинг

Система управления контентом "ZIV-CMS" (PHP+MySQL+JavaScript)

07.10.2008

Реализация: php+MySQL+JavaScript.

Как и все прочие CMS система позволяет редактировать контент сайтов лицам, не имеющим знаний HTML и экономит время на разработку сайта .

В настоящее время эта CMS переживает уже третье поколение. Первая её версия вышла в 2002году. Основным мотивом создания этой системы послужило отсутствие в то время на рынке CMS с необходимой функциональностью по адекватной цене. CMS постоянно совершенствуется - новые релизы выходят почти каждый месяц.

Этот сайт и большинство сайтов в портфолио тоже построены на данной CMS. Данная CMS является моим основным инструментом, поэтому всегда будет в топе портфолио

На фото: в режиме редактирования - показаны основные поля настройки обычной текстовой страницы: заголовок страницы + блок контента

Идеология данной CMS.

I) CMS формирует любую страницу сайта в момент обращения к ней веб -сервера ("на лету").

оформление страницы отделено от её содержания, редактор страницы имеет дело только с контентом

для ускорения работы в CMS встроен 2-х уровневый механизм кеширования (подробнее механизм кеширования описан далее).

II) оформление страницы отделено от её содержания, редактор страницы имеет дело только с контентом :

любая страница состоит из:

  • контента - текста и фотографий, логически связанных с текстом - могут быть отредактированы с помощью CMS
  • элементов оформления (дизайна) - задаются при программировании сайта путём написания html-шаблона страницы (шаблон может быть один на весь сайт или назначаться для отдельной страницы или группы страниц).
  • в шаблон страницы могут быть встроены элементы (т.н.окна в макета), формируемые CMS из контента других заданных страниц (к примеру - энное количество последних новостей сайта, начальный фрагмент другой страницы, список страниц в подразделе сайта и т.п.).

III) контент любой страницы состоит из:

1) заголовка страницы - заголовок - это набор абстрактных свойств (параметров) страницы целиком,

например:

отображаемые параметры:

  • название страницы (произвольный однострочный текст) - отображается в тегах H1,
  • подзаголовок страницы (также произвольный однострочный текст) - отображается вместе с названием также и на карте сайта,
  • ссылка на страницу текущего подраздела (ссылка на уровень выше)
  • список других страниц, логически связанных с данной (так называемый "список подстраниц")

неотображаемые параметры:

  • наименование файла скрипта-обработчика страницы
  • наименования файлов скриптов, отображающих верхнюю, нижнюю, правую и левую вставки в контент страницы;
  • и т.д. - это может быть любая другая информация, используемая программистом сайта

В настоящее время в CMS обрабатывается около 40 различных параметров страницы.
любое из свойств может быть объявлено явно или "по-умолчанию":

    • - "по умолчанию" CMS (без объявления),
    • - "по умолчанию" сайта (объявление в настройках сайта),
    • - явное объявление в заголовке конкретной страницы или ленты.

2) 0 или 1 или более блоков информации (аналог блока- абзац текста),

каждый из которых может включать (а может и не включать):

  • заголовок блока (произвольная строка текста, выделенная особым стилем)-отображается в тегах H2
  • фотографию произвольного (заданного) размера, расположенную в заданном месте от текста (справа, слева или по-центру сверху от такста)
  • текст блока (произвольное количество текста),
  • произвольного объекта (файла или ссылки), которые открывается по клику по фотографии. Это может быть тоже фотография (форматы JPG, GIF, PNG) или документ MS Word, Excel, видео или аудио файл. Если это - фотография указанных форматов, то она открывается в новом окне браузера, фотография может сопровождаться комментариям,
  • набор неотображаемых параметров - правил порядка выдачи содержимого блока

любой из этих элементов блока может отсутствовать (как и все сразу). CMS выводит содержимое блока в указанной последовательности (заголовок-фотография-текст).


Быстродействие и описание механизма кеширования

1-й уровень кеша

хранит готовую страницу целиком (начиная от и до ) - время выдачи страницы с этого уровня составляет в среднем порядка 0,003сек, независимо от размера сайта
- (замеры производились для условий: виртуальный хостинг на мастерхосте, тариф "эффективный" или "специалист", объём сайта от 100 до 60 000 страниц).

1-й уровень кеша полностью сбрасывается при редактировании любой страницы

2-й уровень кеша

хранит:

  • контент сформированных страниц,
  • фрагменты страниц, фрагменты лент, меню - компоненты, которые используются при формировании образа страниц

при редактировании любой страницы со второго уровня кеша сбрасывается только те записи, которые содержат фрагмент или заголовок редактируемой

Формирование страницы "с нуля" (при отсутствии кеша на всех уровнях) происходит в среднем ( при тех же технических условиях ) примерно за 0,3 сек (для сайта размером 60 000 страниц), время зависит от количества страниц на сайте.

Такой двух-уровневый механизм применяется для того, чтобы обеспечить с одной стороны - быстродействие в высоконагруженных проектах (работает в основном 1-й уровень кеша) и обеспечить быструю сборку после редактирования страницы (работает в основном 2-й уровень)

Особенности данной CMS

  • произвольная форма планировки страниц - шаблон страницы - это html-файл, в котором особым образом помечены места для вывода контента и отображения автоматически формируемых элементов ,
  • свободная планировка зоны контента страниц - из CMS можно управлять взаимным расположением фотографий и текста на странице;
  • форма редактирования текста как в MS WORD - те же кнопки "жирный", "курсив", "подчёркнутый", выравнивание текста, списки, таблицы...
  • наличие множества типов функциональных модулей :
    • текстовая страница (текст+фотографии)
    • лента - группа обычных страниц (подраздел сайта), упорядоченных по дате или заголовку и "вложенных" в одну страницу - каталог,
    • фотогалерея - группа страниц (подраздел сайта), имеющих в контенте только фотографии и "вложенных" в одну страницу - каталог,
    • гостевая книга,
    • отправка почты с сайта,
    • страница голосований,
    • карта сайта,
    • и т.д...
  • естественные (человекопонятные) URL страниц - не http://site.ru?page=235, а http://site.ru/portfolio/coding.htm ;
  • о ткрытая архитектура - дополнительные модули очень легко интегрируются в систему - достаточно положить скрипт в отведённую папку и прописать имя скрипта в отведённом поле свойств страницы.
  • быстрая установка - имеется инсталлер,
  • система резервного копирования и восстановления, миграции, система обновлений модулей CMS;
  • возможность многопользовательской работы с сайтом (на время редактирования страница блокируется от других редакторов, при этом остаётся доступной для просмотра);
  • 5 видов доступа к CMS :
    • 1-обычный просмотр страниц,
    • 2-просмотр страниц в режиме "для печати" (отображается только контент, без элементов дизайна)
    • 3-просмотр защищённых паролем страниц (в CMS используется собственная система паролей),
    • 4-редактирование страниц сайта ("режим редактора сайта")
    • 5-административная панель сайта - ("режим администратора сайта") - администратор может менять права редактору, изменять гловальные настройки сайта (настройки, общие для всех страниц), добавлять дополнительные модули в CMS;
  • возможность установки разных прав разным пользователям -редакторам (можно устанавливать ограничения как по доступу на разные страницы, так и разные права в рамках одной страницы), права могут быть выданы как на страницу, так и на каталог с подкаталогами;
  • возможность работать с шаблонами страниц
  • загрузка и ресайз фото , назначение переходов по клику на фото;
  • обработка фотографий при закачке на сайт (наложение логотипа, обрезка)
  • загрузка на сайт файлов и таблиц ,
  • установка редиректов - автоматических переходов со страницы на страницу - сразу или по тайм-ауту,
  • паролирование страниц, каталогов, шифрование паролей для передачи по сети 96-байтовым сеансовым ключом,
  • защита от брутфорса ,
  • и т.д. (очень много настроек)

На фотографии : - настройка показа списка вложенных страниц (находящихся в иерархии страниц сайта дальше текущей от заглавной страницы сайта)

Информация для SEO

Информация для оптимизаторов сайтов:

  • Hазвание страницы - выдаётся в теге h1. Оно же - используется в тегах "title" страницы и "alt" картинок.
  • Заголовок блока - в тегах h2. Он так же добавляется в "alt" картинки своего блока.
  • Первые 1000 символов контента страницы (включая название и подзаголовок страницы, заголовки абзацев) используются для наполнения мета-тега "description".
  • Автоматически производится внутренняя перелинковка страниц текста по ключевым словам

В редакторском режиме можно посмотреть статистику ключевых слов на странице (ссылка справа-вверху на первом фото). Встроенный анализатор подсчитывает статистику слов, прописанных в параметре keywords страницы (эти же слова выводятся в мета-тег "keywords"). Анализатор правильно воспринимает одинаковые слова с различными грамматически верными окончаниями (встроен список всевозможных допустимых окончаний слов).

Например: слова "пейнтбольный" и "пейнтбольном" - будут распознаны как одинаковые, а "пейнтбол" и "пейнтбольный" - как разные.

Ограничения использования

CMS может использоваться только на хостингах, на которых работает связка PHP+MySQL (наверно, сейчас нельзя встретить Unix- хостинга, на котором не было бы тарифного плана с такой связкой).

Причём, желательна конфигурация PHP в виде модуля веб -сервера - в этом случае CMS может сочетаться со статическими страницами сайта, не требует дополнительной настройки сервера.

CMS на конфигурации PHP в виде CGI-скрипта (без дополнительных мод и настроек) внешне тоже работает корректно, но отправляет в заголовке внутренних страниц 404-ю ошибку, что препятствует нормальной индексации сайта поисковиками. Для устранения этой ошибки требуется mod_rewrite Апача - требуется перенаправить все обращения к сайту на головной скрипт, но при этом перестают работать все статические страницы, находящиеся в корневой папке сайта (для причих папок RewriteEngine можно отключить: RewriteEngine off).

По умолчанию в дистрибутиве CMS RewriteEngine выключен - так прописано в .htaccess корня. Если кто-то пожелает использовать CMS на конфигурации PHP в виде CGI-скрипта, строки относящиеся к RewriteEngine следует раскомментить, но не забывайте - статические страницы станут недоступны.

В конце несколько скриншотов

Скриншоты административной панели ("режим администратора сайта")

раздел редактирования глобальных настроек сайта (настроек, доступных с каждой страницы).

раздел, показывающий список страниц сайта. При отображениии этого списка проверяется корректность структуры страниц. При появлении в структуре страницы, не имеющей ссылки на материнскую - появляется соответствующее предупреждение.

Имена страниц в таблице - это ссылки, ведущие в раздел редактирования параметров соответствующей страницы.

раздел редактирования параметров страницы

раздел, позволяющий редактировать таблицу стилей прямо на сайте.

раздел редактирования прав доступа редакторов сайта.

Любой редактор может иметь одну или несколько учётных записей (последнее нужно, чтобы дать доступ к разным, не связанным разделам сайта). Уровень прав доступа определяет, какие поля будут открыты для редактирования редактору сайта.

модуль обновления CMS (синхронизирует файлы CMS на сети сайтов с файлами на локальном компьютере);

модуль централизованного сбора резервных копий сайтов с удалённых серверов на локальную машину (снимаются дампы баз и скачиваются новые фотографии - отсутствующие на локальной машине) ;

дамп базы и фото копируются в директорию локальной копии сайта (копируются только фото, отображаемые в контенте, НЕ картинки-элементы дизайна сайта)

модуль статистики - позволяет отслеживать обновление контента в сети сайтов - предоставляет информацию о том кто, когда, какую страницу создавал или правил, каков объём контента на страницах, какие ссылки и ключевые слова на страницах размещены;

имеется также модуль централизованного управления сетью сайтов - можно централизованно внести настройки в группу сайтов, удалить/добавить аккаунт редактора, изменить пароль, запустить скрипт на каждом домене в сети сайтов;

Лицензионные условия

CMS передаётся в пользование бесплатно, с документацией, при заказе разработки одного или нескольких сайтов

При создании сайта на основе данной CMS обеспечивается техподдержка и обновления в течении года.

Просто так - "поковырять" - CMS не раздаю.

Скриншоты административной панели (