Илья Уткин

Илья Уткин

С нами с 15 декабря 2012; Место в рейтинге пользователей: #9
Илья Уткин
08 октября 2014, 16:19
0
Для разнообразия, можно еще посмотреть компонент Mapex от студии CreateIt

Илья Уткин
06 октября 2014, 15:20
0
Поставь часовой пояс +4. Ждем обновления хрома или windows.
Не только у нас проблемы: http://habrahabr.ru/company/neobit/blog/239297/#comment_8037911
Илья Уткин
04 октября 2014, 16:46
0
А почему, интересно, если не секрет?
Илья Уткин
03 октября 2014, 09:57
+1
Штука офигенная. А скажите, не получится перехватывать нажатие Ctrl+S при редактировании чанка во вкладке? А то забываешься, жмешь Ctrl+S, а сохраняется шаблон и содержимое чанка возвращается к первоначальному виду.
Илья Уткин
02 октября 2014, 13:28
0
Да, скажется, конечно
Илья Уткин
02 октября 2014, 12:59
0
[[pdoResources?
  &parents=`0`
  &where=`{"class_key":"msCategory"}`
  &tpl=`tpl.category.list`
]]

Чанк tpl.category.list

<h3>[[+pagetitle]]</h3>
[[msProducts? &parents=`[[+id]]`]]
Илья Уткин
01 октября 2014, 12:40
0
Скрываешь поле description, а на его место ставишь этот TV.
Илья Уткин
29 сентября 2014, 22:28
1
+3
[[!+modx.user.id:eq=`1`:then=`
  <a href="/manager/?a=resource/update&id=[[*id]]">Редактировать</a>
`:else=``]]

http://docs.modx.pro/system/basics/filters-input-and-output
Илья Уткин
25 сентября 2014, 13:34
+1
Удалите последнее обновление Windows: https://modx.pro/help/3835/#comment-29212
Илья Уткин
24 сентября 2014, 14:59
0
Дам-с… )))

Первый магазин делаю, еще не вник целиком в логику))) Все получилось, теперь обновление и не нужно))
Илья Уткин
24 сентября 2014, 13:11
0
Немного поторопился написать в магазин. Сейчас объясню проблему и предлагаемое решение.

В студии «London PM» разрабатываем интернет-магазин. В магазине продаются товары разных размеров. У товара цена не заполнена, так как она зависит от размера. s311.h1.simpledream.ru/ Если товар добавить в корзину прямо из списка товаров (с главной страницы, например), то в корзине размер товара не отображается (так как он не был выбран, что логично, в общем-то), как и цена.

Вот плагин, чтобы вывести минимальную цену в списке товаров, если цены указаны только у разных размеров:
if ($modx->event->name == 'msOnGetProductPrice') {
	$values = & $modx->event->returnedValues;
	if (isset($values['price'])) {
		$price = $values['price'];
	}
	if (!$price) {
	    if (isset($data['properties']['msoptionsprice'])) {
	        $optionPrices = $data['properties']['msoptionsprice'];
	    } else {
	        $res = $modx->getObject('modResource', $product->id);
	        $optionPrices = $res->getProperties('msoptionsprice');
	    }
	    $optionPrices = array_filter($optionPrices, function($elem) {
	        return $elem;
	    });
	    $values['price'] = min($optionPrices);
	}
}

А это правки кода существующего плагина, чтобы в корзину передавались и цена, и размер:
public function msOnBeforeAddToCart($scriptProperties,$product = 0) {

    if (is_array($scriptProperties['options']) && !empty($scriptProperties['options'][$this->ms_op_options])) {
        $size = $scriptProperties['options'][$this->ms_op_options];
    } else {
        $optionPrices = $product->getProperties('msoptionsprice');
	    $minPrice = 0;
	    foreach ($optionPrices as $optionsize => $price) {
	        if (($price > 0 && $price < $minPrice) || !$minPrice) {
	            $minPrice = $price;
	            $size = $optionsize;
	        }
	    }
    }

	$id = $product->get('id');
	$res = $this->modx->getObject("modResource",$id);
	$properties = $res->get('properties');
	
	$new_price = $properties['msoptionsprice'][$size];
	$values = & $this->modx->event->returnedValues;
	if (isset($new_price)) $product->set('price', $new_price);
	if (isset($size)) $values['options']['size'] = $size;

}
Илья Уткин
22 сентября 2014, 15:48
+2
Снипетс-с-с-с-сов…
Илья Уткин
18 сентября 2014, 10:41
0
Если процессор лежит в папке /model/modx/processors/my/ и называется test.class.php, то $otherProps не нужен (тем более, в коде он дальше нигде и не используется).

Чтобы использовать $response->isError(), надо, чтобы процессор возвращал $this->success($res) или $this->failure();

И тогда в конце надо выводить не $response, а $response->response или $response->object.

В остальном, вроде, все верно. Может, кто еще что подскажет, но проблема может быть в хостинге. Попробуйте то же самое сделать на бесплатном аккаунте http://modxcloud.com/ или https://h.simpledream.ru/
Илья Уткин
17 сентября 2014, 21:42
+2
Надо, чтобы в процессоре была функция process()
https://github.com/bezumkin/modExtra/blob/master/core/components/modextra/processors/mgr/items/remove.class.php
<?php
/**
 * Remove an Items
 */
class modExtraItemsRemoveProcessor extends modProcessor {
        public $checkRemovePermission = true;
	public $objectType = 'modExtraItem';
	public $classKey = 'modExtraItem';
	public $languageTopics = array('modextra');

	public function process() {
          foreach (explode(',',$this->getProperty('items')) as $id) {
            $item = $this->modx->getObject($this->classKey, $id);
            $item->remove();
          }
          return $this->success();
	}
}
return 'modExtraItemsRemoveProcessor';

У тебя будет, наверное, так:
<?php
class modTestProcessor extends modProcessor {
    public function process() {
	$res = 'Hallo World!';
        return $res;
    }
}
return 'modTestProcessor';
Илья Уткин
11 сентября 2014, 19:17
0
Вам нужен параметр &resources