Всего 123 808 комментариев

Дмитрий
4 минуты назад
0
До этого был шаблон вот такой, может где то ошибка в нем!

[[$template.breadcrumb]]
			<div class="page-section">
				<div class="container">
					<h1>[[*longtitle:default=`[[*pagetitle]]`]]</h1>
					<nav class="categories-nav">
						<ul>
							<li[[*id:is=`4`:then=` class="active"`]]><a href="[[~4]]">Все</a></li>
                            [[pdoMenu?
                                &parents=`4`
                                &level=`1`
                                &firstClass=``
                                &lastClass=``
                                &tpl=`@INLINE <li[[+classes]]><a href="[[+link]]">[[+menutitle]]</a></li>`
                                &tplOuter=`@INLINE [[+wrapper]]`
                            ]]
						</ul>
					</nav>
					[[setlocale]]
					[[!pdoPage?
                        &parents=`[[*id]]`
                        &limit=`8`
                        &sortby=`{"publishedon": "DESC"}`
                        &useWeblinkUrl=`1`
                        &tpl=`news.item`
                        &includeTVs=`image`
                        &prepareTVs=`image`
                        &where=`{"template": 7}`
                        &tplPageWrapper=`@INLINE 

<div class="paginate-links js-paginate-links"> <ul class="pagination justify-content-center js-pagination ajax-pagination"> [[+pages]] </ul> </div>` &tplPage=`@INLINE <li class="page-item"><a href="[[+href]]" class="page-link">[[+pageNo]]</a></li>` &tplPageActive=`@INLINE <li class="page-item active"><span class="page-link">[[+pageNo]]</span></li>` &tplPageSkip=`@INLINE <li class="page-item disabled"><span class="page-link">...</span></li>` &toPlaceholder=`listing` ]] [[+listing:ne=``:then=`<div class="objects-archive by2-sm by4-lg row ajax-result"> [[+listing]] </div> [[!+page.nav]] `:else=`<p>Пусто...</p>`]] [[*content]] </div> </div> </div>
Alexey
5 минут назад
0
disk.yandex.ru/d/TZ1s71O-Q8cXEQ — эти ссылки ведут на отдельные ресурсы-контейнеры, у которых дочерними являются ресурсы с шаблоном 7, так? И у этих контейнеров шаблон как в описании, так?

Если да, то должно работать с 'parents' => $id, Если элементы хранятся в файлах, возможно, был кеш не сброшен после редактирования шаблона?
Андрей Чаплыгин
7 минут назад
0
В сниппете rcv3_html достаточно отложить загрузку через setTimeout (хотя кто-то делает через onClick). Не думаю что мой вариант самый правильный и что вообще стоит принудительно таймаутить что-либо, но меня пока так устраивает + поможет улучшить показатель TBT в PageSpeed.

regClientStartupScript меняем на regClientScript (чтобы скрипт был в конце body, а не в head)

$public = $modx->getOption('formit.recaptcha_public_key');
$action = $action ?: 'ajaxform';

