Блог Александра Башкирова

ИТ и бизнес, компьютеры и ПО, фото, программирование и просто мысли…
Этот сайт в основном посвящен тому, что мне интересно вне работы. Ведется в порядке хобби.
Все изложенное на сайте - мое частное оценочное мнение и не может быть истолковано иначе.
Со всеми вытекающими из этого последствиями.

MaxSite

MaxSite: Как победить RSS для отложенных записей.

Просмотров: 182Комментарии: 0
MaxSite

Я активно использую механизм отложенных записей. То есть пишу несколько постов на неделю вперед, и живу спокойно. Но есть одна незадача - при появлении такого поста на сайте, он не появляется в фиде RSS - до тех пор, пока не зайдешь в запись и не пересохранишь её. Впервые я столкнулся с этой проблемой еще на версии 0.6++, и так и жил. Но тут перейдя на последний MaxSite, решил пофиксить и это.

В общем - самостоятельно решения не нашел. Но MAX (Автор одноименной CMS) решение подсказал. Привожу его тут полностью:

Это кэширование rss, которое по умолчанию 24 часа. С отложенной публикацией возникает неопределенность — кэш не в курсе что запись должна быть опубликована. Наверное можно уменьшить время rss кэша, например до 1 часа.

В \shared\type\feed\home.php в конце функция mso_add_cache()

mso_add_cache($cache_key, ob_get_flush());

замените на

mso_add_cache($cache_key, ob_get_flush(), 3600);

Это установит время кэша 3600 секунд.

Сделал, помогло. Публикую, т.к. есть подозрение, что я не один с "этой штукой" мучаюсь.

Как подключить визуальный текстовый редактор к MaxSite CMS

Просмотров: 318Комментарии: 2
MaxSite

После обновления MaxSite обнаружил неприятную особенность: встроенны редактор оказался крайне нетолерантен к записям с html. А у меня такие были, и, честно говоря - конвертировать их во что-то "тектовое" желания не было вообще.

