Console-2.1.0-beta
В продолжение этой и этой тем, публикую свежую версию консоли с пулл-реквестами от Сергея Шлокова, за которые ему отдельное спасибо.
Сохранение/чтение в/из сниппета/файла перенесено. Плюс к этом сделал кодрефакторинг. Во-первых, теперь все более секурно, так как расширяет базовый процессор, в котором прописана проверка прав. Остальные процессоры расширяют его, так что без прав их вызвать нельзя. Кстати, вот в этом есть отдельное замечание к MODX-процессорам. В modObjectProcessor прописана проверка прав на основе переменной public $permission = '';. А вот сам базовый modProcessor по умолчанию возвращает true в проверке прав. То есть нельзя просто так в процессоры, расширяющие напрямую modProcessor, прописать $permission = 'some_permission'; и уповать на это. Потому и вынесена эта проверка в базовый console-процессор, который расширяют остальные процессоры.
Во-вторых, я тут подумал, что хорошо бы сразу при установке иметь некий набор готовых скриптов. К примеру, лично я часто пользуюсь скриптом вызова процессоров. Для этого я создал отдельную папку global, в которую можно добавлять скрипты, устанавливаемые вместе с компонентом. Для этого же и переписал код так, чтобы он умел читать файлы во вложенных папках и сохранять файлы не только в корневую папку приложения.
Здесь следует отметить, что не стоит туда сохранять свои файлы, они просто так не попадут оттуда в ядро, так что свои файлы можно сохранять хоть в корень, хоть по желаемым новым папкам. А вот если у вас будут скрипты, которые вы считаете, могут пригодиться многим — шлите пулл-реквесты. Свои скрипты лучше размещать примерно так: files/global/your_site/script.
А еще прозвучала идея добавить передачу параметров в вызываемый сниппет. Чессказать не знаю. Мы сниппетами давно не пользуемся, потому в ядро не вижу смысла это пулять. Но желающие могут написать готовый скрипт типа такого:
Сохранение/чтение в/из сниппета/файла перенесено. Плюс к этом сделал кодрефакторинг. Во-первых, теперь все более секурно, так как расширяет базовый процессор, в котором прописана проверка прав. Остальные процессоры расширяют его, так что без прав их вызвать нельзя. Кстати, вот в этом есть отдельное замечание к MODX-процессорам. В modObjectProcessor прописана проверка прав на основе переменной public $permission = '';. А вот сам базовый modProcessor по умолчанию возвращает true в проверке прав. То есть нельзя просто так в процессоры, расширяющие напрямую modProcessor, прописать $permission = 'some_permission'; и уповать на это. Потому и вынесена эта проверка в базовый console-процессор, который расширяют остальные процессоры.
Во-вторых, я тут подумал, что хорошо бы сразу при установке иметь некий набор готовых скриптов. К примеру, лично я часто пользуюсь скриптом вызова процессоров. Для этого я создал отдельную папку global, в которую можно добавлять скрипты, устанавливаемые вместе с компонентом. Для этого же и переписал код так, чтобы он умел читать файлы во вложенных папках и сохранять файлы не только в корневую папку приложения.
Здесь следует отметить, что не стоит туда сохранять свои файлы, они просто так не попадут оттуда в ядро, так что свои файлы можно сохранять хоть в корень, хоть по желаемым новым папкам. А вот если у вас будут скрипты, которые вы считаете, могут пригодиться многим — шлите пулл-реквесты. Свои скрипты лучше размещать примерно так: files/global/your_site/script.
А еще прозвучала идея добавить передачу параметров в вызываемый сниппет. Чессказать не знаю. Мы сниппетами давно не пользуемся, потому в ядро не вижу смысла это пулять. Но желающие могут написать готовый скрипт типа такого:
$params = 'params1=`sdfsd`¶ms2=`ergergre`';
if($params && !is_array($params)){
$modx->getParser();
$params= $modx->parser->parseProperties($params);
}
print $modx->runSnippet($snippetName, $params);
Комментарии: 4
По-моему, неплохо получилось.
Еще предложу небольшое косметическое изменение — перенести html-блок «Консоль для выполнения php-кода» над редактором в заголовок вместо Console. А сам редактор увеличить.
Еще предложу небольшое косметическое изменение — перенести html-блок «Консоль для выполнения php-кода» над редактором в заголовок вместо Console. А сам редактор увеличить.
Ну, шлите пуллреквесты, там посмотрим.
В modObjectProcessor прописана проверка прав на основе переменной public $permission = '';. А вот сам базовый modProcessor по умолчанию возвращает true в проверке прав. То есть нельзя просто так в процессоры, расширяющие напрямую modProcessor, прописать $permission = 'some_permission'; и уповать на это.Поэтому я всегда расширяю modObjectProcessor. Он и права проверяет и лексиконы загружает.
Как вариант, да. Но вообще, думаю надо в ядро слать пуллреквест с переносом прав в сам modProcessor. Это же очевидно, что проверка должна быть изначально.
Авторизуйтесь или зарегистрируйтесь, чтобы оставлять комментарии.