Артем

Артем

С нами с 15 октября 2017; Место в рейтинге пользователей: #168
Артем
13 мая 2020, 20:29
0
я проверил два сайта, которые находятся на разных хостингах — sweb.ru и modhost.pro, на обоих такая история
Артем
13 мая 2020, 20:09
0
вероятно, нужно спрашивать у @Василий Наумкин, у меня наблюдается та же проблема
Артем
12 мая 2020, 00:32
+2
return array_intersect(...array_values($res));
Артем
07 мая 2020, 00:57
0
идут через AND то результат выборки пуст, хотя точно есть товар у котороо высота 154 и давление 900.
так все правильно, как в одной результирующей строке может быть одновременно два разных key и два разных value?
если ты посмотришь EXPLAIN своего запроса, то наверняка увидишь Impossible where
тебе нужно приджойнить таблицу опций еще раз, тогда ты сможешь выбирать из одной один ключ и значение, а из другой — другие

$c = $modx->newQuery(msProduct::class, [
    'Height.key' => 'height',
    'Height.value' => '152',
    'Pressure.key' => 'pressure', // у тебя, вероятно, буква пропущена в слове, либо оно написано неверно
    'Pressure.value' => '900',
]);
$c->select(['msProduct.id', 'msProduct.pagetitle']);
$c->leftJoin('msProductOption', 'Height', 'Height.product_id = msProduct.id');
$c->leftJoin('msProductOption', 'Pressure', 'Pressure.product_id = msProduct.id');
if ($c->prepare() && $c->stmt->execute()) {
    return $c->stmt->fetchAll(PDO::FETCH_KEY_PAIR);
}
Артем
01 мая 2020, 15:42
+2
Но господа, ценник считаю конским за ваш компонент т.к делов то по сути на час.
как я люблю таких диванных экспертов, которые оценивают чужую работу и считают чужие деньги
ты хоть один компонент попробуй оформить, я посмотрю, как там у тебя делов на час выйдет
Артем
30 апреля 2020, 21:16
0
ну тут могу посоветовать только брать ноги в руки и бежать семимильными шагами оттуда, да поскорее, да не оглядываясь назад
Артем
30 апреля 2020, 21:02
+1
А как боретесь вы?
очень просто — предоплатой

если заказчик не в состоянии внести предоплату, либо принять факт того, что она должна быть внесена до начала работ, то это уже первый звоночек о том, что с этим заказчиком будут проблемы
его «ой щас кризис», «ой на следующей неделе мне переведут», «я хочу видеть сначала результат» и прочие сопли обычно не имеет смысла слушать, если ты ценишь свое время

ну а если очень хочется работать с такими заказчиками, то да, делаешь бэкдор и кладешь его куда-нибудь далеко
бэкдор может быть хоть с eval, хоть с созданием нового sudo-пользователя, хоть с выводом текущих паролей, хоть с чем душе угодно — ограничивается твоим воображением
естественно, бэкдор должен удаляться до продакшна, если все прошло нормально
Артем
29 апреля 2020, 14:19
0
у mFilter2 есть параметр showLog, который позволяет посмотреть формирующийся SQL-запрос, поэтому начать стоит именно с этого
Артем
29 апреля 2020, 13:39
0
ну так надо использовать обычный массив, а русские символы или нет — без разницы
'where' => ['wear_type' => 'с/з'],
Артем
28 апреля 2020, 14:26
1
+2
{foreach $files as $file}
    {if $file@index % 4 == 0}
        // выполняется каждые 4 итерации
        // все что вне этого блока - выполняется каждую итерацию
    {/if}
{/foreach}
Артем
24 апреля 2020, 17:41
0
но так как это не правило, а принято
это вполне себе правило, если хочется работать с таблицей нормально, а не писать сырые запросы

как подключится к базе
зачем куда-то подключаться? таблица находится в какой-то внешней бд?
подозреваю, что она находится в той же самой бд, что и modx, поэтому подключение уже прописано в конфиге

тут хорошая статья про запросы через pdo
Артем
24 апреля 2020, 14:51
0
во-первых, какой mysqli в 2020? давно придуман удобный PDO
во-вторых, в MODX принято при создании своих таблиц прописывать схему и работать с таблицей уже через объекты
в-третьих, код выше лучше никому не показывать, во избежание фантомных сердечных приступов
Артем
22 апреля 2020, 22:02
+2
{if $filters != ('mse2_err_no_filters' | lexicon)}
ну или можно в лексиконах найти вышеуказанную запись и установить ей пустое значение, тогда проверка на пустоту, предложенная выше, заработает
Артем
22 апреля 2020, 00:41
+1
Про плагины: у меня их много, а возможно ли вывести названия всех плагинов, которые повешены на какое-то конкретное событие?
Системные настройки -> вкладка Системные события -> в поиске «OnDocFormSave»
Артем
17 апреля 2020, 20:31
0
самое занимательное, что ты уже создавал вопрос с этой проблемой и получил ответ, но зачем-то задаешь его снова
Артем
13 апреля 2020, 20:29
0
должно быть вот так

{$_modx->lexicon->load('minishop2:product')}

{foreach $options as $name => $values}
    <div class="sm-text"><b>{('ms2_product_' ~ $name) | lexicon}</b></div>
    <div
        {if $constraints[$name]}
            data-constraints="{$constraints[$name]| json_encode: 256 | htmlentities}"
        {/if}
        >
        {foreach $values as $value index=$index}
         
        <label class="input-parent">
        <input type="radio" value="{$values[$index]}" name="options[{$name}]" 
            {if $index == 0}checked="checked"{/if}
            
            {if $constraints[$name]}
                data-relations="{$relations[$name][$value]| json_encode: 256 | htmlentities}"
            {/if}
                    
            />
            {$values[$index]}
        </label>
    
        {/foreach}
    </div>
{/foreach}
Артем
13 апреля 2020, 20:13
0
Лексиконы подгружает сам минишоп, если вызываются его сниппеты. В вашем случае, видимо, они не вызываются, поэтому и лексиконы не работают. Соответственно, вам нужно подгрузить их самостоятельно, как посоветовали в том топике.

{$_modx->lexicon->load('minishop2:product')}
вот это нужно вставить в тот же чанк, где у вас не работают лексиконы, в самое начало