В сообществе (http://maxhub.ru) мне посоветовали выключить обработчик html для записи. Идея интересная, но - не сработала. Так что пришлось решать "в лоб". Во-первых, плагинов с текстовыми редакторами оказалось довольно много (см. http://maxhub.ru/category/editors), но ... ни один из них "не заводился" нормально. Как пишут в сообщесте - из-за табов. Табы - это довольно удобная штука в одной закладке редактор, в другой - теги, в третьей - свойства и т.д. Но, раз это мешает жить, то - будем патчить. Патч я написал только для внешнего вида, убрал табы. Все остальное оставил как есть. Что примечательно - работает.

Теперь - как патчить. Скачиваем этот файл, распаковываем. Там 2 файла: form.php и form.php-dist. form.php-dist - это штатный файл для MaxSite CMS 0.96 (для обратной совместимости/отката). form.php - он же, но патченный.

Дальше - в папке /application/maxsite/admin/plugins/admin_page заменяем файл form.php патченным. Вместо вкладок появляется длинная страница. Активируется любой (ну или почти любой) текстовый редактор (я для себя пока ставил trumbowyg и tinyMCE) и спокойно работает.

Важно! После обновления файл скорее всего будет заменен на штатный... и потребуется повторный патч.

Про патч ротатора (карусели) в MaxSite 0.96

Просмотров: 265Комментарии: 0
MaxSite

Для начала обозначу проблему, которую решал: сделать ротатор "красиво". В чем проблема? Во-первых, штатный ротатор прижимал картинку влево. Во-вторых, при смене картинок применялся эффект, но из-за какого-то неизвестного науке глюка картинки могли выглядывавть друг из-за друга какое-то время. Тогда (когда я обновлял сайт до 5ой версии) мне это казалось несущественно, впоследствии же начало раздражать. И вишенка на торте - у меня (так уж исторически сложилось) все миниатюры разного размера. От 120 до 220px по большей стороне. И в итоге могло получиться так, что часть сайдбара съезжала... Меня это тоже раздражало, но - традиционно было лень. В общем, все это я лечил при обновлении... вылечил так. Во-первых, в настройках виджета прописал что будет применен дополнительный класс image-correct ("Сайдбары и виджеты" - "Галерея" - там "Дополнит.Class", ну и туда) и alib-gal (о нем позднее, он нужен для ротатора).

Дальше - CSS обвязка для корректирующего класса:

.image-correct {
width: 260px;
text-align: center;
margin-top: 4px;
background-color: #fefefe;
min-height:180px; 
height:180px; 
}

.image-correct img {
max-height:180px;
}

.image-correct > a.lightbox {
line-height: 180px; 
}

Css файл помещаем в /templates/alib/assets/css - после чего в системе у вас появится еще один css профиль, который необходимо подключить ("админка" - "шаблон" - "css профили"). Все, css у нас в системе... (правда, реализация странная - css просто подтягивается текстом в head - но не будем придираться, возможно, такое решение имело под собой определенные основания). В css понятное дело, мои значения. Для другой задачи они будут другими.

Примененный лайфхак решает задачи: выравнивания и заполнения картинкой отведенного места, но не решает "наезд" изображений.

Что же... лечим "наезд". Для этого - заходим в админку, идем в "сайдбары и виджеты", там - выбираем "Галерея", там вносим свои настройки (количество фото, галерея, там же наш css-класс должен находиться). И там (важно!) ставим два значения - "Режим отображения" = "Картинками" и "Сортировка" = "Случайно". Если сейчас посмотреть на галерею, то там бдут все картинки, которые выведены в галерею. Осталось за малым - применить javascript :) Идем в папку .templates/default/assets/js/autoload, куда помещаем jQuery плагин таймера (http://jchavannes.com/download/jquery-timer-demo.zip) и файл, который будет организовывать нам слайдер (название у него может быть любое, главное, чтобы расширение было .js):

$(document).ready(function() {
var width_fix = 200;
var img_count = $('.alib-gal > a').length;
var pred_mumber = 0;
var timer = $.timer(function() {
		do
		var number = Math.floor(Math.random() * img_count);
		while (number==pred_mumber)
		pred_mumber = number;
		$(".alib-gal > a:visible").hide(); 
		var el = $(".alib-gal > a:eq(" + number + ")");
		el.show(4000);
		alib_img_correct($(".alib-gal > a:eq(" + number + ") > img"));
});
timer.set({ time : 10000, autostart : true });
	$('.alib-gal > a').not(':first').hide();
	alib_img_correct($('.alib-gal > a:first > img'));
function alib_img_correct(ximg)
{		var iwidth = ximg.width();
		var iheight = ximg.height();
		if (iwidth < width_fix)
		{	var ki = width_fix / iwidth;
			if (iwidth > iheight) 
			{	ximg.width(width_fix); 
				ximg.height(iheight * ki);}}}
$(window).resize(function(){
	$('.alib-gal > a').not(':first').hide();
	$('.alib-gal > a:first').show();
	alib_img_correct($('.alib-gal > a:first > img'));
	timer.reset();
});				
});

Собственно, всё. Если все сделано верно, то после перезагрузки сайта у нас не 10-20-30 картинок, а одна, сменяемая последующими друг за другом.

ПС. Данный способ в принципе не очень правильно называть "патчем" - всё сделано на штатных возможностях платформы с моим небольшим допилом (css и js)

Чуток обновил сайт

Просмотров: 142Комментарии: 0
MaxSiteНовости

После небольшого перерыва вернулся к блогу :)

Время это я поратил не просто так: во-первых, обновил движок сайта, во-вторых - обновил дизайн.

