maple4


Создание своей CMS - очередной велосипед? Или шаг в карьере?

Каждый человек должен построить дом, вырастить сына, посадить дерево. Веб-программист - должен создать свою CMS.

Я не говорю, на чем она будет создаваться (PHP, ASP,...), это не имеет никакого значения.
Я не говорю, стоит ли это делать вообще, ведь многое уже создано ранее да еще и распространяется бесплатно.
Я не касаюсь аутентификации, авторизации, регистрации и прочего - всего, что связано с правами и возможностями пользователя. Как это все будет реализовано - отдельная тема (например - с помощью тегов). Для простоты понимания - в дальнейшем будет обсуждаться ТОЛЬКО пользователь с возможностью изменения структуры сайта и заметок к нему. Для остальных такая возможность закрыта.

Поэтому, сразу к сути (вариант проекта своей собственной CMS).

1. Сайт строится на основе некой структуры (ВНЕЗАПНО!), группе страниц, организованных в виде дерева .
Но, общее количество таких страниц не означает, что только они и будут. Структура - только основание.

2. Заметка - мельчайшая частица информации для построения сайта. Лист для дерева :)
Зайдя на сайт без заметок, можно будет перемещаться между страницами (вся навигация строится автоматически на основе структуры, но это НЕ ЕДИНСТВЕННЫЙ способ организации навигации, о чем будет рассказано чуть ниже), и - как бы и всё.

3. ЛЮБАЯ страница строится на основе шаблона.
Шаблон - обычная HTML-страница с размещением в необходимых местах специальных меток (поля редактирования).
Наличие метки означает, что в этом месте будет организован вывод единичных заметок ИЛИ группы заметок, отобранных по какому-либо критерию (например, последние десять новостей сайта).
Кроме того, существуют шаблоны для вывода отдельной заметки, просто группы заметок, или группы заметок, организованных по фильтру или иному принципу (ниже).

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

4. ЛЮБАЯ заметка может иметь тег или несколько тегов, которые виртуально "группируют" заметки.
Одна и та же заметка может входить в разные группы, например "Россия" "Новости" "Спорт" "Олимпиада".
Когда, в какой момент времени будет формироваться страница для вывода таких групп? Ведь в структуре этого НЕТ?
ВОТ. И это самое интересное. Опять же, ниже.

Открыв страницу структуры в самом начале редактирования мы видим пустую страницу с возможностью добавления заметки (или группы заметок).

На одной странице может быть несколько полей редактирования - Заголовок, Подвал, Основное поле ввода, Левая часть, Правая часть, ЧТО-ТО ЕЩЕ.

Название страницы в заголовке уже есть, как и адрес страницы - все это задавалось во время создания/изменения структуры.
Кроме того, присутствуют общее меню для навигации между страницами структуры (вверху), меню дочерних страниц (чуть ниже) ну и меню группы страниц (например, слева или справа), к которой страница принадлежит.
Ну и однострочное меню - показывает расположение страницы в корне.
Все меню строятся автоматически (повторюсь) на основе структуры сайта.

Допустим, необходимо внести какой-то текст, к примеру "Hello, World!" в основном поле редактирования.

И тут оказывается, что внести просто текст НЕЛЬЗЯ.

Зато можно добавить заметку с любым заголовком (вывод заголовка настраивается - нужно это или нет, датой/временем - аналогично, и прочее) и собственно с текстом "Hello, World!" с нужным форматированием и рисунками к нему.
Сохраняем заметку - и она уже появляется на самой странице.

Почему так сложно? Можно же было все реализовать и без этих заметок?

Такой способ только кажется сложным. А в дальнейшем появляется куча преимуществ:


  • Любую заметку можно использовать многократно. Заметка - часть общего фонда.
  • Заметки можно добавлять на страницу в виде ленты заметок - отобранных по фильтру (по тегу/тегам/сложному правилу и/или по времени).
  • Добавленные заметки/ленты заметок могут выводиться с заданным порядком - новые сверху или наоборот (соответствующая настройка).
  • Если заметок в поле редактирования много - автоматически строится навигация к ТОЙ ЖЕ странице структуры проекта (но с другими параметрами в адресной строке) для отображения следующего списка заметок/группы заметок (настройка по максимальному количеству на странице).
  • Заметка может выводиться полностью или частично (клик по "Далее" приведет к открытию полной версии заметки), причем открытие страницы в новом/том же окне - уже с навигацией по своей группе заметок (например по "Новостям") - опять же с настройкой.
  • Заметка может иметь один/несколько тегов. Их отображение настраивается. Клик по тегу ведет к открытию заметки или всех заметок по выбранному тегу (настраивается тип открытия и максимальное количество на странице) с навигацией.
  • Так как сами теги ТАКЖЕ МОЖНО группировать в виде деревьев - может отображаться одно из деревьев тегов (настраивается). Клик по любой ветке дерева тегов приведет к отбору/отображению (настройка) сразу по группе тегов - опять же со всей сопутствующей навигацией.
  • Заметка, так же как и страница структуры, может иметь свой особый шаблон (настройка).


