Передача переменной шаблона двигателя выражений - PullRequest
0 голосов
/ 28 октября 2011

Я строю в Expression Engine 2.3 систему профилей пользователей, используя модули Solspace User и Friends.Они работают нормально, но мне невероятно трудно передавать встроенные переменные.

У меня есть шаблон .profile_head, который вызывается из каждого шаблона.Страница профиля, страница друзей, страница личных сообщений и т. Д. Она строит навигацию пользователя, отображает аватар, все обычные пользовательские вещи.Все это основано на идентификаторе пользователя, переданном через {segment_3}.Это позволяет мне отображать информацию о другом пользователе, меняя этот сегмент.

Проблема заключается в том, что мои URL слишком точные.У меня не может быть пользователей, которые переходят в / users, они должны переходить в / users / profile / UID, или лучший из возможных сценариев - это страница с ошибкой или перенаправление на домашнюю страницу.через переменные в моем шаблоне:

{embed="/users/.profile_head" uid="{segment_3}"}
 or......
{embed="/users/.profile_head" uid="{logged_in_member_id}"}

В файле шаблона .profile_head я могу распечатать {embed:uid} просто отлично, но когда я пытаюсь присвоить его чему-либо (то есть циклу или другому шаблону), это ломается:

<!-- /users/.profile_head -->
{exp:friends:members member_id="{embed:uid}" dynamic="off" limit="1"}
 or.....
{embed="users/.profile_column" uid="{embed:uid}"}

Например, если {embed:uid} установлено как {logged_in_member_id}, я получаю следующую ошибку:

Parse error: syntax error, unexpected T_LNUMBER in /var/www/system/expressionengine/libraries/Functions.php(656) : eval()'d code on line 9

Это строка 9:

{if logged_in_member_id == "{embed:uid}"} <span class="this_is_you">This is you!</span>{/if}

Я действительно в своем уме.Мне нужно иметь возможность использовать этот заголовок профиля в шаблонах, не требуя идентификатора пользователя в URL для таких вещей, как сообщения пользователя и страницы настроек.Но ничто из того, что я пытаюсь сделать, кажется, не работает ни в малейшей степени.

1 Ответ

3 голосов
/ 28 октября 2011

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

Попробуйте вместо этого использовать константу CURRENT_USER.

...