Что касается обновления движка - то тут всё понятно. Каким бы не был - а обновлять надо периодически. Секьрити там ... поддержка ... да и вообще - правильно это. Правда, в случае с MaxSite CMS - обновление движка представляет собой вещь нетривиальную. Потому что от версии к версии теряется совместимость со старыми темами, некоторые плагины перестают работать как надо. В общем, "не айс". Это, кстати, и была одна из причин почему полез обновлять дизайн - мало того, что он мне надоедл, так еще и при поднятии версии - тема гарантированно ломается. В общем, обновление в итоге прошло удачно. Тему я переписал по новой, взяв за основу штатную тему MaxSite и исковеркав ее на свой лад + убрав несколько косяков старой темы. Например, там была проблема с центрированием и выравниванием картинок в ротаторе. Исправил (дописав свою часть ротатора, ага). Ну и отдельно - порешав проблему с визуальным редактором... (об этих проблемах и путях решения - позже расскажу). В общем, на мой взгляд - получилось "ничего так". Из плюшек - адаптив (на старом сайте был плагин и мобильная тема) на несколько расширений, спокойные тона, более понятный дизайн. В общем, перечисляь можно до бесконечности. Старый дизайн вот кстати

ПС. Когда-то я был в восторге от MaxSite - мне эта CMS казалась прогрессивной и быстрой платформой. Увы. то время прошло - платформа превращается в запутанного, плохо документированного монстра... да еще хамство автора в адрес пользователей и разработчиков отдельно доставляет. Почему тогда остался на этой платформе? Причина банальна: лень. Хотя видимо, при следующем обновлении таки сменю и CMS.

Про MaxSite CMS и flex css

Просмотров: 463Комментарии: 0
MaxSite

Как я тут писал, инсталлировал я тут MaxSite CMS (версии 0.95) - для того, чтобы сделать сайт-блог. Давно не работал с этой CMS -  в итоге было любопытно посмотерть, что же получилось.

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

Теперь о ложке дегтя. Если нужно "запилить" "совсем свою" тему, то будет ад и треш. Документации нормальной на систему нет. (И кажется - не предвидится). Структура темы по отношению к версиям ниже 0.9 изменена достаточно сильно - в итоге, разобраться что к чему, достаточно сложно. Помогает коллективный разум, это факт. Но сам процесс не вдохновляет.

Кстати, многие в Интернете пишут как раз о том, что система отличная, а вот с документацией - беда.

Ну и параллельно узнал о такой чудесной штуке как flex. На ней построена вся новая тема. Flex - это CSS свойство (семейство свойств), которые очень сильно упрощают верстку для многоколоночных и многострочных страниц. Не bootstrap, конечно, но очень впечатлило. Хорошая статья про flex тут. Век живи, век учись, ага. Особенно, если ты не имеешь с этим дела каждый день.

Админское. Как бороться с The Encrypt library requires the Mcrypt extension.

Просмотров: 837Комментарии: 0
LinuxMaxSite

Тут на днях решил запилить на сайт новую версию MaxSiteCMS (http://www.max-3000.com) - использовал автоустановщик... Все прошло отлично, только при запуске вывалилось, что "The Encrypt library requires the Mcrypt extension.". Хм три раза, потому что php-mcrypt у меня уже стоял (вывод sudo apt-get install php5-mcrypt

 тому доказательство). На всякий случай переинсталлировал это расширение:

apt-get --reinstall install php5-mcrypt

Затем перезапустил апач (sudo service apache2 restart). Ага три раза. Не работает. Ок, смотрим php.ini и связанные файлы. Для этого делаем файл info.php со следующим содержимым:

 <?php phpinfo(); ?>

Изучаем вывод. Видим, что есть ряд прогруженных файлов .ini, исследуем их. И выясняем, что не в одном из них не подключается mcrypt.so

Ну, ок, вписываем в /etc/php5/apache2/php.ini строку

extension=mcrypt.so

Перезапускаем апач. И вуаля, всё работает!

ПС. Не стал бы писать о такой мелочи, но вот для памяти...

Блог для мобильных на MaxSite CMS

Просмотров: 563Комментарии: 0
MaxSite

Я тут внезапно, за 15 минут сделал себе для блога версию для мобильных...

Оказалось все не просто "просто", а "очень просто".

  1. Скачиваем плагин отсюда: http://rgblog.ru/page/mobile_theme
  2. Скачиваем мобильный шаблон отсюда: http://rgblog.ru/page/mobile
  3. Устанавливаем плагин и шаблон
  4. Активируем плгин
  5. Всё!

ПС. Ну, я еще подправил splach.png в папке шаблона. Но всё равно - впесчатляет :)