Всего 125 991 комментарий

iWatchYouFromAfar
09 ноября 2021, 02:51
0
В моем варианте все прекрасно работает, использовал этот сниппет на более чем дватцати сайтах:

{'pdoCrumbs' | snippet : [
'outputSeparator' => '',
'showHome' => 1,
'showCurrent' => 0,
'hideSingle' => 1,
'tplWrapper' => '@INLINE <ul itemscope itemtype="http://schema.org/BreadcrumbList" class="breadcrumbs">{$output}</ul>',
'tpl' => '@INLINE
        <li itemprop="itemListElement" itemscope itemtype="http://schema.org/ListItem">
             <a title="{$menutitle}" itemprop="item" href="{$link}"><span itemprop="name">{$pagetitle}</span></a>
             <meta itemprop="position" content="{$idx}">
        </li>'
]}
Я в комментариях и на своем сайте привел аж два варианта генерации ХК сниппетом pdoCrumbs. Просто кто-то читает не внимательно.

Вы заменили генерацию урла для первого элемента ХК, это не костыль даже, это просто бесполезное действие, оно ни на что не влияет. Разве что в один чудный день, главная страница вашего сайта вдруг сменит идентификатор и вот тут костыль ваш всплывет. Костыли со скрипом но решают задачи, а вы просто заменили геренацию урла для первого элемента ХК. Это вообще не относится к itemprop=«item…

Если уж хочется говнокостылить, то делайте это хоть чуть-чуть правильно:

href="{$_modx->makeUrl($_modx->config['site_start'])}"

Рекомендую вам вернуть все как было и еще раз прогнать разметку через валидатор schema.org. После внимательно посмотреть, где ошибка.

Ошибка «Отсутствует поле „item“» возникает на элементе текущей страницы ХК при генерации ХК этим вариантом сниппета, но на всех нормальных сайтах в ХК просто напросто нет текущего элемента.

Именно по этой причине я и написал на своем сайте:

"Наиболее правильный вариант, который устраивает поисковых роботов и Google и Yandex:"
Игорь
08 ноября 2021, 22:17
0
На данный момент, рабочий вариант для Google такой:
{'pdoCrumbs' | snippet: [
'showAtHome' => '0',
'showHome' => '1',
'outputSeparator' => '<li> / </li>',
'tplWrapper' => '@INLINE <ol class="breadcrumb" itemscope itemtype="https://schema.org/BreadcrumbList">{$output}</ol>',
'tplHome' => '@INLINE
        <li class="breadcrumb-item" itemprop="itemListElement" itemscope itemtype="https://schema.org/ListItem">
             <a title="{$menutitle}" itemprop="item" href="{$_modx->makeUrl(1)}"><span itemprop="name">{$pagetitle}</span>
             <meta itemprop="position" content="{$idx}"></a>
        </li>',
'tpl' => '@INLINE
        <li class="breadcrumb-item" itemprop="itemListElement" itemscope itemtype="https://schema.org/ListItem">
             <a title="{$menutitle}" itemprop="item" href="{$link}"><span itemprop="name">{$pagetitle}</span>
             <meta itemprop="position" content="{$idx}"></a>
        </li>',    
'tplCurrent' => '@INLINE
        <li class="breadcrumb-item" itemprop="itemListElement" itemscope itemtype="https://schema.org/ListItem">
             <a title="{$menutitle}" itemprop="item" href="{$link}"><span itemprop="name">{$pagetitle}</span>
             <meta itemprop="position" content="{$idx}"></a>
        </li>',

]}
В предложенном @iWatchYouFromAfar варианте, валидатор микроразметки выдавал предупреждение, что у первого элемента хлебной крошки («Номе») в коде нет атрибута itemprop=«item». Ошибка пропала при замене в 'tplHome'
href="{$link}"
на
href="{$_modx->makeUrl(1)}"
Возможно, «костыль», но рабочий)
Алексей Смирнов
08 ноября 2021, 19:15
0
Есть решение плагина для TinyMCE RTE 2+
Единственно нужно проверить работает ли с минишоповской галлереей.
modstore.pro/packages/photos-and-files/imgspaste
Если актуально, то в ближайшие пару дней — проверю.
Алексей Андреев
08 ноября 2021, 14:36
0
А из коробки сделать промокод-скидку на первый заказ пользователя можно?
Сергей Лим
08 ноября 2021, 14:30
0
@Павел Гвоздь не удаляются изображения с фронта
assets/components/ms2form/action.php 400
public_html/core/components/ms2form/model/ms2form/ms2form.class.php 249
Доступ запрещен.
Lori
08 ноября 2021, 11:58
+1
Стоило заглянуть в modrest.class.php и стала понятна ошибка))
Параметры могут быть только типа array, а я передавал в json.
Вопрос: если в параметре указать format json, то он эти параметры автоматически в json переводит?
Lori
08 ноября 2021, 10:43
0
теперь я указал вот так
$response = $client->post($api_url, $addressTo, $headers)->process();
и все равно 500 статус запроса. В журнале тишина. Или такой синтаксис тоже неверный?

