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.
Читать дальше →

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

Все видели, что в новостях на сайте 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 фотографий, написал сырой пока еще скриптец для этих целей



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