Владимир

Владимир

С нами с 28 декабря 2012; Место в рейтинге пользователей: #90
Василий Наумкин
11 октября 2015, 12:15
2
+1
В методе getChunk его просто негде указывать, но можно написать свой сниппет, который будет запускать pdoTools, менять в нём tplPath и возвращать $pdoTools->getChunk(имячанка);

Дальше всё примерно так же:
{$chunk = $_modx->runSnippet('getChunk', [
	'chunk' => 'mychunk.tpl',
	'tplPath' => '/my/path/'
])}
Максим Кузнецов
07 октября 2015, 02:37
1
+1
Если честно, не уверен..)

Вы можете написать простенький сниппет проверки, который заодно и решит проблему с постоянной обработкой AjaxForm вне зависимости от значения price:

[[! название_сниппета? &check=`[[*price]]` &acceptValue=`0` &tpl=`название_чанка_который_нужно_отобразить`]]

Код:
<?php
	if ($check == $acceptValue) {
		return $modx->getChunk($tpl);
	}
	else {
		return;
	}
Василий Наумкин
05 октября 2015, 03:40
1
+1
Подумать совсем лень?
[[!pdoPage?
	&parents=`0`
	&sortby=`[[!#get.sort:default=`id`]]`
	&sortdir=`[[!#get.dir:default=`asc`]]`
	&showLog=`1`
]]
Владимир
02 октября 2015, 19:02
1
+2
Можно попробовать сделать следующим образом. Сначала выбираем все даты публикаций (дополнительные параметры, вроде родителей и лимита настраивайте под себя):
[[!pdoResources?
  &parents=`0`
  &sortby=`publishedon`
  &sortdir=`DESC`
  &limit=`0`
  &select=`publishedon as period`
  &groupby=`DATE(FROM_UNIXTIME(publishedon))`
  &tpl=`tmp.NewsFeed`
]]

В шаблоне tpl.NewsFeed снова вызываем pdoResources и выбираем все ресурсы, опубликованные в определенный день:
<h2>[[+period:date=`%d-%m-%Y`]]</h2>
[[!timePeriod? &period=`[[+period]]`]]
[[pdoResources?
  &parents=`0`
  &sortby=`publishedon`
  &sortdir=`DESC`
  &limit=`0`
  &where=`["publishedon BETWEEN [[+tp.start]] AND [[+tp.end]]"]`
  &tpl=`@INLINE <h3>[[+pagetitle]]</h3><p>[[+introtext]]</p>`
]]

Т.к. дата публикации хранится вместе со временем в формате UNIXTIME, то нужен сниппет (у меня — timePeriod), который возвращает время начала суток и конца суток для заданного дня в UNIXTIME (и в этом промежутке мы потом и выбираем ресурсы):
<?php
$start = strftime("%d.%m.%Y",$period) . " 00:00:00";
$end = strftime("%d.%m.%Y",$period) . " 23:59:59";

$modx->toPlaceholders(array(
  'start' => strtotime($start),
  'end' => strtotime($end),
),'tp');
Возможно, фильтр по дате можно встроить в where без дополнительных сниппетов, но у меня не получилось.
Василий Наумкин
29 сентября 2015, 20:08
1
0
Выставленные плейсхолдеры нужно получить:
{var $placeholders = $_modx->getPlaceholders()}
{$placeholders['my.articles']}
Руслан Кундиус
27 сентября 2015, 23:32
1
+1
И еще один вопрос. Каким образом можно заменить, например, такую конструкцию
[[+content:ellipsis=`200`]] в рамках Fenom?
{$content|truncate:200}
github.com/fenom-template/fenom/blob/master/docs/ru/mods/truncate.md
Алексей
19 сентября 2015, 16:56
1
+3
я на сколько понял, это лечится открыванием в новом окне по ссылке
<a href="//domain.com/send/site1.com" target="_blank"></a>
своей странички
//domain.com/send/site1.com
, которая уже сама переправляет редиректом 301 на нужный адрес
http://site1.com
Вроде бы в контакте так и сделано.
Илья Уткин
18 сентября 2015, 10:15
1
+2
Вот такой плагин на OnHandleRequest:
<?php
if ($modx->context->key == 'mgr') return;
if (substr($_SERVER['REQUEST_URI'],-1) == '?') {
    $modx->sendRedirect(substr($_SERVER['REQUEST_URI'],0,-1));
}
return;
Павел Романов
18 сентября 2015, 09:29
1
+3
Сами теги через TV с типом «Авто-метка», их вывод через tagLister.

Вывод документов по тегу либо через getResourcesTag, либо (если стоит pdoTools с новым парсером) через pdoResources с параметром:
&tvFilters=`tags==%[[!#GET.tag]]%`
где tags — имя TV с тегами, а tag — переменная в GET-запросе.

Если новый парсер не включен, то делаете сниппет getTag:
<?php
return $_GET['tag'];
и тогда так:
&tvFilters=`tags==%[[!getTag]]%`