Вопросы

переписать путь к файлу стилей

Добрый день. только начал изучать modx. стоит задача по клике на кнопку менять подключаемые файлы стилей. просто используя php я это сделал. но как это сделать в modx не понимаю.
это нативный php

$css = 'style.css';
$css2 = 'style2.css';

$filename = 'index.php';
$file = file_get_contents($filename);
$title_pattern = $css;
$test = preg_replace("~$title_pattern~", $css2, $file);
file_put_contents($filename, $test);

header('Location: index.php');

а это уже код внутри modx

кнопка на странице, где 124 это номер сниппета



а это сам сниппет

<?php

function getStyle() {

$css = '[[$styles]]'; // чанк исходного файла css
$css2 = '[[$styles2]]'; //чанк файла на который надо поменять

$filename = [[$head]]; //чанк — место где происходит замена css файлов
$file = file_get_contents($filename);
$title_pattern = $css;
$test = preg_replace("~$title_pattern~", $css2, $file);
return file_put_contents($filename, $test);

}
Руслан
07 апреля 2021, 15:30
modx.pro
954
0

Игнорировать мультикатегории в msProducts

Добрый день! Можно ли как-то сделать вывод товаров без учета мультикатегорий, чтобы не отображались те, что связаны с этой категорией из другой категории?
Анастасия
07 апреля 2021, 12:33
modx.pro
739
0

PayPal minishop2 ошибка при оплате

/home/u212443042/domains/maisondentremets.com/public_html/core/components/minishop2/custom/payment/paypal.class.php : 84) [miniShop2] Payment error while request. Request: Array
(
    [METHOD] => SetExpressCheckout
    [PAYMENTREQUEST_0_CURRENCYCODE] => GBP
    [PAYMENTREQUEST_0_ITEMAMT] => 4.21
    [PAYMENTREQUEST_0_SHIPPINGAMT] => 10
    [PAYMENTREQUEST_0_AMT] => 14.21
    [RETURNURL] => https://maisondentremets.com/assets/components/minishop2/payment/paypal.php?action=success
    [CANCELURL] => https://maisondentremets.com/assets/components/minishop2/payment/paypal.php?action=cancel
    [PAYMENTREQUEST_0_INVNUM] => 18
    [L_PAYMENTREQUEST_0_NAME0] => Avocado Guacamole
    [L_PAYMENTREQUEST_0_AMT0] => 4.96
    [L_PAYMENTREQUEST_0_QTY0] => 1
    [L_PAYMENTREQUEST_0_NAME1] => Standard (Free)
    [L_PAYMENTREQUEST_0_AMT1] => 0
    [L_PAYMENTREQUEST_0_QTY1] => 1
)
, response: SSL certificate problem: unable to get local issuer certificate
Как можно решить проблему?
Максим
06 апреля 2021, 17:22
modx.pro
967
0

recaptcha v2 tickets

начал искать как прикрутить recaptcha v2 к TicketComments, нигде не нашел, только встроенная проверка сложение, не знаю правильно или нет но прикрутить удалось таким способом код от установленого formit и recaptchav2
в форму добавил
[ [!recaptchav2_render] ]
[ [!+fi.error.recaptchav2_error] ]


выключил встроенную проверку &enableCaptcha=`0`

добавил &customValidators=`recaptchav2` &validate=`g-recaptcha-response:required` &g-recaptcha-response.vTextRequired=`Вы не прошли проверку на спам`

получился код вызова
[ [!TicketComments? &allowGuest=`1` &autoPublishGuest=`0` &enableCaptcha=`0` &customValidators=`recaptchav2` &validate=`g-recaptcha-response:required` &g-recaptcha-response.vTextRequired=`Вы не прошли проверку на спам` ] ]

может кому поможет, у меня все работает
автору дополнения tickets надо было бы как то давно описать и прикрутить гугл капчу, думаю математическая проверка давно устарела
akella1900
06 апреля 2021, 10:36
modx.pro
2
1 263
0

Как вывести результаты pdoResources в формате json, но с моим tpl

Всем привет!
Вывод с параметром &return=`json` меня не совсем устраивает, так как он выводит все поля документа без возможности обработки вложенными сниппетами.

Например, у меня есть TV в формате MIGX для добавления множества фото к документу и их необходимо обработать с помощью phpthumbon, а также другие необходимы обработки внутри чанков.

Если я делаю свой шаблон с закосом под структуру json:
{
«id»: "{$id}",
«pagetitle»: "{$pagetitle}",
},

То это не работает. Выводит в таком виде, но не работает там, куда отправляется эта json-ссылка.

Что делать?
Anton
05 апреля 2021, 18:50
modx.pro
2 540
0

Запретить добавлять товар в некоторые "мульти-категории"

Добрый день.
В админ панели у каждого товара minishop2 есть вкладка Категории. В ней есть возможность установкой галочки поместить товар в ресурс, если он создан как категория товара.

Какие есть разумные способы ограничить выбор этих категорий? К примеру есть два каталога — каталог1 и каталог2. Необходимо не дать возможность разместить товар из каталога 1 внутри второго или любых подкатегориях второго?

Посмотрел список событий docs.modx.pro/komponentyi/minishop2/razrabotka/sobyitiya, думал можно это отработать на уровне плагина, но похожих событий не нашел.

Спасибо.
Александр Мельник
05 апреля 2021, 12:55
modx.pro
669
0

Как получить переменные через событие af_compleate и AjaxForm?

