Вопросы

Как изменить rel="canonical" в "Человекопонятной навигации", выполненной по инструкции pdoPage?

Подскажите, как исправить следующее.
Воспользовался инструкцией "Человекопонятная навигация"

В результате при переходе на страницу отличную от первой в исходном коде страницы meta тег rel=«canonical» ведет не на каноническую страницу (как было до изменений без параметров page-№), а на текущую, и выглядит следующим образом:

<link rel="canonical" href="https://mysite.ru/category/page-2"/>
<link rel="canonical" href="https://mysite.ru/category/page-3"/>

Немного переделал под свои нужды URLы страниц пагинации, но сути не меняет, rel=«canonical» все равно ведет на текущую страницу:
<link rel="canonical" href="https://mysite.ru/category/page/2/"/>
<link rel="canonical" href="https://mysite.ru/category/page/3/"/>

Подскажите, как сделать, чтобы rel=«canonical» при нахождении на любой странице пагинации вел на первую страницу пагинации, вот так:
<link rel="canonical" href="https://mysite.ru/category/"/>

Вот мой код шаблона:
[[!pdoPage@MyPagination?
&element=`pdoResources`
&limit=`3`
&parents=`{$_modx->resource.id}`
&hideContainers=`1`
&fastMode=`1`
&sortby=`publishedon`
&sortdir=`ASK`
&pageLinkScheme=`[[+pageVarKey]]/[[+page]]/`
&includeTVs=`img_sh,alt_img_sh`
&tpl=`@FILE chunks/sh/sh.tpl` 
]]	  
	  
[[!+page.nav]]
Код плагина:
<?php
// Реагируем только на событие OnPageNotFound
if ($modx->event->name == 'OnPageNotFound') {
    // Определяем ключ запроса из настроек
    $req = $modx->getOption('request_param_alias');
    // Ловим нужный ключ страницы
    $pageVarKey = 'page';
    // Если в запросе повторяется наш шаблон "pageVarKey-page", то работаем дальше
    if (preg_match("#.*?(/{$pageVarKey}/(\d+))/#", $_REQUEST[$req], $matches)) {
        // Отрезаем ЧПУ строку и получаем точный адрес текущей страницы
        $uri = str_replace($matches[1], '', $matches[0]);

        // Ищем страницу по этому адресу
        $id = 0;
        // Сначала как есть, со слешем на конце
        if (!$id = $modx->findResource($uri)) {
            // Если не находим - то пробуем отрезать слэш и ищем повторно
            $id = $modx->findResource(rtrim($uri, '/'));
        }

        // Если ресурс найден
        if ($id) {
            // Добавляем номер страницы в глобальные массивы, чтобы pdoPage их там увидел
            $_GET[$pageVarKey] = $_REQUEST[$pageVarKey] = $matches[2];
            // И загружаем эту страницу
            $modx->sendForward($id);
        }
        // Если ресурс не был найден - ничего не делаем, возможно запрос поймает другой плагин
    }
}

Заранее, благодарю!
Дмитрий
16 декабря 2018, 05:16
modx.pro
1
3 380
0

Кто-нибудь знает, как в modx правильно комментировать код?

Не нашел ни одного внятного ответа в интернете!
как правильно комментировать html код в modx?
Sweet_Cookies
15 декабря 2018, 19:29
modx.pro
6 285
0

Пагинация для msProduct с сортировкой по рейтингу

Добрый день.
У меня есть установленное дополнение CSS Star Rating. И есть вызов списка товаров с сортировкой по рейтингу:
[[!msProduct?
            &parents=`10000`
            &limit=`20`
            &tpl=`productsTab_msTpl`
            &leftJoin=`{"rating": {"class": "starRating", "on": "rating.star_id = msProduct.id"}}`
            &select=`{ "msProduct":"*", "rating":"rating.vote_count as vote_count,rating.vote_total as vote_rating" }`
            &sortby=`{"(vote_rating/vote_count)":"DESC"}`
            &includeThumbs=`thumb,thumb_hover`
]]
Как мне теперь прикрутить пагинацию?
Артём
15 декабря 2018, 13:30
modx.pro
1 333
0

Minishop2 - две валюты в PayPal

Здравствуйте, есть мультиязычный сайт с несколькими валютами, все сделано через контектсы, в настройках минишопа можно выставить валюту по умолчанию для оплаты через PayPal, подскажите, можно ли как-то добавить возможность оплаты по двум разным валютам?
Виктор Лобанов
14 декабря 2018, 19:22
modx.pro
1
1 233
0

