2016-09-27 2 views
0

Я пытаюсь создать небольшую модификацию в нашем коде, чтобы упростить тестирование A/B.Как использовать шаблоны Smarty с A/B-тестированием?

Я хотел бы знать, могу ли я каким-то образом

  1. есть свой регулярный код в каталоге/шаблоны
  2. имеют какой-либо код/​​б в/шаблоны/_abtests /, но и следовать тем же иерархия как обычный код. например ... тест аб может перезаписать файл как «/templates/foo.tpl», и использовать вместо «» /templates/_abtests/testfoo/foo.tpl

Я попытался изменить каталог шаблонов когда в тесте. Прямо перед вызовом метода отображения я бы проверил, находится ли пользователь в тесте, и если да, то соответствующим образом настройте template_dir. Сначала я бы назначил массив с «ab», а затем по умолчанию. Я использую Smarty2.

проблема заключается в том, что он кэширует первый экземпляр и использует его в качестве шаблона для базового и ab-теста. т.е.: у меня есть параметр, чтобы заставить меня в тестовое ведро, но шаблон тот же.

мысли о том, как этого достичь? Цель состоит не в том, чтобы добавить в шаблоны кучу шаблонных крючков (if/else). и добиться этого простым шаблоном/файлом.

+0

проблема заключается в том, что умник кэширует шаблон? –

+0

да. Я так считаю , – Sam

ответ

0

Я считаю, что решением моей проблемы может быть размещение шаблонов в папки. то есть:/templates/base /,/templates/test_foo/и т. д., затем в настройке template_dir установите массив на основании того, какой тест мы находим.

Я уже пробовал это с мобильным/и забыл об этом решении.

я могу продлить smarty_template класс и переопределить метод отображения, чтобы изменить template_dir. добавить тестовый каталог первым.

Смежные вопросы