Я реализовал простую систему шаблонов, используя Oscommerce 2.3.4. Так что я могу управлять несколькими магазинами, с возможностью изменить контент или внешний вид магазина на основе «сайта» или «шаблона».
Основные файлы OSC (файлы модулей, классы и т. Д.) По-прежнему находятся в каталогах вне корня приложения, но шаблоны, языковые файлы и таблицы стилей находятся в каталогах ‘templates’ и ‘sites’. Каждая структура каталогов «шаблон» или «сайт» такая же, как и стандартная структура приложения OSC. Если файл присутствует в папках сайта / шаблона, он будет использоваться вместо него.
Существует каталог шаблонов по умолчанию для всех шаблонов по умолчанию и языковых файлов. Приоритет для выбора используемого файла выглядит следующим образом:
Я рассматриваю возможность использования функции set_include_path для перечисления каждого из этих каталогов, упомянутых выше, чтобы воспользоваться преимуществами поведения include_path, описанного на php.net:
PHP рассматривает каждую запись в пути включения отдельно при поиске файлов для включения. Он проверит первый путь и, если не найдет его, проверит следующий путь, пока не найдет включенный файл или не вернется с предупреждением или ошибкой.
Это кажется почти идеальным для моей ситуации, однако я не мог найти, считается ли это «хорошей» практикой.
Мне было интересно, есть ли какие-либо ловушки при использовании этого, такие как снижение производительности. Учитывая, что многие включения теперь будут искать в 3 каталогах, прежде чем наконец найти шаблон по умолчанию в 4-м месте.
(Хотя это немного хуже чем при использовании if(file_exists())
несколько раз, что является альтернативой.)
Также будет необходимо установить эти пути включения в верхней части приложения, поскольку пути используют переменные для текущего сайта и шаблона из приложения. Так что я не могу установить путь включения в php.ini
Любая помощь или совет высоко ценится
Задача ещё не решена.
Других решений пока нет …