Max

Max

С нами с 28 июня 2020; Место в рейтинге пользователей: #890

Шорткод для простановки ссылок в редакторе, с учетом состояния ресурса

Всем привет, у меня не вопрос, а просто удобный сниппет, в другие разделы публиковать не дает, рейтинг низкий =((, не нашел ни чего подобного, поэтому пилил сам, может кому то понадобится, упрощает жизнь сеошнику при внутренней перелинковке сайта. Собственно к сути:
Сделал сниппет который получает текст где проставлены вот такие шорткоды — "[id10] анкор ссылки []" где 10 это id ресурса на который должна сформироваться ссылка, по мне так удобнее чем делать жесткую ссылку через функционал редактора в админке, часто бывает что я меняю структуру, и меняется uri страницы, еще одним удобством сделал то что если ресурс на который мы ссылаемся еще не опубликован, то ссылка игнорируется, а конструкция шорткода просто вырезается, но как только ресурс публикуется (сделали отложенную публикацию к примеру) то ссылка на него сразу появится.
Создаем сниппет в админке, называем к примеру — url_by_id
Код сниппета:
<?php
$text = $input;
for ($i = 1; $i <= 8; $i++) { //8 это максимальное количество обрабатываемых шорткодов, можно конечно с foreach что то придумать, но тогда нужно массив создавать заранее, не стал заморачиваться
preg_match('[id\d{1,}]', $text, $output);
$res_id = str_replace('id','',$output[0]);
    if ($res_id) { 
        $res = $modx->getObject('modResource', $res_id);
            if ($res->get('published')){
                $url = $modx->makeUrl($res_id);
                $link = "<a href=\"$url\">";    
                $seraching_string = '['.$output[0].']';
                $text = str_replace($seraching_string, $link, $text);
               $text = preg_replace('/\[\]/', '</a>',$text, 1);
            }elseif(!$res->get('published')){
                $link = "";    
                $seraching_string = '['.$output[0].']';
                $text = str_replace($seraching_string, $link, $text);
                $text = preg_replace('/\[\]/', '',$text, 1);
                }
        }
}
return $text;
И использование в шаблонизаторе:
{$_modx->resource.content | url_by_id}
Если в текстовом редакторе сделать вот [id5]такую конструкцию[], то на фронте получится ссылка на url ресурса с id = 5, с анкором «такую конструкцию»
Как то так, сильно не пинайте)))
Max
Max
16 марта 2023, 09:54
modx.pro
415
-1

Не приходит e-mail заказчика при оформлении заказа minishop2

Добрый день.
При оформлении заказа (ИМ на minishop2 ) заполняется несколько полей, тел, e-mail, имя, комментарий к заказу, на почту приходит все кроме e-mail, оно остается пустым.
Даже если я вызываю msOrder без своего шаблона, а просто со стандартными полями
{$_modx->runSnippet('!msOrder', [

])}

Заполняю все поля, e-mail все равно не приходит
Вывожу поля в письме вот так
{extends 'tpl.msEmail'}

{block 'title'}
    {'ms2_email_subject_new_manager' | lexicon : $order}
    <div class="row">
        <div class="col-12">
            <h2>Данные клиента</h2>
<p>Имя:     <b>[[+address.receiver]]</b></p>
<p>Телефон: <b>[[+address.phone]]</b></p>
<p>e-mail:  <b>[[+address.email]]</b></p>
<p>Комментарий: <b>[[+address.comment]]</b></p>
        </div>
    </div>
{/block}
Max
Max
18 августа 2021, 11:29
modx.pro
588
0

Интеграция MODX Revo с системой IIKO

10 5 000
Добрый день. Сайт заполнен, требуется сделать интеграцию с системой для ресторанов IIKO
Документация ru.iiko.help/articles/#!api-documentations/kak-podkluchit-api
Сколько это будет стоить?
Я разраб, пишу на феноме, верстка и прочее, но не тот уровень пока, часть рутины сделаю сам.
Жду предложений)
Max
Max
12 августа 2021, 11:10
modx.pro
429
0

Как сделать обязательным к заполнению поле Артикул при заполнении карточки товара в minishop2

Добрый день. Не нашел ответ или плохо искал, в основном обсуждаются вопросы по обязательным полям при оформлении заказа, а как сделать что бы контент менеджер при заполнении каталога обязательно заполнял поле Артикул у товара, которое является стандартным, и находится во вкладке «Свойства товара», т.е. не мог сохранить товар, если поле Артикул пустое. Создать и использовать свое ем поле не хотелось бы.
Max
Max
03 августа 2021, 14:03
modx.pro
556
0

Не работает импорт в minishop2 через компонент msImportExport

Приветствую!
Собственно проблема в импорте товаров, делаю экспорт из минишопа, где для наглядности добавлен один товар, выгружаю в xls или csv, после выгрузки добавляю строчку с новым товаром, указываю ему Родителя, такого же как у демо-товара, который выгрузил из минишопа, но при импорте выдает ошибку
«Для добавляемого нового товара не указан родитель, действие отклонено. Array»
[2020-11-13 12:27:31] (ERROR @ core\components\msimportexport\model\msimportexport\msie.class.php : 3723) Для добавляемого нового товара не указан родитель, действие отклонено. Array
(
    [parents] => Главная|Группа1|Группа2
    [Название родителя] => Группа2
    [Галерея] => assets/images/products/4/img1.png
    [Название] => Товар 1
    [Полное название] => 
    [Родитель] => 3
    [Цена] => 0.00
    [class_key] => msProduct
    [context_key] => web
    [tvs] => 
)
Max
Max
13 ноября 2020, 12:39
modx.pro
763
0

Как вывести используя Fenom название tv поля (не значение).

Доброго времени суток!
Встал вопрос о выводе в синтаксисе fenom НАЗВАНИЕ поля:
Вот такой пример поля создал в админке, в tv полях, назвал tv_name, со значениями:
Поле1==значение_поля1||Поле2==значение_поля2
Имя в стандартном шаблонизаторе можно получить через модификатор tvLabel
Пример со стандартным шаблонизатором:
[[*tv_name:tvLabel]]
Этот код выводит «Поле1» или «Поле2», в зависимост от выбора в настройках ресурса
С использованием fenom этот модификатор не работает, искал в документации, нет ни каких упоминаний, может плохо искал))
Max
Max
02 июля 2020, 19:37
modx.pro
1 030
0