Aleksandr Huz

Aleksandr Huz

С нами с 02 августа 2014; Место в рейтинге пользователей: #20
Aleksandr Huz
20 ноября 2017, 11:42
0
И проблема в том, что в дополнении нет такого сниппета, который это может отслеживать.
Вообще-то есть. У сниппета Login есть параметры:
loginTpl — подключается чанк для неавторизованных
logoutTpl — для авторизованных
Aleksandr Huz
17 ноября 2017, 13:16
0
а тег base у вас так записан?:
<base href='[[++site_url]]'>
Aleksandr Huz
17 ноября 2017, 12:49
0
Конечный путь должен быть таким
/assets/img/name.jpg
Aleksandr Huz
30 октября 2017, 11:11
0
Попробуйте без кавычек:
&where=`{"Data.new":1}`
Aleksandr Huz
29 октября 2017, 17:25
0
Если известны id родителей, то можно так
&resources = `-4,-5,-6`
Aleksandr Huz
27 октября 2017, 00:15
+1
У вас ошибка в названии параметра.
Нужно вот так:
[[!BannerY? &position=`1`]]
Aleksandr Huz
24 октября 2017, 14:37
0
Спасибо, Николай.

Хотелось бы выводить так:
{4 | localizator : 'pagetitle'}

Написал модификатор для этого. Буду благодарен, если кто-то улучшит код.
$pdo = $modx->getService('pdoTools');

