Илья Александрович

Илья Александрович

Был в сети 08 ноября 2023, 20:08
Заказы принимаю
Всем привет!
Как же все таки вывести msOptionsPrice2 — чекбоксами?
Точнее они то выводятся, но работают криво, как писали выше. считает по последнему и всегда как будто активный висит какой то.
Как вывести цену модификации?
Спасибо, очень пригодилось.
Есть вопрос, а как под PHP 8+ переписать строки 37 и 46
if (strlen($parent_id) > 0 && $parent_id != 0) {
    ....
    if (strlen($category_type) > 0) {
Ругается на parent_id и category_type
PHP warning: Undefined variable $parent_id
    PHP warning: Undefined variable $category_type
вот решение:
{'!mFilter2' | snippet : [
                            'class' => 'msProduct',
                            'element' => 'msProducts',
                            'loadModels' => 'msTopProducts',
                            'parents' => $_modx->resource.id,
                            'showHidden' => '0',
                            'showUnpublished' => '0',
                            'hideContainers' => '0',
                            'showLog' => '0',
                            'suggestions' => '1',
                            'ajaxMode' => 'default',
                            
                            'includeThumbs' => 'medium,480x576',
                            'tpls'  => 'tpl.product.block,tpl.product.row',
                            
                            'tplOuter' => 'tpl.mFilter2.outer',
                            'tplFilter.outer.default' => 'tpl.mFilter2.filter.outer',
                            'tplFilter.row.default' => 'tpl.mFilter2.filter.checkbox',
                            
                            'filters' => '
                                resource|parent:parents,
                            ',
    
                            'leftJoin'=>'{
                                "P1": {
                                    "class": "msProductOption",
                                    "on": "P1.key = \'p1\' and P1.product_id = msProduct.id"
                                },
                                "P2": {
                                    "class": "msProductOption",
                                    "on": "P2.key = \'p2\' and P2.product_id = msProduct.id"
                                },
                            	"msTopProduct" : {
                            		"class" : "msTopProduct",
                            		"alias" : "msTopProduct",
                            		"on" : ["msTopProduct.product_id = msProduct.id", "msTopProduct.category_id = ' ~ $_modx->resource.id ~ ' "]
                            	}
                            }',   
                        
                            'sortAliases' => '{"p1":"P1","p2":"P2"}',
                            'aliases' => 'p1|value==p1,p2|value==p2',
                            
                            'sortby' => '{"msTopProduct.rank":"DESC", "msProduct.menuindex":"ASC"}',
                            
                            'limit' => '9',
                            'pageLimit' => '7',
                            
                            'tplPage' => '@INLINE <li class="page-item control"><a class="page-link" href="[[+href]]">[[+pageNo]]</a></li>',
                            'tplPageWrapper' => '@INLINE <div class="col-12 pagination justify-content-center"><ul class="pagination">[[+first]][[+prev]][[+pages]][[+next]][[+last]]</ul></div>',
                            'tplPageActive' => '@INLINE <li class="page-item active"><span class="page-link">[[+pageNo]]</span></li>',
                            'tplPageFirst' => '@INLINE <li class="page-item control"><a class="page-link" href="[[+href]]"><i class="fas fa-angle-double-left"></i></a></li>',
                            'tplPageLast' => '@INLINE <li class="page-item control"><a class="page-link" href="[[+href]]"><i class="fas fa-angle-double-right"></i></a></li>',
                            'tplPagePrev' => '@INLINE <li class="page-item control"><a class="page-link" href="[[+href]]"><i class="fas fa-angle-left"></i></a></li>',
                            'tplPageNext' => '@INLINE <li class="page-item control"><a class="page-link" href="[[+href]]"><i class="fas fa-angle-right"></i></a></li>',
                            'tplPageSkip' => '@INLINE <li class="page-item disabled"><span>...</span></li>',
                            'tplPageFirstEmpty' => '@INLINE ',
                            'tplPageLastEmpty' => '@INLINE ',
                            'tplPagePrevEmpty' => '@INLINE ',
                            'tplPageNextEmpty' => '@INLINE ',
                            'ajaxTplMore' => '@INLINE <button class="btn btn-outline-danger rounded-0 my-3 btn-more">Загрузить ещё</button>',
                        ]}
Без FENOM'а вызов работает как надо. Как это победить?
[[!Localizator?
                                &snippet = `pdoResources`
                                &parents = `22`
                                &limit = `10`
                                &offset = `0`
                                &sortby = `publishedon`
                                &sortdir = `desc`
                                &tpl = `tpl.main.news.slider`
                                &tvPrefix = ``
                                &prepareTVs = `1`
                                &processTVs = `1`
                                &includeTVs = `category,preview,news_projects`
                                &where = `{ "news_projects":"[[*id]]" }`
                            ]]
Вот рабочий вариант, только как сразу все категории перезаписать не получилось сделать, нужно менять parent
<?php
$products = $modx->getIterator('msProduct', array('parent' => 125));
foreach($products as $product){
    $options = $product->getMany('Options');
    $options = array(
    	'quantity' => array('99999'),
    );
    $product->set('options', $options);
    $product->save();
};
$products = $modx->getIterator('msProduct', array('parent' => 61));
foreach($products as $product){
    $options = $product->getMany('Options');
    foreach($options as $option){
        if($option->get('key') == 'quantity'){
             $option->set('value', '1235');
            $product->save(); // тут
        }
    }
    
};
$products = $modx->getIterator('msProduct', array('parent' => 61));
foreach($products as $product){
    $options = $product->getMany('Options');
    foreach($options as $option){
        if($option->get('key') == 'quantity'){
             $option->set('value', '1235');
            
        }
    }
    $product->save(); // тут
};
так и так пробовал не помогает
такая проблема, на сайте 5 языков:
ru, en, be, de, zh
и такое получается при переключение языков, например зашли на китайскую zh версию сайта
/zh/about/zozh/poslerodovaya-depressiya.html
и потом если переходим на любой другой язык, то ссылка меняется на неверную (404 ошибка)
/en/about/zoposlerodovaya-depressiya.html
т.е. буквы zh и / вырезались из ссылки
Как это можно починить?
для переключения использую стандартный Сниппет getLanguages