Василий Столейков

Василий Столейков

С нами с 19 декабря 2012; Место в рейтинге пользователей: #25
Отправить деньги

Чистим сайт от старых пакетов

При обновлении какого-нибудь компонента, MODX загружает новый пакет в папку /core/packages и добавляет запись в таблицу modx_transport_packages. Со временем в папке /core/packages накапливается приличное количество пакетов компонентов разных версий. И глядя на это разнообразие хочется избавиться от старых версий. И самое просто решение — удалить из папки не нужное. Решение простое, но неправильное. Так как в таблице остаются ссылки на эти пакеты и MODX их помнит. И иногда может и поругаться, что не нашел какой-то пакет. Чтобы не нарушать гармонии, лучше удалять их через специальный интерфейс.
Сергей Шлоков
24 февраля 2015, 12:13
modx.pro
13
3 151
+8

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

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

Tickets - ТВ на основе селекта с мультивыборо

Создаю во фронтенде документ с помощью Tickets.
[[!TicketForm?
	&tplFormCreate=`tpl.Tickets.form.create`
	&allowedFields=`parent,pagetitle,content,metro,logo`
	&allowFiles=`1`
]]
Все поля документа и ТВ-параметры сохраняются, кроме полей с множественным выбором… Как решить проблему?

В чанк tpl.Tickets.form.create есть такая конструкция для полей с множественным выбором:

<div class="form-group">
		<label for="ticket-metro">Метро</label>
		<select name="metro[]" class="form-control" multiple="multiple" id="ticket-metro">
			<option value="1" >1</option>
			<option value="2" >2</option>
			<option value="4" >4</option>
			....
		</select>
		<span class="error"></span>
	......
При таком чанке в базе сохраняется Array, если выбрать более 2 значений…

Если в чанке заменить
<select name="metro[]"
на
<select name="metro"
, сохраняется только одно значение…
А надо чтоб в базе сохранилась запись вида
1||2||4
Я так понимаю надо элементы массива metro[] разделить разделителями ||, как это сделать?
Yanusya
18 февраля 2015, 12:07
modx.pro
2
1 035
0

Алфавитный рубрикатор для ресурсов Modx Revo.

Результат работы тут: lab.nikann.ru/catalog#abc
За основу был взят: modx.ws/urok-modx-ajax-zagruzka-resursov
G@G
G@G
18 февраля 2015, 09:40
modx.pro
26
4 368
+5

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

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

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

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

Чанк Купить 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
40
5 568
+2

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

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

bootstrap scrollspy и base href

Есть проблема при использовании bootstrap scrollspy www.tutorialrepublic.com/codelab.php?topic=bootstrap&file=scrollspy
При проставлении якорей типа
<li><a href="#section-2">Section Two</a></li>
они все ведут на site.com/#section-2. При проставлении
<li><a href="[[~[[*id]]]]#section-2">Section Two</a></li>
все ссылки начинают работать правильно, но перестает работать навигация scrollspy. Если убрать base_href из шапки, то весь сайт плывет. Менял link_tag_scheme — тоже безрезультатно. Как заставить приблуду работать?
dapin
03 февраля 2015, 17:07
modx.pro
3
1 587
0

Авторизация админа во фронте

Добрый день! Когда то встречал это решение но сейчас не могу. Как сделать так чтобы администратор автоматически авторизовался на сайте когда авторизован в админке. Для авторизации использую office.
Заранее спасибо
wgame
23 января 2015, 11:21
modx.pro
5
2 901
0

Как сделать кнопку редактировать в tickets?



Как сделать кнопку «редактировать» в tickets?
перерыл доки, так и не нашёл

для себя сохраню, спасибо Виталий Серый
[[!*createdby:is=`[[+modx.user.id]]`:then=`<a href="[[~id_документа_с_TicketForm?tid=`[[*id]]`]]">Редактировать</a>`]]
Spam
05 января 2015, 17:44
modx.pro
5
1 104
0

Как прикрепить изображение к комментарию

Как реализовать такие комменты:
fishspace.ru/places/to/venevskij/platnik-vorotnya/
Николаевич
02 января 2015, 18:20
modx.pro
10
4 871
+1