Сергей Шлоков

Сергей Шлоков

С нами с 31 января 2013; Место в рейтинге пользователей: #5
03 сентября 2015, 13:51
0
может я хочу поредактировать статический сниппет какого-нибудь стороннего модуля
Я такое не закладывал. Я-то думал чтобы сохранять файлы как временные.
Вот так безопасно
Теперь нужно добавлять это разрешение 'console.save_file' в базу при обновлении компонента.
03 сентября 2015, 13:39
0
Точно. Добавил basename().
Теперь файл сохраняется только в /core/components/console/files/, не выше и не ниже.
Так безопасно?
П.С. Учиться и учиться ещё.
03 сентября 2015, 12:15
0
Я решил, что если на выполнение кода права проверяются, то этого достаточно. А так как файлы сохраняются в директорию core и доступ снаружи туда закрыт, то посчитал, что это безопасно.
А по источникам файлов… Не все сразу. :)
02 сентября 2015, 10:02
+1
Поэтому он и закомментирован. При разработке и тестировании пакета периодически приходится удалять вручную таблицы. Для чистоты эксперимента, так сказать.
А разработчик должен понимать всю ответственность такого решения.
02 сентября 2015, 09:55
+1
Позволил себе добавить это решение на Github.
Теперь в большинстве случаев вообще не нужно лезть в этот ресолвер. Спасибо Михаилу.
П.С. Также я добавил код удаления таблиц при деинсталяции. Он закомментирован. Если вдруг кому-то нужно будет удалять таблицы, нужно просто раскомментировать.
02 сентября 2015, 07:23
0
Наверно в наборе параметров для тикетов.
01 сентября 2015, 21:21
+2
Василий уехал в отпуск. Пусть человек отдохнет.
П.С. А ключик от modExtra он мне оставил.
01 сентября 2015, 21:18
+2
А вот так еще и индексы добавляем автоматом, чтоб уж совсем голова не болела.
$schemaFile = MODX_CORE_PATH . 'components/modextra/model/schema/modextra.mysql.schema.xml';
if (is_file($schemaFile)) {
	$schema = new SimpleXMLElement($schemaFile, 0, true);
	if (isset($schema->object)) {
		foreach ($schema->object as $object) {
			$objName = (string)$object['class'];
			$objects[] = $objName;
			// Indexes
			foreach ($object->index as $index) {
				$indexes[$objName][] = (string) $index['name'];
			}
		}
	}
	unset($schema);
} else {
	$modx->log(modX::LOG_LEVEL_ERROR, 'Could not get classes from schema file.');
}
//Работаем с таблицами
foreach ($objects as $tmp) {
   $manager->createObjectContainer($tmp);
   ...
}
//Работаем с индексами
foreach ($ClassIndexes as $class=>$indexes) {
	foreach($indexes as $index) {
		$manager->addIndex($class,$index);
	}
}
01 сентября 2015, 20:34
+2
Ну раз уж пошла такая пьянка, то я бы тогда добавил еще и это
$schemaFile = MODX_CORE_PATH . 'components/modextra/model/schema/modextra.mysql.schema.xml';
$objects = array();
if (is_file($schemaFile)) {
	$schema = new SimpleXMLElement($schemaFile, 0, true);
	if (isset($schema->object)) {
		foreach ($schema->object as $object) {
			$objects[] = (string)$object['class'];
		}
	}
	unset($schema);
} else {
	$modx->log(modX::LOG_LEVEL_ERROR, 'Could not get classes from schema file.');
}
Тады вааще все автоматом работать будет. А то я постоянно забываю добавлять классы.
01 сентября 2015, 18:00
0
Если Николай посчитает нужным такой функционал и его все устроит, я готов отправить pullrequest.
01 сентября 2015, 17:33
0
Не плохая идея.
01 сентября 2015, 11:55
+3
Ужас ужас.
И тут и на modxclub.ru и на modx.com и на хабре полно информации о работе со сторонними пользовательскими таблицами. Для начала нужно освоить это. Дальше таких вопросов уже не будет.
Например, вот.
01 сентября 2015, 11:41
0
А вы авторизуетесь случайно не в админке? Tickets проверяет пользователя в текущем контексте.
01 сентября 2015, 11:31
0
Причем уже куча комментов почти месячной давности :)
01 сентября 2015, 08:15
0
Мне кажется этот вопрос лучше задать автору modDevTools.
01 сентября 2015, 08:10
+1
Ну если файлы легкие, то легко. А если тяжелые, то тяжело. :)
31 августа 2015, 19:16
0
Я так понимаю, человек хочет сделать что-то типа сервиса, который выдает информацию по запросу с другого сайта.
31 августа 2015, 18:12
+1
Честно говоря не понимаю, чем лучше. Я, например, работая с несколькими объектами, сохраняю файлы для каждого (правильные addPackage и т.п. ) Потом открываю нужный и работаю. Легко и быстро. И доработка простейшая — поправил один файл и создал 3 процессора.
Так что, лично я не вижу никаких преимуществ табличного варианта.
31 августа 2015, 16:15
0
Да пожалуйста! :)
30 августа 2015, 13:05
0
Когда в магазине добавят, тогда и появится такая возможность. Обычно это занимает несколько дней.