Дмитрий

Дмитрий

С нами с 05 ноября 2018; Место в рейтинге пользователей: #363
Дмитрий
17 декабря 2018, 03:47
0
Да, но при такой реализации следующие мета-теги не регистрируются в head:
<link rel="prev" href="https://mysite.ru/category/"/>
<link rel="next" href="https://mysite.ru/category/page/3/"/>
Дмитрий
17 декабря 2018, 03:28
0
Максим Кузнецов
06 января 2017, 15:57

Упс) Извиняюсь — для себя я реализовал теги в виде site.ru/tag/тег/ через кастомную маршрутизацию, поэтому и такая ссылка.
Можно поподробнее как сделать, чтобы URL облака тегов был site.ru/tags/, а ресурсы с определенным тегом выводились бы по URL site.ru/tags/определенный+тег/

Заранее, благодарю!
Дмитрий
17 декабря 2018, 01:47
0
Этот вариант отключает, например, если находишься на второй странице отключаются мета теги:
<link rel="prev" href="https://mysite.ru/category/"/>
<link rel="next" href="https://mysite.ru/category/page/3/"/>
И

<link rel="canonical" href="[[~[[*id]]? &scheme=`full`]]" />
будет висеть на каждой странице шаблона, даже там, где нет пагинации.
Дмитрий
12 декабря 2018, 02:19
0
Да, pdoTools установлен, Tickets — установил перед использованием инструкции.
Вроде должно выводить, а не выводит.
Дмитрий
12 декабря 2018, 02:07
0
Приветствую.
MODX Revolution 2.7.0-pl

Что-то ни первый вариант, ни второй у меня не сработал. Делал все по инструкции.

1. Создал ресурс с типом содержимого rss, пустым шаблоном и заморозил ему uri — rss, а также включил «Использовать текущий псевдоним в пути псевдонимов».

2. В поле «Содержимое» вставил код:
<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom">
	<channel>
		<title>[[*pagetitle]] / [[++site_name]]</title>
		<link>[[~[[*id]]?scheme=`full`]]</link>
		<description>[[*description:cdata]]</description>
		<language>en</language>
		<copyright></copyright>
		<ttl>120</ttl>
		<atom:link href="[[~[[*id]]?scheme=`full`]]" rel="self" type="application/rss+xml" />
		[[!pdoResources?
			&tpl=`tpl.Tickets.rss.row`
			&parents=`7`
			&depth=`1`
			&limit=`10`
			&showHidden=`1`
			&sortby=`createdon`
			&where=`{"class_key":"Ticket"}`
			&useWeblinkUrl=`1`
			&scheme=`full`
		]]
	</channel>
</rss>
Вместо &parents=`15` прописывал свой id 7, пробовал 0 и др. id ресурсов-контейнеров.

3. Создал чанк tpl.Tickets.rss.row с содержимым:
<item>
	<title>[[+pagetitle]]</title>
	<link>[[+link]]</link>
	<description>[[+introtext:absURL:cdata]]</description>
	<pubDate>[[+publishedon:date=`%a, %d %b %Y %H:%M:%S %z`]]</pubDate>
	<guid>[[+link]]</guid>
</item>

4. Создал сниппет absUrl с содержимым:
<?php
if (empty($input)) {return false;}
$url = $modx->getOption('site_url');

preg_match_all('/(?:href|src)=[\'|"](.*?)[\'|"]/s', $input, $matches);
if (!empty($matches[1])) {
	foreach ($matches[1] as $v) {
		if (strpos($v, '://') === false) {
			$input = str_replace($v, $url . ltrim($v, '/'), $input);
		}
	}
}
return $input;

5. открываю ресурс mysite/rss и мне из динамического содержимого выводит только лишь title, link, description и atom:link.

Вот исходный код страницы, но это уже дает второй вариант (данной инструкции), который исходным кодом страницы незначительно отличается от первого:
<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom">
	<channel>
		<title>Все / Название сайта</title>
		<link>https://sitename.ru/rss</link>
		<description><![CDATA[Мой rss канал]]></description>
		<language>en</language>
		<copyright></copyright>
		<ttl>120</ttl>
		<atom:link href="https://sitename.ru/rss" rel="self" type="application/rss+xml" />
		
	</channel>
</rss>

Не пойму, почему не выводит остальное? В чем может быть причина?

P/S: В конце первого варианта написано:
Вместо id 10 укажите свой id с RSS страницей.
Однако в примере id 10 нигде нет. Может я что-то упустил?
Дмитрий
11 ноября 2018, 05:04
0
Благодарю, все получилось.
Дмитрий
05 ноября 2018, 21:14
0
Прошу не кидать в меня чем попало, я новичок в MODX
Может реализация для знающих понятна, но могли бы Вы по полочкам расписать реализацию для самых новичков.

Например, у меня есть снипет «lcfirst»:
<?php
$str = $input;
echo mb_lcfirst($str); // какой-То Текст

function mb_lcfirst($str) {
    return mb_strtolower(mb_substr($str, 0, 1)) . mb_substr($str, 1);
}
Я вызвать его в чанке вот так:
{$variable | lcfirst}
Как переделать, где и какие создавать файлы и тд.? В общем прошу все подробнее расписать на моем примере.

Заранее, благодарю!