Вопросы

Отправить письмо после активации аккаунта

Здравствуйте.
На моём сайте активация аккаунта происходит не по ссылке из письма, а только самим администратором. Как я могу отправлять письма пользователям после активации их аккаунтов?
Andrey
05 апреля 2020, 11:58
modx.pro
857
0

Fenom не выводит плейсхолдеры в снипете ForgotPassword

Здравствуйте,
Подскажите пожалуйста, у меня 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'),
])}
Pavel Kravchuk
04 апреля 2020, 16:43
modx.pro
1 257
0

Вопрос по $options

Обратил внимание что в сниппете dateAgo есть такой код:
if (!empty($options) && $options = $modx->fromJSON($options)) {
    $scriptProperties = array_merge($scriptProperties, $options);
}
Вопрос что это за переменная $options, чем она отличается от $scriptProperties?
Или этот код позволяет использовать параметры сниппета в качестве модификатора?
Анатолий
03 апреля 2020, 21:47
modx.pro
823
0

Пошаговая работа скрипта в 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";
Подскажите, как правильно написать пошаговое выполнение скрипта
Максим
03 апреля 2020, 20:59
modx.pro
1
1 892
0

Формирование ЧПУ в Тикетах

Возникла проблема, вернее отсутствие логики в тикетах
Прошу подсказать того, кто разбирается в этом.

Есть раздел с тикетами, в котором присутствуют подкатегории, тоже тикеты

Например
— Родитель
----Подкатегория
----Подкатегория
----Подкатегория
и т.д.

В подкатегориях убрал галочку Использовать псевдоним в пути псевдонимов.

Но при создании тикета в одной из подкатегорий, URL все равно формируется так
/Родитель/Подкатегория/Тикет

Как исправить? Это глюк или так и должно быть?

Нужен такой вариант /Родитель/Тикет

Но тикеты должны быть в разных разделах
Андрей
03 апреля 2020, 19:22
modx.pro
507
0

помогите кто нибудь с базой данных

, в phpmyadmin удалили пользователя root, и все базы данных пропали// однако modx работает както// вопрос такой — возможно ли вытянуть базу из modx?
shurra
03 апреля 2020, 13:42
modx.pro
643
0

Не передаются значения 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>
Антон
02 апреля 2020, 19:32
modx.pro
772
0

Обновление цен в Minishop2

Добрый день!
Буду благодарен, если кто-то предложить оптимальное решение вопроса.
Есть сайт аптеки — магазин на Minishop2.

Требуется еженедельная синхронизация цен аптечной базы с ценами сайта.
Существующее решение:

1. На сайте установлено дополнение msImportExport;
2. Из внешней базы данных аптеки выгружается таблица с данными (Артикул, Наименование, Цена, Производитель и т.д.);
3. Товарам на сайте присвоены артикулы, идентичные товарам из внешней базы данных;
4. Таблица переводится в формат msImportExport и по критерию совпадения артикула происходит изменение цены товара на сайте на актуальную.

Futuris
02 апреля 2020, 13:18
modx.pro
1 493
0

MODX Sitemap для мультиязычного сайта с использованием Babel

Всем привет! К сожалению я не знал что для публикации статьи нужен минимальный рейтинг в 10 балов и по окончанию статьи я понял что не могу её опубликовать((. В итоге выложу её в Вопросах, надеясь на то что администраторы допустят её к просмотру, так как полезность статьи субъективна, но мне бы она помогла если бы я искал сейчас это решение!

Суть
Не давно столкнулся с проблемой генерации файла Sitemap для разных контекстов и наткнулся на хорошую статью, её я и буду брать как источник.
В общем, проблема предыдущей статьи в том что не всем новичкам сразу становится ясным, что автор использовал не стандартный синтаксис MODX из коробки, а использовал «Fenom». Так как я сам являюсь новичком в разработке на MODX и не особо дружу с феномом, я решил переписать оригинальную статью, но с использованием стандартного синтаксиса.
Это моя первая и надеюсь не последняя статья в нашем сообществе, так что не судите строго.
И так приступим!
Nursultan
02 апреля 2020, 09:09
modx.pro
2 108
+2

Обрезка текста в pdoField

Настраиваю на сайте TagManager2.
Сделал внутри чанка вывод TV с помощью
[[!pdoField? &id=`[[+id]]` &field=`age`]]
Как обрезать количество выводимых символов в age? Ранее все решалось путем
[[+specification:ellipsis=`200`]]
но последний вывод отказался работать
Антон
01 апреля 2020, 17:55
modx.pro
693
0