Современная, быстрая и удобная система управления сайтом

MaxSite CMS 0.82

Версии (релизы)Комментарии: 12Просмотров: 88704

Если у вас версия ниже 0.81, то обновлять сайт следует согласно инструкции. Остальные могут просто загрузить файлы поверх старых. Если вы используете шаблон D2, то желательно его вначале удалить, после загрузить заново. Это связано с тем, что в нем поменялась верстка и некоторые файлы/каталоги.

На гитхабе доступен полный и подробный список изменений. Здесь я остановлюсь лишь на самых интересных изменениях.

jQuery

Была предпринята попытка перейти на ветку jQuery 1.9, но в итоге мы остаемся на версии 1.8.2. Проблема в том, что команда jQuery слишком оптимистично смотрит на мир и ошибочно полагает, что сторонние разработчики jQuery-плагинов быстренько переделают свои плагины под новый API. Например в 1.9 убрали функцию определение браузера. Но она используется в гигантском количестве плагинов, что в итоге привело к их тотальной неработоспособности. Я попытался исправить часть js-скриптов, но менять все предыдущие наработки довольно проблематично.

В итоге я решил, что нет смысла гнаться непонятно за чем — остаёмся пока на стабильной и гарантированно рабочей 1.8.2.

Новые настройки

Опция «Использовать только gravatar.com» позволяет запретить использование аватарок комюзерами, кроме как с gravatar.com. Проблема в том, что некоторые пользователи указывают всякие сторонние сервисы, вроде дропбокса или какие-то несуществующие адреса изображений. Теперь можно принудительно запретить такую практику.

Опция «Разрешить указывать сайт комюзерам» позволяет скрыть поле «Сайт» при редактировании персональных данных. Если сайт бы указан ранее, то он сохраняется. За вывод адреса отвечает опция «Разрешить отображать ссылку комюзера».

В настройках шаблона перенёс в отдельную вкладку «Шаблоны вывода» (т.н. main-шаблоны). Также доработал алгоритм использования main-шаблона. Теперь можно указать шаблон по-умолчанию и он автоматом применится ко всему сайту для всех типов.

Исправления в плагинах

Изменений не очень много. В основном это мелкие правки. Например в плагине галереи введена проверка на наличие указанного файла. В плагине голосования поправил верстку.

В плагине dignity_rss вместо rss2email.ru (больше не работает) теперь используется аналогичная возможность от feedburner.google.com. Соответственно нужно указать логин rss-ленты в настройках.

В плагине bbCode для [ show ] используется обновленный (и более универсальный) jquery.showhide.js (спасибо, Юра!).

Type и type_foreach-файлы. Прочие изменения/функции

Здесь не очень много изменений. Дата и время в time теперь указывается в ISO-формате.

Для разных типов можно использовать type_foreach-файлы info-top-ТИП.php. Для примера я кинул в D2 файл info-top-page.php, где реализовал навигацию «Предыдущая — следующая страница» (используется новая функция mso_next_prev_page).

Также по типу теперь можно подключать и info-bottom-ТИП.php.

Для подключения произвольных данных к странице комюзера можно использовать type_foreach-файл users-add.php.

Миниатюры, которые создаются через Thumb, теперь сохраняются в подкаталоге mini. Это исключает путаницу, когда исходный и thumb файлы находятся в одном «главном» каталоге. При желании в функции thumb_generate можно указать другой каталог.

В секционных опциях, которые «прогоняются» через функцию mso_section_to_array можно значение опции указывать в несколько строк или использовать сложный html-код. Для этого текст следует заключить между _START_ и _END_.

В хелпере CodeIgniter file_helper.php добавил скрытие ошибок для функции unlink.

Структурные изменения

В MaxSite CMS 0.82 новый каталог _mso_add, куда перенесены все дополнительные файлы и каталоги. Таким образом в корне сайта нет лишних файлов и заготовок, вроде .htaccess-subdir. Все они используются только один раз при установке системы. Таким образом при обновлении MaxSite CMS этот каталог можно уже не копировать.

Файлы библиотеки PIE.htc вовсе исключены из системы, поскольку мы больше не поддерживаем браузер IE (9 и 10 версии — «чтобы не развалилось»).

Языковые файлы удалены из дистрибутива и перенесены на гитхаб. Каждый желающий может взять на себя работы по созданию своего перевода. В качестве примера отмечу немецкий перевод от Александра Шиллинга.

CSS-фреймворк (shared)

