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

MaxSite CMS 0.36

18-12-2009Время чтения ~ 4 мин.Versions 49152

Очередная версия 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 Anonymous 2009-12-19 05:52:28

    Обновился, опять common.php пришлось править, чтоб на нестандартном порту заработало. А ток всё нормально вроде, будем тестить рассылки


    2 Максим 2009-12-19 06:11:25 admin

    Порт будет учитываться в следующем латест.


    3 Anonymous 2009-12-20 13:45:42

    Не выводит последние записи ни в дефолтовом шаблоне ни в своем


    4 master 2009-12-20 18:42:48
    <br>[Sun Dec 20 21:38:15 2009] [error] [client 95.181.12.146] PHP Parse error:  syntax error, unexpected T_LOGICAL_AND

    В этой строке была опечатка:

    было:

    if (isset(and $arg['preferences']['print_debugger']) and $arg['preferences']['print_debugger'])

    надо:

    if (isset($arg['preferences']['print_debugger']) and $arg['preferences']['print_debugger'])

    5 Максим 2009-12-20 20:46:39 admin

    Поправлю.


    6 GTAlex 2009-12-23 07:59:24

    было бы здорово, если в данные демо-сайта были встроено побольше плагинов и виджетов, а то скудновато выглядит после инсталяции


    7 vargrup 2009-12-23 12:43:28

    Где находится файл и как он называется в котором вот эта опечатка?

    if (isset(and $arg['preferences']['print_debugger']) and $arg['preferences']['print_debugger'])


    8 master 2009-12-23 14:24:55
    Где находится файл и как он называется в котором вот эта опечатка?

    if (isset(and $arg['preferences']['print_debugger']) and $arg['preferences']['print_debugger'])

    в фале модуля smtp_mail

    application/maxsite/plugins/smtp_mail/index.php


    9 Denis 2009-12-23 15:43:29

    в страницах footer header нужно применить по окончанию flush(); с 500мс упало до 200мс

    Читаем Flush the Buffer Early

    http://developer.yahoo.com/performance/rules.html


    10 Максим 2009-12-23 17:30:25 admin

    Точно! Если в шаблоне указать

    <br>... <br>...<br>

    то время загрузки уменьшается. Нужно еще проверить как работает буферизация с глобальным кэшем, но выглядит заманчиво. Спасибо за наводку. :)


    11 master 2009-12-23 17:34:34

    точно-точно минус 600мс на моем vds

    будем юзать

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