Борис И

Борис И

С нами с 20 апреля 2014; Место в рейтинге пользователей: #71
Андрей
13 января 2015, 18:34
3
+1
из моих Яндекс Новостей (в чанке rss):
<pubDate>[[!ShowDate_en? &val=`[[+publishedon]]`]] +0600</pubDate>
сниппет ShowDate_en:
<?php
setlocale(LC_ALL, 'en_US.UTF-8');
if ( $val == '' ) $val=time();
if ($format == '' ) $format = "%a, %d %b %Y %H:%M:%S";
return strftime($format, $val);
Максим Кузнецов
05 января 2015, 10:06
4
+1
Если честно, я и прелести tagLister'a не оценил — он уж на случай крайней лени, как по мне.

Вот как реализованы теги у меня (может, кому пригодится):

1. Дополнительное поле «tags»
Параметры ввода: Авто-метка (можно и простой строкой, по желанию)

2. Сниппет «tags», делающий теги ссылками (для последующего поиска по ним)
<?php
	if ($input == ''){
		return;
	}
	$tags = explode(',',$input);
	foreach ($tags as $key => $value){
		$output[] = '<a href="'.$modx->makeurl($tagsPage, '').'/'.$value.'" itemprop="keywords">'.$value.'</a>'; 
	} 
	return implode(', ',$output);

3. Вывод в чанке
[[*tags:notempty=`
<div class="tagList" itemscope itemtype="http://schema.org/CreativeWork">
	[[!tags? &tagsPage=`91` &input=`[[*tags]]`]]
</div>
`]]
— где &tagsPage — параметр, определяющий айди страницы поиска по тегам для формирования ссылки

Ну и дополнительно, для «полного спектра услуг»:

4. Создаем страницу "Поиск по тегам" с псевдонимом tag, где будем выводить все теги, удовлетворяющие запросу:
[[!pdoPage &parents=`0` &includeContent=`1` &where=`{"tags:LIKE":"%[[!GET? &get=`tag`]]%"}` &includeTVs=`tags` &limit=`10` &sortby=`createdon` &sortdir=`DESC` &depth=`1` &tpl=`tag.Item`]]
— где сниппет GET перехватывает выбранный тег в адресной строке.

GET
<?php
	return $_GET[$get];

5. Дописываем .htaccess, чтобы адресная строка поиска приняла вид site.ru/tag/Название_тега
RewriteRule ^tag/([^/]+)$ /tag?tag=$1 [L]
Николай
31 октября 2014, 09:54
2
+1
Я понимаю, сниппет функциональнее, но там где нужно просто проверить группу пользователя будет проще использовать
[[+modx.user.id:memberof=`Administrator`:then=`[[$chunk-or-code]]`]]
Василий Наумкин
06 сентября 2014, 06:47
1
0
несколько станций метро через запятую таким же способом то все ломается
Потому что станции метро — текст и через запятую они должны быть вместе с ковычками.

Вместо
текст, текст, текст
должно быть
"текст","текст","текст"
Числа в ковычки помещать не нужно, поэтому цена работает. Если включить showLog=`1`, то ты увидишь ошибку выполнения SQL запроса.
Володя
31 июля 2014, 13:12
1
+1
просто замените
{%hp-[[+id]]%}
в шаблоне на
[[!+properties.hitspage.hitts]]
и ничего не нужно менять…
wld
wld
07 мая 2014, 20:06
5
0
или же не указываем
<base href="[[++base_url]]" />
а в Настройках системы — core — Сайт
Схема URL (link_tag_scheme) установить значение abs
Для справки:
-1: (default value) URL is relative to site_url
0: see http
1: see https
full: URL is absolute, prepended with site_url from config
abs: URL is absolute, prepended with base_url from config
http: URL is absolute, forced to http scheme
https: URL is absolute, forced to https scheme

И при вызове pdoMenu или подобных снипетов указывать:
&scheme=`abs`
По идее, в подобных снипетах можно было бы дергать эту схему урл по дефолту из link_tag_scheme, но почему то так не все так делают(

Отличия:
В первом случае, как указал Василий, при создании якорей, необходимо указывать ссылку на текущую страницу:
<a href="[[~id]]#test">Ссылка</a>
В моем случае, достаточно указать только якорь:
<a href="#test">Ссылка</a>