Приветствую уважаемое сообщество.

использую связку AjaxForm + formit + свой хук

в своём сниппете пытаюсь передать массив и потом отловить его через событие af_compleate
хук:
$arr = array(
'var' => 'value',
'var2' => 'value2',
)
return $AjaxForm->success('Форма обработана', $arr);
JS:
$(document).on('af_complete', function(event, response) {
    var form = response.form;
    if (form.attr('id') == 'add-contract') {
      console.log(response);
     console.log(response.data);
    }
});
приходит пустой массив.
Подскажите пожалуйста как я могу получить данные из своего сниппета через af_complete?
Глеб
05 апреля 2021, 11:01
modx.pro
1 213
0

minishop смена цены товара в зависимости от кол-ва налету

minishop смена цены товара в зависимости от кол-ва налету

сейчас в корзине к примеру, если поставить большое количества то ценик на товаре (за еденицу товара) не обновляется, хотя итоговый пеерасчет происходит сразу
подскажите как сделать чтобы сразу менялась сумма за единицу товара

как я понимаю за это должен отвечать msSalePrice но как его увязать?

а также на странице товара перед добавлением в корзины открывается модальное окно
и там тоже самое — ценик не меняется на лету :(

код окна

<form class="form-horizontal ms2_form" method="post">
    <input type="hidden" name="id" value="[[*id]]"/>
        <div class="cart">
        	<h2>Вы добавили товар в корзину</h2>
        	
        	<div class="cart-title py-4">
        		<div class="cart-title-img col-md-3"></div>
        		<div class="cart-title-name col-md-3">Наименование товара</div>
        		<div class="cart-title-amount text-center col-md-3">Кол-во</div>
        		<div class="cart-title-price col-md-3">Сумма</div>
        	</div>
        	
        	<!-- Start Cart Item -->
        
            	<div class="cart-item mb-3">
            		<div class="cart-item-img col-md-3">
            			<img src="[[+image]]" alt="">
            		</div>
            
            		<div class="cart-item-name col-md-3">
            			<a>[[*pagetitle]]</a>
            		</div>
            
            		<div class="cart-item-amount col-md-3">
            			<span class="minus">-</span>
            			<input type="number" name="count" id="product_price" class="number" 
            			    step="[[msProductOptions?
            			            &onlyOptions=`count_add`
            			            &tpl=`optionValTpl`
            			           ]]"
            			    value="[[!startcount]]"
            			    min="[[!startcount]]">
            			<span class="plus">+</span>
            		</div>
            
            		<div class="cart-item-price col-md-3">
            			<span id="ciPrice" class="mssaleprice-cost">[[+price]]</span>руб.
            		</div>
            
            		<!--<div class="cart-item-delete text-center">
            			<span class="fa-layers fa-fw">
            				<i class="fa-inverse fas fa-times" data-fa-transform="shrink-6"></i>
            			</span>
            		</div>-->
            	</div>
        	<!-- End Cart Item -->
        	
        	<hr>
        	
        	<!-- Start Cart Total -->
        	<div class="row">
        		<div class="ml-auto col-12 col-md-5 col-xl-3">
        			<div class="cart-total mb-3">
        				<span>Итого:</span> 
        				<span><span id="itogopotovaru"></span> руб.</span>
        			</div>
        		</div>
        	</div>
        	<!-- End Cart Total -->
        
        	<div class="cart-item-btns row d-flex flex-wrap mb-4">
        		<div class="col-12 order-1 order-md-0 col-md-5 col-xl-3">
        			<div class="cart-back">
        				<a style="cursor:pointer" onclick="return continueBuy();">Продолжить покупки</a>
        			</div>
        		</div>
        
        		<div class="col-12 col-md-5 col-xl-3 ml-auto mb-3 mb-md-0">
        			<a style="cursor:pointer" onclick="return oformit();" class="btn-submit">Перейти в корзину</a>
        		</div>
        	</div>
        
        	<hr>
        	
        
        </div>
        <!-- Спрятанная кнопка submit -->
        <div style="display:none">
            <button id="fs" type="submit" class="btn btn-default" name="ms2_action" value="cart/add">
                            <i class="glyphicon glyphicon-barcode"></i> [[%ms2_frontend_add_to_cart]]
            </button>
        </div>
        <!-- -->
</form>
а это код в корзине
Евгений
05 апреля 2021, 01:54
modx.pro
788
0

Скрипт для сайта по автозамене города,в зависимости от геолокации

Можно ли на наш сайт www.voronacenter.ru добавить функционал, который как скрипт в текстах и тегах менял город по геолокации. Я знаю практику порталов, у них пишется текст — купить машину «df_!»; где «df_!» — это часть скрипта, Которая в итоговом тексте будет прописывать название города — купить машину в Иваново ( при условии, что человек ищет в городе Иваново, а для человека из г. Пермь в поисковике и на сайте текст выглядит как купить машину в Перми). Если нужен будет пример такого ресурса.предоставлю(где это реализовано)
Роман
02 апреля 2021, 16:20
modx.pro
591
0

Ограничение по добавлению товара в корзину minishop2

Стоит задача к заказу предлагать добавить открытку, но не более одной.
Можно ли как-то ограничить добавления открыток в корзину, или же при добавлении открытки, удалять из корзины предыдущую (открытки находятся в отдельной категории)
Максим
02 апреля 2021, 14:49
modx.pro
1 017
0