Вопросы
Компонент с github'а для создания AMP
Приветствую!
Потребовалось реализовать AMP страницы (modx revo).
Нашел на гитхабе компонент, но не в виде пакета.
Что сделал:
Но проблема в том
Потребовалось реализовать AMP страницы (modx revo).
Нашел на гитхабе компонент, но не в виде пакета.
Что сделал:
- Установил TheSwitcherTemplate с репозитория
- Закинул папку с фалами в core/components/
- Создать вручную плагин и сниппет (вот какую роль играет сниппет вообще не полян, на мой взгляд в целом он не нужен).
Но проблема в том
Источник файлов для товаров при интеграции с ms2Gallery
Добрый день.
Подскажите, как решить такую проблему:
Для товаров minishop2 выбрана интеграция с ms2Gallery картинки импортированы, и в старых товарах верно подхватился источник файлов от minishop.
Но при создании нового товара у него всегда источник ms2Gallery Images. Или так и должно быть?
Подскажите, как решить такую проблему:
Для товаров minishop2 выбрана интеграция с ms2Gallery картинки импортированы, и в старых товарах верно подхватился источник файлов от minishop.
Но при создании нового товара у него всегда источник ms2Gallery Images. Или так и должно быть?
Как закрыть вопрос?
Скажите, а как тут закрыть вопрос после того как найден ответ. Ну или отметить его как Решенный?
Верный id последней вставленной записи через lastInsertId при использовании bindValue
Всем доброго дня!
Столкнулся с задачей импорта из кастомного csv данных в свою таблицу, сделал через INSERT INTO… VALUES… ON DUPLICATE KEY UPDATE.
Работает, но долго, как по мне.
Для того, чтобы достать id последней вставленной или обновленной записи, пользуюсь $modx->lastInsertId($q), все показывает правильно: если запись была, то возвращает ее id, если она новая, то id вставленной записи.
Попробовал перейти на однократную подготовку запроса до перебора цикла, а дальше при переборе уже
$q->bindValue(1, $data[0]);
$q->bindValue(2, $data[1]);
…
$q->execute();
Все, на этом id последней вставленной записи ломается: возвращает id больше, чем последний AUTO_INCREMENT в таблице, при этом записи в таблице никакие не появляются.
Подскажите, кто знает — как ускорить вставку, при этом сохранив информацию о верном id?
Столкнулся с задачей импорта из кастомного csv данных в свою таблицу, сделал через INSERT INTO… VALUES… ON DUPLICATE KEY UPDATE.
Работает, но долго, как по мне.
Для того, чтобы достать id последней вставленной или обновленной записи, пользуюсь $modx->lastInsertId($q), все показывает правильно: если запись была, то возвращает ее id, если она новая, то id вставленной записи.
Попробовал перейти на однократную подготовку запроса до перебора цикла, а дальше при переборе уже
$q->bindValue(1, $data[0]);
$q->bindValue(2, $data[1]);
…
$q->execute();
Все, на этом id последней вставленной записи ломается: возвращает id больше, чем последний AUTO_INCREMENT в таблице, при этом записи в таблице никакие не появляются.
Подскажите, кто знает — как ускорить вставку, при этом сохранив информацию о верном id?
При выборе доставки общая сумма во фронтэнде не меняется ms2
Имеется 2 варианта доставки
1 Самовывоз 1 руб
2 Доставка 300 руб
При открытии страницы оформления заказа чекбокс стоит на самовывоз и к сумме добавляется 1 руб
если менять вариант доставки то сумма на странице не обновляется…
в заказ при отправлении формы уходит все как надо, а вот во фронтенде не видно…
в чем может быть дело?
простите меня дуру грешную, только разбираюсь с ms2
и еще одна история:
в миникорзине не обновляются товарчики
только сумма и количество товаров… приходится обновлять страницу чтобы увидеть товар в ней
хотя аякс на нажатие кнопочки реагирует
1 Самовывоз 1 руб
2 Доставка 300 руб
При открытии страницы оформления заказа чекбокс стоит на самовывоз и к сумме добавляется 1 руб
если менять вариант доставки то сумма на странице не обновляется…
в заказ при отправлении формы уходит все как надо, а вот во фронтенде не видно…
в чем может быть дело?
простите меня дуру грешную, только разбираюсь с ms2
и еще одна история:
в миникорзине не обновляются товарчики
только сумма и количество товаров… приходится обновлять страницу чтобы увидеть товар в ней
хотя аякс на нажатие кнопочки реагирует
Вопрос с админкой 2.2.13
Всем привет!
Достался сайт на старой версии 2.2.13, нужно было восстановить.
Достался сайт на старой версии 2.2.13, нужно было восстановить.
Fenom не видит tv-поле в Tickets
Сайт на ModX Revo 2.6.5 и использует Tickets для организации статей. Добавил tv-поле с типом ввода и вывода Текст. Назначил его для шаблона, который отвечает за вывод статьи. Но почему-то fenon не видит это поле.
{if $_modx->resource.tv_mt} Yes {else} No {/if}Всегда выводится No. $_modx->resource['tv_mt'] — такой вариант написания тоже не работает. В чем может быть загвоздка? Применение промокода к заказу в админке
Внимание! Это готовое решение. Для переноса не хватает рейтинга.Всем привет. Была задача сделать применение промокода к заказу из админки, собственно, чего я и сделал и готов поделиться с сообществом готовым решением.
Версии компонентов, на которых тестировалось решение:
На более ранних версиях не тестировал. Если пробуете, то делайте на свой страх и риск.miniShop2 2.4.15-pl
msPromocode 1.3.11-beta
Сниппет подсчета кол-ва заполненных TV с разбитием на колонки
Всем привет!
Написал небольшой сниппет, который считает количество заполненных TV и разбивает их на несколько столбцов.
В остальном сниппет полностью рабочий.
P.S.: чуть позже выложу похожее решение, но уже для вывода ссылок на ресурсы.
Написал небольшой сниппет, который считает количество заполненных TV и разбивает их на несколько столбцов.
<?php
//передаваемые в сниппет параметры
//id - id ресурса с которого берем нужные поля
//tvInput - id полей для проверки, через запятую
//cols_count - количество выводимых колонок
//tpl - шаблон вывода
$id = $id;
$tvInput = explode(',',$tvs);
$cols_count = $cols;
$tpl = $tpl;
if (!isset($tvInput)) { return false; } // Если не указаны TV, прекращаем выполнение кода
if (!isset($id)) { $id = $modx->resource->get('id'); } // По-умолчанию текущий ресурс
if (!isset($cols_count)) { $cols_count = 2; } // Количество колонок по-умолчанию
if (!isset($tpl)) { $tpl = 'objectParams'; } // Шаблон по-умолчанию
$criteria = $modx->newQuery('modTemplateVarResource',[
'contentid' => $id,
'tmplvarid:IN' => $tvInput,
'value:!=' => ''
]);
$criteria->sortby('tmplvarid');
$docs = $modx->getCollection('modTemplateVarResource', $criteria);
//выводим по колонкам
//default_elems_at_col - количество элементов в колонке
$output = '';
$count = count($docs);
$default_elems_at_col = floor($count / $cols_count);
$continue_default = false;
/*
как работает:
например: 52 элемента на 5 колонок
$default_elems_at_col - количество элементов в колонке по умолчанию floor(52 / 5) = 10
остается 2 элемента (52 - 50), которые необходимо распределить по колонкам, т.е.
$real_default_elems_at_col = 11 (для первых двух колонок)
$continue_default - переменная, чтобы прекратить лишние вычисления на итерациях, когда лишних элементов не осталось
*/
$output .= '<div class="params params_cols-' . $cols_count . '">';
for ($i = 0; $i < $cols_count; $i++) {
if (!$continue_default) {
$real_default_elems_at_col = $default_elems_at_col + 1;
if ( ($real_default_elems_at_col * ($i + 1) + ($cols_count - $i - 1) * $default_elems_at_col) > $count ) {
$real_default_elems_at_col = $default_elems_at_col;
$continue_default = true;
}
}
$output .= '<div class="params__column">';
for ($j = 0; $j < $real_default_elems_at_col; $j++) {
$current_doc = current($docs)->toArray();
$tvId = $current_doc["tmplvarid"];
$value = $current_doc["value"];
$output .= $modx->getChunk($tpl, [
'tvId' => $tvId,
'value' => $value
]);
//если следующего элемента нет - выходим из цикла
if (!next($docs)) {
break;
}
}
$output .= '</div>';
}
$output .= '</div>';
return $output;Минимальный вызов:[[!snippet? &tvs=``]]Т.к. с php пока на Вы, буду рад замечаниям и комментариям по данному решению.В остальном сниппет полностью рабочий.
P.S.: чуть позже выложу похожее решение, но уже для вывода ссылок на ресурсы.
mFilter2 альтенативные обертки для tpls
Всех приветствую!
Кто-нибудь сталкивался с задачей установки разных оберток в mFilter2?
Подключаю чанки оформления одного результата так
Они, естественно, отрабатывают, но в первом случае верстка на div, во втором табличная, вторые результаты необходимо обрамить таблицей, что бы получилось, примерно так
Кто-нибудь сталкивался с задачей установки разных оберток в mFilter2?
Подключаю чанки оформления одного результата так
&tpls=`catalogGridTpl,catalogTableTpl`При переключении вида каталога все разваливается, отрабатывает только при перезагрузке страницыОни, естественно, отрабатывают, но в первом случае верстка на div, во втором табличная, вторые результаты необходимо обрамить таблицей, что бы получилось, примерно так
<div id="mse2_result">
<table class="">
[[+result]] оформление catalogTableTpl
</table>
</div>В документации не нашел ничего на вроде &tplsOuter=`outer1,outer2`
&tplsWrapper=`outer1,outer2`Также, пытался перехватить текущую обертку результата через $(document).on('mse2_load', function(e, data) {, но в выводе не получилось обнаружить подгружаемый шаблон