Готовые решения

Организация рутины при свежей установке modx.

Хочу поделиться скриптами для организации рутины при свежей установке и настройке сайта на modx, как раз проскочил вопрос в сообществе.

Скрипты можно запустить на свежей установке через консоль сервера, ну или вызывать в браузере страницу, предварительно отредактировав список опций.
По умолчанию все настройки рассчитаны на корень сайта example.com/packages.php
На локальном сервере php5-fpm nginx настроенном по инструкции Bezumkin все работает отлично.
Abu
Abu
23 марта 2015, 23:29
modx.pro
42
6 561
+11

Букмарклет для добавления репозитория MODSTORE.pro

Добавить репозиторий

Всем привет. Я ленив, а лень, как известно, — двигатель прогресса. Мне показалось, что добавление нового поставщика в менеджер дополнений MODX достаточно утомителен и его стоит упростить. Да, конечно, есть пакеты типа sdStore, но мне кажется, что моё решение несколько удобнее.
Ганин Роман
16 марта 2015, 11:55
modx.pro
2
2 932
+6

Jevix и email

При использовании Jevix столкнулся с тем, что необходимо сделать email в виде ссылки mailto.

Для выделения простых ссылок имеем параметр cfgSetAutoLinkMode, но с email он не работает.

Нам же пригодится параметр cfgSetAutoPregReplace.
Наумов Алексей
03 марта 2015, 06:04
modx.pro
2
1 920
+1

TvTable - таблица

Добрый день! Понадобилась мне тут табличка в виде Тв-параметра, в которой можно менять не только кол-во строк, но и столбцов. Поэтому migx не подходит (
В общем, было найдено решение, но как оказалось оно для EVO =(



В итоге взяла его за основу и переписала.
yani
02 марта 2015, 08:34
modx.pro
39
17 729
+14

Вывод новостей начинающиеся с букв/цифр и т.п

Пример:
site.ru/catalog/А
site.ru/catalog/Б
site.ru/catalog/В
Spam
19 февраля 2015, 11:27
modx.pro
10
2 596
+4

[mSearch2] Поиск в найденном. Реализация

Поиск в найденном — удобный механизм последовательного органичения поисковой информации. Многие помнят, что до лета 2014 у Яндекса была такая замечательная возможность. И сколько шума на форумах было, когда её убрали.
На mSearch2 можно достаточно легко реализовать такую возможность. Нужны всего лишь сам mSearch2 и бутылочка пива. Открываем и то и другое, и поехали.
1. Первым делом добавляем в форму чанка tpl.mSearch2.form чекбокс.
<input type="checkbox" value="1" name="sinf" id="sinf" /> Искать в найденном
Получается, например, вот так

Вот и все. Отмечаем галочку и ищем. :)
Сергей Шлоков
18 февраля 2015, 15:45
modx.pro
11
2 154
+9

Динамическая кнопка Купить / В корзине

Появилась необходимость реализовать динамическую кнопку Купить / В корзине.

Может кому-то пригодится.

Спасибо Алексею Наумову, Василию Наумкину за помощь в реализации.

Чанк Купить tplOut:
<button type="submit" class="btn btn-cart btn-primary" name="ms2_action" value="cart/add">
	Купить
</button>
<button type="submit" class="btn btn-checkout btn-success hidden" name="ms2_action" value="cart/add">
	В корзине
</button>

Чанк В корзине tplIn:
<button type="submit" class="btn btn-checkout btn-success" name="ms2_action" value="cart/add">
    В корзине
</button>

Скрипт (требуется подключенный jQuery)
if (typeof(miniShop2) != 'undefined') {
    // кнопки В корзину/Оформить
    miniShop2.Callbacks.Cart.add.response.success = function(response) {
        miniShop2.Order.getcost();
        miniShop2.sendData.$form.find('.btn-cart').addClass('hidden');
        miniShop2.sendData.$form.find('.btn-checkout').removeClass('hidden');
    };
    miniShop2.Callbacks.Cart.remove.response.success = function() {
        miniShop2.sendData.$form.find('.btn-cart').removeClass('hidden');
        miniShop2.sendData.$form.find('.btn-checkout').addClass('hidden');
    };
}

Сниппет myButton:
<?php
// Параметры
$idd = $modx->getOption('idd', $scriptProperties, $modx->resource->id);
$tplIn = $modx->getOption('tplIn', $scriptProperties, 'tplIn'); //Можно писать так: ('tplIn', $scriptProperties,  '@INLINE Товар в корзине, кол-во – [[+count]], цена = [[+price]].');
$tplOut = $modx->getOption('tplOut', $scriptProperties, 'tplOut'); // '@INLINE Товара нет в корзине.'
// Классы для работы
$pdo = $modx->getService('pdoTools');
$miniShop2 = $modx->getService('minishop2');
$miniShop2->initialize($modx->context->key, $scriptProperties);
$cart = $miniShop2->cart->get();
// Поехали
$found = false;
foreach($cart as $product) {
	if ($product['id'] == $idd) {
		$found = $product;
		break;
	}
}
return $found
	? $pdo->getChunk($tplIn, $found)
	: $pdo->getChunk($tplOut);


Кнопка вызывается таким образом:
[[!myButton? &idd=`[[+id]]`]]
Klike
17 февраля 2015, 13:36
modx.pro
43
6 464
+2

[update] Общая база товаров для разных контекстов

Очень долго не получалось заставить работать товары minishop2 на других контекстах, с выводом через сниппет нет проблем, а вот с ссылками и корзиной беда.
Использовал sendForward, с ним куча гемороя, но случайно наткнулся на вот это:
$modx->resource = $modx->getObject('modResource', $id);
$modx->request->prepareResponse();
exit();
but1head
17 февраля 2015, 12:45
modx.pro
26
5 853
+3

[mFilter] Работа сниппета с пагинатором pdoPage

Практически в каждом магазине есть и требуется вставлять фильтры. И так как в моём случае не требуется сильно сложных фильтров, я решил использовать компонент mSearch и входящий в него сниппет mFilter. Но при желании подружить фильтр с pdoPage столкнулся с некоторыми проблемами, причём не я один.

Попробуем же с вами подружить mFilter и pdoPage. Для настройки mSearch и отдельно mFilter есть отличный мануал, который был написан почти два года назад, но не потерял своей актуальности и полноты.
Сергей Фещуков
13 февраля 2015, 06:18
modx.pro
1
5 164
+1

Улучшения админ-меню. Раскрытие по клику и не только

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

Короче, выбрал время и, собственно, встречайте:
Алексей Карташов
11 февраля 2015, 23:22
modx.pro
4
4 143
+3