Вопросы
pdoFetch и LEFT JOIN modResource
Есть собственный классSmsNotify. есть стандартный класс modResource. В собственном компоненте есть поле res_id — в которой хранится id связанного ресурса. Как при помощи pdoTools вынуть все поля собственного класса и присоединить часть полей из класса modResource?
Как работать с платными компонентами на сервере разработки?
Допустим есть платный компонент на ModStore. Прежде, чем принимать решение о его использовании на продакшене хосется потестить этот компонент. Как можно это осуществить?
Почему плагин SEO PRO берет не pagetitle?
Заметил такой нюанс в работе Компонента SEO PRO. Для отображения заголовка в снипете поисковика он берет поде longtitle, а не pagetitle. Почему так? Можно это откорректировать?
Восстановление ресурса из кэша
Внимание! Это не вопрос, а готовое решение. В готовые решения не могу разместить, т.к. не хватает рейтинга.Всем привет. Как-то столкнулся с такой проблемой, что вся кодировка бэкапа базы данных была сбита и оставался только чистый кэш. Оставляю на случай, если кому поможет решить проблему.
Таким же успехом можно прогнать и системные настройки. Здесь я показал в пример только восстановление полей ресурса, TV к нему и чанков.
<?php
$resources = $modx->getIterator('modResource');
// Указываем путь к кэшу
$options = array(
xPDO::OPT_CACHE_KEY => 'resource/web/resources',
);
foreach ($resources as $resource) {
// Берём каждый ресурс по идентификатору
$cache = $modx->cacheManager->get($resource->get('id'), $options);
// Массив параметров ресурса
$data = $cache['resource'];
// Заносим все поля ресурса из кэша
$resource->fromArray($data);
foreach($data as $property) {
// Дополнительное поле выглядит как массив
if (is_array($property)) {
// Если это массив, то берём название поля и его значения в 1-й и 2-й ячейках
$resource->setTVvalue($property[0], $property[1]);
}
}
$resource->save();
// Бывает слетает кодировка и в чанках, восстанавливаем чанки, которые относятся к ресурсу
$chunks = $cache['sourceCache']['modChunk'];
foreach ($chunks as $key => $chunk) {
$modChunk = $modx->getObject('modChunk', array('name' => $key));
// getIterator тут не работает
$modChunk->setContent($chunk['fields']['snippet']);
$modChunk->save();
}
} Синтаксис Fenom и экранирование ковычек
Всем привет! Уже 2 дня не могу понять, почему феном выдает двойную кавычку, вместо одинарной и закрывает мне весь вызов.
Вот кусок кода:
Помогите пожалуйста разобраться, могу скинуть весь код.
Вот кусок кода:
<div class="popup_scrollbar">
{var $frame_tpl} {ignore}
<div class="popup_product_item" data-product-id="{$id}" data-product-prices="{$_modx->runSnippet('!msop2GetOptionsWithPrices', ['id ' => $id,'key ' => 'size ','price '=> ($id | resource : 'price ')]) | toJSON} ">
<div class="_img"><img src="{$_pls['280x280 ']}" alt="{$pagetitle}" title="{$pagetitle}"></div>
<div class="_title">{$pagetitle}</div>
<div class="_title" style="font-size: 70%;font-style: italic;">Ширина: {$longtitle} см.</div>
<div class="_details">
<div class="_price"><span class="_price_num">{($id | resource : 'price ')}</span> {'ms2_frontend_currency ' | lexicon}</div>
<div class="_select text-right">+</div>
<div class="clear"></div>
</div>
</div>
{/ignore}
{/var}
{var $frames = $_modx->runSnippet('msProducts ', [
'parents ' => 38,
'sortby ' => 'price ',
'sortdir ' => 'ASC ',
'includeThumbs ' => '280x280 ',
'tpl ' => '@INLINE '~$frame_tpl,
'tpl_n3 ' => '@INLINE '~$frame_tpl~'<div class="clear"></div>', ])} {$frames}
</div>В итоге на фронте, как HTML он выводится вот так:<div class="popup_scrollbar">
<div class="popup_product_item" data-product-id="{$id}" data-product-prices="{$_modx->runSnippet(" !msop2getoptionswithprices="" ',="" [="" 'id="" '=""> $id,
'key ' => 'size ',
'price ' => ($id | resource : 'price '),
]) | toJSON}'>
<div class="_img"><img src="{$_pls['280x280']}" alt="{$pagetitle}" title="{$pagetitle}"></div>
<div class="_title">{$pagetitle}</div>
<div class="_details">
<div class="_price"><span class="_price_num">{($id | resource : 'price')}</span> {'ms2_frontend_currency' | lexicon}</div>
<div class="_select text-right">+</div>
<div class="clear"></div>
</div>
</div>
<div class="popup_product_item" data-product-id="{$id}" data-product-prices="{$_modx->runSnippet(" !msop2getoptionswithprices="" ',="" [="" 'id="" '=""> $id,
'key ' => 'size ',
'price ' => ($id | resource : 'price '),
]) | toJSON}'>
<div class="_img"><img src="{$_pls['280x280']}" alt="{$pagetitle}" title="{$pagetitle}"></div>
<div class="_title">{$pagetitle}</div>
<div class="_details">
<div class="_price"><span class="_price_num">{($id | resource : 'price')}</span> {'ms2_frontend_currency' | lexicon}</div>
<div class="_select text-right">+</div>
<div class="clear"></div>
</div>
</div>
<div class="popup_product_item" data-product-id="{$id}" data-product-prices="{$_modx->runSnippet(" !msop2getoptionswithprices="" ',="" [="" 'id="" '=""> $id,
'key ' => 'size ',
'price ' => ($id | resource : 'price '),
]) | toJSON}'>
<div class="_img"><img src="{$_pls['280x280']}" alt="{$pagetitle}" title="{$pagetitle}"></div>
<div class="_title">{$pagetitle}</div>
<div class="_details">
<div class="_price"><span class="_price_num">{($id | resource : 'price')}</span> {'ms2_frontend_currency' | lexicon}</div>
<div class="_select text-right">+</div>
<div class="clear"></div>
</div>
</div>
<div class="clear"></div>
<div class="popup_product_item" data-product-id="{$id}" data-product-prices="{$_modx->runSnippet(" !msop2getoptionswithprices="" ',="" [="" 'id="" '=""> $id,
'key ' => 'size ',
'price ' => ($id | resource : 'price '),
]) | toJSON}'>
<div class="_img"><img src="{$_pls['280x280']}" alt="{$pagetitle}" title="{$pagetitle}"></div>
<div class="_title">{$pagetitle}</div>
<div class="_details">
<div class="_price"><span class="_price_num">{($id | resource : 'price')}</span> {'ms2_frontend_currency' | lexicon}</div>
<div class="_select text-right">+</div>
<div class="clear"></div>
</div>
</div>
</div>То есть, тег закрывается намного раньше, но в ресурсе у меня нет там двойной кавычки, она одинарная)Помогите пожалуйста разобраться, могу скинуть весь код.
Как настроить вывод аватарки в панели управления ModX Revo?
В панели управления есть иконка пользователя. Так вот, когда туда загружаешь картинку, то иконка не выводится. Вернее так, она отображается с ошибкой. В журнале ошибок создается запись:
В чем может быть ошибка?
[2018-09-26 17:45:21] (ERROR @ E:\OSPanel\domains\lp\core\model\phpthumb\modphpthumb.class.php: 144) phpThumb was unable to generate a thumbnail for: E:\OSPanel\domains\lp\core\cache\phpthumb\lp.local__src8316ee7be845a13238eba20a97b23757_par397327b300e2532553c171cb19a456f3_dat0.jpegСобственно файла E:\OSPanel\domains\lp\core\cache\phpthumb\lp.local__src8316ee7be845a13238eba20a97b23757_par397327b300e2532553c171cb19a456f3_dat0.jpeg по факту нет, но там ест другие файлы, которые нарезаются с оригинала при нажатии кнопки Сохранить в профиле (если указана картинка аватарки).
В чем может быть ошибка?
Вывод сниппета из чанка другого сниппета через Ajax
Всем привет!
Подскажите, пожалуйста, мб кто-то сталкивался или просто знает решение: есть такой сниппет, который при клике на определенный элемент выводит pdoResources с заданными параметрами
Подскажите, пожалуйста, мб кто-то сталкивался или просто знает решение: есть такой сниппет, который при клике на определенный элемент выводит pdoResources с заданными параметрами
<?php
if ($_SERVER['HTTP_X_REQUESTED_WITH'] != 'XMLHttpRequest') {return;}
$action = filter_input(INPUT_POST,'action');
if (empty($action)) {return;}
$res = '';
switch ($action) {
case 'pdoResources':
$params = array();
$params['parents'] = filter_input(INPUT_POST, 'parents', FILTER_SANITIZE_NUMBER_INT);
$params['resources'] = filter_input(INPUT_POST, 'resources', FILTER_SANITIZE_NUMBER_INT);
$params['tpl'] = filter_input(INPUT_POST,'tpl');
$params['includeTVs'] = filter_input(INPUT_POST,'includeTVs');
$res = $modx->runSnippet('pdoResources', $params);
break;
}
if (!empty($res)) {
die($res);
}JS выглядит так<script>
$('.trigger').on('click', function() {
var data = {
action: 'pdoResources',
parents: '25',
resources: objectId,
tpl: 'tpl.mapObjectsItem',
includeTVs: 'objectStatus'
};
$.post('/ajax/', data, function(data) {
$('.current-object').empty().prepend(data);
})
});
</script>В чанке tpl.mapObjectsItem подгружается ms2Gallery...
[[!ms2Gallery?
&resources = `[[+id]]`
&tpl = `tpl.ms2GalleryCatalog`
&frontend_css = ``
&frontend_js = ``
]]
...Все было бы замечательно, если бы не одно НО — когда на страницу при клике загружается нужный ресурс, вместо того, чтобы выполнить сниппет ms2Gallery, он выводится в виде текста, т.е. так[[!ms2Gallery? &resources = `61` &tpl = `tpl.ms2GalleryCatalog` &frontend_css = `` &frontend_js = `` ]] Не приходят уведомления о заказах
Перестали поступать уведомления о заказах на сайте и при смене статуса заказа. Самое интересное, что «клиенту» (пробовал тестовый заказ делать) уведомления приходят.
Может ли это быть как то связано с почтой, от которой приходят все уведомления?
Кто то поднимал эту тему давно, но решения так и не нашел.
Дополнил, от 26.09.2018 в 9:30
Скрин настроек:

Пробовал прификс убирать, тоже самое, к хостеру обращался, его ответ:
у кого есть какие еще мысли?
Может ли это быть как то связано с почтой, от которой приходят все уведомления?
Кто то поднимал эту тему давно, но решения так и не нашел.
Дополнил, от 26.09.2018 в 9:30
Скрин настроек:

Пробовал прификс убирать, тоже самое, к хостеру обращался, его ответ:
Попробуйте убрать smpt_prefix ssl. Если не получится, то вопрос нужно адресовать либо разработчику сайта, либо в поддержку modx так как это проблема лишь почтового скриптаЕсли указать в качестве почты менеджера и клиента обычную почту — допустим, mail, то туда все сообщения приходят, а на ту же корпоративную почту ****@domen.com, ничего не приходит.
у кого есть какие еще мысли?
Убрать расширения по регулярному выражению!
Приветствую сообщество!
В общем дело такое…
Необходимо в теле контента (а в контенте у нас много всего и картинки и теги и текст разумеется), убрать расширение…
НО! Не у самих картинок, а у атрибута title, т.е.:
Было так:
title=«dazzle1»
В общем дело такое…
Необходимо в теле контента (а в контенте у нас много всего и картинки и теги и текст разумеется), убрать расширение…
НО! Не у самих картинок, а у атрибута title, т.е.:
Было так:
<a href="/assets/images/tickets/95/8b8d318dc167c4249d0635e60a0ca114b1e03aaf.png" data-fancybox="gallery">
<img title="dazzle1.png" src="/assets/images/tickets/95/8b8d318dc167c4249d0635e60a0ca114b1e03aaf.png" alt="dazzle1.png">
<small>Нажмите на картинку для увеличения.</small>
</a>но убрать надо расширение, чтобы получилось так:title=«dazzle1»
Как вывести по одному товару из каждой категории верхнего уровня? fenom
Как вывести по одному товару из каждой категории верхнего уровня? Допустим есть 20 категорий со вложенностью… Нужно вывести 20 товаров по 1 из каждой.