5. Более подробно
Поле редактирования - признак того, что здесь может быть что-то расположено.
Но, в случае изменения настроек отображения поля редактирования или добавления чего-либо - в поле редактирования появляется лента объектов.
Заметка, группа заметок (выбранных по критериям и отсортированные в определенном порядке), меню, система комментирования, отдельные фотографии или группы фотографий (галереи фотографий - фото, отобранные по определенному признаку), еще что-то - это все объекты.

Поле редактирования может НЕ ИМЕТЬ ленты объектов, если параметры отображения, выставленные "по умолчанию", устраивают пользователя.
К примеру, поле редактирования Header по умолчанию выводит в самом начале при помощи объекта MainMenu основное меню для навигации по основной структуре сайта.
Если не отменять вывод этого меню - ленты как таковой и не понадобится. В ином случае - т.е. необходимо отключить генерацию меню - появится лента, в которой и можно задать параметры отображения.

Еще пример - поле редактирования GroupColumn - по умолчанию в самом начале, при помощи объекта GroupMenu формирует меню для навигации в группе страниц (к которой принадлежит отображаемая страница) по основной структуре.
Если же понадобится перед меню добавить что-то свое - появится лента объектов с уже включенным в нее этим объектом. А уже в самой ленте - можно с объектами что угодно: перемещать, разрешать/запрещать вывод (в том числе по правилам) или эти объекты удалять. Само поле редактирования GroupColumn может располагаться в шаблоне страницы в зависимости от дизайна в левой или правой ее части.

Еще пример - поле редактирования Footer. Располагается обычно в самом низу страницы. По умолчанию, при помощи спецобъекта ImportantPages выводятся, ссылки на определенные важные страницы - Начальную, Контакты, Поиск. Кроме того - после ссылок - выводятся Счетчики объектом Counters.
Если же нужно задать свой определенный текст (внести заметку), поменять параметры вывода или порядок отображения (какой выводится в первую очередь) - появится лента объектов с объектами ImportantPages и Counters.

Еще, как замечание - все манипуляции с объектами ведутся НЕПОСРЕДСТВЕННО на самой странице. Поменял-сохранил-тут же на этой странице увидел изменения. Да-да, Drupal-оподобный способ редактирования :) (ну, или как это реализовано в широко обсуждаемой теме).



Минусы:

  • Похожее уже реализовано (причем МНОГОКРАТНО. Забавно, да? Че это они велосипеды создают, а?).
  • Шаблонная система - как-то не профессионально (честно, я видел и такой аргумент).
  • Своя реализация прав по редактированию - и проблемы с администрированием.
  • Автоматическое формирование меню (у меня с этим проблем особых, кстати, не возникло).


Плюсы:

  • Простота создания шаблонов - на основе предлагаемых в том числе бесплатно или создаваемых лично. Достаточно в нужных местах разместить метки с полями редактирования. Кроме того - это повышает общую безопасность (вероятность взлома меньше, так как в других местах, кроме как в шаблонах, размещение полей редактирования ни к чему не ведет).
  • Своя реализация прав по редактированию.
  • Полный контроль над СВОИМ проектом - я время от времени вижу появление сообщений об очередном взломе/критической ошибке различных CMS. И это при том, что многие проекты распространяются бесплатно и в открытом коде.
  • В любом случае - создание своего - отличная практика.


Чем не личный Drupal, Joomla! или Wordpress?

ГРАЖДАНЕ!
Призываю всех не использовать данную тему для рекламы своих профессиональных качеств или переливанию из пустого в порожнее!
СПАСИБО!
добавлено: 12 мар 18 просмотры: 2345, комментарии: 1



CMS для сайта на чистом HTML

«Что, опять?»
Прогресс движется вперед семимильными шагами, но некоторые компании продолжают предоставлять хостинг без поддержки PHP.
Если отказываетесь от PHP, экономия, например, на nic.ru — сразу в полтора раза (сравнение минимального тарифа с ценой тарифа уже с поддержкой PHP).

Спрашивается, стоит ли экономить? И когда это вообще допустимо?

Представьте, что у Вас есть некий опросник. Если :


  • Сайт нужно создать БЫСТРО
  • Сайт будет (в ближайшее время — точно) представлять из себя сайт-визитку, с контактами, образцами продукции или оказываемых услуг, схемой проезда и временем работы
  • Нет времени (именно сейчас) заниматься настройкой и администрированием
  • Нет навыков при работе с HTML или PHP
  • Не хочется переплачивать за хостинг


