MaxSite CMS 0.36

Просмотров: 21710Комментарии: 11
MaxSite CMSВерсии (релизы)

Очередная версия 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

1VolCh19-12-2009 07:52

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

4masterСайт20-12-2009 20:42

[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'])

6GTAlexСайт23-12-2009 09:59

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

7vargrup23-12-2009 14:43

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

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

8masterСайт23-12-2009 16:24

Где находится файл и как он называется в котором вот эта опечатка?
if (isset(and $arg['preferences']['print_debugger']) and $arg['preferences']['print_debugger'])

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

application/maxsite/plugins/smtp_mail/index.php

9Denis23-12-2009 17:43

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

Читаем Flush the Buffer Early

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

10Максим23-12-2009 19:30

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

... 
...

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

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

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

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

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

О проекте

MaxSite CMS предназначена для создания сайтов любой сложности. Система отлично подходит обычным пользователям, вебмастерам, фрилансерам и вебстудиям.