Очередная версия MaxSite CMS. В ней достаточно изменений, чтобы вы не задерживались с обновлением.
- Изменение в способе вызова Ajax-файлов. Раньше можно было использовать произвольное имя php-файла. Теперь строго формат «имя-ajax.php». Сделано это из соображений безопасности, поскольку аяксовский заголовок можно (теоретически) подделать и тем самым получить доступ к любому php-файлу. Теперь такое будет невозможно.
- Аналогично введен новый тип «require», с помощью которого можно подключить к системе произвольный php-файл. Формат «имя-require-maxsite.php». Использовать можно например при динамических css-стилях. Пример:
Подключаем стили (шаблонный header.php): <link rel="stylesheet" href="<?= getinfo('require-maxsite') . base64_encode('templates/' . getinfo('template') . '/style-require-maxsite.php') ?>" type="text/css" media="screen"> Файл в шаблоне: style-require-maxsite.php <?php if (!defined('BASEPATH')) exit('No direct script access allowed'); header('Content-type: text/css'); $a_color = 'green'; echo "a {color: $a_color;}"; ?>
- Новый плагин Mail Send. C его помощью можно организовать массовую рассылку по указанным адресам.
- Реализована рассылка на новые комментарии. В предыдущих версиях MaxSite CMS были введены опции подписки в профилях комюзеров, теперь я сделал саму рассылку. Чтобы подтвердить подписку комюзер должен зайти на свою страницу и отметить нужные опции.
- Так же добавлена опция рассылки в модерацию комментария.
- В настройках редактора появились дефолтные значения для «Разрешить комментарии» и «Разрешить RSS».
- Изменен алгоритм подключения мета-полей в визуальном редакторе. Теперь вначале подключается meta.ini из дефолтного шаблона, потом свой. Сделано для того, чтобы не дублировать по шаблонам дефолтный meta.ini. Для того, чтобы в вашем шаблоне отключить отображение дефолтных мета-полей, следует их указать пустыми секциями.
- В мета-полях можно использовать PHP-функцию. (PHP_START функция PHP_END)
- В мета-поля можно добавить произвольный код по хуку «admin_page_form_add_all_meta».
- Перед рубриками можно добавить свой блок по хуку «admin_page_form_add_block_1».
- В функцию mso_admin_plugin_options() добавил последним параметром произвольный текст, который будет выводиться вместо «Вернуться на страницу плагинов». Грубо говоря можно настроить плагин так, чтобы страница опций была в меню без отображения этой надписи, что позволяет упростить создание страниц настроек.
- В формы визуальных редакторов добавлен «enctype="multipart/form-data"». Задел на будущее, чтобы можно было грузить картинки сразу при публикации страниц.
- В SQL-запросах используется не указание даты с помощью PHP (функция date), а sql-функция NOW. Тем самым, если включить DB-кэширование CodeIgniter, получится 0 запросов к базе данных. С учетом того, что в MaxSite CMS используются несколько тяжелых join-запросов для некоторых серверов выигрыш в нагрузке будет ощутим.
- При использовании getinfo() для «name_site», «description_site», «title», «description» и «keywords» происходит обработка htmlspecialchars() с целью преобразования «конфликтных» символов в их html-аналоги (например кавычки).
- В настройках сайдбаров в условиях отображения виджетов можно использовать глобальную переменную $page. Это может понадобиться, например при определении условия типа страницы, slug и т.д. То есть всё, то что входит в массив $page.
- Функция mso_mail() теперь принимает вложения, а также можно задать способ вывода отладочной информации (при ошибках).
- При задании меню можно указать title: «адрес | название | подсказка».
- Исправлена ошибка зацикливания при переходе на logout с чужого сайта.
- Улучшен алгоримт работы с ini-файлами. Раньше каждая опция при изменении/получении требовала одного запроса к БД. Теперь все выполняется парой запросов.
- Новые функции для работы с мета-полями: mso_parse_ini_values() и mso_find_options_key().
- В mso_get_pages() можно указать смещение времени в параметре «time_zone». Мне он потребовался, чтобы задавать смещение в SQL-запросах (учет временной поправки).
- В mso_get_pages() для типа «tag» можно дополнительно задать meta_key и meta_table для получения страниц с заданными мета-данными. Если нужно задать meta_value, то это slug.
- В mso_get_pages() новый хук «mso_get_pages», котором можно поменять все входящие параметры.
- В mso_get_pages() можно задать type в виде массива. Это если нужно сделать выборку по нескольким типам сразу (например static и blog).
- В mso_get_pages() можно задать параметр «pagination_next_url», который отвечает за «признак» пагинации.
- В настроках шаблона добавил опции для блока "Еще записи этой рубрики".
- Немного изменил model.sql: добавил новые ключи и убрал ключи с fulltext. По-идее это улучшит поиск и уменьшит размер базы. Для уже установленных сайтов ничего менять не нужно.
- Изменен index.php шаблона default. Раньше нужно было вручную прописывать и подключать файлы типов данных и т.д. Теперь будет автоматически подключаться файл типа текущего шаблона. Если его нет, то из default. Если система определила тип как page_404, то на основе входящего url будет произведен поиск одноименного файла в текущем шаблоне, и, если нет, в дефолтном. Короче говоря, теперь все работает и подключается автоматом.
Комментариев: 11 RSS
1Аноним19-12-2009 05:52
Обновился, опять common.php пришлось править, чтоб на нестандартном порту заработало. А ток всё нормально вроде, будем тестить рассылки
2Максим19-12-2009 06:11
Порт будет учитываться в следующем латест.
3Аноним20-12-2009 13:45
Не выводит последние записи ни в дефолтовом шаблоне ни в своем
4masterСайт20-12-2009 18:42
В этой строке была опечатка:
было:
надо:
5Максим20-12-2009 20:46
Поправлю.
6GTAlexСайт23-12-2009 07:59
было бы здорово, если в данные демо-сайта были встроено побольше плагинов и виджетов, а то скудновато выглядит после инсталяции
7vargrup23-12-2009 12:43
Где находится файл и как он называется в котором вот эта опечатка?
if (isset(and $arg['preferences']['print_debugger']) and $arg['preferences']['print_debugger'])
8masterСайт23-12-2009 14:24
в фале модуля smtp_mail
application/maxsite/plugins/smtp_mail/index.php
9Denis23-12-2009 15:43
в страницах footer header нужно применить по окончанию flush(); с 500мс упало до 200мс
Читаем Flush the Buffer Early
http://developer.yahoo.com/performance/rules.html
10Максим23-12-2009 17:30
Точно! Если в шаблоне указать
то время загрузки уменьшается. Нужно еще проверить как работает буферизация с глобальным кэшем, но выглядит заманчиво. Спасибо за наводку. :)
11masterСайт23-12-2009 17:34
точно-точно минус 600мс на моем vds
будем юзать