Alex
С нами с 12 апреля 2021; Место в рейтинге пользователей: #4522Как сделать ЧПУ и добавление стр.2 в мета при помощи PdoPage и PdoTitle?
1. Здравствуйте. Для раздела блог, сделал и оформил вывод ресурсов через PdoPage, столкнулся с проблемой создания ЧПУ в адекватном формате (/cat/page-2) без стандартного (/cat?page=2).
Нашел информацию в документации к плагину с примером написанного плагина для формирования такого адреса. (Без этого плагина страницы пагинации 2+ выдают 404 ошибку) (в документации так и написано).
Добавил опцию &pageLinkScheme=`/[[+pageVarKey]]-[[+page]]` и создал плагин без изменений из документации.
<?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);
}
// Если ресурс не был найден — ничего не делаем, возможно запрос поймает другой плагин
}
}
После этого страницы пагинации стали работать как нужно, но появилась новая проблема. Заходя на первую страницу раздела в блоке пагинации урлы формируются как полагается домен/категория/страница. Перейдя на вторую страницу на ней уже урлы в этом блоке начинают дублировать вложенность категории и получается домен/категория/категория\страница. Не могу найти в чем тут проблема, информации нет и сделал все по документации ничего не меняя.
2. Как на страницы 2+ добавлять в Title и Description ( — стр.2 или — страница 2) и каноникал саму на себя (страицы пагинации нужны в индексе), если это страница 2 то урл каноникал должен быть на страницу 2 а не страницу раздела?
Нашел информацию в документации к плагину с примером написанного плагина для формирования такого адреса. (Без этого плагина страницы пагинации 2+ выдают 404 ошибку) (в документации так и написано).
Добавил опцию &pageLinkScheme=`/[[+pageVarKey]]-[[+page]]` и создал плагин без изменений из документации.
<?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);
}
// Если ресурс не был найден — ничего не делаем, возможно запрос поймает другой плагин
}
}
После этого страницы пагинации стали работать как нужно, но появилась новая проблема. Заходя на первую страницу раздела в блоке пагинации урлы формируются как полагается домен/категория/страница. Перейдя на вторую страницу на ней уже урлы в этом блоке начинают дублировать вложенность категории и получается домен/категория/категория\страница. Не могу найти в чем тут проблема, информации нет и сделал все по документации ничего не меняя.
2. Как на страницы 2+ добавлять в Title и Description ( — стр.2 или — страница 2) и каноникал саму на себя (страицы пагинации нужны в индексе), если это страница 2 то урл каноникал должен быть на страницу 2 а не страницу раздела?
Как определить поле Babel где указывается ID связанного ресурса для использования в ImportX?
Здравствуйте. Для наполнения сайта используется плагин ImportX. Для мультиязычности Babel. За раз импортируется от 10 до 100+ страниц на каждую языковую версию (ру, en). Связывать каждый ресурс вручную очень затратно по времени учитывая объем наполненного в перспективе сайта в 10-20к+ страниц.
Столкнулся с проблемой поиска поля «Целевой ресурс» или поле которое можно было бы добавить в поля файла импорта и на стадии генерации страниц англ версии указать айдишники ру версии страниц и после создания англ версии страниц они уже были связаны с ру версией.
Шаблон файла генерации выглядит так
(==) разделитель.
Подскажите как мне обратиться к полю связки ID ресурсов и использовать его во время импорта страниц.
Столкнулся с проблемой поиска поля «Целевой ресурс» или поле которое можно было бы добавить в поля файла импорта и на стадии генерации страниц англ версии указать айдишники ру версии страниц и после создания англ версии страниц они уже были связаны с ру версией.
Шаблон файла генерации выглядит так
(==) разделитель.
Подскажите как мне обратиться к полю связки ID ресурсов и использовать его во время импорта страниц.