Вопросы
Отправить письмо после активации аккаунта
Здравствуйте.
На моём сайте активация аккаунта происходит не по ссылке из письма, а только самим администратором. Как я могу отправлять письма пользователям после активации их аккаунтов?
На моём сайте активация аккаунта происходит не по ссылке из письма, а только самим администратором. Как я могу отправлять письма пользователям после активации их аккаунтов?
Fenom не выводит плейсхолдеры в снипете ForgotPassword
Здравствуйте,
Подскажите пожалуйста, у меня Fenom не выводит плейсхолдер с ошибкой, при отправке пустой формы. При этом стандартный modx вызов работает нормально и выводит ошибку. Строка проверки находится в forgotPass_tpl
Fenom вызов выглядит так:
Подскажите пожалуйста, у меня Fenom не выводит плейсхолдер с ошибкой, при отправке пустой формы. При этом стандартный modx вызов работает нормально и выводит ошибку. Строка проверки находится в forgotPass_tpl
Fenom вызов выглядит так:
{set $errors = $_modx->getPlaceholder('loginfp.errors')}
{if $errors}<div class="alert alert-danger">{$errors}</div>{/if}MODx вызов:[[+loginfp.errors:notempty=`<div class="alert alert-danger">[[+loginfp.errors]]</div>`]]Вызов сниппета:{$_modx->runSnippet('!ForgotPassword', [
'resetResourceId' => $_modx->resource.id,
'loginResourceId' => $_modx->config.login_id,
'tpl' => 'forgotPass_tpl',
'sentTpl' => 'forgotPassSent_tpl',
'emailTpl' => 'forgotPassEmail_tpl',
'emailSubject' => $_modx->lexicon('login.reset_password'),
])} Вопрос по $options
Обратил внимание что в сниппете dateAgo есть такой код:
Или этот код позволяет использовать параметры сниппета в качестве модификатора?
if (!empty($options) && $options = $modx->fromJSON($options)) {
$scriptProperties = array_merge($scriptProperties, $options);
}Вопрос что это за переменная $options, чем она отличается от $scriptProperties?Или этот код позволяет использовать параметры сниппета в качестве модификатора?
Пошаговая работа скрипта в Console
Здравствуйте, необходимо выполнить данный скрипт
$q = $modx->newQuery('msProduct');
$q->where(array('parent' => '9'));
$col = $modx->getCollection('msProduct', $q);
foreach ($col as $item){
$oe_number = $item->get('oe_number');
$article = $item->get('article');
$old_price = $item->get('old_price');
$price = $old_price * 1.2;
$item->set('price', $price);
if (empty($oe_number)) {
$item->set('oe_number', $article);
}
$item->save();
}Но так как товаров порядка 30 000, то нужно разбить на пошаговое выполнение, нашел данную шпаргалку — ilyaut.ru/cheats/step-by-step-the-script-in-console/, но мозгов доделать не хватает, вот что получилось<?php
// Сколько ресурсов обрабатывать за раз
$step = 1;
// Если процесс уже остановлен, сбрасываем OFFSET
if (!isset($_SESSION['Console']['completed'])) {
$_SESSION['console_offset'] = 0;
}
$offset = isset($_SESSION['console_offset']) && $_SESSION['console_offset'] ? $_SESSION['console_offset'] : 0;
// Формируем запрос
$q = $modx->newQuery('msProduct');
$q->where(array('parent' => '9'));
$total = $modx->getCount('msProduct', $q);
// Пропускаем все уже обработанные объекты
$q->limit($step, $offset);
$resources = $modx->getCollection('msProduct', $q);
// Обработка
foreach ($resources as $resource){
$oe_number = $resource->get('oe_number');
$article = $resource->get('article');
$old_price = $resource->get('old_price');
$price = $old_price * 1.2;
$resource->set('price', $price);
if (empty($oe_number)) {
$resource->set('oe_number', $article);
}
$resource->save();
print "<p>Processing resource <b>".$resource->get('pagetitle')."</b></p>";
}
// Меняем offset
$_SESSION['console_offset'] = $offset + $step;
if ($_SESSION['console_offset'] >= $total) {
$sucsess = 100;
$_SESSION['Console']['completed'] = true;
unset($_SESSION['console_offset']);
} else {
$sucsess = round($_SESSION['console_offset'] / $total, 2) * 100;
$_SESSION['Console']['completed'] = false;
}
for ($i=0; $i<=100; $i++) {
if ($i <= $sucsess) {
print '=';
} else {
print '_';
}
}
$current = isset($_SESSION['console_offset']) ?
$_SESSION['console_offset'] :
($sucsess == 100 ? $total : 0);
print "\n";
print $sucsess.'% ('.$current.')'."\n\n";Подскажите, как правильно написать пошаговое выполнение скрипта Формирование ЧПУ в Тикетах
Возникла проблема, вернее отсутствие логики в тикетах
Прошу подсказать того, кто разбирается в этом.
Есть раздел с тикетами, в котором присутствуют подкатегории, тоже тикеты
Например
— Родитель
----Подкатегория
----Подкатегория
----Подкатегория
и т.д.
В подкатегориях убрал галочку Использовать псевдоним в пути псевдонимов.
Но при создании тикета в одной из подкатегорий, URL все равно формируется так
/Родитель/Подкатегория/Тикет
Как исправить? Это глюк или так и должно быть?
Нужен такой вариант /Родитель/Тикет
Но тикеты должны быть в разных разделах
Прошу подсказать того, кто разбирается в этом.
Есть раздел с тикетами, в котором присутствуют подкатегории, тоже тикеты
Например
— Родитель
----Подкатегория
----Подкатегория
----Подкатегория
и т.д.
В подкатегориях убрал галочку Использовать псевдоним в пути псевдонимов.
Но при создании тикета в одной из подкатегорий, URL все равно формируется так
/Родитель/Подкатегория/Тикет
Как исправить? Это глюк или так и должно быть?
Нужен такой вариант /Родитель/Тикет
Но тикеты должны быть в разных разделах
помогите кто нибудь с базой данных
, в phpmyadmin удалили пользователя root, и все базы данных пропали// однако modx работает както// вопрос такой — возможно ли вытянуть базу из modx?
Не передаются значения TV при фильтрации
Почти что победил TagManager2 — фильтры отображаются, все фильтруется. Но когда фильтруешь товары, исчезают значения TV из отображения карточки товара. Жмешь Enter в адресной строке браузера по сформированной TM2 ссылке и значения TV появляются. Подскажите, в чем может быть проблема?
Чанк товара:
Чанк товара:
<div class="col-xl-4" style="padding-left: 5px; padding-right: 5px; float: left;">
<div class="post-02 post-02__style-02 js-post-effect">
<div class="post-02__media">
<a href="[[~[[+id]]]]">
[[getImageList?
&tvname=`slider`
&docid=`[[+id]]`
&limit=`1`
&tpl=`@CODE:<img src="[[+slide]]" alt="[[+alt]]" />`
]]
</a></div>
<div class="post-02__body">
<h2 class="post-02__title"><a href="[[~[[+id]]]]">[[!pdoField? &id=`[[+id]]` &field=`name`]]</a></h2>
<div class="post-02__department">[[!pdoField? &id=`[[+id]]` &field=`seo_tag`]]</div>
<div class="post-02__content">
<div class="post-02__description">
[[pdoField:ellipsis=`200`? &id=`[[+id]]` &field=`specification`]]
<ul>
<li><span class="primary-color">Age</span>[[!pdoField? &id=`[[+id]]` &field=`age`]]</li>
<li><span class="primary-color">Height</span>[[!pdoField? &id=`[[+id]]` &field=`height`]] cm</li>
<li><span class="primary-color">Weight</span>[[!pdoField? &id=`[[+id]]` &field=`weight`]] kg</li>
</ul>
</div>
<a class="post-02__link" href="[[~[[+id]]]]">View detail</a>
</div>
</div>
</div>
</div>Вывод TMFilters:<div id="filters">
[[tmFilters?
&filterOuterTpl=`tm2_filterOuterTpl`
&filterTpl=`tm2_filterTpl`
&filterNumericOuterTpl=`tm2_filterOuterTpl`
&filterNumericTpl=`tm2_filterNumericTpl`
&jsMap=`1`
&jsScript=`0`
&toPlaceholder=`filters`
]]
<form action="[[~[[*id]]]]" method="get">
<input type="hidden" name="page_id" value="[[*id]]" disabled="disabled" />
[[+filters]]
<button class="btn btn-info" type="button" onclick="tmFilters.resetFilters(); return false;">Сбросить фильтр</button>
</form>
</div> Обновление цен в Minishop2
Добрый день!
Буду благодарен, если кто-то предложить оптимальное решение вопроса.
Есть сайт аптеки — магазин на Minishop2.
Требуется еженедельная синхронизация цен аптечной базы с ценами сайта.
Существующее решение:
1. На сайте установлено дополнение msImportExport;
2. Из внешней базы данных аптеки выгружается таблица с данными (Артикул, Наименование, Цена, Производитель и т.д.);
3. Товарам на сайте присвоены артикулы, идентичные товарам из внешней базы данных;
4. Таблица переводится в формат msImportExport и по критерию совпадения артикула происходит изменение цены товара на сайте на актуальную.
Буду благодарен, если кто-то предложить оптимальное решение вопроса.
Есть сайт аптеки — магазин на Minishop2.
Требуется еженедельная синхронизация цен аптечной базы с ценами сайта.
Существующее решение:
1. На сайте установлено дополнение msImportExport;
2. Из внешней базы данных аптеки выгружается таблица с данными (Артикул, Наименование, Цена, Производитель и т.д.);
3. Товарам на сайте присвоены артикулы, идентичные товарам из внешней базы данных;
4. Таблица переводится в формат msImportExport и по критерию совпадения артикула происходит изменение цены товара на сайте на актуальную.
MODX Sitemap для мультиязычного сайта с использованием Babel
Всем привет! К сожалению я не знал что для публикации статьи нужен минимальный рейтинг в 10 балов и по окончанию статьи я понял что не могу её опубликовать((. В итоге выложу её в Вопросах, надеясь на то что администраторы допустят её к просмотру, так как полезность статьи субъективна, но мне бы она помогла если бы я искал сейчас это решение!
Суть
Не давно столкнулся с проблемой генерации файла Sitemap для разных контекстов и наткнулся на хорошую статью, её я и буду брать как источник.
В общем, проблема предыдущей статьи в том что не всем новичкам сразу становится ясным, что автор использовал не стандартный синтаксис MODX из коробки, а использовал «Fenom». Так как я сам являюсь новичком в разработке на MODX и не особо дружу с феномом, я решил переписать оригинальную статью, но с использованием стандартного синтаксиса.
Это моя первая и надеюсь не последняя статья в нашем сообществе, так что не судите строго.
И так приступим!
Суть
Не давно столкнулся с проблемой генерации файла Sitemap для разных контекстов и наткнулся на хорошую статью, её я и буду брать как источник.
В общем, проблема предыдущей статьи в том что не всем новичкам сразу становится ясным, что автор использовал не стандартный синтаксис MODX из коробки, а использовал «Fenom». Так как я сам являюсь новичком в разработке на MODX и не особо дружу с феномом, я решил переписать оригинальную статью, но с использованием стандартного синтаксиса.
Это моя первая и надеюсь не последняя статья в нашем сообществе, так что не судите строго.
И так приступим!
Обрезка текста в pdoField
Настраиваю на сайте TagManager2.
Сделал внутри чанка вывод TV с помощью
Сделал внутри чанка вывод TV с помощью
[[!pdoField? &id=`[[+id]]` &field=`age`]]Как обрезать количество выводимых символов в age? Ранее все решалось путем[[+specification:ellipsis=`200`]]но последний вывод отказался работать