====== Резолвинг имен файлов ====== С самого начала Limb разрабатывался с учетом разделения общей установки между несколькими проектами. Иногда проектам необходимо реализовать поведение, несколько отличное от заданного изначально. Вот почему Limb использует специальную технологию разрешения путей к файлам. Сначала файл ищется в файловой структуре проекта, затем - в файловой структуре Limb. Эта технология использует две константы, которые Вы определяете в setup.php (или в setup.override.php): PROJECT_DIR и LIMB_DIR. Таким образом файловая структура Limb и основанного на ней проекта похожи. Этот метод разрешения PROJECT_DIR -> LIMB_DIR применяется практически ко всему: * ко всем фабрикам объектов, вроде db_table_factory, action_factory, site_object_factory и т.д. * к файлам *.ini - локализационным строкам, конфигурационным файлам и т.д. * к шаблонам WACT, поэтому это простейший способ переопределить в проекте шаблон Limb Иногда это даже не технология разрешения имен файлов, а технология разрешения имен классов (это зависит от резолвера). Например, путь к действию может выглядеть так: **/article/edit_article_actions**. В этом случае action_factory интерпретирует ее так: * добавит '.class.php' к каждому пути * поищет в PROJECT_DIR/core/actions/ * поищет в LIMB_DIR/core/actions/ В действительности, если необходима отличная функциональность в отдельном проекте, вы можете скопировать файл из Limb в свой проект и изменить его. Это допустимый способ расширять и переопределять базовую функциональность. //С точки зрения чистого ООП это немного грязный трюк - мы знаем об этом и работаем над технологией пакетов. В будущем эта возможность останется только для шалонов WACT.// Разрешение имен шаблонов работает немного по-другому. Здесь во время компиляции шаблонов, принимается во внимание локализация. Сначала производится поиск в каталогах (порядок важен, возвращается первое сообщение): * PROJECT_DIR . '/design/main/templates/_' . CONTENT_LOCALE_ID . '/' . $file_path * PROJECT_DIR . '/design/main/templates/' . $file_path * LIMB_DIR . '/design/main/templates/_' . CONTENT_LOCALE_ID . '/' . $file_path * LIMB_DIR . '/design/main/templates/' . $file_path Вот почему, если Вы хотите настроить шаблон в соответсвии с текущей локализацией во время выполнения, Вам необходимо сделать что-то наподобие этого: Хорошей практикой является использование тэга **** для вывода локализованных строк в шаблонах .