Александр Туниеков

Александр Туниеков

С нами с 19 декабря 2015; Место в рейтинге пользователей: #15
Александр Туниеков
13 октября 2016, 22:16
0
Заработало. Я пытался править modx.class.php из админки. Как подсказал Володя его надо было залить по ftp.
И в плагине правки:
<?php
switch ($modx->event->name) {

	case 'msOnGetProductPrice':
		if ($modx->context->key == 'mgr') {return;}
		// Плагин принимает:
		// $product - объект msProductData
		// $data - массив со свойствами товара, может отсутствовать
		// $price - текущая цена товара

		// Подключаем массив значений по ссылке - так удобнее
		$values = & $modx->Event->returnedValues;
        $values2 = & $modx->event->returnedValues;
...
		
		$price = $price*$course;
		$values['price'] = round($price, 0);
		$values2['price'] = $values['price'];
...
		break;
}
Александр Туниеков
12 октября 2016, 18:47
0
Поясните пожалуйста.
поставили php5.3 та же проблема :(
Александр Туниеков
12 октября 2016, 18:26
0
фикс можно вот такой сделать github.com/modxcms/revolution/pull/13116
Не работает
// Подключаем массив значений по ссылке - так удобнее
		$values = $modx->event->returnedValues;

		// Цена может меняться несколькими плагинами сразу, поэтому проверяем:
		if (isset($values['price'])) {
			$price = $values['price'];
		}
		$modx->log(MODX::LOG_LEVEL_ERROR,'Плагин price_currency '.print_r($values,true));
print_r($values,true) все равно пустое :(
Александр Туниеков
12 октября 2016, 18:04
0
Спасибо посмотрю. еще один вопрос можно?
Есть плагин который в корзине меняет цену в зависимости от кол-ва. (блин плагин выше валюту переводит. поторопился когда писал.)
<?php
switch ($modx->event->name) {
	case 'msOnAddToCart': case 'msOnChangeInCart': case 'msOnRemoveFromCart':

		$cartArray = $cart->get();
		$cartStatus = $cart->status();
		$totalCount = $cartStatus['total_count'];
        //получаем курс валюты
....
        		$price = $product->get('price')*$course;
        		$old_price = round($product->get('old_price')*$course, 0);
        		//получаем скидку товара
....
		$cart->set($cartArray);
		break;

}
Как в этой строке
$price = $product->get('price')*$course;
можно получить цену модифицированную msOptionsPrice2?
Александр Туниеков
12 октября 2016, 17:07
0
Помогите плиз. На событие msOnGetProductPrice стоит 2 плагина. Первым отрабатывает плагин msoptionsprice вторым вызывается плагин для изменения цены от кол-ва товаров.
switch ($modx->event->name) {

	case 'msOnGetProductPrice':
		if ($modx->context->key == 'mgr') {return;}
		// Плагин принимает:
		// $product - объект msProductData
		// $data - массив со свойствами товара, может отсутствовать
		// $price - текущая цена товара

		// Подключаем массив значений по ссылке - так удобнее
		$values = &$modx->event->returnedValues;

		// Цена может меняться несколькими плагинами сразу, поэтому проверяем:
		if (isset($values['price'])) {
			$price = $values['price'];
		}
		$modx->log(MODX::LOG_LEVEL_ERROR,'Плагин price_currency '.print_r($values,true));
$values
приходит пустое. То есть изменение цены от первого плагины не приходит.
Почему это происходит и как вылечить?
Александр Туниеков
23 сентября 2016, 00:31
0
Написал специально тестовый сниппет и все заработало. Разобрался в чем косяк :). Я в форме вызывал плейсхолдер с модификатором раньше, чем сниппет который выставляет плейсхолдер.
[[$search_form]]
[[!+topic_bar_cat]]
[[!+topic_bar_cat:is=`1`:then=`true`:else=`false`]]
[[!pdoPage?
	&element=`mSearch2`
	&limit=`10`
	&where=`[[!get_search_where?]]`
	&includeTVs=`topic_bar_cat,topic_price,topic_torg,topic_sity`
	&tpl=`My.tpl.mSearch2.row`
]]

<div class="pagination">
	[[!+page.nav]]
</div>
Плейсхолдер выставляет
[[!get_search_where?]]
.

Наверно парсер MODX обрабатывает плейсхолдер с модификатором раньше, чем выставляется сам плейсхолдер.
Александр Туниеков
22 сентября 2016, 20:33
0
Это наверно нужно, но в данном случае вызов не кешированным не помогает. Какая-то ошибка с приведением типов переменной. Если отправить этот плейсхолдер в сниппет, то
echo intval($topic_bar_cat);
//выдает 0
echo $topic_bar_cat;
//выдает 1
Александр Туниеков
22 сентября 2016, 04:25
0
А вот поздно уже :). На tickets половина работы уже сделана и начинать разработку на другом компоненте нет желания.
Александр Туниеков
22 сентября 2016, 01:18
0
Пока никак. Заказчику пока не требуется. Если вдруг понадобиться то сделаю и выложу :)
Александр Туниеков
21 сентября 2016, 19:00
0
А поиск как делали? на msearch2?
Александр Туниеков
21 сентября 2016, 15:09
0
Я с tickets раньше ничего не делал. Мне не так уж все легко и понятно :). 4 дня потратил пока. Демка для маленьких, чтобы легче было пройти по проторенному пути :)
Александр Туниеков
21 сентября 2016, 15:04
0
Спасибо. Жаль msearch2 на демо поставить нельзя. Компонент платный, а для демо его покупать не охота. Разве, что Василий разрешить поставить без покупки в образовательных целях :).
Александр Туниеков
21 сентября 2016, 14:59
0
спасибо за ссылку
Александр Туниеков
21 сентября 2016, 14:59
0
Не знал что так можно :)
Александр Туниеков
19 сентября 2016, 03:12
1
0
Нашел в тут.
Для того чтобы ссылка редактировать была в списке тикетов вставляем в tpl.Tickets.list.row строку
[[!+isauthor:is=`1`:then=`<a href="/dobavit-tickets.html?tid=[[+id]]">Редактировать</a>`]]
dobavit-tickets.html — страница добавления тикета с фронта сайта. [[+id]] тикета которого можно редактировать.
В шаблоне страницы тикетов ставим:
[[!+modx.user.id:is=`[[*createdby]]`:then=`<a href="/dobavit-tickets.html?tid=[[*id]]">Редактировать</a>`]]
В итоге авторы тикетов могут перейти на редактирование тикета из списка тикетов и из просмотра тикета.
Александр Туниеков
13 августа 2016, 00:46
0
В тз 16 пунктов. Если на каждый пункт положить по часу работы по 500р, то стоимость 8000р.
Но по часу работы это так для примера. Треть заданий, вроде, на 15-20 минут, а треть мне не известно сколько. Может по часа 3 занять.
В общем, за 8000р я бы взялся делать с возможностью, если задачи окажутся сложными, добавить пару тысяч.
Мне самому интересно как оценивать работу по такому тз. Может кто-нибудь поделиться своей оценкой работы?
Александр Туниеков
12 августа 2016, 20:10
0
3000 по моему маловато для такого тз?
Александр Туниеков
06 августа 2016, 22:38
0
Добрый день!
С CatalogFill раз сталкивался :-). Думаю могу сделать.
Skype: touols