Ход работ
Подписаться на эту рубрику по RSS
Кастомизация виджетов
Воскресенье, 7 сентября 2008 г.Рубрика: MaxSite CMS -> Ход работ
Просмотров: 7923
Подписаться на комментарии по RSS
Помню как страшный сон: однажды мне нужно было сделать сайт на WordPress, в котором виджеты использовали разное оформление. Оформление менялось довольно серьезно: чередовались вначале один фон/цвет, потом - другой. Тогда выкрутился так: в виджетах прописал свои хуки на которые прицепил static-переменную, по которой и отслеживал четность/нечетность и менял css-класс блока виджета.
Плагин для Сапы и виджет галереи
Вторник, 2 сентября 2008 г.Рубрика: MaxSite CMS -> Ход работ
Метки: sape.ru
Просмотров: 5938
Подписаться на комментарии по RSS
Сейчас еще тестирую плагин для sape.ru, но думаю, что в ближайшей версии MaxSite CMS он уже будет присутствовать. Я постарался учесть опыт предыдущих саповских плагинов (своих), поэтому сейчас делал все в комплексе.
То есть на странице плагина будет подробнейшая инструкция, что и как делать. Если кратко, то загружаем каталог из архива в сапе, а потом идем в настройки плагина и все остальные действия можно делать уже в нем. Можно включить/отключить. Можно разрешить контекстные ссылки. Можно включить тестовую проверку размещенного кода. Сам вывод ссылок возможен с помощью виджетов, причем поддерживается возможность сапы разбивать ссылки на несколько блоков (количество ссылок указывается в виджете). А можно прописать блоки прямо в шаблоне. Тут на выбор вебмастера. Кстати в виджетах в режиме проверки выводится сообщение о правильно установленном коде. Кажется этого нигде еще нет. ![]()
Еще сделал виджет для вывода галереи. В виджете нужно выбрать каталог галереи и после этого случайным образом выводятся изображения в виде миниатюр. В купе со стандартным загрузчиком всё должно работать автоматом. Количество изображений можно указать в виджете. Там же есть поля для css-стилей.
XML-sitemap и родительские страницы
Понедельник, 1 сентября 2008 г.Рубрика: MaxSite CMS -> Ход работ
Просмотров: 5795
Подписаться на комментарии по RSS
В будущую версию включу xml-sitemap, который как считается несколько ускоряет индексацию сайта поисковиками, и сообщает приоритеты и адреса. Я решил, что смысла в опциях для этого плагина нет, поэтому xml-карта создается из страниц не blog, страниц blog и всех рубрик. Думаю, что этого достаточно.
Еще доделал указание родительских страниц - это когда можно указывать родителя у любой страницы. В шаблоне автоматом выводится их ul-список. Также есть виджет. Правда функция получилась ресурсоемкая, поэтому пришлось её кэшировать.
Множество галерей/загрузок
Воскресенье, 31 августа 2008 г.Рубрика: MaxSite CMS -> Ход работ
Просмотров: 6315
Подписаться на комментарии по RSS
Думал, я думал и решил, что есть смысл из страницы Загрузки сделать примитивный файловый менеджер, только с акцентом на галереи. В итоге появилась возможность создать каталог в uploads. После этого автоматом появляется строка навигации, где каждый такой каталог по сути - отдельная галерея. Файлы отображаются только в текущем каталоге. Соответственно, при генерации кода галереи учитывается этот каталог.
Обновление будет доступно в новой версии MaxSite CMS.
В MaxSite CMS 0.20 будет галерея
Понедельник, 25 августа 2008 г.Рубрика: Ход работ
Просмотров: 5407
Подписаться на комментарии по RSS
В принципе это тестовая запись для тестирования галереи.
Галерея сделана на основе LightBox, а также переделанной страницы Загрузки. Там можно указать размеры для картинки, её миниатюры, а также описание. После загрузки можно выделить нужные файлы и сгенерировать код галереи. Потом добавить его в текст страницы.
Дальнейшие планы
Четверг, 14 августа 2008 г.Рубрика: MaxSite CMS -> Ход работ
Просмотров: 3822
Подписаться на комментарии по RSS
В целом последняя версия MaxSite CMS (0.19) уже обретает более-менее законченные формы. Конечно же говорить о завершении этапа разработки пока рановато, но в каких-то направлениях основные работы практически завершены.
Скоро выйдет MaxSite CMS 0.19
Вторник, 12 августа 2008 г.Рубрика: MaxSite CMS -> Ход работ
Просмотров: 4067
Подписаться на комментарии по RSS
Потихонечку подготовил следующую версию MaxSite CMS. Изменений получилось довольно прилично, но более подробно расскажу когда выложу архив для загрузки. Пока же добавил несколько плагинов и виджетов. Можно потестировать и, если будут глюки, оставьте, плз, комментарий.
Пробуем jQuery
Среда, 16 июля 2008 г.Рубрика: MaxSite CMS -> Ход работ
Просмотров: 6073
Подписаться на комментарии по RSS
В состав MaxSite CMS начиная с версии 0.17 будет входить jQuery. Для примера я подключил эфекты ссылок. Для этого правда требуется дополнительная библиотека эффектов. Скорее всего в комплект включу только самые-самые, а по отдельной ссылке с оффсайта можно будет скачать полную версию.
Тестируем регистрацию комюзеров
Среда, 16 июля 2008 г.Рубрика: MaxSite CMS -> Ход работ
Просмотров: 4741
Настроение: Довольный
В колонках звучит: 101.ru - русские песни
Подписаться на комментарии по RSS
Сегодня добавил возможность регистрироваться для комментариев. Получается двойная схема: если вы просто хотите оставить комментарий и не горите желанием потом вновь возвращаться на сайт, то вы выбираете «Аноним», указываете свое имя и публикуете комментарий.
Второй путь для тех, кто хочет иметь на сайте свою страницу и однозначно себя идентифицировать. Для этого нужно указать свой email и пароль. Сразу же пишете свой комментарий. Я отключил премодерацию для всех, но вообще в админке есть возможность её включить.
Несколько добавлений в MaxSite CMS
Четверг, 10 июля 2008 г.Рубрика: MaxSite CMS -> Ход работ
Просмотров: 4029
Подписаться на комментарии по RSS
Сделал плагин антиспама. В нем можно указать список запрещенных IP и запрещенных слов. Можно включить запись лога в файл (имя можно задать своё). Вообще можно было бы подумать какие хитрости придумать, но пока ничего в голову не лезет. Этот антиспам срабатывает сразу. То есть даже не пропускает комментарий. Я для примера задал слово spam. Можно потренироваться. ;)
Еще сделал плагин, подключающий кнопки форматирования для формы комментариев. Кнопок можно задать сколько угодно, а js-код я переделал из WordPress-плагина Alex King'а. (Во всяком случае так указано в копирайте).
Сама форма немного изменилась - сделал её по всей ширине. Наверное так будет удобней.
Комментарии теперь проверяются на опубликованность. То есть теперь дважды один и тот же коммент не пройдет.
Еще осталось сделать несколько изменений и после этого выложу очередную версию.
В будущей версии MaxSite CMS нас ожидает...
Воскресенье, 22 июня 2008 г.Рубрика: MaxSite CMS -> Ход работ
Просмотров: 4211
Подписаться на комментарии по RSS
Планирую скоро выложить версию 0.16 MaxSite CMS.
- Добавлена возможность кастомизировать главную страницу дефолтного шаблона. Об этом я написал в предыдущей записи.
- Немного изменилась процедура проверки залогиненности юзеров. Раньше она проверялась только один раз за сессию, теперь каждый раз. То есть, даже если взломать куку и указать признак залогиненности, эффекта это не даст - всё-равно будет произведена проверка логина и пароля. Минус только один - дополнительный запрос к БД.
- Улучшена работа кэша. Теперь в кэше можно создать свой каталог (с правами на запись!) и при сбросе кэша - ваш каталог останется целым. Если же нужно сбросить весь кэш, что случается крайне редко, то указывается дополнительный параметр: mso_flush_cache(true);
- Вывод виджета осуществляется только если есть что выводить. Например, если в текстовом виджете нет никакого текста, то виджет выведен не будет. А то раньше «висели» оформляющие блоки виджетов.
- Добавлена возможность ссылаться на страницы по их ID. Например http://site/17 - будет выведена страница с ID=17.
- Откатился на CodeIgniter 1.6.1. Нет у них совместимости с предыдущими версиями, да и глюки новой (1.6.2) замучили.
- Сделал виджет «Ссылки». Всё-таки решил я отказаться от ссылок в админ-панель, поскольку вывод этих ссылок всё-равно в виджетах. Можно указать адрес, название ссылки, noindex и nofollow и target = _blank для каждой ссылки.
- Добавлены новые возможности при получении записей для функции mso_get_pages. Теперь можно указать список рубрик для главной, и номер одиночной записи. По мере потребностей я буду добавлять другие параметры.
- Сделал виджет «Облако рубрик». Работает и настройки почти такие-же как и в «Облаке меток».
- Сделал плагин безопасности «Admin IP». Принцип его работы таков: можно указать список IP, с которых разрешен доступ в админ-панель. Если IP не совпадает, то доступ запрещается. На тот случай, если сменится IP самого админа, то можно указать секретный URL, перейдя по которому список разрешенных IP очищается.
Всё это будет доступно в версии 0.16. Пока идет тестирование, после этого выложу архив для скачивания.
Непонятные проблемы...
Среда, 28 мая 2008 г.Рубрика: CodeIgniter -> Ход работ
Просмотров: 4261
Подписаться на комментарии по RSS
Что-то явно не так в CodeIgniter. Столкнулся с серьезной проблемой, которую так и не могу побороть. Дело в XmlRPC, хотя я думаю, что в каких-то ситуациях дело не только в этой библиотеке. Скорее всего существует ошибка при подключении разных классов в основном контролере. То есть когда я в основном контролере передаю управление во вьювер, то в этом вьювере, при условии, что должен подключиться еще один класс (через new), начинают твориться странные вещи.
Я уже писал, что не смог перейти на 1.6.2 из-за того, что XmlRPC вдруг перестала видеть базу данных. Все попытки вручную её прописать, все равно не срабатывают - в основном контролере она есть и дальше, хоть тресни, не видно.
Сегодня столкнулся с аналогичной проблемой, только на другом хостинге. XmlRPC опять напрочь отказывается работать. И опять проблема с подключением классов. На сей раз вылезает ошибка:
Fatal error: Cannot redeclare class ci_session in /.../system/libraries/Session.php on line 0При этом если прописать библиотеку в автозагрузку, никакого эффекта. Поэтому пришлось отключить автозагрузку и прописать подключение библиотек вручную. При этом, что интересно, хотя в основном контролере все прописано, а в XmlRPC стоит и «parent::Controller();» и «$CI = & get_instance();» (и каких только вариантов я не перепробовал), все равно происходит какая-то ошибка и база опять отваливается.
Впрочем есть у меня предположение, что дело здесь вовсе не в CodeIgniter и моих кривых ручках, а самом хостинге. Проблема возникает на хостинге с PHP 4.4.8. На локальной машине и на другом хостинге, где стоит PHP 5.2 подобных проблем не наблюдается.
Собственные опции шаблона
Суббота, 24 мая 2008 г.Рубрика: MaxSite CMS -> Ход работ
Метки: опции
Просмотров: 4345
Подписаться на комментарии по RSS
Как я уже писал, опции я реализовал в виде ini-файла. Основные преимущества такого подхода в том, что можно с помощью простого ini-файла создать или поменять любые настройки сайта. То есть вместо «вшивания» настроек в «движок» мы выносим их в отдельный описательный файл.
Точно такой же способ я реализовал и для настройки шаблона. Попробую объяснить что я хотел добиться на примере WordPress.
Для примера можно рассмотреть такую настройку как количество записей для вывода на главной. В WordPress данная опция определена в самой админке. Кажется, что все логично, но предположим я хочу выводить разное количество записей для главной и для страницы рубрик. Что делать? В WordPress нужно лезть в шаблон и прописывать query_posts(). Согласитесь, малоэлегантное решение.
Опции в MaxSite CMS
Четверг, 15 мая 2008 г.Рубрика: MaxSite CMS -> Ход работ
Просмотров: 3719
Подписаться на комментарии по RSS
На днях я доделал опции. Вы наверное удивитесь, посколько опции (или настройки) являются ключевым узлом любой системы. Нет, конечно какие-то минимальные настройки изначально присутствовали, но цельного механизма еще не было.
Дело в том, что опции сами по себе очень сложный механизм. Прежде всего из-за их крайней негибкости. Я приведу в качестве примера WordPress.
В нем предусмотрены настройки, вроде адреса админа, титула, описания, временной зоны и т.п. Все эти опции жестко прописаны не только в шаблоне, но и в базе данных (имеется ввиду обновления, установка). В принципе всё нормально, за исключением одной мелочи: практически нереально предусмотреть свои варианты.
Ну предположим, мне хотелось бы внести опцию для ключевых слов (meta description). Никакого «легального» способа добавить эту настройку в WordPress нет. В самом лучшем случае вы сделаете это через отдельный плагин.
Другой пример - мета-поля в записях/страницах. Мне бы хотелось сделать отдельное поле для ключевых слов для любой страницы. Для этого можно завести мета-поле и в нем уже указывать нужное значение. Конечно же это потребует программировать шаблон, но в целом задача решаема.
Проблема здесь только в том, что метаполя в WordPress очень неудобно реализованы. Хотя что мешает сделать их в виде, аналогичном, скажем выбору рубрик?
Визуальный редактор
Воскресенье, 11 мая 2008 г.Рубрика: Ход работ
Просмотров: 5941
Подписаться на комментарии по RSS
Похоже, что я несколько погорячился, решив, что визуальный редактор можно оставить на потом и отладить его работу. Исходил из того, что в случае каких-то проблем, всегда можно подправить его код. Но я ошибся.
Первоначально я взял редактор FreeRTE. Всё в нем замечательно: и оформление, и настройки, но в процессе работы возникло несколько проблем. Главная из них в том, что спецсимволы, которые с лихвой присутствуют в PHP и которые я публикую, не совсем корректно обрабатываются этим редактором. Даже когда я перехожу на закладку «Код», все равно некотоыре символы неверно кодируются.
Основная проблема, как оказалось, кроется в кавычках, которыми экранируются спецсимволы. Получилась солянка: на стороне сервера я делаю правильное html-кодирование, на стороне браузера уже работает JS, со своими особенностями. Поэтому «серверные тексты» нужно отдавать редактору уже в его формате.
Ситуация значительно усложнилась из-за того, что редактор не имеет textarea-элемента. Поэтому тексты нужно передавать как одну из JS-переменных.
В общем намучавшись с кодированием туда-сюда, я решил сменить визуальный редактор.
Сделал все плагины виджетными
Вторник, 6 мая 2008 г.Рубрика: MaxSite CMS -> Ход работ
Просмотров: 4104
Подписаться на комментарии по RSS
Впрочем только те, которые действительно могут быть виджетными. ![]()
Создание виджетов оказалось совсем простым делом, не сравнится с WordPress, где это сложней.
Еще оказалось, что плагин Twitter'а отлично подходит как грабилка RSS. Для примера подключил трансляцию со своего сайта.
И главное. Немного доработал функцию рубрик, чтобы можно было указать список исключающих и включающих рубрик. Это нужно, чтобы сделать группы рубрик. Сейчас это «MaxSite CMS» и «Блог».
Сменить ли визуальный редактор?..
Понедельник, 5 мая 2008 г.Рубрика: Ход работ
Просмотров: 3389
Подписаться на комментарии по RSS
Для своей системы использую FreeRTE. В принципе работает он неплохо за исключением одной мелочи. Для передачи параметров используется JS, включая и передачу самого текста. То есть сам текст передается в js-скрипте. Получается довольно серьезная «петрушка» с кавычками и служебными символами, например &. Сюда же приплюсовываются и отображение тэгов.
Я вроде бы смог настроить нормальное преобразование, как опять выяснилось, что скажем обычный html-комментарий преобразуется в символьное представление (html-спецсимволы). Причем это происходит в режиме «Код»...
Я конечно еще буду разбираться, но вдруг, если у кого есть опыт или наработки визуального (с переключением на просмотр кода) редактора, буде очень признателен за ссылку. Варианты с TinyMCE и им подобные не предлагать. Главные требования, чтобы редактор был простым и небольшим по объему: где-то до 100-200Кб.
Добавил управление файлами
Воскресенье, 4 мая 2008 г.Рубрика: MaxSite CMS -> Новости -> Ход работ
Просмотров: 5903
Подписаться на комментарии по RSS
Эта функция была изначально запланирована, но только сейчас дошли руки. Или ощутил потребность. ![]()
Работает довольно просто. На отдельной странице выводится список всех файлов в каталоге «Uploads». Каждый файл можно выделить и удалить. Для картинок выводятся миниатюры. Рядом три поля с адресом, a-ссылкой и img-ссылкой. Это чтобы просто скопировать готовый код в редактор.

ps Забыл сразу дописать. Есть и поле для загрузки файлов. Там же.


