0.00
84 читателя, 77 топиков

Руссифицированный модуль EasyPoll 0.3.3 для организации простого голосования на сайте

Внимание: Информация в статье устарела, рабочую версию модуля можно установить из репозитория, спасибо говорим vanchelo .

Клиент озаботил меня задачей организации голосования на сайте. После поисков было обнаружено только одно почти рабочее решение — модуль ЕasyРoll.

К сожалению, разработка довольно старая, в css используется привязка к файлам уже не существующей темы оформления Modx, руссификация оставляет желать лучшего. Кроме того вывод сниппета работает на mootools, что вызывает конфликт с jquery-свистелками на сайте и они перестают работать.

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

Скачать руссифицированный EasyPoll

Правки:
а) русский язык выставлен в модуле по умолчанию, перевод существенно откорректирован.
б) добавлена папка с файлами иконок (проект iconza.ru) прямо в директорию модуля, и подкорректирован файл css — теперь отображение иконок в модуле не зависит от выбранной темы MODX.
в) подкорректирован css файл вывода, убрана зависимость от темы MODX.

Для установки модуля и быстрого развертывания опроса см. файл readme.txt в архиве.

Решение конфликта jquery — mootools:
Для вывода опроса используется библиотека mootools, что приводит к конфлику с jquery.
Если вы используете на своем сайте jquery, необходимо в скриптах запуска применить функцию jQuery.noConflict().

Например, при вызове fancybox вместо:

$(function(){
    $("a[rel=group]").fancybox();
});

нужно выводить, например, так:

var $j = jQuery.noConflict();
$j(function($){
    $("a[rel=group]").fancybox();
});


p.s если в выводе сниппета используете параметр &css для указания пути к таблице стилей по умолчанию, следите за регистром в названии директорий и файлов. Некоторые хостинги чуствительны к регистру в названиях файлов и директорий.

[EVO] Подстановка данных пользователя в форму eForm.

Необходимость вставить данные пользователя в форму возникает, например, при оформлении заказа в интернет-магазине на Shopkeeper. Там же можно сниппетом Personalize выводить разные формы для авторизованных и неавторизованных пользователей. Либо сразу использовать шаблон из chunk_shopOrderFormWebUser.tpl, где подстановка происходит используя конструкцию типа
[*phx:input=`&_PHX_INTERNAL_&`:userinfo=`fullname`*]

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

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

[REVO] Установка фавикона в панели управления сайтом

modx faviconЗачастую у пользователей таких как я, открыто в одном окне браузера очень много вкладок, и мы начинаем путём перебора искать нашу вкладку с панелью управления MODX.
Но к счастью, есть простой способ чтобы добавить различные иконки фавикона в панель управления MODX.
Просто, откройте настройки системы (Revolution 2.1 или выше) Система->Настройки системы. В поле поиска введите "favicon" и нажмите ввод. Система должна найти результат manager_favicon_url.
Читать дальше →

[EVO] Курс валют


<?php
$xmlURL = 'http://www.cbr.ru/scripts/XML_daily.asp?date_req='.date('d/m/Y');
$tpl = isset($tpl) ? $modx->getChunk($tpl) : '€ = [+euro+] Р, $ = [+usd+] Р';

//кэширование 6 часов
$filename = MODX_BASE_PATH.'assets/cache/kurs.xml';
if (!file_exists($filename) || (file_exists($filename) && time() > filemtime($filename) + 60*60*6)) {
	$file = file_get_contents($xmlURL);
	if ($file) {
		file_put_contents($filename, $file);
		@chmod($filename, 0666);
	}
}

$xml = simplexml_load_file($filename); 
if ($xml != false){
	$usd = $xml->xpath('Valute[@ID="R01235"]/Value');
	$usd = round(str_replace(',','.',$usd[0]),1);
	$euro = $xml->xpath('Valute[@ID="R01239"]/Value');
	$euro = round(str_replace(',','.',$euro[0]),1);
	$output = str_replace(array('[+usd+]','[+euro+]'),array($usd,$euro),$tpl);
	return $output;
}
?>

Галерея в стиле Вконтакте или Яндекс.Картинок

Все видели, что в новостях на сайте vk.com картинки выравниваются очень аккуратно — вроде, и не обрезаются, а все равно смотрится хорошо и ровненько:
Выравнивание изображений в ВКонтакте

И недавно я решил сделать такую же галерею на одном сайте. В итоге получился сниппет AlignImages. Его код можно взять на gitHub.
Читать дальше →

[REVO] Breadcrumbs - добавление функций

В файл core/components/breadcrumbs/model/breadcrumbs/breadcrumbs.class.php, в секцию с параметрами, начинающуюся со строки 44, добавить параметры:
'sort' => 'ASC', // Направление упорядочивания
'ignoreIDs' => $ignoreIDs, // Исключение ресурсов по id, указанные через запятую


Направление упорядочивания

Заменить:
$this->_crumbs = array_reverse($this->_crumbs);
На:
if ( $this->config['sort'] == 'ASC') $this->_crumbs = array_reverse($this->_crumbs);


Исключение ресурсов

Добавить в секцию public function getMiddleCrumbs:
$ignoreIDs = str_replace(' ','',$this->config['ignoreIDs']);
$ignoreIDs = explode(',',$ignoreIDs);

Изменить:
if (($parent->get('parent') != $parent->get('id')) ) {
На:
if ( ($parent->get('parent') != $parent->get('id')) && !in_array($parent->get('id'),$ignoreIDs) ) {
находящееся в этой же секции.

Использование

[[Breadcrumbs?ignoreIDs=`3,151,235` &sort=`DESC`]]
[[Breadcrumbs?ignoreIDs=`[[UltimateParent?topLevel=`1`]]`]]
<title>[[*pagetitle]][[If?subject=`[[*parent]]` &operator=`not` &operand=`0` &then=` < [[Breadcrumbs:notags:esc:strip?sort=`DESC` &crumbSeparator=`<` &showCurrentCrumb=`0` &showHomeCrumb=`0`]]`]]</title>


Автоматическая установка

Архив извлечь в корень сайта.

[EVO] Вывод ТВ с дополнительной информацией (Custom Widget для TV)

В MODX есть замечательная возможность создавать дополнительные параметры(TV)
но не все знают на сколько это многофункциональный елемент
К примеру вот замечательный вопрос:
Как работать с tv custom widget
который и натолкнул меня на написание этого топика

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

[REVO] Добавляем к ресурсу неограниченное количество изображений

Появилась необходимость прикреплять на своём сайте заранее не известное кол-во фотографий, изначально пользовался ТВ, создал 4 ТВ и вполне хватало, пока не появилась необходимость прикрепить больше 4 фотографий, написал сырой пока еще скриптец для этих целей



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