На днях я доделал опции. Вы наверное удивитесь, посколько опции (или настройки) являются ключевым узлом любой системы. Нет, конечно какие-то минимальные настройки изначально присутствовали, но цельного механизма еще не было.
Дело в том, что опции сами по себе очень сложный механизм. Прежде всего из-за их крайней негибкости. Я приведу в качестве примера 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. Система будет бесплатной. Качать смогут все.