… и выбрано хотя-бы два пункта — хостинг без PHP Вам подходит.
Да, WordPress или Joomla теперь не установишь.

Но я же и не призываю создавать сайт в блокноте (даже если Вы знаток HTML), зачем кидаться из крайности в крайность?

Сразу хочу указать на несколько нюансов, если все-таки попытаетесь это сделать (у меня есть знакомый, который утверждает о необходимости прохождения через «этот ад»):

  • Создание структуры сайта — любое ее изменение ведет к полному изменению внутренних связей между страницами.
  • Добавление раздела — смерти подобно.
  • Формирование меню с ссылками на страницы — та еще тема… Что должно попадать туда, как организовать простой доступ к дочерним подразделам, какова будет навигация в пределах одного раздела?
  • Наполнение контентом — добавление и редактирование, в том числе — работа с картинками. Мягко говоря — не очень просто, если вы не знаток языка разметки.
  • Обновление сайта на хостинге — кажется, что это не самая большая проблема. До тех пор, пока количество всех файлов не превысит пятидесяти штук. И наиболее простым решением окажется копирование ВСЕХ файлов проекта.


Да, я являюсь разработчиком бесплатной программы для создания/редактирования/публикации сайта, и сайт программы http://maple4.ru/ написан на ней.
Попытался в свое время реализовать навыки программирования на Visual FoxPro (кстати, внешний вид интерфейса для знакомых с FoxPro точно удивит), и уверен, что программа как минимум этим должна заинтересовать.


Ну а максимум… (для тех, кто с FoxPro не знаком)

Что реализовано:

  • Сайт строится на основе структуры. В любой момент можно добавить раздел сайта или необходимый уровень подраздела.
  • Все ссылки между страницами, меню (меню — в зависимости от стиля) и ссылки на дочерние разделы автоматически формируются в момент открытия страницы или при переходе по страницам внутри проекта.
  • Редактирование ведется в WYSIWYG-редакторе, при сохранении изменений — сразу же и с отображением на экране.
  • Редактирование HTML-кода никуда не делось (для знатоков), причем для удобства добавлен специальный объект, «защищающий» этот код от оптимизации редактором.
  • Есть специальный объект — NEWS — при использовании которого автоматически формируются не входящие в структуру проекта страницы (что значительно снижает объем обновлений) с новостями или обновлениями.
  • На локальном компьютере не нужно заниматься установкой/настройкой IIS, для запуска программы достаточно распаковать zip-архив в каталог с именем без пробелов внутри и запустить exe-шник maple4_ru.exe
  • Встроенный FTP-Connection опубликует сформированные статичные страницы на хостинге, причем сделает это интеллектуально — обновится только то, что добавилось или изменилось. Алгоритм обновления прост до безобразия (используется кэш для проверки), но эффект от этого очень значителен. К примеру, в контенте была допущена грамматическая ошибка. Исправляете/формируете и обновляется ТОЛЬКО та страница, где было исправление.
  • Программа оптимизирует состав файлов-рисунков таким образом, что не допускается их дублирование (т.е. рисунки с различными именами, но идентичные по составу — будут автоматически заменены одним файлом).
  • Не требуется знаний языков программирования, но для программистов на FoxPro есть бонус — можно использовать код языка для, допустим, обращения к базам данных с автоматическим формированием таблиц на их основе. Еще раз повторюсь, для работы с программой знать язык FoxPro обычному пользователю не обязательно.
  • Смена стиля в один клик. Есть возможность загрузки/установки стиля (доступно более 100 штук) прямо из навигатора программы. Изменение стиля не влияет на контент, так содержимое физически от стиля отделено. НО, обязательно требуется проверка окончательного результата, т.к. то, что отлично выглядело в одном стиле может выглядеть нелепо в другом.
  • Возможность редактирования файлов стиля — по сути, это обычные HTML-страницы с внедренными спец.объектами.
  • Ведение мета-тегов и статистика страницы по используемым словам.
  • Автоматическое создание sitemap.xml и robots.txt для более быстрой индексации сайта в поисковых системах.
  • Возможность публикации сразу на нескольких ресурсах.
  • Возможность автоматического формирования и публикации на хостинге — удобно, если при формировании используются базы данных и требуется обновление с некоторой периодичностью
  • Вишенка на торт — так как сайт использует чистый HTML, для опробования результата, сформированный проект без потери функциональности можно разместить даже на бесплатных хостингах


Ну и теперь самое главное — почему программа распространяется бесплатно http://www.maple4.ru/a_downloads_for_maple4_ru/maple4_ru.zip?
Поменялись жизненные приоритеты (можно не верить) ну и поменялась конъюнктура рынка - дорогие проекты все-таки строятся на PHP/ASP
добавлено: 12 мар 18 просмотры: 1997, комментарии: 0