Константин Ильин

Константин Ильин

С нами с 10 февраля 2014; Место в рейтинге пользователей: #163
Константин Ильин
16 декабря 2021, 16:32
0
С pdoMenu проблемы.
В документации написано
&tplOuter — Чанк оформления всего блока меню. По умолчанию: @INLINE <ul [[+classes]]>[[+wrapper]]
При указании tplOuter работает неверно, он начинает использовать его для всех подменю.
prnt.sc/239rcei

Попробовал указать tplParentRow и у него указал ul, помогло.

Решил сделать тест на модхосте, тоже самое
s28405.h8.modhost.pro/

Не могу утверждать данная проблема связана с последними изменениями, но она как видно есть либо в документации неверно написано.
<ul class="test">
    {'!pdoMenu' | snippet : [
        'parents' => 0,
        'level' => 2,
        'tplOuter' => '@INLINE {$wrapper}',
        '-tplParentRow' => '@INLINE <li class="submenu_wrapp {$classnames}"><a href="{$link}" {$attributes}>{$menutitle}</a><ul>{$wrapper}<ul></li>'
    ]}
    <li>
        <a href="#">Заказ звонка</a>
    </li>
</ul>

п.с. Раньше использовал такой «прием» и норм было.
Константин Ильин
30 ноября 2021, 17:24
0
Есть ли ссылки примеры?

Я просто не совсем понимаю, если у меня скрипт будет автоматически логинится, то будет получать права. Он доступен через урл, напрямую. Т.е. «Иван» зайдет по адресу и получит сессию с правами?
и будет ли работать этот прием для CRON
Константин Ильин
30 ноября 2021, 10:24
0
Тоже про все это подумал, решил не рисковать с правами. Создавать процессоры и т.п.
Сделал через newObject. Думал проблема будет с опциями, а там все просто оказалось.

Кому пригодится
// Нестандартные опции, cтандартные опции товара записываются вместе с полями товара
$options['idads'] = $idADS;
$options['floor'] = $floor;

$newProduct = $modx->newObject('msProduct');
$alias = $newProduct->cleanAlias($pagetitle);

//Поля товара(ресурса)
$arrRes = [
    'pagetitle' => $pagetitle,
    'published' => 1,
    'alias' => $alias,
    'content' => $ADS['description'] ?: '',
    'parent' => $parent,
    'show_in_tree' => 0,
    'template' => 20,

    //Стандартные опции товара
    'color' => ['синий', 'красный']
    'old_price' => 0,
    'price' => $ADS['price']['value'] ?: 0,
];

// Можно было использовать fromArray()
foreach ($arrRes as $field => $v){
    $newProduct->set($field,$v);
}

// Собственно, запись нестандартных опций, простая передача массива
$newProduct->set('options', $options);

// сохраняем
$newProduct->save();
Сейчас проблема с загрузкой изображений gallery/upload, там тоже через процессор, видимо тоже права, разбираться надо
Константин Ильин
24 ноября 2021, 16:16
0
а где можно проверить компонент, точнее говоря где такой же вызов компонента?

Например здесь норм
prnt.sc/20s66rs

Видимо модальное окно выше по z-index
Константин Ильин
24 ноября 2021, 16:03
0
miniShop2 2.9.3-pl
MODX Revolution 2.8.3-pl
Google Chrome последний
ctrl+F5 нажимал

Что-то с z-index у списка выбора опции, не могу выбрать опции

prnt.sc/20s4etp
Константин Ильин
27 октября 2021, 23:07
0
21 октября 2021 писал вопрос на modx.pro. Написал отправил, вроде ок. Но потом тоже началось такое же, что сайт недоступен. Иногда проскакивало и открывался. Хотел посмотреть ответили ли мне, захожу и недоступно.
За день до этого тоже, заходил и условно через раз недоступен.
ВПН или прочим не пользуюсь, в тот день все стабильно работало кроме modx.pro.

Может это чем-то поможет… может проблемы глобальнее))
Константин Ильин
21 октября 2021, 15:53
0
спасибо Сергей!
Константин Ильин
11 октября 2021, 15:30
0
Странное поведение, внутрь товара проваливаешься т.е. на самой странице все норм
Константин Ильин
11 октября 2021, 13:22
0
Не подскажете в чем проблема, в image вместо пути к картинке стоит какой-то id(видимо файла)
prnt.sc/1vp26tp

Вывожу через msProducts
В этой же категории есть пару товаров и у них нормально прописан путь
Константин Ильин
27 июля 2021, 18:24
0
Ребят, не в первый раз ошибка при установке минишопа
prnt.sc/1gnp58t

Последние релизы модх ставятся не с той кодировкой
prnt.sc/1gnq1kd

Даже если ставишь свежий модх с кодировкой которая была раньше, все равно при установке минишопа ошибка.

Приходится устанавливать сначала версию модх 2.7.3(т.е. все ок с кодировкой), установить минишоп, потом повышать модх до последней.

хостинг Таймвеб, версия MySQL 5.6
Константин Ильин
06 мая 2021, 22:38
+1
Супер!

