Олег

Олег

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

Покупка на ultron.pro! Не забудьте обновить ядро и компонент Gallery

Пару месяцев назад была куплена сборка на сайте ultron.pro для знакомого который открыл кафе.
Все было хорошо, пока сегодня не зашел на сайт и не обнаружил что он взломан.

Ядро было обновлено сразу до версии 2.7.3-pl. Но компоненты не стал обновлять.

Дак вот если собираетесь покупать не забудьте сразу обновить компонент Gallery, так как там стоит 1.7.0-pl который был взломан в 2018 году.
Почему то разработчик не позаботился проверить свои сборки на присутствие этого компонента, хотя прошло уже 2 года.

Собственно ответ тех поддержки был: сам дурак) А то что сборка с дырками по умолчанию продается, это нормально.

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

Вообще чтобы долго не замарачиваться проще скачать сайт целиком к себе на хостинг через команду:
wget -r -k -l 7 -p -E -nc http://site.com/
и посадить его на свою сборку.
Андрей Степаненко
05 октября 2020, 18:27
modx.pro
2
2 688
+4

Женим mFilter2 и Gallery

Выводим картики Gallery, фильтруем с помощью mFilter2.
Будет доступно два фильтра по tag и description



Необходимые компоненты
Устанавливаем необходимые компоненты:
Gallery
mSearch2
Володя
12 февраля 2018, 14:19
modx.pro
17
2 483
+16

msProductOptions глюк

[[msProductOptions? &hideEmpty=`1`]]
в итоге на странице получаю характеристики товара в таком виде
Повреждения: ROLLOVER 
Привод: privod, , default, , listbox 
Пробег: probeg, , default, , number 
Розничная цена: roznicaprice, , default, , number 
Состояние: sostoyanie, , default, , listbox 
Статус ставки: statusstavki, Never Bid, default, , listbox 
Стоимость ремонта: stoimostremonta, , default, , number 
Аукцион: auction, Manheim, default, , listbox 
Тип кузова: tipkuzova, , default, , listbox 
Цилиндры: cilindri, , default, , number : tipprodazi, s1, default, , listbox : colorinto, , default, , listbox 
Тип топлива: tiptopliva, бензин, default, , listbox 
Цвет кузова: colorext, черный, default, , listbox 
Вид транспорта: vidtransporta, 
Автомобиль, default, , listbox : datesale, , default, , date 
ВИН номер: vin, , default, , text 
Расположение: location, TX - DALLAS, default, , listbox 
Марка: make, Acura, default, , listbox 
Лот: lotid, , default, , text 
Год: year, , default, , number : model, ESCAPE SE, default, , listbox 
Текущая ставка: 200 
Объем двигателя: obemdvigatel, , default, , text
Конструкция вида
<pre>[[msProductOptions? &tpl=``]]</pre>

выводит следующее:

Array
(
    [options] => Array
        (
            [obemdvigatel] => Array
                (
                    [id] => 10
                    [caption] => Объем двигателя
                    [description] => 
                    [measure_unit] => 
                    [category] => 47
                    [type] => textfield
                    [properties] => 
                    [product_id] => 51
                    [key] => obemdvigatel
                    [value] => Array
                        (
                            [0] => obemdvigatel
                            [1] => 
                            [2] => default
                            [3] => 
                            [4] => text
                        )

                    [category_name] => 1 - Характеристики
                )

            [povrezdenia] => Array
                (
                    [id] => 11
                    [caption] => Повреждения
                    [description] => 
                    [measure_unit] => 
                    [category] => 47
                    [type] => textfield
                    [properties] => 
                    [product_id] => 51
                    [key] => povrezdenia
                    [value] => Array
                        (
                            [0] => ROLLOVER
                        )

                    [category_name] => 1 - Характеристики
                )

            [privod] => Array
                (
                    [id] => 12
                    [caption] => Привод
                    [description] => 
                    [measure_unit] => 
                    [category] => 47
                    [type] => textfield
                    [properties] => 
                    [product_id] => 51
                    [key] => privod
                    [value] => Array
                        (
                            [0] => privod
                            [1] => 
                            [2] => default
                            [3] => 
                            [4] => listbox
                        )

                    [category_name] => 1 - Характеристики
                )

            [probeg] => Array
                (
                    [id] => 13
                    [caption] => Пробег
                    [description] => 
                    [measure_unit] => 
                    [category] => 47
                    [type] => numberfield
                    [properties] => 
                    [product_id] => 51
                    [key] => probeg
                    [value] => Array
                        (
                            [0] => probeg
                            [1] => 
                            [2] => default
                            [3] => 
                            [4] => number
                        )

                    [category_name] => 1 - Характеристики
                )
Sergey Karpov
16 января 2018, 18:46
modx.pro
2
1 193
0

Страницы - поддомены

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

Позволяет использовать обычные страницы в качестве поддоменов, примеры:

mysite.ru/test — Изначальный адрес.
test.mysite.ru — Новый адрес с поддоменом.

Также работает и с дочерними страницами, примеры:

mysite.ru/test/page.html — Изначальный адрес.
test.mysite.ru/page.html — Новый адрес с поддоменом.
Олег
18 июля 2017, 07:47
modx.pro
23
6 678
+10

Скрипт для создания менеджера

Скрипт для создания пользователей с определенными правами и своим источником файлов для админки.

По умолчанию будет создан менеджер с логинам и паролем manager и медиа источником с корневым каталогам assets/uploads из прав у пользователя будет только возможность работать с ресурсами, а c пунктов меню доступ только к «Приложения»

Для настройки политики доступа необходимо в массив $accessPolicy добавить название определенной политики с значение 0 или 1
Prihod
09 октября 2016, 14:12
modx.pro
34
4 203
+22

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

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

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

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

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