Часто в темах вижу что-то вроде этого:
{if $wa_app == 'site'}
{$pages = $wa->site->pages()}
{elseif $wa_app == 'shop'}
{$pages = $wa->shop->pages()}
{elseif $wa_app == 'blog'}
{$pages = $wa->blog->pages()}
{else}
{$pages = []}
{/if}
Видимо так делают потому что в Smarty не доступны конструкции:
$app = $wa->{$wa_app};
$app = $wa->$wa_app;
Эту проблему можно обойти: при вызове "$wa->приложение" срабатывает магический метод "waViewHelper::__get()", мы можем обращаться к этому методу напрямую и передавать переменной имя приложения:
{$app = $wa->__get($wa_app)}
Ну и компактная версия первого примера:
{$pages = $wa->__get($wa_app)->pages()}
2 комментария
Вы про "shop-categories" забыли.
Не понял о чем речь.