Бесплатная CMS для вашего сайта Разумная альтернатива WordPress

Опции в MaxSite CMS

15-05-2008Reading time ~ 3 min.Roadmap 11389

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

Дело в том, что опции сами по себе очень сложный механизм. Прежде всего из-за их крайней негибкости. Я приведу в качестве примера WordPress.

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

Ну предположим, мне хотелось бы внести опцию для ключевых слов (meta description). Никакого «легального» способа добавить эту настройку в WordPress нет. В самом лучшем случае вы сделаете это через отдельный плагин.

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

Проблема здесь только в том, что метаполя в WordPress очень неудобно реализованы. Хотя что мешает сделать их в виде, аналогичном, скажем выбору рубрик?

Когда-то я рассказывал о плагине «rc:custom_field_gui» и моем варианте «MaxSite - Произвольняе поля». Если кратко, то этот плагин позволяет описать нужные вам поля в ini-файле, который будет выведен под редактором. Поддерживается типы:

  • одиночное текстовое поле (input)
  • * многострочное текстовое (textarea)* выпадающий список (select)* отметка (checkbox)* выбор одного варианта из нескольких (radio)

Ini-формат совсем несложный, поэтому разобраться и создать свои поля совершенно несложно.

Вот именно такой способ я и решил использовать для опций в своей CMS. Схема работы очень проста: указываем параметры в ini-файле и они автоматом появляются в админ-панели.

В чем преимущества такой схемы? Прежде всего нет абсолютно никакой привязки опций к «движку» - какие именно опции, решает администратор. Если нужно ввести какой-то новый параметр, он добавляется в течение нескольких минут, причем никакого программирования и переделки не требуется.

Аналогичный способ я использовал и в метаполях в редактировании страниц. Необходимые поля указываются в ini-файле и они автоматом отображатюся под редактором. В отличие от WordPress, они выглядят как обычные блоки/формы: пользователю не нужно вводить название или тип метаполя.

На данный момент реализовано две таких страницы. Первая - это «Основные настройки». Вторая - метаполя в редакторе. Будет еще одна страница, работающая по этому же принципу, которая позволяет вынести опции шаблона в админ-панель.

О последнем немного подробней (как это реализовано сейчас, в процессе может что-то поменяться).

Итак. Есть плагин «Template options» - его необходимо активировать. Появляется пункт меню в админке «Настройка шаблона». Перейдя на эту страницу, система найдет в каталоге текущего шаблона ini-файл и создаст на его основе необходимые опции. К слову сказать, на этой странице можно будет выводить не только поля ini-файла, но и любые другие. Для этого предусмотрен специальный файл «options.php».

То есть с помощью такого механизма можно вынести настройки любого вида в админ-панель.

Related Posts
Comments (6) RSS
1 igrok54 2008-05-16 04:51:58

Max, в вордпрессе в поле meta description и meta keywords можно прописать на основе title страницы, я так делаю, + еще если титл красиво написан (не так как в дефолтном шаблоне, пошире, я наткнулся в одной из тем Молио и везде переписываю теперь) и для keywords и description его вывод немного подредактировать...


2 Максим 2008-05-16 09:34:11 admin

Если говорить именно о WordPress, то я и сам давно использую свою функцию по формированию титла. Но многие хотят задавать титл вручную для конкретных записей. Именно этот вариант я и предлагаю.


3 igrok54 2008-05-16 21:47:50

Тогда я бы еще подумал о такой приблуде, которая автоматически считывает текст статьи, подсчитывает повторы слов и выводит наиболее повторяющиеся слова для редактирования и последующего добавления в качестве ключевиков и тегов.

Мысль сырая, пришла в голову по прочтении ответа на коммент.

Кстати, не знаешь ли подобного или отдаленно похожего плагина к WP?


4 igrok54 2008-05-16 21:53:14

Не нашел возможности зарегистрироваться на сайте. Ссылки на вход есть, а на регистрацию нет... Или функция еще не готова к использованию?


5 Apple_is_Apple 2008-05-18 12:51:37

Странно что из формы коммента убраны емайл и url(конечно же я вставляю только правильные урлы ведущие на мой блог), чтож хозяин = барин:)

Я уловил концепт того, что ты собрался сделать. Впечатлило нафиг.

Нет, серьезно, меня убивает в WP то что встроенные настройки всегда есть и ими никогда не пользуюсь, кроме первого раза. А для всего остального юзаю плагины.

А вот если я смог бы делать для себя свой вариант стандартных настроек(как я понял почти об этом речь), то я был бы счастлив.

И еще, твоя система будет платной, условно-платной или качайте ребятки на здоровье?


6 Максим 2008-05-18 19:52:20 admin

Так, по порядку.

1. Форма для комментариев пока содержит имя для анонимов. Это для тех, кто случайно забрел и решил что-то написать. У них нет возможности указать ни email, ни сайт. Отслеживание новых комментов доступно по rss: либо по общей ленте, либо по ленте к этой записи.

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

2. Опции, как я уже написал можно будет использовать где угодно. Будет ли это плагин, виджет или сам шаблон, не имеет значени. Везде используется один принцип.

3. Система будет бесплатной. Качать смогут все.

Leave a comment!