Как зарегистрировать js скрипт при рендере страницы?
Пытался так, но как я понял это работает для снипетов, но сниппет не подходит, нужно именно подключить js при загрузке страницы.
и модифицировать Html
switch ($modx->event->name) {
case 'OnWebPagePrerender':
//$modx->regClientScript('assets/somefile.js');
&$modx->regClientScript('assets/somefile.js');
break;
}
Или придётся делать через OnWebPagePrerenderи модифицировать Html
$txt = &$modx->resource->_output;
Починить скрипт
1 100 000
На сайт (MODx Revo 2.x) парсятся новости из разных источников, данные пишутся в БД, формируется запись в таблице MIGx. При первом запросе по адресу страницы срабатывает сниппет, который рисует баннер на странице (фон+заголовок).
Нужно разобраться с логикой формирования этой картинки, чтобы они формировалась вместе созданием ресурса в MIGx, а не при первой загрузке страницы. Ранее эта фича уже была реализована, но при переезде на другой хостинг «слетела». Нужно починить.
Нужно разобраться с логикой формирования этой картинки, чтобы они формировалась вместе созданием ресурса в MIGx, а не при первой загрузке страницы. Ранее эта фича уже была реализована, но при переезде на другой хостинг «слетела». Нужно починить.
tagmanager2 + migx
В шаблоне есть вызов Tagmanager.
В нем указан чанк product.
В product есть вызов MIGx:
[[getImageList? &tvname=`img3` &tpl=`gallery_item_tpl3`]]
В чанке gallery_item_tpl3
Почему то не выводит фотографии. в наборе параметров указал img3
В нем указан чанк product.
В product есть вызов MIGx:
[[getImageList? &tvname=`img3` &tpl=`gallery_item_tpl3`]]
В чанке gallery_item_tpl3
<img src="[[+image:phpthumbon=`w=79&h=89&zc=1`]]" title="elementum urna" alt="elementum urna" class="img-responsive reg-image"/>
<img class="img-responsive hover-image" src="[[+image:phpthumbon=`w=79&h=89&zc=1`]]" title="elementum urna" alt="elementum urna"/>
<img src="[[+image:phpthumbon=`w=79&h=89&zc=1`]]">
Почему то не выводит фотографии. в наборе параметров указал img3
проблемы со сниппетом при переходе на ModX 3
есть 2 сниппета
$fields = $hook->getValues(); //поля из формы
$fields['filesToUpload'] = str_replace('assets/pdf/','',$fields['filesToUpload']);
$mail_z = $fields['contact_email'];
$message = $modx->getChunk('sentEmailTpl', $fields);
//формируем PDF
$pdo = $modx->getService('pdoFetch');
$pdfTpl = $modx->getOption('pdfTpl', $formit->config, '', true);
$content = $pdo->getChunk($pdfTpl, $fields);
$config = array();
$config = array_merge($config, $fields, array(
'content' => $content,
'author' => $author,
'title' => $title,
));
// формируем ссылку на PDF
$result = $modx->runSnippet('PdfCreate', $config);
и PdfCreate<?php
$date = date('Y-m-d_H-i-s', time()) . '_' .rand(1, 100);
$corePath = $modx->getOption('pdfresource.core_path', null, $modx->getOption('core_path') . 'components/pdfresource/');
$pdfresource = $modx->getService('pdfresource', 'PDFResource', $corePath . 'model/pdfresource/', array(
'core_path' => $corePath
));
$content = $modx->getOption('content', $scriptProperties, '', true);
$title = $modx->getOption('title', $scriptProperties, '', true);
$author = $modx->getOption('author', $scriptProperties, '', true);
$aliasPath = MODX_ASSETS_PATH . 'pdf/';
$site_url = $modx->getOption('site_url');
// настройки PDFResource (подробнее почитать здесь: http://jako.github.io/PDFResource/usage/)
$pdfresource->initPDF(array(
'mode' => 'utf-8',
'format' => 'A4',
'defaultFontSize' => intval(13),
'defaultFont' => '',
'mgl' => intval(30), // margin left
'mgr' => intval(10), // margin right
'mgt' => intval(30), // margin top
'mgb' => intval(10), // margin bottom
'mgh' => intval(10), // margin header
'mgf' => intval(10), // margin footer
'orientation' => 'P', // ориентация PDF
'customFonts' => '[]',
));
$pdfresource->pdf->SetTitle($title);
$pdfresource->pdf->SetAuthor($author);
$pdfresource->pdf->SetCreator($modx->getOption('site_url'));
$pdfresource->pdf->WriteHTML($content, 2);
$file_name = $date;
$pdfresource->pdf->Output($aliasPath . $file_name . '.pdf', 'F');
return $file_name;
они используются как хуки в FormIT и в сумме получают данные, формируют из них pdf файл, который потом отправляется по почте. В ModX 2.* все отлично работает, но при переходе на 3 версию файл генерится, но содержит массив, состоящий из плейсхолдеров, которые должны были использоваться при генерации pdf, видимо проблема либо с передачей чанка с шаблоном будущего pdf либо с его обработкой, то есть вероятно здесь$pdfTpl = $modx->getOption('pdfTpl', $formit->config, '', true);
$content = $pdo->getChunk($pdfTpl, $fields);
Никто не знает, что изменилось в 3-й версии и как это поправить? minishop2 3.0.1 и minishop2 3.0.2
Сегодня выпустили сразу два релиза miniShop2 с мелкими правками и улучшениями, которые не особо тянут на большую версию.
Вот что мы успели подготовить на этот раз
Вот что мы успели подготовить на этот раз
инструмент отчетности
Я хочу создать простой отчет с фильтром в менеджере (получать данные из базы данных). Есть ли подобные дополнения в modx? если нет, то как лучше всего построить такое? Является ли Migxdb хорошим решением?
Спасибо
Спасибо
FENOM Почему не работает include в foreach, что не так в синтаксисе?
Приветствую, использую Fenom на MODX REVO, xочу поменять синтаксис подключения чанков из файлов работает через $_modx->getChunk, а хочу попробовать через include или insert, подскажите что неправильно в этом синтаксисе?
{include 'file:chunks/'~$item.section~'.tpl'} Так не работает
{insert 'file:chunks/'~$item.section~'.tpl'} Так не работает
{include 'file:chunks/'~$item.section~'.tpl'} Так не работает
{insert 'file:chunks/'~$item.section~'.tpl'} Так не работает
{set $sort = json_decode(1 | resource : 'field-sort', true)}
{if $sort}
{foreach $sort as $item}
{$_modx->getChunk('@FILE chunks/'~$item.section~'.tpl')}
{/foreach}
{/if}
Разная скидка в корзине на товары при условии доставки в зависимости от вендора
Здравствуйте.
Собственно вопрос в заголовке
Суть:
Много товаров разных производителей в магазине.
Магазин должен давать дополнительную скидку при самовывозе.
Скидка на все идет 10%
Нужно сделать условие, что для определенной категории товаров (то есть например по паренту) и при условии конкретного бренда (то есть вендора) скидка в корзине именно на этот товар при самовывозе другая, например 5%.
На все скидка меняется. Но на выборочные товары, чтобы была разная скидка при условии самовывоза — нет.
Нужна помощь, подсказка, коммент, что читать, какое событие попробовать или какие то еще вариенты.
Собственно вопрос в заголовке
Суть:
Много товаров разных производителей в магазине.
Магазин должен давать дополнительную скидку при самовывозе.
Скидка на все идет 10%
Нужно сделать условие, что для определенной категории товаров (то есть например по паренту) и при условии конкретного бренда (то есть вендора) скидка в корзине именно на этот товар при самовывозе другая, например 5%.
На все скидка меняется. Но на выборочные товары, чтобы была разная скидка при условии самовывоза — нет.
Нужна помощь, подсказка, коммент, что читать, какое событие попробовать или какие то еще вариенты.
Пересчет цены от общей сумы в корзине minishop2
Доброго дня, очень надеюсь на Вашу помощь… Есть розничная цена (price) и оптовая (old_price). Если сумма заказа меньше 2000 руб — цена розничная, если больше — оптовая.
Сам плагин
Вроде все работает. Но не могу сделать динамическое обновление цен в корзине. Вернее они меняются только у того товара, у которого изменяешь количество, а все остальные не пересчитываются, только после перезагрузке страницы.
Понимаю что надо править default.js где-то в этом месте
Сам плагин
<?php
switch ($modx->event->name) {
case 'msOnChangeInCart': case 'msOnAddToCart': case 'msOnRemoveFromCart':
$total_cost_min = $cart->status()['total_cost_min'];
$tmp = $cart->get();
if ($total_cost_min > 200) {
foreach ($tmp as $key1 => $value) {
if ($product = $modx->getObject('msProduct', $value['id'])) {
$price = $product->get('price');
$old_price = $product->get('old_price');
$price = $old_price - $rate;
$tmp[$key1]['price'] = $price;
$modx->log(modX::LOG_LEVEL_ERROR, "cart: ".print_r($price,1) );
}
}
}
else {
foreach ($tmp as $key1 => $value) {
if ($product = $modx->getObject('msProduct', $value['id'])) {
$tmp[$key1]['price'] = $product->get('price');
}
}
}
$cart->set($tmp);
break;
}
total_cost_min — это сумма заказа с розничной ценой.Вроде все работает. Но не могу сделать динамическое обновление цен в корзине. Вернее они меняются только у того товара, у которого изменяешь количество, а все остальные не пересчитываются, только после перезагрузке страницы.
Понимаю что надо править default.js где-то в этом месте
status: function (status) {
if (status['total_count'] < 1) {
location.reload();
} else {
//var $cart = $(miniShop2.Cart.cart);
var $miniCarts = $(miniShop2.Cart.miniCart).add(miniShop2.Cart.miniCartClass);
if (status['total_count'] > 0 && $miniCarts.length > 0) {
$miniCarts.each(function (index, cart) {
if (!$(cart).hasClass(miniShop2.Cart.miniCartNotEmptyClass)) {
$(cart).addClass(miniShop2.Cart.miniCartNotEmptyClass);
}
});
}
$(miniShop2.Cart.totalWeight).text(miniShop2.Utils.formatWeight(status['total_weight']));
$(miniShop2.Cart.totalCount).text(status['total_count']);
$(miniShop2.Cart.totalCost).text(miniShop2.Utils.formatPrice(status['total_cost']));
$(miniShop2.Cart.totalDiscount).text(miniShop2.Utils.formatPrice(status['total_discount']));
if (typeof(status['cost']) === 'number') {
$(miniShop2.Cart.cost, '#' + status['key']).text(miniShop2.Utils.formatPrice(status['cost']));
}
$(miniShop2.Cart.price2, '#' + status['key']).text(miniShop2.Utils.formatPrice(status['price2']));
if ($(miniShop2.Order.orderCost, miniShop2.Order.order).length) {
miniShop2.Order.getcost();
}
}
},
CKEditor слетает из настройки which_editor
Приветствую!
Не первый раз вижу такой «глюк». Устанавливаешь CKEditor работает все ок. Но через какое то время просто перестает работать, захожу в Системные настройки->Визуальный редактор а там пусто:
prnt.sc/t6r3VBTlXjzr
В логах ничего нет.
Переустановка помогает, но опять же слетает через время.
Причем даже воспроизвести проблему не получается, скажем так чудесным образом происходит.
Подскажите куда копать?
Что может менять-удалять настройку?
И откуда комбобох which_editor берет данные?
Не первый раз вижу такой «глюк». Устанавливаешь CKEditor работает все ок. Но через какое то время просто перестает работать, захожу в Системные настройки->Визуальный редактор а там пусто:
prnt.sc/t6r3VBTlXjzr
В логах ничего нет.
Переустановка помогает, но опять же слетает через время.
Причем даже воспроизвести проблему не получается, скажем так чудесным образом происходит.
Подскажите куда копать?
Что может менять-удалять настройку?
И откуда комбобох which_editor берет данные?