Буквально пара мелких правок. В mso-helpers.less (соответственно они вошли в style-all-mini.css) добавил

.w20 {width: 20%;}
.w15 {width: 15%;}
.w10 {width: 10%;}

В helpers.less в миксе .f продублировал подмиксы с теми же именами, только начинающиеся с точки, например: .f > arial; и .f > .arial; Пока сохраняются оба варианта, но если вы используете эти хелперы, то переходите на «точки». Это ради совместимости с нативным синтаксисом LESS.js.

Там же добавил новые хелперы:

.border_radius(none) — убрать скругление углов
.transform(@transform) — css3-трансформации
.op_color(@color: #abc, @opacity: .5) — аналог rgba(R,G,B, op) только с #RRGGBB
.bg_op(@color: #abc, @opacity: .5) — цвет фона и его прозрачность

Верстка колонками

Файл columns.less сильно доработан. С помощью его стилей и миксов можно произвольно настраивать вывод колонками. Основной микс

.column_width(@n, @all, @s: 3%)

Скажем, .column_width(2, 5, 3%); создаст колонку размером 2 части из 5-ти с 3% промежутком.

Например есть такая html-структура:

<div class="sample">
	<div class="r1">один</div>
	<div class="r2">два</div>
	<div class="r3">три</div>
</div>

Нужно разместить их в три колонки. Первая 2, вторая 3, третья — 4 части (всего 9, схема «2-3-4»). Less-код будет таким:

div.sample {
	
	width: 1140px;
	
	div.r1 {
		.column_width(2, 9, 3%);	
	}
	
	div.r2 {
		.column_width(3, 9, 3%);	
	}
	
	div.r3 {
		.column_width(4, 9, 3%);	
	}
}

В columns.less уже прописаны предопределенные css-классы для 1-8 колонок. Это можно использовать прямо в текстах записей или при верстке шаблона. Вот пример трех колонок по схеме «1-1-4».

<div class="onerow">
	<div class="col w1-6">1-6</div>
	<div class="col w1-6">1-6</div>
	<div class="col w4-6">4-6</div>
</div>

Изменения в D2

Поменял дизайн D2 и его верстку. Изменились css-less-стили. Убрал неиспользуемые каталоги. Из особенностей верстки отмечу пару моментов.

Адаптивность теперь нужно задавать непосредственно в less-файлах компонентов/блоков. Раньше у нас был отдельный каталог responsive, где и хранились стили для «адаптивности». На практике выяснилось, то такая схема не совсем удобно, поскольку нужно отслеживать стили одного блока в нескольких файлах. Кроме того, я разобрался, что LESS позволяет указывать инструкции @media прямо в стилях блока:

div.sample {
	// обычные стили
	div.r1 { ... }
	div.r2 { ... }
	
	// только для @media
	@media @MOBILE 
	{
		div.r1 { ... }
		div.r2 {... }
	}
}

Переменная @MOBILE задаётся в variables.less — это условие для @media.

Новый файл constant.less содержит константы, которые как правило вовсе не меняются. Сейчас там цвета и @переменные с предопределенной шириной с 3% отступом, рассчитанные через микс .column_width().

Модульная сетка теперь в layout.less. Она адаптивная и резиновая с максимальной шириной 1140px. Всё это настраивается через @переменные.

Обратите внимание на блок body.no-sidebar. Это пример связки с main-шаблоном no-sidebar. В стилях используется переменная @MAIN_NO_SB_WIDTH, которая позволяет задать ширину сайта для случая, когда сайдбар отсутствует. Подобная связка присутствует и в стилях компонентов. То есть они также могут подстраиваться под разную ширину сайта.

Компоненты D2

Самое серьёзное изменение — переименование компонента menu в подкомпонент _menu. То есть он не отображается в админ-панели и его нельзя будет выбрать. Вместо menu следует использовать menu_only. Всё это связано с тем, чтобы как-то разрулить конфликтующие стили нескольких меню (menu-icons, menu-login, menu-search и т.д.).

Планы по шаблонам Default и D2

Шаблон D2 — каркас для новых шаблонов, и дальше будет таковым. Поэтому не следует вносить изменения непосредственно в нем — нужно отдельно скопировать и использовать под другим именем. Вместе с тем, я решил немного его «облагородить» по дизайну, поскольку изначальный вариант смотрелся довольно скудно. Проблема здесь в том, что для MaxSite CMS нужен нормальный современный дефолтный шаблон, который в нашем случае «заморожен». Если я попытаюсь внести в default какие-то изменения, то это сразу отразится на всех сторонних шаблонах (а их львиная доля).

Поэтому я сейчас продумываю варианты решения этой проблемы. Есть несколько вариантов: например выделить из default общие файлы, которые следует загрузить в свои «старые» шаблоны. В основном это type-файлы. Другой вариант — поддерживать старый default только до определенной версии MaxSite CMS. Поскольку сейчас практически все изменения крутятся вокруг shared и D2, то вариант вполне разумный.

В любом случае вопрос серьёзный и его придется решать. Если у вас есть соображения на сей счёт, высказывайтесь в комментариях.

Комментариев: 12 RSS

1Андрей02-04-2013 12:57

По поводу default шаблона, я за то - что бы поддерживать его до определенной версии. Затем, убрать его вообще и оставить только d2.

2Александр З.02-04-2013 14:00

Отказ от поддержки IE - радостное событие. Вообще, новый дистрибутив заинтриговывает. Буду пробовать.

3Алекс02-04-2013 14:32

Как насчет собрать денег на один-два новых дополнительных шаблонов .

Пускай бы сразу шли в комплекте.

Я был бы не против скинуться.

4Кирилл.02-04-2013 14:42

На счет D2 и default - считаю, что лучше всего поддерживать до определенной версии, а затем отказаться, т.к. надо идти в ногу со временем - тем более на shared-каталоге проще сделать шаблон, пусть люди переучиваются и привыкают к рациональному порядку. А то, что от ишаков отказываемся, то это вообще супер!

5Discover02-04-2013 19:07

А я юзаю шаблон "styllissimo" и очень им доволен. Автору вери вери тенкс. При наличии денег на карточке пульнул бы автору не задумываясь рублей 150-300 но на визу. Прикрутите оплату через визу. Уж кого-кого, а наших поддержать ну просто необходимо. Да здравствует MaxSite!

Ах ну да, ложку дёктя то забыл. В шабе стилиссимо нужно прикрутить редактор ширины колонок - для чайников. Нутрь- тело сайта подходит едва ли на планшет... С болшего моника смотрится как версия для телефона.

6Алекс03-04-2013 15:29

В виджете "Последние записи" сделайте, пожалуйста, вывод ссылки пассивной и жирным шрифтом, если она выведена. Так проще ориентироваться. Например, Вы уже сделали такое в виджете "Рубрики", что очень радует! А если еще сделаете (добавите) такую (опцию в настройках стиля шаблона) выделение посещенных ссылок другим цветом, и, его можно будет настраивать, то цены не будет!!! Ведь посещенные ссылки дают ориентир где уже был, а где не был.

Вывод: Добавить опции в админ-панели для шаблона стилей:

- делать посещенную (в данный момент) ссылку пассивной или активной? (Да-Нет)

- задать цвет пассивной ссылке (поле для вставки цвета на свой выбор).

- выделить пассивную ссылку жирным шрифтом? (Да-Нет)

- изменять цвет посещенных ссылок? (Да-Нет)

- задать цвет посещенным ссылкам (поле для вставки цвета на свой выбор)

Очень бы хотелось видеть такие опции.

7Андрей03-04-2013 15:49

Супер конечно.

Вот только с default, надо тогда инструкцию, как переделать старые шаблоны. А то ломать голову, как быстро перевести на новый.. Не все так просто.

8Стас03-04-2013 15:50

Похоже во фреймворке CodeIgniter есть ошибка.

В файле \system\database\drivers\mysqli\mysqli_driver.php

в функции function escape_str()

вместо кода:

elseif (function_exists('mysql_escape_string'))
{
$str = mysql_escape_string($str);
}

должно быть

elseif (function_exists('mysqli_escape_string'))
{
$str = mysqli_escape_string($str);
}

или я ошибаюсь?

9Андрей05-04-2013 18:24

Ошибаетесь, ваш код вообще работать не будет.

Это грубая синтаксическая ошибка, без всякой логики.

10Андрей06-04-2013 08:15

Фраза:

Если вы используете шаблон D2, то желательно его вначале удалить, после загрузить заново

И так каждый раз? Наверное его надо переименовать, но что там тогда нужно удалить, чтобы он использовал новые фишки?

11Руслан Сафин13-04-2013 20:46

плагин mаrkitup перестал включатся. в чем дело?

при попытке включения выкидывает на пустую страницу браузера. ошибка 500

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

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

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

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