Корзина minishop 2

добрый день! в магазине у товара есть несколько размеров, как сделать так чтобы в корзину можно было положить максимум 3 в не зависимости от того какой размер выбран и какой товар, то есть если у одного товара выбран какой-то размер в количестве 2, то другого размера этого же товар или другой можно было положить в корзину только 1.
Михаил
21 марта 2023, 11:42
modx.pro
798
0

Ошибка cant find jQuery AjaxForm plugin

Здравствуйте!

При вызове формы сталкиваюсь с ошибкой на странице — cant find jQuery AjaxForm plugin

Хотя в head все подключаю:
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.7/jquery.js"></script> 
    <script src="https://malsup.github.io/jquery.form.js"></script>
Подскажите, пожалуйста, в чем может быть проблема?
Не могу найти…

MODX Revo 2.8.3
Антон
20 марта 2023, 22:32
modx.pro
914
0

modx3 и php8

Привет,
у меня следующая проблема

ERROR @ /core/components/pdotools/src/Fetch.php : 229) PHP warning: Array to string conversion
и
/core/src/Revolution/Processors/Workspace/Packages/GetList.php : 228) PHP warning: Trying to access array offset on value of type null
и
ERROR @ /core/src/Revolution/modTemplateVar.php : 331) PHP warning: Undefined array key "class_key"
и
/core/src/Revolution/modX.php : 2584) Could not prepare context: mgr
и
(ERROR @ /core/cache/includes/elements/modx/revolution/modplugin/1.include.cache.php : 38) PHP warning: Undefined array key "q"
и
ERROR @ /core/components/modxminify/model/modxminify/modxminify.class.php : 186) PHP warning: Undefined variable $skip
и
ERROR @ /connectors/lang.js.php : 64) PHP warning: preg_match(): Delimiter must not be alphanumeric, backslash, or NUL
modx 3.0.3-pl
php 8.2.4
nginx

modplugin 1
<?php
if ($modx->context->get('key') !== 'mgr') {

    $contexts = array();

    $cacheKey = $modx->getOption('cache_context_map_key', $scriptProperties, 'context_map');
    $cacheOptions = array(
        xPDO::OPT_CACHE_HANDLER => $modx->getOption("cache_{$cacheKey}_handler", $scriptProperties, $modx->getOption(xPDO::OPT_CACHE_HANDLER)),
        xPDO::OPT_CACHE_EXPIRES => $modx->getOption("cache_{$cacheKey}_expires", $scriptProperties, $modx->getOption(xPDO::OPT_CACHE_EXPIRES)),
    );
    /** @var xPDOCache $contextCache */
    $contextCache = $modx->cacheManager->getCacheProvider($cacheKey, $cacheOptions);

    if ($contextCache) {
        $contexts = $contextCache->get('context_map');
    }

    if (empty($contexts)) {
        /** @var modContext $contextsGraph */
        $query = $modx->newQuery('modContext');
        $query->where(array('modContext.key:NOT IN' => array('web', 'mgr')));
        $query->sortby($modx->escape('modContext') . '.' . $modx->escape('key'), 'ASC');
        $contextsGraph = $modx->getCollectionGraph('modContext', '{"ContextSettings":{}}', $query);
        foreach ($contextsGraph as $context) {
            $contextSettings = array();
            foreach ($context->ContextSettings as $cSetting) {
                $contextSettings[$cSetting->get('key')] = $cSetting->get('value');
            }
            $contexts[$context->get('key')] = $contextSettings;
        }
        unset($contextsGraph);
        if ($contextCache) {
            $contextCache->set('context_map', $contexts);
        }
    }

    if (!empty($contexts)) {
        $pieces = explode('/', trim($_REQUEST[$modx->getOption('request_param_alias', null, 'q')], ' '), 2);
        if (count($pieces) > 0) {
            foreach($contexts as $cKey => $cSettings) {
                if ($pieces[0] == $cKey) {
                    if (isset($pieces[1])) {
                        $_REQUEST[$modx->getOption('request_param_alias', null, 'q')] = $pieces[1];
                    } else {
                        $modx->sendRedirect(MODX_SITE_URL . $pieces[0] . '/', array('responseCode' => 'HTTP/1.1 301 Moved Permanently'));
                    }
                    $modx->switchContext($cKey);
                    $modx->log(modX::LOG_LEVEL_INFO, "Switched to context {$cKey} from URI {$_REQUEST['q']}");
                    break;
                }
            }
        }
    }
}
Chavdarov
20 марта 2023, 12:36
modx.pro
1 200
0

Условие вывод в fenom

