Механизм выражения
Привет! Я пытаюсь упорядочить записи по полю с фамилией, но оно просто не работает. изменение порядка сортировки и сортировки на что-либо дает одинаковые результаты - последняя запись последняя в списке.
Есть идеи, что я могу делать не так?
{exp:query sql="SELECT member_id FROM exp_members WHERE group_id = '5'"}
{exp:member:custom_profile_data member_id="{member_id}" orderby="surname" sort="asc"}
<li><a href="{path=portfolios/gallery/{username}}"><img src="{photo_url}" width="138" height="103" alt="{screen_name}" /></a>
<h3 class="name"><a href="{path=portfolios/gallery2/{username}}">{firstname} {surname}</a></h3></li>
{/exp:member:custom_profile_data}
{/exp:query}
2 ответа
Чтобы сэкономить энергию, вы можете подумать об использовании Freemember от Exp-resso на своем сайте. https://github.com/expressodev/freemember
Этот модуль имеет очень простой синтаксис, чтобы делать то, что вы хотите, и может добавить некоторые дополнительные функции, чтобы упростить разработку ExpressionEngine.
Я начну с указания на то, что если у вас много участников, этот вложенный запрос действительно может затормозить ваш сервер. Было бы гораздо эффективнее использовать модуль Query, чтобы получить все данные о членах за один раз, а затем выполнять их без вложенных custom_profile_data
тег. Вы должны были бы учитывать переменные, которыми манипулируют заранее, используя custom_profile_data
(например, URL-адреса изображений), но это стоило бы усилий для повышения производительности.
Несмотря на:
custom_profile_data
тег запрашивает только одного члена, поэтому порядок и сортировка не будут иметь никакого значения. Ваша сортировка должна происходить во время вашего exp:query
тег.
{exp:query sql="SELECT m.member_id FROM exp_members m, exp_member_data d WHERE m.group_id = '5' AND d.member_id = m.member_id ORDER BY d.m_field_id_X ASC"}
{exp:member:custom_profile_data member_id="{member_id}"}
<li><a href="{path=portfolios/gallery/{username}}"><img src="{photo_url}" width="138" height="103" alt="{screen_name}" /></a>
<h3 class="name"><a href="{path=portfolios/gallery2/{username}}">{firstname} {surname}</a></h3>
</li>
{/exp:member:custom_profile_data}
{/exp:query}
замещать m_field_id_X
с фактическим m_field_id
вашей surname
настраиваемое поле члена (которое можно найти, посмотрев на exp_member_fields
в Инструменты → Данные → Диспетчер SQL).