0.00
83 читателя, 73 топика

Чудеса обновления: DLcrumbs

Обновлял я ещё один сайт с 7.1.6, а на хостинге у них allow_url_fopen выключен, то есть прямо на хостинге через Installer не обновишь. А чтобы включили — надо в поддержку писать, ждать и т.д.

Поэтому решил скачать сайт, обновить у себя на OpenServer (Win 7) и закачать обратно.

Обновлял просто накатом файлов новой версии EVO на старую версию сайта, а потом в OpenServer'e набрал
Читать дальше →

Чудеса обновления: stLister (SimpleTube)

Обновился с 7.1.6 до 1.4.0 RC2, всё Ок, только в админке стал кривым SimpleTube.

Ну ладно, обновляю из Экстрас.

Чудеса


После обновления из Экстрас в коде сниппета stLister видим вот что:

<?php
File not found: assets/snippets/simpletube/snippet.stLister.php
?>


Видео не выводится.

Я отправил PR, но пока не исправили, если встретите такое — просто скопируйте код отсюда и вставьте в код сниппета stLister .

UPD: Pathologic поправил, впроде все должно быть Ок,
Читать дальше →

Для тех, у кого вечные проблемы с кэшем в Хроме при установке SimpleGallery и прочих дополнений.

Всем привет!
Возможно кому-то это будет полезно, т.к. я сам только недавно открыл для себя как быстро и просто обновить кэш в админке EVO (и не только).

Все мы знаем, что Хром нещадно кэширует всё подряд в угоду производительности и скорости работы. Однако, частенько это приводит к проблемам при разработке сайта.
Раньше я тестировал всё просто открывая режим Инкогнито, т.к. чистить кэш через
Читать дальше →

SyntaxHighlighter - светим код во фронтенде автоматом

Здравствуйте, друзья!

Хочу поздравить каждого из вас с наступающими новогодними праздниками! В честь этого делюсь с вами своим очередным велосипедом на квадратных колесах =)
Читать дальше →

Прячем лишнее от менеджеров

Обычно я, когда даю доступ к готовому сайту, то создаю для этого пользователя с ограниченными правами, а пароль администратора даю, если попросят. Каких-то корыстных целей в этом нет, просто со стороны пользователя меньше возможностей что-нибудь поломать.
Несколько дней назад возникла проблема: заказчик потыкал в меню и посчитал оскорбительным, что у него нет прав. И действительно, если в Revo лишнее в меню скрывается от менеджера при настройке прав, то в Evo все видно, хоть и не работает. Решение очень простое:

/* 
Events: OnManagerMenuPrerender, OnManagerPageInit
Configuration:

&role=role;text;2 &hide=hide;textarea;user_management_title,
manager_permissions,
role_management_title,
elements,
reports,
bk_manager,
import_site,
export_site,
edit_settings,
new_module,
web_permissions
*/
$e = $modx->event;
$user = $modx->userLoggedIn();
$data = $modx->getUserInfo($user['id']);
if ($e->name == 'OnManagerMenuPrerender') {
	if ($data['role'] == $role) 
		if(isset($hide))
			foreach(explode(',',$hide) as $item) 
				unset($menu[trim($item)]);
	$e->output(serialize($menu));
}
if ($e->name == 'OnManagerPageInit') {
	if ($data['role'] == $role)
		if(isset($_REQUEST['a']) && $_REQUEST['a'] == 106)
			$modx->sendRedirect(MODX_MANAGER_URL.'index.php?a=2');
}

Плагин прячет для роли Editor лишние пункты меню (названия можно посмотреть в файле manager/frames/mainmenu.php), в том числе модуль Extras, и не дает смотреть страницу «Управление модулями». Портит дело только кнопка «Управление элементами» в дереве, ее нормально не удалить — но там и не пишется, что нет прав, так что пусть остается (:

Мелкие плюшки для админки

Отказавшись от использования плагина ManagerManager стали всплывать некоторые недостающие моменты, которые решились достаточно легко.
Во первых использованием плагина templatesEdit2, а во вторых созданием плагина на событие OnDocFormPrerender.
Ниже речь пойдёт о втором плагине.

Читать дальше →

Ctrl+S в ресурсах

Добрый вечер,
сидел, ковырял сайтик на ево и по привычке (от REVO) после изменений в ресурсах нажимал на CTRL + S и ничего полезного не происходило.

Подумал, погуглил и родился мини плагин на событие OnDocFormRender


Читать дальше →

Поиск дубликатов документов и их удаление

Иногда появляется необходимость в обширных каталогах найти одинаковые документы. При условии что вложенность большая и pagetitle документов не обязательно уникальны.

Моей задачей было удалять старые документы с идентичными ключевыми словами

Источник проблемы:
Сайт с огромным каталогом, импорт объектов из внешнего файла.
Импорт автоматизирован и повешен на крон. При импорте запрашиваются координаты объекта у яндекса, в следствии чего скрипты зависают, а объекты могут продублироваться.

Вот такой код, при необходимости повешенный на крон, успешно и без особых нагрузок корректно удаляет дублирующие документы c идентичными заголовками и ключевыми словами


<?php
	@ini_set("display_errors","1");
	error_reporting(E_ALL);	

	define('MODX_API_MODE', true);
	include_once(dirname(__FILE__)."/index.php");
	$modx->db->connect();
	if (empty ($modx->config)) {
		$modx->getSettings();
	}

	require_once($basePath.'assets/libs/resourse.php');
	$resourse=resourse::Instance($modx);

	$rsQuery = 'SELECT COUNT(c.id) AS cnt, c.pagetitle, t.value FROM '.$modx->getFullTableName('site_content').' c ';
	$rsQuery.= 'INNER JOIN '.$modx->getFullTableName('site_tmplvar_contentvalues').' t ON t.contentid = c.id AND t.tmplvarid = 3 '; // JOIN уникального ТВ параметра
	$rsQuery.= 'GROUP BY c.pagetitle, t.value HAVING COUNT(c.id) > 1 ORDER BY c.pagetitle';
	$res = $modx->db->query($rsQuery);
	
	if ($res && mysql_num_rows($res) > 0){
		while($i = mysql_fetch_assoc($res)){
			echo("<p>{$i['cnt']} - {$i['pagetitle']} - {$i['value']}</p>");
			$cnt = $i['cnt'] - 1;
			$sres = $modx->db->query("SELECT contentid FROM ".$modx->getFullTableName('site_tmplvar_contentvalues')." WHERE value = '{$i['value']}' ORDER BY contentid ASC LIMIT $cnt");
			if ($sres && mysql_num_rows($sres) > 0){
				while($z = mysql_fetch_assoc($sres)){
					echo("<p>Must-delete = {$z['contentid']}</p>");
					$resourse->delete($z['contentid']);
				}
			}
		}
	}
		
?>


*Код легко расширяется на учёт нескольких ТВ параметров.

Возможно кому-то данный пример будет полезен при решении его задач.

Оптимизация jpg-картинок

Гуглосервис PageSpeed Insights рекомендует «проводить базовую и расширенную оптимизацию всех изображений… При расширенной оптимизации проводится сжатие файлов JPEG и PNG (без потерь).»

Читать дальше →