Добрый день!
Подскажите как можно на fenom создать условие на вывод контента.
На странице есть tv поле язык (английский, русский, украинский), и в зависимости от языка выводится текст, если выбрано английский — статья доступна на английском языке, если русский на русском, если украинский на украинском, а если выбрано например на русском и английском нужно подставлять статья доступна на английском и русском языках и так далее. Как составить такого рода условие. Вывод по одному языку вывел через
{switch  $_modx->resource.lang}
    {case 1}
        {var $lang = "на английском языке"}
    {case 2}
        {var $lang = "на русском языке"}
    {case 3}
        {var $lang = "на украинском языке"}
    {default}
        {var $lang = "на английском, русском и украинском языках"}
{/switch}
а чтоб при выборе двух или трех языков не получается
Майкл
19 марта 2023, 05:02
modx.pro
576
0

Как на FENOM по id ресурса вывести tv migx сразу из нескольких ресурсов?

Приветствую, подскажите пожалуйста, как вывести из нескольких ресурсов MIGX TV?

Вывожу обычно так, по id из одного ресурса, в примере из ресурса с id 1, а как добавить к этому еще id ресурсов? Например 2 и 3.

//MIGX FOREACH
{set $tvname = json_decode(1 | resource : 'migxtvname', true)}
{if $tvname}
{foreach $tvname as $item}
{$item.title}
{/foreach}
{/if}
Если указать через запятую id, будет ошибка. Как такое обычно делают? Но только не дублировать код цикла конечно.
Роман
16 марта 2023, 22:13
modx.pro
532
0

htaccess и Babel - помогите понять где ошибка

Имеется в htaccess вот такая запись:
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(en|ru|es|pl)?/?(.*)$ index.php?cultureKey=$1&q=$2 [L,QSA]
при переходе в корне сайта по урлу: сайт-me.com/play-friday/
отрабатывает «PL» и отображает данные с контекста «PL»
Я так думаю — потому что отрабатывает PL (play) в урле…

Подскажите как исправить…
Alex
16 марта 2023, 18:17
modx.pro
300
0

Почему не работает феном?

Бьюсь уже час.
А переменная не передается в чанк с fenom.
Делаю так:
[[$sidebar_left? &border=`2`]]
{$border} не работает. [[+border]] работает. Помогите пожалуста.
Генадий
16 марта 2023, 16:12
modx.pro
469
0

Шорткод для простановки ссылок в редакторе, с учетом состояния ресурса

Всем привет, у меня не вопрос, а просто удобный сниппет, в другие разделы публиковать не дает, рейтинг низкий =((, не нашел ни чего подобного, поэтому пилил сам, может кому то понадобится, упрощает жизнь сеошнику при внутренней перелинковке сайта. Собственно к сути:
Сделал сниппет который получает текст где проставлены вот такие шорткоды — "[id10] анкор ссылки []" где 10 это id ресурса на который должна сформироваться ссылка, по мне так удобнее чем делать жесткую ссылку через функционал редактора в админке, часто бывает что я меняю структуру, и меняется uri страницы, еще одним удобством сделал то что если ресурс на который мы ссылаемся еще не опубликован, то ссылка игнорируется, а конструкция шорткода просто вырезается, но как только ресурс публикуется (сделали отложенную публикацию к примеру) то ссылка на него сразу появится.
Создаем сниппет в админке, называем к примеру — url_by_id
Код сниппета:
<?php
$text = $input;
for ($i = 1; $i <= 8; $i++) { //8 это максимальное количество обрабатываемых шорткодов, можно конечно с foreach что то придумать, но тогда нужно массив создавать заранее, не стал заморачиваться
preg_match('[id\d{1,}]', $text, $output);
$res_id = str_replace('id','',$output[0]);
    if ($res_id) { 
        $res = $modx->getObject('modResource', $res_id);
            if ($res->get('published')){
                $url = $modx->makeUrl($res_id);
                $link = "<a href=\"$url\">";    
                $seraching_string = '['.$output[0].']';
                $text = str_replace($seraching_string, $link, $text);
               $text = preg_replace('/\[\]/', '</a>',$text, 1);
            }elseif(!$res->get('published')){
                $link = "";    
                $seraching_string = '['.$output[0].']';
                $text = str_replace($seraching_string, $link, $text);
                $text = preg_replace('/\[\]/', '',$text, 1);
                }
        }
}
return $text;
И использование в шаблонизаторе:
{$_modx->resource.content | url_by_id}
Если в текстовом редакторе сделать вот [id5]такую конструкцию[], то на фронте получится ссылка на url ресурса с id = 5, с анкором «такую конструкцию»
Как то так, сильно не пинайте)))
Max
Max
16 марта 2023, 09:54
modx.pro
482
-1

Вывод чанка по расписанию

В чанке telnumber1 первый номер телефона, в чанке telnumber2 второй номер телефона.
Как сделать публикацию чанка telnumber1 в шаблоне с 23-00 до 8-00, а telnumber2 с 8-00 до 23-00?
Антон
15 марта 2023, 20:57
modx.pro
402
0

Ухватиться к времени заказа minishop2

Как можно ухватиться к времени созданного заказа в minishop2?
Андрей
15 марта 2023, 18:59
modx.pro
516
0