Наброски по UMI CMS (20.11.2014)
XSLT-шаблоны:

Верстка должна быть XML-валидной!
Дебаг включается в config.ini:
[debug]
enabled = "1"
show-backtrace = "1"

Вывести контент в базовом шаблоне (<xsl:template match="/">):
<xsl:apply-templates select="result" />

Шаблон вывода этого контента, записывается или подключается после закрытия базового шаблона:

<xsl:template match="result[@module = 'content'][@method = 'content']">
  <h1>
    <xsl:value-of select=".//property[@name = 'h1']/value" />
  </h1>
  <div id="text">
    <xsl:value-of select=".//property[@name = 'content']/value" disable-output-escaping="yes" />
  </div>
</xsl:template>

Вызов макроса:

<xsl:value-of select="document('udata://custom/getChildren/')" disable-output-escaping="yes" />

макросы предлагается записывать в /classes/modules/custom.php

Список ссылок на дочерние страницы:

public function getChildren(){
  $current_page_id = cmsController::getInstance()->getCurrentElementId();
  $hierarchy = umiHierarchy::getInstance();
  $childs = $hierarchy->getChilds($current_page_id);
  $res = "";
  foreach ($childs as $child_id=>$value) {
    $page = $hierarchy->getElement($child_id);
    $title = $page->name;
    $path = $hierarchy->getPathById($child_id);
    $res.= "<li class='child'><a href='".$path."'>".$title."</a></li>";
  }
  if($res!="") $res = "<ul class='child_list'>".$res."</ul>";
  return $res;  
}

Пример по XSLT-макросам
PHP, CMS
Отключаем снятие ресурсов с публикации в modx revo (11.11.2014)
По умолчанию в modx при достижении даты снятия с публикации у ресурса помимо галки "опубликованности" (published) обнуляются также дата публикации (publishedon), дата автоматической публикации (pub_date) и дата снятия с публикации (unpub_date), что не очень удобно, т.к. полезно знать даты, когда ресурс был опубликован, даже когда он более не актуален. Примером может быть размещенный на сайте календарь - нам могут быть интересны уже прошедшие события, а плодить новые поля для указания дат, на мой взгляд, излишне.
Проверка наступления unpub_date производится в двух местах:
при ручном сохранении материала - в файле /core/model/modx/processors/resource/update.class.php, комментируем следующие строки:
public function setUnPublishDate() {
  ...
  /*$this->setProperty('published',0);
  $this->setProperty('unpub_date',0);
  $this->setProperty('pub_date',0);
  $this->setProperty('publishedon',0);*/
  ...
а также в менеджере кэша: /core/model/modx/modcachemanager.class.php:
public function autoPublish(array $options = array()) {
  ...
  //$publishingResults['unpublished']= $this->modx->exec("UPDATE $tblResource SET published=0, publishedon=0, pub_date=0, unpub_date=0 WHERE unpub_date IS NOT NULL AND unpub_date < {$timeNow} AND unpub_date > 0");
  ...
Modx, CMS, PHP
JavaScript (13)
PHP (11)
Brainfuck (8)
adm (8)
Joomla (4)
Canvas (3)
answers (2)
API (2)
CMS (2)
Modx (2)
jQuery (1)
Ajax (1)
SQL (1)
Shell (1)
batch (1)
10-6