Олег
С нами с 19 декабря 2016; Место в рейтинге пользователей: #593Покупка на ultron.pro! Не забудьте обновить ядро и компонент Gallery
Пару месяцев назад была куплена сборка на сайте ultron.pro для знакомого который открыл кафе.
Все было хорошо, пока сегодня не зашел на сайт и не обнаружил что он взломан.
Ядро было обновлено сразу до версии 2.7.3-pl. Но компоненты не стал обновлять.
Дак вот если собираетесь покупать не забудьте сразу обновить компонент Gallery, так как там стоит 1.7.0-pl который был взломан в 2018 году.
Почему то разработчик не позаботился проверить свои сборки на присутствие этого компонента, хотя прошло уже 2 года.
Собственно ответ тех поддержки был: сам дурак) А то что сборка с дырками по умолчанию продается, это нормально.
Да фиг с ним с моим сайтом. Но ожидать того что сборка по умолчанию пробита, как то даже в мысли не приходило. Советуешь еще потом зайти на этот сайт подобрать какой то шаблон себе. В итоге получаешь старую сборку, которая в принципе может не работать после обновления всех компонентов.
Вообще чтобы долго не замарачиваться проще скачать сайт целиком к себе на хостинг через команду:
Все было хорошо, пока сегодня не зашел на сайт и не обнаружил что он взломан.
Ядро было обновлено сразу до версии 2.7.3-pl. Но компоненты не стал обновлять.
Дак вот если собираетесь покупать не забудьте сразу обновить компонент Gallery, так как там стоит 1.7.0-pl который был взломан в 2018 году.
Почему то разработчик не позаботился проверить свои сборки на присутствие этого компонента, хотя прошло уже 2 года.
Собственно ответ тех поддержки был: сам дурак) А то что сборка с дырками по умолчанию продается, это нормально.
Да фиг с ним с моим сайтом. Но ожидать того что сборка по умолчанию пробита, как то даже в мысли не приходило. Советуешь еще потом зайти на этот сайт подобрать какой то шаблон себе. В итоге получаешь старую сборку, которая в принципе может не работать после обновления всех компонентов.
Вообще чтобы долго не замарачиваться проще скачать сайт целиком к себе на хостинг через команду:
wget -r -k -l 7 -p -E -nc http://site.com/
и посадить его на свою сборку.Женим mFilter2 и Gallery
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 - Характеристики
)
Страницы - поддомены
Всем привет!
Возникла потребность показывать страницы в качестве поддоменов, причем сохраняя возможность вложенности страниц.
Не нашел готового решения, потому результатом стал плагин, который можно увидеть под катом.
Позволяет использовать обычные страницы в качестве поддоменов, примеры:
mysite.ru/test — Изначальный адрес.
test.mysite.ru — Новый адрес с поддоменом.
Также работает и с дочерними страницами, примеры:
mysite.ru/test/page.html — Изначальный адрес.
test.mysite.ru/page.html — Новый адрес с поддоменом.
Возникла потребность показывать страницы в качестве поддоменов, причем сохраняя возможность вложенности страниц.
Не нашел готового решения, потому результатом стал плагин, который можно увидеть под катом.
Позволяет использовать обычные страницы в качестве поддоменов, примеры:
mysite.ru/test — Изначальный адрес.
test.mysite.ru — Новый адрес с поддоменом.
Также работает и с дочерними страницами, примеры:
mysite.ru/test/page.html — Изначальный адрес.
test.mysite.ru/page.html — Новый адрес с поддоменом.
Скрипт для создания менеджера
Скрипт для создания пользователей с определенными правами и своим источником файлов для админки.
По умолчанию будет создан менеджер с логинам и паролем manager и медиа источником с корневым каталогам assets/uploads из прав у пользователя будет только возможность работать с ресурсами, а c пунктов меню доступ только к «Приложения»
Для настройки политики доступа необходимо в массив $accessPolicy добавить название определенной политики с значение 0 или 1
По умолчанию будет создан менеджер с логинам и паролем manager и медиа источником с корневым каталогам assets/uploads из прав у пользователя будет только возможность работать с ресурсами, а c пунктов меню доступ только к «Приложения»
Для настройки политики доступа необходимо в массив $accessPolicy добавить название определенной политики с значение 0 или 1
Динамическая кнопка Купить / В корзине
Появилась необходимость реализовать динамическую кнопку Купить / В корзине.
Может кому-то пригодится.
Спасибо Алексею Наумову, Василию Наумкину за помощь в реализации.
Чанк Купить tplOut:
Чанк В корзине tplIn:
Скрипт (требуется подключенный jQuery)
Сниппет myButton:
Кнопка вызывается таким образом:
Может кому-то пригодится.
Спасибо Алексею Наумову, Василию Наумкину за помощь в реализации.
Чанк Купить 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]]`]]