Николай Загумённов

Николай Загумённов

Был в сети 19 июня 2026, 19:34
Заказы не принимаю
Хочу поделиться сниппетом, аналог pdoField, так как я часто пользуюсь pdoField.

Сниппет getLocalizatorField

<?php
$sp = &$scriptProperties;

$resource_id = $modx->getOption('resource_id', $sp, $modx->resource->id);
$field = $modx->getOption('field', $sp, 'pagetitle');
$key = $modx->getOption('key', $sp, $modx->getOption('cultureKey'));

$q = $modx->newQuery( "localizatorContent" );
$q->where( array( "`resource_id` = '" . $resource_id . "'", "`key` = '" . $key . "'" ) );
$q->select( array( $field ) );
$s = $q->prepare();  // print $q->toSQL(); die;
$s->execute();
$array = $s->fetch(PDO::FETCH_ASSOC);
$field_value = $array[$field];

return $field_value;
Вызов:

{'getLocalizatorField' | snippet : [ 
       'resource_id' => 20,
       'field' => 'content'
 ]}
Многие штуки которые я часто использую там есть из коробки.
Системные методы вынесены в отдельный класс tools.
Окна create и update в админке сделаны так, что они в коде extjs все поля прописываются один раз, а не 2.
… много всяких мелочей, все и не упомнишь =)