Klike

Klike

С нами с 14 января 2015; Место в рейтинге пользователей: #48

[Решено] Изменить вид ссылки

Добрый день!

Есть блог на Tickets, где один раздел и все статьи, соответственно, в нём.
У каждой статьи есть TV категории и Теги. То есть одна статья может быть в нескольких категориях.

Вывод статей конкретной категории реализован с помощью фильтра по TV и pdoPage по такому принципу:
site.ru/blog?category=значение

Можно ли сделать вывод категорий такого вида: site.ru/blog/category/значение?

Подозреваю, что можно реализовать, используя дополнение VirtualPage, но не совсем понимаю, как оно работает.
Klike
28 апреля 2015, 06:10
modx.pro
2
1 080
0

[mSklad] Удаление старых фото при синхронизации

Добрый день!
Искал решение, но не нашёл. Быть может плохо искал.

На сайте используется одно фото товара. Настроена синхронизация с 1С с помощью компонента mSklad.
При каждой синхронизации фото товаров добавляются в ресурс. Хотелось бы сделать так, чтобы старые удалялись, то есть заменялись новыми, если таковые есть.

Может кто-то уже сталкивался с данным моментом?

p.s. И ещё, в 1С у товаров, в которых нет фото, стоит заглушка. Можно ли как-то не синхронизировать её?)
Klike
20 апреля 2015, 12:15
modx.pro
1
923
0

Сохранить вид каталога при переходе в новый раздел

Приветствую!
При просмотре категории, у посетителя есть три варианта вида каталога.
Может кто сталкивался, как оставить вид при переходе в другую категорию? Чтобы не переключаться каждый раз на ту, что удобна для посетителя.
Спасибо!
Klike
17 марта 2015, 16:58
modx.pro
1
774
0

Добавить ID ресурса в alias (url)

Доброго времени суток!
Можно ли добавить ID ресурса в alias страницы?

К примеру сайт.ру/каталог/раздел-5/товар-12

Или же как можно делать проверку на повторяющиеся alias при автоматическом создании страниц с одинаковым названием?

К примеру, добавлять цифры или id ресурса, если такой alias уже существует.

Спасибо!
Klike
12 марта 2015, 15:50
modx.pro
2
5 389
0

Повторяющиеся заголовки при синхронизации с 1С

Структура категорий и товаров в 1С такая:
  • Канцелярия 1
    • Ручки
      • Parker
      • Бренд 2

  • Канцелярия 2
    • Ручки
      • Parker 2
      • Бренд 3

При синхронизации первая категория «РУЧКИ» из «Канцелярии 1» появляется в дереве ресурсов с товарами, а вторая категория «РУЧКИ» из «Канцелярия 2» вообще не появляется в «Канцелярия 2», а товары из категории «Ручки» создаются в корне сайта.

Как поправить данный конфликт, если не включать «Использовать вложенные URL»?
Может кто сталкивался с подобным?
Klike
12 марта 2015, 14:59
modx.pro
1
1 010
0

Вид списка товаров таблицей

Поздравляю всех мужчин с праздником!

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

$('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>")
Но как-то тихо всё. Буду рад любой подсказке!
Klike
23 февраля 2015, 04:54
modx.pro
1
1 687
0

Оптовые цены свыше 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;
}


Кто подскажет, что делаю не так?
И хотелось бы динамическое обновление цен, в данном случае должно обновляться с перезагрузкой.
Klike
19 февраля 2015, 08:57
modx.pro
1
1 066
0

Три вида вывода списка товаров в категории

Добрый день!

Есть три варианта отображения категории товара.
(Обновляется динамически, как и по умолчанию в стандартной версии 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`
]]
Может плохо описал, не понятно. Но постарался подробно изложить ситуацию.
Klike
17 февраля 2015, 13:52
modx.pro
1
2 657
0

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

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

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

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

Чанк Купить 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