Я делал подобный функционал через MIGX, проблема вставала когда использовал msPromocode2 там пересчет цены он сбивал все надбавки к цене, (не утверждаю, но видимо берет цену у продукта, а не из корзины), хотелось бы узнать совместимость с подобными компонентами которые пересчитывают цену
Константин Ильин
08 апреля 2021, 17:46
+1
Так попробуйте для фенома
'where' => ('{ "news_projects":'~$_modx->resource.id~' }'),
Константин Ильин
04 апреля 2021, 17:36
0
У меня Контексты это города. У каждого города свой каталог.
Есть еще общие страницы которые не стоило(не хотелось) дублировать во всех контекстах, например корзина или статьи, отсюда и переключение контекста

Вроде автор кода Илья Уткин
// Поиск Страницы в другом контексте
        if ($_SERVER['REQUEST_URI'] != '/') {
            $uri = substr($_SERVER['REQUEST_URI'],1);
            if (substr($uri,-5) != '.html' && substr($uri,-1) != '/') {
              //$uri .= '/';
            }
            $resource = $modx->getObject('modResource', array('uri' => $uri, 'context_key' => $placeholders['cityContext']));
            if (!empty($resource)) {
                $ctx = $resource->get('context_key');
            } else{
                return '';
            }
        } else {
            $ctx = 'web';
        }
        
        if ($ctx != $modx->context->key){
        	$modx->switchContext($ctx);
        }
например я добавил товар в контексте kazan, если я переду на «общую» страницу будет контекст web, и он ничего не отобразит в миникорзине и в корзине самой.

В целом я решил вопрос по другому, написал на событие добавления, чтобы он присваивал пустой контекст в корзине. По умолчанию там присваивался текущий. Для чего хранится контекст хз, отсюда как и на что это повлияет хз, но я заказы делал — полет нормальный.
case 'msOnAddToCart': 
        $tmp = $cart->get();
        $tmp[$key]['ctx'] = '';
        $cart->set($tmp);
    break;
Константин Ильин
04 апреля 2021, 17:25
0
Не берусь браться интерпретировать как баг, но в документации не совпадение с тем, что на самом деле.
prnt.sc/113zuqe

context общий параметр pdoTools
Константин Ильин
04 апреля 2021, 13:32
0
Приветствую
Столкнулся с проблемой, когда товары в разных контекстах корзина не выводила товара, даже при указании контекста в вызове.
Полез в сниппет msCart, а он и не учитывал этот параметр, а брал текущий
prnt.sc/113uu0p
$miniShop2->initialize($modx->context->key);

Дописал:
$context = $modx->getOption('context', $scriptProperties, $modx->context->key);
$miniShop2->initialize($context);

И это не только в msCart, во всех где есть инициализация и контекст такой недочет
@Иван Бочкарев, есть ли возможность поправить в след релизе? а то клиент вдруг обновится без моего ведома, а я исходник правил.
Константин Ильин
15 марта 2021, 10:27
0
Спасибо! Такое я уже делал, правда очень давно, тоже про него вспомнил, но подумал, что получше решение есть :)
Думаю так и сделаю
Константин Ильин
02 февраля 2021, 23:05
0
Пожелание о будущей доработке называется issue
точно, затупил.

Его название после добавления в корзину к товару уже никак не привязано и там может быть написано все что угодно.
В сессии хранится тока id опции цена, но названия нет. Получается он дергает товар при выводе корзины.
Или я чего то не знаю.
Константин Ильин
02 февраля 2021, 19:21
+1
@Иван Бочкарев, можете создать(PR) на будущее, чтобы в корзине хранилось название товара, чтобы его можно было видоизменять как угодно и в заказе после оно использовалось.

Пример проблемы:
Товар «Машина 2115», человек добавляет в корзину вместе с опциями, среди них например Цвет «Красный».
В корзине/заказе название товара и опции отдельно отображаются, далее в интернет эквайринг идет только название «Машина 2115», но цвет надо тоже отобразить в чеке, допустим другие опции не надо, но именно цвет надо. Т.е. должно было бы отображаться «Машина 2115, цвет Красный» х 1

Уже для программистов не составит труда, написать условия для изменения названия на основе опций, в плагине на событии msOnAddToCart

Сейчас я сделал после создания заказа приписать опции(пока условия не требуются). Все работает, но это влечет за собой переработку шаблонов корзины, письма.
case 'msOnChangeOrderStatus':
        if ($status == 1) { 
            $orderArray = $order->toArray();
            if(strtotime($orderArray['createdon'])+15 > time() ){
            	$products = $order->getMany('Products');
            	foreach ($products as $product) {
            	    $p = $product->toArray();
            		$newName = $p['name'];
            		if(!empty($p['options'])){
            		    foreach($p['options'] as $option => $value){
            		        $newName .= ', '.$value;
            		    }
            		}
            		$product->set('name', $newName);
            		$product->save();
            	}
            }
        }
    break;
Если есть такая возможность по времени, было бы круто иметь такую фичу, ну если поддержите данную затею.
Константин Ильин
02 февраля 2021, 00:02
0
Так попробуйте. Надо исходить из последних изменений которые вы делали. Например обновили минишоп и что-то не работает, повысили php — отвалилось все. У вас работало и вдруг долго стало и ошибки пошли, причинно-следственную связь надо построить.
Первое, чтобы я попробовал это версия пхп.
так же версии модх и минишопа написать можно.
Константин Ильин
01 февраля 2021, 23:01
0
Есть отличный скрипт от хорошего человека :)

ilyaut.ru/cheats/to-rebuild-all-previews-of-products/