Алексей
Anonymous
if (preg_match("#.*?(\d+)#", $_REQUEST[$req], $matches)) {
$id = $matches[1];
if($uri){
$c = $modx->newQuery(HotNews::class);
$c->where(['id' => $id]);
//$item = $modx->getIterator(HotNews::class, $c);
if ($c->prepare() && $c->stmt->execute()) {
$result = $c->stmt->fetchAll(PDO::FETCH_ASSOC);
//var_dump($result); die;
}
}
if ($uri) {
$_GET['id'] = $uri;
$modx->sendForward($id);
}
}
Это в плагине, не пойму, правильно передаю параметр в сниппет?
Anonymous
Там где $uri ошибка, это я сейчас менял для ясности, там конечно $id должно стоять.
Anonymous
И с таким в общем кодом у меня сейчас по урлу детальной записи сообщение "Site temporarily unavailable."
Anonymous
Список новостей работает.
Артур
Anonymous
Anonymous
*Сначала проверяю существование записи в БД, если да, то переход.
Артур
Я не понимаю как связаны страницы из пагинации и ресурсы на сайте? Грубо говоря, ты разбил список новостей на страницы и как третья страница в этом списке связана с ресурсом у которого id=3?
Алексей
вы номер страницы с Id Ресурса не путаете?
Anonymous
Страницы из пагинации /news/page-n/
Детальная страница /news/12345/
Могу я передать данные 12345 не вызывая 404 ошибку в мой сниппет, или хотя бы просто продолжить обработку сайта?
Алексей
Артур
Алексей
Артур
Алексей
Anonymous
Anonymous
Артур
Anonymous
Надо перекурить...
Алексей
удобнее /news/12412
explode проще делать.
Anonymous
Алексей
делайте как вам понятнее.
Anonymous
Возник вопрос по теме постраничной навигации.
Вывод: [[pdoPage? &element=`news` &limit=`10` &cache=`1` &cacheTime=`3600` &pageLinkScheme=`/[[+pageVarKey]][[+page]]/` &pageLimit=`9`]]
Сначала идёт так: /news/page2/
Потом начинают пейджи дублироваться в ссылке: /news/page2/page2/ и подобное. Почему?
Dan
Anonymous
Алексей
Алексей
ааа, значит по другому вопрос:
/[[+pageVarKey]]-[[+page]] - если так написать работает?
Anonymous
Алексей
Evgeniy
/news/page3//page5
А pdoPage у вас лежит в нужном контейнере? Там div с id pdopage
Anonymous
Anonymous
Evgeniy
слеш в конце уберите
Evgeniy
/[[+pageVarKey]][[+page]]/
Anonymous
Anonymous
Есть мысль, что в плагине переменная pageVarKey странно отрабатывает.
Evgeniy
Его нет уже.
ну, я точно знаю, что слеш в конце дает такой результат)
видимо его дает что-то еще
мб кэш почистить?
Anonymous
Алексей
Алексей
если да, то явно что-то не верно формирует ссылки
Anonymous
Evgeniy
если ссылка вида news/page-2/
то при переходе на следующую будет двойной слеш
у вас нет редиректа случаем на / в конце?
Алексей
Anonymous
Алексей
и?
Алексей
что формирует?
Evgeniy
Пробовал.
покажите еще раз код вызова pdopage (побольше инфы сверху и снизу)
и плагин для чпу
Anonymous
Anonymous
покажите еще раз код вызова pdopage (побольше инфы сверху и снизу)
и плагин для чпу
<div id="pdopage">
[[!+page.nav]]
<div class="site-content__content__news_item">
[[!pdoPage? &parents=`0` &element=`news` &limit=`10` &cache=`1` &cacheTime=`3600` &pageLinkScheme=`/[[+pageVarKey]][[+page]]` &pageLimit=`9`]]
</div>
[[!+page.nav]]
</div>
Anonymous
$req = $modx->getOption('request_param_alias');
$pageVarKey = 'page';
$idDetail = 0;
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) {
$_GET[$pageVarKey] = $_REQUEST[$pageVarKey] = $matches[2];
var_dump($_REQUEST[$req]);
$modx->sendForward($id);
}
}
Anonymous
Anonymous
Но, минус мне не нужен, именно pageN надо, индексированные урлы.
Алексей
Evgeniy
уберите весь кеш из вызова еще, на всякий)
Алексей
Anonymous
Evgeniy
Никаких изменений.
ну.. пределагаю чуть длиннее путь
почистите папку кеш прямо на сервере
уберите pageLinkScheme. Работает нормально?
удалить плагин, добавьте &pageLinkScheme=/[[+pageVarKey]]-[[+page]]
всё также?
Anonymous
Решено:
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, '/'));
}
// переопределяю урл так
$_REQUEST[$req] = str_replace('/', '', $uri);
if ($id) {
$_GET[$pageVarKey] = $_REQUEST[$pageVarKey] = $matches[2];
$modx->sendForward($id);
}
}
Anonymous
ИМХО костыль-костылище, но работает.
Evgeniy
ну т.е. редирект на / в конце
и вы его просто убираете тут
Sergey
Evgeniy
может можно было &pageLinkScheme=/[[+pageVarKey]]-[[+page]]
тут слэш слева убрать? и достаточно
Anonymous
[[!pdoPage? &parents=`0` &element=`hotnews` &limit=`10` &cache=`1` &cacheTime=`3600` &pageLinkScheme=`/[[+pageVarKey]][[+page]]` &pageLimit=`9`]]
Вызов такой, без слэша на конце.
Evgeniy
Evgeniy
мне ради интереса узнать)
Anonymous
Pavel
Подскажите плиз как ужать изображение перед загрузкой через formit? Изображение загружаю через хук
Gaius Cassius