Klike
С нами с 14 января 2015; Место в рейтинге пользователей: #48[Решено] Изменить вид ссылки
Добрый день!
Есть блог на Tickets, где один раздел и все статьи, соответственно, в нём.
У каждой статьи есть TV категории и Теги. То есть одна статья может быть в нескольких категориях.
Вывод статей конкретной категории реализован с помощью фильтра по TV и pdoPage по такому принципу:
site.ru/blog?category=значение
Можно ли сделать вывод категорий такого вида: site.ru/blog/category/значение?
Подозреваю, что можно реализовать, используя дополнение VirtualPage, но не совсем понимаю, как оно работает.
Есть блог на Tickets, где один раздел и все статьи, соответственно, в нём.
У каждой статьи есть TV категории и Теги. То есть одна статья может быть в нескольких категориях.
Вывод статей конкретной категории реализован с помощью фильтра по TV и pdoPage по такому принципу:
site.ru/blog?category=значение
Можно ли сделать вывод категорий такого вида: site.ru/blog/category/значение?
Подозреваю, что можно реализовать, используя дополнение VirtualPage, но не совсем понимаю, как оно работает.
[mSklad] Удаление старых фото при синхронизации
Добрый день!
Искал решение, но не нашёл. Быть может плохо искал.
На сайте используется одно фото товара. Настроена синхронизация с 1С с помощью компонента mSklad.
При каждой синхронизации фото товаров добавляются в ресурс. Хотелось бы сделать так, чтобы старые удалялись, то есть заменялись новыми, если таковые есть.
Может кто-то уже сталкивался с данным моментом?
p.s. И ещё, в 1С у товаров, в которых нет фото, стоит заглушка. Можно ли как-то не синхронизировать её?)
Искал решение, но не нашёл. Быть может плохо искал.
На сайте используется одно фото товара. Настроена синхронизация с 1С с помощью компонента mSklad.
При каждой синхронизации фото товаров добавляются в ресурс. Хотелось бы сделать так, чтобы старые удалялись, то есть заменялись новыми, если таковые есть.
Может кто-то уже сталкивался с данным моментом?
p.s. И ещё, в 1С у товаров, в которых нет фото, стоит заглушка. Можно ли как-то не синхронизировать её?)
Сохранить вид каталога при переходе в новый раздел
Приветствую!
При просмотре категории, у посетителя есть три варианта вида каталога.
Может кто сталкивался, как оставить вид при переходе в другую категорию? Чтобы не переключаться каждый раз на ту, что удобна для посетителя.
Спасибо!
При просмотре категории, у посетителя есть три варианта вида каталога.
Может кто сталкивался, как оставить вид при переходе в другую категорию? Чтобы не переключаться каждый раз на ту, что удобна для посетителя.
Спасибо!
Добавить ID ресурса в alias (url)
Доброго времени суток!
Можно ли добавить ID ресурса в alias страницы?
К примеру сайт.ру/каталог/раздел-5/товар-12
Или же как можно делать проверку на повторяющиеся alias при автоматическом создании страниц с одинаковым названием?
К примеру, добавлять цифры или id ресурса, если такой alias уже существует.
Спасибо!
Можно ли добавить ID ресурса в alias страницы?
К примеру сайт.ру/каталог/раздел-5/товар-12
Или же как можно делать проверку на повторяющиеся alias при автоматическом создании страниц с одинаковым названием?
К примеру, добавлять цифры или id ресурса, если такой alias уже существует.
Спасибо!
Повторяющиеся заголовки при синхронизации с 1С
Структура категорий и товаров в 1С такая:
Как поправить данный конфликт, если не включать «Использовать вложенные URL»?
Может кто сталкивался с подобным?
- Канцелярия 1
- Ручки
- Parker
- Бренд 2
- Ручки
- Канцелярия 2
- Ручки
- Parker 2
- Бренд 3
- Ручки
Как поправить данный конфликт, если не включать «Использовать вложенные URL»?
Может кто сталкивался с подобным?
Вид списка товаров таблицей
Поздравляю всех мужчин с праздником!
Есть три вида списка товаров: списком, сеткой, таблицей.
С первыми двумя проблем не возникло, для третьего вида необходимо было скрывать правый столбец с информацией, чтобы таблице больше места было. С этим тоже всё достаточно легко:
Есть три вида списка товаров: списком, сеткой, таблицей.
С первыми двумя проблем не возникло, для третьего вида необходимо было скрывать правый столбец с информацией, чтобы таблице больше места было. С этим тоже всё достаточно легко:
$('a.three').click(function() {
$('.span9').removeClass('col-xs-9').addClass('col-xs-12');
$('.rightBlock').addClass('hidden');
Но вот результаты обернуть в код таблицы, так и не получилось, пытался так: $("#mse2_results").wrapInner("<table class='table table-bordered'><thead><tr class='gray'><th class='text-center'>Артикул</th><th class='text-center'>Наименование</th><th class='text-center'>Цена</th><th class='text-center'>Количество</th><th class='text-center'>В корзину</th></tr></thead><tbody>")
Но как-то тихо всё. Буду рад любой подсказке! Оптовые цены свыше 10 000руб.
Добрый день, необходимо реализовать функционал, когда товаров в корзине на сумму больше 10 000руб., начинаются учитываться оптовые цены товаров. В PHP не силён, нашёл такой пример, там есть вариант плагина, пробовал его адаптировать под себя, не получилось:
Кто подскажет, что делаю не так?
И хотелось бы динамическое обновление цен, в данном случае должно обновляться с перезагрузкой.
<?php
switch ($modx->event->name) {
case 'msOnChangeInCart': case 'msOnAddToCart': case 'msOnRemoveFromCart':
$miniShop2 = $modx->getService('minishop2','miniShop2',
MODX_CORE_PATH . 'components/minishop2/model/minishop2/', $scriptProperties);
if (!($miniShop2 instanceof miniShop2)) return '';
// Инициализируем класс в текущий контекст
$miniShop2->initialize($modx->context->key, $scriptProperties);
$total_cost = $miniShop2->cart->status()['total_cost'];
$tmp = $miniShop2->cart->get();
if ($total_cost > 10000) { // если 10000руб и более – оптовые цены, в интернет-магазине оптовые цены забиваются в поле old_price
foreach ($tmp as $key1 => $value) {
if ($product = $modx->getObject('msProduct', $value['id'])) {
$realPrice = $product->get('price');
$optPrice = $product->get('old_price'); // вместо old_price можно указать любое другое поле товара
$tmp[$key1]['price'] = $optPrice;
}
}
}
else {
foreach ($tmp as $key1 => $value) {
if ($product = $modx->getObject('msProduct', $value['id'])) {
$realPrice = $product->get('price');
$tmp[$key1]['price'] = $realPrice;
}
}
}
$miniShop2->cart->set($tmp);
break;
}
Кто подскажет, что делаю не так?
И хотелось бы динамическое обновление цен, в данном случае должно обновляться с перезагрузкой.
Три вида вывода списка товаров в категории
Добрый день!
Есть три варианта отображения категории товара.
(Обновляется динамически, как и по умолчанию в стандартной версии miniShop2+mSearch2)
Тема Bootstrap.
Два из них – Две колонки (ширина 9 [col-md-9] / ширина 3 [col-md-3])
В ширине 9 – Вид списком либо вид Сеткой,
В ширине 3 – доп.информация.
С этим трудностей не возникло.
Третий вариант на полную ширину (на 12 [col-md-12]) вид Таблицей.
Вопрос: Как без обновления страницы убирать колонку с Оп.Информацией и Ширину 9 [col-md-9] соответственно превращать в ширину 12[col-md-12]?
Вообще, было бы здорово использовать два &tplOuter (Один под первые два вида, второй – под третий)
Есть три варианта отображения категории товара.
(Обновляется динамически, как и по умолчанию в стандартной версии miniShop2+mSearch2)
Тема Bootstrap.
Два из них – Две колонки (ширина 9 [col-md-9] / ширина 3 [col-md-3])
В ширине 9 – Вид списком либо вид Сеткой,
В ширине 3 – доп.информация.
С этим трудностей не возникло.
Третий вариант на полную ширину (на 12 [col-md-12]) вид Таблицей.
Вопрос: Как без обновления страницы убирать колонку с Оп.Информацией и Ширину 9 [col-md-9] соответственно превращать в ширину 12[col-md-12]?
Вообще, было бы здорово использовать два &tplOuter (Один под первые два вида, второй – под третий)
[[!mFilter2?
&limit=`10`
&element=`msProducts`
&filters=`
parent:categories,
ms|tmark:default,
ms|type1:default,
ms|color1:default
`
&tpls=`tpl.msProducts.row,tpl.msProducts.row2,tpl.msProducts.row3`
&class=`msProduct`
&tplOuter=`tpl.mFilter2.outer.2`
]]
Может плохо описал, не понятно. Но постарался подробно изложить ситуацию. Динамическая кнопка Купить / В корзине
Появилась необходимость реализовать динамическую кнопку Купить / В корзине.
Может кому-то пригодится.
Спасибо Алексею Наумову, Василию Наумкину за помощь в реализации.
Чанк Купить 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]]`]]