Вот текущий код:
$data = array(
"id" => "adr 1",
"original-address" => "127253, г Москва, ул Слепнёва, д 1"
);
$addressTo = '['.json_encode($data).']';
$headers =  array(
"Authorization" => "AccessToken тут токен",
"X-User-Authorization" => "Basic тут ключ",
"Content-type" => "application/json;charset=UTF-8",
"Accept" => "application/json"
);
$client = $modx->getService('rest', 'rest.modRest');
$client->setOption('format', 'json');
$client->setOption('header', true);
$client->setOption('suppressSuffix', 'true');
$api = 'https://otpravka-api.pochta.ru/1.0/clean/address';
$response = $client->post($api, $addressTo, $headers)->process();
p.s я думал лог ошибок будет писаться в журнал сервера, а ошибки по данному запросу отображаются в журнале modx. вот сейчас во вкладке network вижу статус 500, а в журналах ничего
Сергей Шлоков
08 ноября 2021, 10:36
0
Теперь ответ легко находится. Класс не найден. Почему? Потому что в третьем параметре метода getService, в котором должен быть указан путь к классу (для классов MODX указывается пустое значение), указан массив заголовков, который должен быть указан в четвёртом параметре.
Lori
08 ноября 2021, 10:35
0
так?
$response = $client->post($api_url, $addressTo, $headers)->process();
пробовал — все такая же ситуация
Николай Савин
08 ноября 2021, 10:31
0
Попробуйте передавать заголовки не во время getService, а ниже через метод setHeaders
Lori
08 ноября 2021, 10:24
0
В журнале ошибки
Could not load class: modRest from rest.modrest.
Problem getting service rest, instance of class rest.modRest, from path Array


Честно, не понимаю почему. Практически такой же синтаксис, но на другой апи и с указанием заголовков. Либо я заголовки неправильно указываю, хотя по доке так docs.modx.com/3.x/ru/extending-modx/services/modrest#zapis-v-header
Михаил
08 ноября 2021, 10:15
0
А если все же не средствами html, как то можно передать чекбокс, что бы в аджике отображался?
Наумов Алексей
08 ноября 2021, 09:47
0
Самое простое сделать запрос в БД, примерно (! без проверки пишу) так:
$q = $modx->newQuery('ecMessage');
$q->where(array(
'thread' => 123, // id цепочки сообщения
'published' => 1,
'deleted' => 0,
'rating:>'  => 3,
));
$count = $modx->getCount('ecMessage', $q);
Наумов Алексей
08 ноября 2021, 09:45
0
Добрый день, штатно нет.
Можно попробовать какой-нибудь плагин сделать на событие создания сообщения, но не уверен, что все получится 100% без вмешательство в ядро компонента
Сергей Шлоков
08 ноября 2021, 07:29
0
И 500-ая ошибка говорит, что…
Артур Шевченко
07 ноября 2021, 09:43
0
А что там сложного? Суммарно я дописал/изменил 50-60 строк кода, ну максимум 100, при этом основная логика создания заказа вообще никак не поменялась, что в теории позволит без проблем прикрутить оплату как это обычно делается в minishop2, и, вероятно, калькуляторы доставки, но как по мне это уже ни разу не заказ в 1 клик. А так да, можно и через FormIt. Вообще вариантов реализации можно придумать много, мне было интересно сделать меняя только js.
Aleksandr Huz
07 ноября 2021, 09:32
+3
Как по мне, то очень сложно.
Может лучше создать кастомный хук formit, в котором можно сохранить заказ?
TITAN-UZ
06 ноября 2021, 21:44
2
+1
Рабочий плагин на
TinyMCE 4 LINK
TinyMCE 5 LINK

Базу можете обновить из  GITHUB
Артур Шевченко
06 ноября 2021, 20:57
0
Не переключается, наверное, потому что Вы не переключаете. У msoptionprice2 есть событие
$(document).on('msoptionsprice_product_action', function (e, action, form, response) {
    console.log(action, form, response);
});
А в swiper есть метод swiper.slideTo(index, speed, runCallbacks)
Ваша задача в событии получить идентификатор модификации, по нему найти слайд и переключиться на него.
SYAN
06 ноября 2021, 18:02
0
Прошу прощения, не углядел заголовок. Автору респект, но буду искать иное решение или плагин