Msbonus вывод бонусов в каталог

Доброго дня! нужна помощь, кто то сталкивался с выводом количества начисляемого бонуса в каталог? может у кого то есть готовое решение? {$bonus} которым автор предлагает выводить в товаре, не работает в каталоге…
Эдвард Ерохин
14 декабря 2018, 16:19
modx.pro
1 010
0

При публикации статьи её ulr генерируется с задержкой около минуты. Сначала статья публикуется с url главной страницы. Почему?

Вывожу статьи вот так:
<div class="title"><a href="[[~[[+id]]]]">[[+pagetitle:ellipsis=`40`]]</a></div>

При создании статьи, статья публикуется, но не имеет свой url вида «domen.ru/statya1», а имеет ссылку главной страницы «domen.ru».
Проходит время около минуты и статья уже имеет свой url «domen.ru/statya1». Я не понимаю почему не генерирует сразу свой url, а с такой задержкой.

Дело скорее всего не в кешировании бд и не в заголовках чпу.
В системных настройках выстроены эти настройки:
— Включить кэширование базы данных — нет
— Транслитерация псевдонимов — russian
— Создавать ЧПУ-псевдоним — нет
— Автоматически генерировать псевдоним — да
Евгений
14 декабря 2018, 15:23
modx.pro
591
0

Убрать "Горячие клавиши" в TicketForm!

Приветствую сообщество!

Задача то вроде плевая, необходимо убрать горячие клавиши из TicketForm на фронте.
Вроде разобрался, нашел вот такой код:
// Hotkeys
    $(document).on('keydown', '#ticketForm, #comment-form', function (e) {
    if (e.keyCode == 13) {
        if (e.shiftKey && (e.ctrlKey || e.metaKey)) {
            $(this).submit();
        }
        else if ((e.ctrlKey || e.metaKey)) {
            $(this).find('input[type="button"].preview').click();
        }
    }
});
Убрал, но это не помогло, посмотрел еще компоненты, главный файл main.js проверил у себя, ничего не пойму… не убирается и все тут!

Прошу помощи в этом не легком деле!
Andrey
14 декабря 2018, 15:18
modx.pro
761
0

eventsCalendar2 вывести Tv

Приветствую!

В eventsCalendar2 в чанке tplCell2 нужно вывести tv, чтобы стилизовать ячейку.
Вставляю tv [[+class_tv]] и соответственно, tv не выводится.

<td class="[[+class_tv]] cell [[+class]]" id="[[+cell_id]]" data-fulldate="[[+fulldate]]">
  <div class="date">
    <span class="calendar_content__date">[[+day]]</span>
    [[+events]]
  </div>
  <div class="event">[[+events]]</div>
</td>
Вызов такой
{set $calendar = $_modx->runSnippet('!eventsCalendar2', [
'parents' => $_modx->resource.id,
'includeTVs' => 1,
'includeTVList' => 'class_tv',
'processTVs' => 1,
'processTVList' => 'class_tv',
'lang' => 'ru',
'dateFormat' => '%d.%m'
])}

{$calendar}

Как решить проблему можно?
Rootiys
14 декабря 2018, 13:54
modx.pro
1 483
0

Error 503 - конфиги отредактировал, кэш удалил...

Здравствуйте. Требуется помощь… Переношу сайт на Timeweb, получаю ошибку 503. что сделано: отредактировал пути в

/core/config/config.inc.php
/config.core.php
/connectors/config.core.php
/manager/config.core.php

залил базу данных, удалил кэш — не помогает.

Единственное что увидет — форму входа в админку, но пароль не подходит, восстановил — не подходит тоже.

Помогите пожалуйста, а то я не уйду в пятницу домой, а буду вечно ковырять MODx, с которым столкнулся впервые. Спасибо.
kopetan
14 декабря 2018, 13:43
modx.pro
960
0

Fenom - перебор нескольких условий вывода

Есть поле, в которое через запятую я заношу значение id страниц, прим. 1,18,19 —
все это я получаю в переменную {var $varible = $_modx->config.some_id }
как сделать условие вывода чего угодно на этих страницах($varible), указанных через запятую.

Почему так не могу вывести:

{var $varible = $_modx->config.some_id }
{var $id_pj = $_modx->makeUrl($_modx->resource.id) }

{var $array = [$varible] }

{if $id_pj in list $array}
выводим 
{/if}
Sweet_Cookies
14 декабря 2018, 12:36
modx.pro
1 226
0