Avada

|
Posted: Tue Aug 16, 2011 14:24 Post subject: |
|
|
Так получилось, что в последнее время проблема ридиректа секций обсуждается достаточно активно и много где, причём не только на разных форумах, но и в приватной переписке. Выяснилось, что некоторые вещи, кажущиеся одним совершенно очевидными, другие таковыми вовсе не считают. Не претендуя на полноту охвата, хочу обозначить (именно здесь, а не в отдельной теме!) некоторые "узкие места". Кто знает — хорошо, кто не знал — будет знать.
1. В справке TC в описании ключа AlternateUserIni сказано:
Quote: | Если этот ключ задан, сохранение всех пользовательских секций будет выполняться в другой INI-файл. По умолчанию это все секции, кроме: [Configuration], [Layout], [Packer], [Confirmation], [Extensions], [Associations], [Shortcuts], [ShortcutsWin], [PackerPlugins], [FileSystemPlugins], [ListerPlugins], [ContentPlugins]. Однако эти секции тоже можно хранить в другом INI-файле, поскольку в любой секции можно создать ключ RedirectSection, указывающий, переносить ли её в новый INI-файл. Возможные значения:
0: не переносить данную секцию;
1: переносить в файл, указанный ключом AlternateUserIni;
<файл.ini>: переносить в указанный INI-файл. |
Этим описанием совместное применение и взаимодополнение этих ключей ни в коем случае не исключаются. Не следует понимать так, что все перечисленные секции должны обрабатываться только RedirectSection, а все не перечисленные — только AlternateUserIni. Под "любой секцией" понимается именно любая!
Понятно, что ключ AlternateUserIni недостаточно гибок: он предписывает копировать очень обширный набор секций, причём в один и тот же файл. Ключ RedirectSection работает куда тоньше и избирательнее. Он позволяет, прежде всего, ограничить область применения глобального ключа — сократить до нужного число переносимых по умолчанию секций, если его указать в каких-то секциях со значением 0. Также он позволяет изменить правила редиректа умолчальных секций — что-то переносить в обход общего указания не в глобальный INI-файл, а в другой. И, разумеется, он позволяет дополнить действие глобального ключа — переносить и то, для чего умолчального редиректа нет. Для избирательного редиректа секций (да ещё по разным адресам!) RedirectSection позволяет вообще обойтись без AlternateUserIni: возни с настройками побольше, зато и результат куда приятнее.
2. При использовании редиректа обнаружилась милая подробность, которая даже сведущих людей может сбить с толку. Предположим, у нас есть файл wincmd.ini, а в нём — произвольное число ключей, предписывающих перенос в другое место. Так вот, если по этому самому другому месту целевой INI-файл недоступен для записи, то в сообщении об ошибке выводится не его имя, а имя wincmd.ini, где записана информация о редиректе и где с доступом никаких проблем! Понятно, что попытка истолковать этот факт может доставить пользователю много весёлых минут.
3. И, наконец, по поводу специфических INI-файлов, где собирается в кучу конфигурационная информация из некоторых плагинов (большей частью не очень новых). Это contplug.ini, fsplugin.ini, lsplugin.ini и pkplugin.ini. По умолчанию все они создаются и изменяются в самом каталоге TC. Механизмов для их создания в каком-то другом месте в TC нет, да и вообще, куда писать настройки конкретного плагина, определяет его автор, а не Гислер. Во всяком случае, это не часть стандартных настроек TC, и ни о каком редиректе здесь речь идти не может. _________________ Даже самая богатая фантазия
Не представит себе наши безобразия. |
|