Современная, быстрая и удобная система управления сайтом

Опции в MaxSite CMS

Архив записейКомментарии: 6Просмотров: 11149

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

Дело в том, что опции сами по себе очень сложный механизм. Прежде всего из-за их крайней негибкости. Я приведу в качестве примера 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».

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

Комментариев: 6 RSS

1igrok5416-05-2008 04:51

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

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

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

3igrok5416-05-2008 21:47

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

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

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

4igrok5416-05-2008 21:53

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

5Apple_is_Apple18-05-2008 12:51

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

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

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

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

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

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

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

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

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

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

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

Оставьте свой комментарий!

Комментарий будет опубликован после проверки

Вы можете войти под своим логином или зарегистрироваться на сайте.

(обязательно)