MaxSite CMS 0.36

Просмотров: 28814Комментарии: 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

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

... 
...

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

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

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

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

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

РЕКЛАМА
Можно ли vulkan казино на свой гаджет игровые виртуальные площадки это самая настоящая находка | game. |

О проекте

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