// localizator
$fenom->addModifier('localizator', function ($id, $field = null) use ($pdo, $modx) {
    $pdo->debugParserModifier($id, 'localizator');
    
    /** @var modResource $resource */
    if (empty($id)) {
        $resource = $modx->resource;
    } elseif (!is_numeric($id)) {
        $field = $id;
        $resource = $modx->resource;
    } elseif (!$resource = $pdo->getStore($id, 'resource')) {
        $resource = $modx->getObject('modResource', $id);
        $pdo->setStore($id, $resource, 'resource');
    }
    
    $key =  $modx->getOption('cultureKey');
    if( $modx->getOption('cultureKey') != 'ru' ) {
        $q = $modx->newQuery( "localizatorContent" );
        $q->where( array( "`resource_id` = '" . $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;
    }
    
    $output = '';
    if (!empty($resource)) {
        if (!empty($field)) {
            if (strtolower($field) == 'content') {
                $output = $resource->getContent();
            } else {
                $output = $resource->get($field);
                if (is_null($output)) {
                    $output = $resource->getTVValue(preg_replace('#^tv\.#i', '', $field));
                }
            }
        } else {
            $output = $resource->toArray();
        }
    }
    $pdo->debugParserModifier($id, 'localizator');
    return $output;
});
Aleksandr Huz
29 июля 2017, 11:13
0
Поменять местами аргументы и пусть конкретное правило для пакета всегда будет в приоритете.
Aleksandr Huz
28 июля 2017, 12:43
0
Ну а если можно обновлять все пакеты, а другие действия запретить, то закрыть доступ не вариант.

Решение:
Написать в admintools_package_actions
{All:{remove:"Удаление запрещено!"}}
— запрет для удаление для всех пакетов

а в файле assets/components/admintools/js/mgr/admintools.js заменить строчку
var packageOptions = adminToolsPackageActions[record.data.name] ?  adminToolsPackageActions[record.data.name] : false;
на
var packageOptions = adminToolsPackageActions['All'] || adminToolsPackageActions[record.data.name] || false;
Aleksandr Huz
27 июля 2017, 16:25
0
А запретить сразу для всех пакетов можно?
Aleksandr Huz
19 июля 2017, 15:09
+1
Я бы не стал из-за этого его хоронить.
Библиотеку можно, даже нужно подключать отдельно уже сжатую.
Aleksandr Huz
19 июля 2017, 12:43
0
MinifyX уже похоронили из-за зависимостей.
а когда были похороны MinifyX?
p.s. я его до сих пор использую.
Aleksandr Huz
29 июня 2017, 12:53
0
Добрый день!
Для блога http://pets-level-travel.info хочется поставить Redactor — это бы облегчило заполнения статей
Сейчас используется Content Editor Tools 0.7, но он не такой крутой как Redactor
Спасибо
Aleksandr Huz
19 июня 2017, 17:56
0
Как локализатор можно использовать, если у тебя для другого региона другая инфа, и она заполнена в migx и tv?
Aleksandr Huz
19 июня 2017, 17:13
0
Дмитрий,
ситуация такая, что есть 2 контекста для регионов.
site.ru
site.ru/region/
Переключение контекстов сделано по плагину Безумкина bezumkin.ru/sections/tips_and_tricks/2439/

Настройка локализации
Aleksandr Huz
18 июня 2017, 11:02
0
Владимир, добрый день!

Вызываю так:
&leftJoin = `{
    		"localizator" : {
    			"class" : "localizatorContent",
    			"alias" : "localizator",
    			"on" : "localizator.resource_id = modResource.id"
    		}
	    }`
	    &select = `{ "localizator" : "modResource.*, localizator.*, modResource.id" }`
        &where = `{ "localizator.key" : "[[++localizator_key]]"}`
Лог:
"0.0027568: pdoTools loaded
0.0000181: xPDO query object created
0.0001328: leftJoined localizatorContent as localizator
0.0000141: Added selection of localizatorContent: SQL_CALC_FOUND_ROWS modResource.*, localizator.*, modResource.id
0.0000219: Processed additional conditions
0.0002921: Added where condition: localizator.key=, modResource.parent:IN(0), OR:modResource.id:IN(0), modResource.published=1, modResource.hidemenu=0, modResource.deleted=0, modResource.context_key=web
0.0000482: Sorted by modResource.menuindex, ASC
0.0001478: SQL prepared "SELECT SQL_CALC_FOUND_ROWS modResource.*, localizator.*, modResource.id FROM `buffalo_modxsite_content` AS `modResource` LEFT JOIN `buffalo_modxlocalizator_content` `localizator` ON localizator.resource_id = modResource.id WHERE  ( `localizator`.`key` = '' AND  ( `modResource`.`parent` IN (0) OR `modResource`.`id` IN (0) )  AND `modResource`.`published` = 1 AND `modResource`.`hidemenu` = 0 AND `modResource`.`deleted` = 0 AND `modResource`.`context_key` = 'web' )  ORDER BY modResource.menuindex ASC "
0.0007360: SQL executed
0.0000601: Total rows: 0
0.0000081: Rows fetched
0.0000060: Returning raw data
0.0000021: Tree was built
0.0043030: Total time
6 291 456: Memory usage

localizator_key ничего не выводит, заменил на cultureKey, для других языков меню выводит, а вот для ru пусто.
Aleksandr Huz
18 июня 2017, 10:29
0
У меня только так сработало:
&leftJoin = `{
    		"localizator" : {
    			"class" : "localizatorContent",
    			"alias" : "localizator",
    			"on" : "localizator.resource_id = modResource.id"
    		}
	    }`
	    [[++cultureKey:ne=`ru`:then=`
		&select = `{ "localizator" : "modResource.*, localizator.*, modResource.id" }`
		&where = `{ "localizator.key" : "[[++cultureKey]]"}`
	   `]]
[[++localizator_key]] - ничего не выводит
Aleksandr Huz
17 июня 2017, 15:06
0
Пишу вот так, ничего не выводиться. Подскажи, пожалуйста, где ошибки?

&leftJoin = `{
        	"localizator" : {
        		"class" : "localizatorContent",
        		"alias" : "localizator",
        		"on" : "[[*localizator.resource_id]] = [[*id]]"
        	}
        }`
	&select = `{ "localizator" : "modResource.*, localizator.*, [[*id]]" }`
        &where = `{ "[[*localizator.key"]]: "' ~ [[++localizator_key]] ~ '"}`