Как отключить существующий блок в конфиге шаблона/плагина? [решено]

Подскажите, каким образом можно отключать существующие блоки (прописанные в конфиге движка) в конфиге шаблона или плагина?

Периодически возникает вопрос, а каждый раз расписывать «удалите то или это...» надоедает. Плюс, сейчас и в плагине возникла необходимость в этом.

Работа в различных окружениях (devel, production и т.п.)

В новой версии LS мы изменили механизм работы определения окружения и загрузки соответствующих конфигов (config.local.php и config.stable.php). Если раньше эти конфиги всегда подгружались(просто перезаписывая данные), то сейчас подключается только нужный конфиг.

Логику работы мы взяли из популярного фреймворка Laravel. Теперь у нас есть в корне сайта каталог /bootstrap/ с файлом start.php. Именно в этом файле задается механизм определения текущего окружения:
$sEnv=Engine::DetectEnvironment(array(
                                 'production' => array('your-machine-name'),
                             ));

В метод DetectEnvironment передается список окружений (ключи массива) и в качестве значений список хост-неймов серверов. Текущий хост-нейм можно посмотреть в nix командой hostname. Как альтернатива в метод DetectEnvironment вместо списка можно передать функцию и определить в ней свою логику:
$sEnv=Engine::DetectEnvironment(function(){
    // здесь ваша логика
    return 'devel';
});

В зависимости от текущего окружения будет загружен необходимый конфиг (если он существует). Например, для окружения «production» загрузится /application/config/config.production.php Этот же механизм работает и для плагинов! Будет подгружен конфиг /application/config/plugins/[plugin_name]/config.production.php

По умолчанию (если не удалось определить окружение) подключается окружение «local». Дополнительно зарезервировано окружение «testing», которое используется для юнит-тестов. Активируется оно довольно просто — достаточно перед подключением файла /bootstrap/start.php создать переменную $bUseEnvironmentTesting=true;.

Как получить в шаблоне значение из конфига плагина?

Пишу так:
{$smarty.config.plugin.myPlugin.profilename.charlimit.max}


В конфиге это выглядит так:
$config['profilename']['charlimit']['max'] = 19;


Но ничего не выводится. Почему?

Можно ли изменять значения конфига другими значениями из него же? [решено]

Решил немного изменить плагин «Main Page» и возник один интересный вопрос. В конфиге плагина есть следующие строчки:

Config::Set('router.page.main', 'PluginMainpage_ActionMainpage');
Config::Set('router.config.action_default', 'main');

Можно ли как-то эти строки переделать, чтобы вместо main подставлялись другие значения из конфига? Т.е. я хочу добавить возможность пользователям менять адрес страницы на свой. Можно, конечно, добавить описание к каждой строке, что необходимо сделать, но так красивее будет по-моему, если это возможно.

И попутно вопрос, который и раньше интересовал: можно ли как-то условия в конфиге прописывать? Типа: если значение в конфиге такое, используем одни настройки, иначе — другие?

Авто очистка кэша CSS и JS файлов

Как же задолбался я удалять эти два файла на момент создания собственного дизайна. Только изменив одну цифру для какого-нибудь отступа нужно лезть в этот кэш и «чистить» его. Наконец я не выдержал…

Открываем главный конфиг сайта /config/config.php строка 123 приблизительно так там
Читать дальше →

Интеграция плагинов с админ-панелью LS

Одна из главных фишек новой админки, это удобная и проста интеграция с другими плагинами.
Теперь плагины могут встраивать свой интерфейс прямо внутрь админки.

Рассмотрим основные технические моменты. Есть два варианта интеграции:
  1. Визуальное управление конфигом плагина
  2. Встраивание функционала в интерфейс админки (для более сложных плагинов)

Визуальное управление конфигом плагина
Все что нужно сделать, это описать так называемую схему конфига. Она состоит из двух частей — описание всех параметров конфига и описание групп/разделов параметров, которые формируют визуальную группировку на странице редактирование параметров.
Описание всех параметров задается в конфиге плагина в специальном ключе $config_scheme$, например
$config['$config_scheme$'] = array(
	'per_page' => array(
		/*
		 * тип: integer, string, array, boolean, float
		 */
		'type' => 'integer',
		/*
		 * отображаемое имя параметра, ключ языкового файла относительно плагина, или просто текст
		 */
		'name' => 'Количество элементов на страницу',
		/*
		 * отображаемое описание параметра, ключ языкового файла относительно плагина, или просто текст
		 */
		'description' => 'config.per_page.description',
		/*
		 * валидатор (не обязательно)
		 */
		'validator' => array(
			/*
			 * тип валидатора, существующие типы валидаторов движка:
			 * Boolean, Compare, Date, Email, Number, Regexp, Required, String, Tags, Type, Url, + Array (специальный валидатор, см. документацию)
			 */
			'type' => 'Number',
			/*
			 * параметры, которые будут переданы в валидатор
			 */
			'params' => array(
				'min' => 1,
				'max' => 20,
				/*
				 * разрешить только целое число
				 */
				'integerOnly' => true,
				/*
				 * не допускать пустое значение
				 */
				'allowEmpty' => false,
			),
		),
	),
	'param_string_1' => array(
		'type' => 'string',
		'name' => 'config.param_string_1.name',
		'description' => 'config.param_string_1.description',
		'validator' => array(
			'type' => 'String',
			'params' => array(
				'min' => 5,
				'max' => 50,
				'allowEmpty' => true,
			),
		),
	),
);


Читать дальше →

Как пользоваться значениями из конфига [РЕШЕНО]

Добрый день. Вот у меня есть значение tags=5 в конфиге плагина, допустим. Как мне подставить это значение в другой файл плагина? В js файл например. Вообще, как пользоваться значениями из конфига?

Буду благодарен.

Количество символов топике-ссылке

Понимаю что вопрос не совсем достойный (: но все же.
Проблема заключается в следующем.
В конфиге "Максимальное количество символов в одном топике-ссылке" стоит 500
Но статья почему то выводится полностью.

Воспользовавшись поиском узнал что оказывается при создании топика нужно использовать тег:cut
Либо использовать плагин AutoCut.
Зачем же тогда в конфиге указывается количество символов?