Вопросы
Как получить значение всех TV-полей ресурса одним SQL-запросом?
Задача решается в лоб, если значения TV-полей хранятся именно в виде нужных значений.
Если TV представляет собой список значений значение1==1||значение2==2||значение3==3, то в TV будет хранится цифры 1,2,3 а нам нужны значения значение1, значение2, значение3. Тогда задачу можно решить так
select t2.name, t2.caption, t2.description, t1.value
from modx_site_tmplvar_contentvalues as t1
left join modx_site_tmplvars as t2 on t1.tmplvarid = t2.id
where t1.contentid = :resourceIdЕсли TV представляет собой список значений значение1==1||значение2==2||значение3==3, то в TV будет хранится цифры 1,2,3 а нам нужны значения значение1, значение2, значение3. Тогда задачу можно решить так
select
t2.name, t2.caption, t2.description, if(t2.elements like concat('%==', t1.value, '%'), REGEXP_SUBSTR(t2.elements, concat('[:lower:]+(?=\={2}', t1.value, ')')), t1.value) as value
from modx_site_tmplvar_contentvalues as t1
left join modx_site_tmplvars as t2 on t1.tmplvarid = t2.id
where
t1.contentid = :resourceIdНо работать это будет только в MySql8, т.к. начиная с 8 версии появилась функция REGEXP_SUBSTR. Совместить вкладки товара minishop2 в одну
Для товара нужны только несколько полей: Заголовок, Содержимое, Цена и Фото. И они находятся все в разных вкладках. Менеджер очень ленивый и хочет при заполнении видеть в админке их сразу без переключения.
Отключение ajax в пагинации mFilter2.
Добрый день,
В продолжение моего вопроса от 21.10.
Подскажите, есть ли возможность отключить ajax в пагинации mFilter2.
Непосредственного параметра ajax не обнаружил.
Спасибо.
Василий Королев
В продолжение моего вопроса от 21.10.
Подскажите, есть ли возможность отключить ajax в пагинации mFilter2.
Непосредственного параметра ajax не обнаружил.
Спасибо.
Василий Королев
Не приходит заявка на почту, не редиректит после заказа shopkeeper
Добрый день! Установлен shopkeeper3-3.2.7-pl3, ничего не менялось, но перестали приходить заказы на почту и админу и клиенту, плюс перестал работать редирект на страницу «Спасибо за заказ» (21626), и почему-то при оформлении заказа в графах уже стоят данные администратора. В админке заказы отображаются. Где искать проблему, подскажите, пожалуйста!
MIGX вывод нескольких pagetitle из выбранных в TV ресурсов
Добрый день!
Делаю прейскурант в MIGX и через TV выбора ресурсов (специалистов, оказывающих услуги из раздела «Специалисты») «Список (множественный выбор)» по возможным значениям
yadi.sk/i/mBhHLS9Dm24Z2Q
Памагити…
Делаю прейскурант в MIGX и через TV выбора ресурсов (специалистов, оказывающих услуги из раздела «Специалисты») «Список (множественный выбор)» по возможным значениям
@SELECT pagetitle, id FROM modx_site_content WHERE parent=2В колонках MIGX создал отдельную колонку, которая берет значения из вкладки, где происходит выбор специалистов через указанное TV, и вывод колонки делаю this.renderChunk и вызов (по заветам Bruno вот отсюда[[migxLoopCollection?
&classname=`modResource`
&where=`{"id:IN":[ [[+doctors]] ]}`
&tpl=`@CODE:[[+pagetitle]]<br />`
]]Проблема такая: если в том TV выбран только один ресурс, то его pagetitle выводит ОК, если более одного, то выводят pagetitle вообще всех ресурсов (колонка где «Мануальная терапия» — там выбран один параметр, гигантская колонка со всем споподряд — .там выбрано два специалиста.yadi.sk/i/mBhHLS9Dm24Z2Q
Памагити…
Загрузка старого варианта шаблона кроме первой на последующих страницах при пагинации
Уважаемые форумчане,
про Redis
Господа и дамы.
Буду рад если поделитесь своими знаниями насчет работы базы redis.
В mysql у нас есть сервис mysql-server и возможность создать большое количество именованных баз данных, к которым мы потом подключаемся.
Правильно я понимаю что redis-server не имеет разделения на отдельные базы? Просто все примеры использования которые я вижу, в них просто подключаются к сервису redis через определенный порт и записывают туда ключ-значение. Но разве это не означает что эти данные будут доступны всему серверу. К примеру на сервере работает два сайта. Каждый из них хочет работать с redis, но поскольку нет отдельно базы в redis для первого сайта и отдельно — для второго, то вся информация получается у них общая?
И навереное только docker позволит запустить два разных контейнера на разных портах, что позволит работать каждому сайту со своем базой.
Или я в корне не прав и у redis есть инструменты для разделения на несколько баз?
Спасибо.
Буду рад если поделитесь своими знаниями насчет работы базы redis.
В mysql у нас есть сервис mysql-server и возможность создать большое количество именованных баз данных, к которым мы потом подключаемся.
Правильно я понимаю что redis-server не имеет разделения на отдельные базы? Просто все примеры использования которые я вижу, в них просто подключаются к сервису redis через определенный порт и записывают туда ключ-значение. Но разве это не означает что эти данные будут доступны всему серверу. К примеру на сервере работает два сайта. Каждый из них хочет работать с redis, но поскольку нет отдельно базы в redis для первого сайта и отдельно — для второго, то вся информация получается у них общая?
И навереное только docker позволит запустить два разных контейнера на разных портах, что позволит работать каждому сайту со своем базой.
Или я в корне не прав и у redis есть инструменты для разделения на несколько баз?
Спасибо.
ajaxMode pdopage Подгружает товары сверху
При клике на «Загрузить ещё» товары подгружаются выше, приходится листать вверх чтобы увидеть загруженные товары.
Как исправить? Чтобы товары подгружались ниже.
xn---24-6cdimhonav5ak8a3b6ed5c.xn--p1ai/
Как исправить? Чтобы товары подгружались ниже.
xn---24-6cdimhonav5ak8a3b6ed5c.xn--p1ai/
[РЕШЕНО] Плагин msOnBeforeCreateOrder иногда не срабатывает
Всем привет!
Есть задача: при попытке оформления нового заказа в minishop2, если заказчик уже есть в БД и у него есть хотя бы один заказ, выдавать предупреждение и не оформлять текущий заказ. Казалось бы, достаточно простая задача, был написан плагин на событие msOnBeforeCreateOrder
Что-то не так в коде плагина? Я пытался воспроизвести эту ситуацию — но всё норм, плагин не пропускает повторный заказ моего пользователя.
Есть задача: при попытке оформления нового заказа в minishop2, если заказчик уже есть в БД и у него есть хотя бы один заказ, выдавать предупреждение и не оформлять текущий заказ. Казалось бы, достаточно простая задача, был написан плагин на событие msOnBeforeCreateOrder
<?php
if ($modx->event->name == 'msOnBeforeCreateOrder') {
$arr = $order->get();
$email = str_replace(' ', '', $arr['email']);
$user = $modx->getObject('modUserProfile', ['email' => $email]);
if(is_object($user)) {
$user_id = $user->internalKey;
$orders = $modx->getCollection('msOrder', ['user_id' => $user_id]);
if (count($orders) > 0) {
$modx->event->output('пользователь с email '.$arr['email'].' уже зарегистрирован! Попробуйте ввести другой email');
}
}
}Плагин срабатывает корректно, но в списке заказов увидел, что у пары пользователей есть более одного заказа. Что-то не так в коде плагина? Я пытался воспроизвести эту ситуацию — но всё норм, плагин не пропускает повторный заказ моего пользователя.
mFilter2 автоматическое название опций товара в фильтре сайта
В miniShop2 в Настройках можно задавать опции товара.
В них мы указываем ключ, название, тип характеристики.
Как вывести в фильтре название на сайте, без добавления в лексикон строчки?
(добавление в лексикон, лишнее действие, хочется выводить сразу по полю «название»)
Чанк вывода опции выглядит так (tpl.mFilter2.filter.outer):
Сейчас выводит так:
В них мы указываем ключ, название, тип характеристики.
Как вывести в фильтре название на сайте, без добавления в лексикон строчки?
(добавление в лексикон, лишнее действие, хочется выводить сразу по полю «название»)
Чанк вывода опции выглядит так (tpl.mFilter2.filter.outer):
{var $key = $table ~ $delimeter ~ $filter}
<fieldset id="mse2_{$key}">
<h4 class="filter_title">{('mse2_filter_' ~ $table ~ '_' ~ $filter) | lexicon}</h4>
{$rows}
</fieldset>Явно надо выводить вместо этого кода:{('mse2_filter_' ~ $table ~ '_' ~ $filter) | lexicon}только какой синтаксис?Сейчас выводит так:
mse2_filter_msoption_mag-susА надо чтобы так:
— Android 4
— Windows CE 3
Операционная система:
— Android 4
— Windows CE 3