if (!$modx->getPlaceholder('rcv3_initialized')) {
    //$modx->regClientStartupScript('<script src="https://www.google.com/recaptcha/api.js?onload=ReCaptchaCallbackV3&render=' . $public . '" async></script>');
    $modx->regClientScript('
        <script>
            function loadCaptcha() {
              let script = document.createElement("script");
              script.src = "https://www.google.com/recaptcha/api.js?onload=ReCaptchaCallbackV3&render=' . $public . '";
              script.async = true;
              document.body.append(script);
            }
            setTimeout(loadCaptcha, 2500);
        </script>
    ', true);
    $modx->regClientScript('
        <script>
            var ReCaptchaCallbackV3 = function() {
                grecaptcha.ready(function() {
                    grecaptcha.reset = grecaptchaExecute;
                    grecaptcha.reset();
                });
            };
            function grecaptchaExecute() {
                grecaptcha.execute("' . $public . '", { action: "' . $action . '" }).then(function(token) {
                    var fieldsToken = document.querySelectorAll("[name =\'g-recaptcha-response\']");
                    Array.prototype.forEach.call(fieldsToken, function(el, i){
                        el.value = token;
                    });
                });
            };
            // обновляем капчу каждую минуту
            setInterval(function() {
                grecaptcha.reset();
            }, 60000);
        </script>
    ', true);
    $modx->setPlaceholder('rcv3_initialized', 1);
}

$output = '
    <span class="error_g-recaptcha-response error">' . $error . '</span>
    <input type="hidden" name="g-recaptcha-response">
';
Дмитрий
26 минут назад
0
Пробовал, все тоже самое….
т.е. если я нажимаю «акция» он мне должен показать документы в категории «акция», а он показывает «все»
Alexey
1 час назад
0
так попробуй:
'parents' => $id,
Виталий
Вчера в 10:51
0
Решил свою проблему через имя пользователя, но хотелось бы через права пользователя «Неограниченные права»
<?php
  /**
  * Системное событие OnManagerPageBeforeRender
  *
  */

  // какой скрипт запущен
  $script = $scriptProperties['controller']->scriptProperties;
  $url = $script['a'];

  // пользователь
  $user = $modx->getUser();
  $username = $user->get('username');

  if ($username != 'admin' AND $url == 'system/settings' ) {
	exit('Доступ запрещен '. $context);
  }
Ruslan
Вчера в 09:09
0
Спасибо, тоже очень интерестное решение.
Андрей
18 ноября 2024, 17:01
0
Нечто подобное реализовывал с помощью msProfile + самописная оплата пользователем различного функционала с личного счёта. Т.е. пополнение через любой доступный способ оплаты минишопа, а дальше уже пользователь оплачивает со счёта всё что ему необходимо.

А так ничего готового из подобного функционала нет.
Ruslan
18 ноября 2024, 15:51
0
Спасибо за идею.
Но получается что у MODx нету каких либо плагинов, которые могли бы решать данную задачу?
Надо реализовывать самому с нуля?
Олег
18 ноября 2024, 15:21
0
'where'  => [
    'Data.price:!='=>'0'
]
Артур Шевченко
18 ноября 2024, 15:11
0
Предположим, что объявления это ресурсы. Тогда я бы создал отдельную таблицу для хранения данных об оплаченных услугах для конкретных ресурсов. Сами услуги и оплату сделал бы через minishop2. Ещё повесил бы на крон задачу, которая будет проверять когда заканчивается оплаченный период.
Ivan
18 ноября 2024, 14:19
0
miniShop2.Order.add('extfld_delivery_price','100', function() {
		        miniShop2.Order.getcost();
    })

Это вот работает, но чтобы увидеть изменения нужно перезагрузить страницу. Посмотрю еще. Спасибо
Ivan
18 ноября 2024, 14:09
0
То есть может получиться так, что мне придется вызывать свой action который будет добавлять поле с таким значением в сессию заказа?
Артур Шевченко
18 ноября 2024, 13:34
0
Скорее всего дело в том, что за короткое время происходит изменение нескольких полей заказа и, поскольку данные записываются в сессию, она не успевает обновится. Тут либо переходить на хранение данных в БД, если версия minishop2 позволяет, или ставить задержку через setTimeout().
Максим
18 ноября 2024, 09:19
+1
Если суть поста: стоит или не стоит, то тут всё зависит от тебя. Хочешь копаться, разбираться — стоит. А иначе можешь и откатиться, но не факт что всё заработает…
Андрей
17 ноября 2024, 21:46
1
+1
Стоит ли копаться и решать проблему или лучше откатить Minishop2 до 2.5.0-pl?
Т.к. вводных данных крайне мало, можно только теоретизировать:

Для начала стоит посмотреть логи, как MODX так и серверные. Сбой отправки на почту с обновлением вряд ли связан, и имеет другие причины, это уже надо посмотреть логи и что там происходит при отправке.

С CRM вероятно чуть сложнее, зависит от того, использовался какой либо готовый доп из модстора или самопис, но в любом случае это поправимо.

Имхо, лучше поправить ошибки, и остаться на актуальных версиях дополнений.
Андрей
16 ноября 2024, 20:54
0
Владимир, добрый день!

Есть возможность добавить в модуль функцию отмены заказа?
Т.е. если в админке магазине поставили статус Отменен, чтобы в Тинькоф улетал запрос не на создание нового заказа, как сделано сейчас, а улетал запрос на отмену этого заказа.

Второе пожелание — можно ли в модуле добавить настройку округления сумм?
При применение скидок скидочным модулем иногда возникает ситуация, что общая сумма заказа со скидкой и сумма всех товаров в заказе с примененной скидкой отличаются на 1 копейку. И такой заказ платежные системы не пропускают.
Есть гипотеза, что если округлять все до рублей, такие ситуации пропадут.
Артур Шевченко
16 ноября 2024, 19:59
0
Подскажите, что не так делаю?
Ты вызываешь сниппет в инлайновом чанке.