Перейти к содержимому
Русский язык для Invision Community 5

Формирование фильтра

Здравствуйте. Сделал систему рецептов для крафта вещей: https://wc3.games/recept/ столкнулся с несколькими проблемами.

 

Основная проблема в том, что, не правильно формируются предметы для рецепта, они встают в неправильную позицию. Вот взять второй рецепт:


  •  
  • Меч света - должен быть на первой позиции.
  • Браслет прозрения на второй.
  • Третьим должен быть камень целителя.

 

Формирование происходит в той последовательности, в которой указаны ингредиенты в поле типа "список выбора", скажите, реально это как-то преобразовать в нужном мне виде? При этом, в самом фильтре ингредиенты должны идти по алфавиту.

 

Второй вопрос на засыпку: Эти рецепту относятся к этой карте: https://wc3.games/maps/4-heroic-town/ сами карты реализованы через "клубы", можно ли сделать интеграцию страницы с этим?

 

Шаблон:

 

{{$rowIds = array();}}
{{foreach $rows as $row}}
{{$idField = $row::$databaseColumnId;}}
{{$rowIds[] = $row->$idField;}}
{{endforeach}}
{{$iposted = $table ? $table->contentPostedIn : array();}}
{{foreach $rows as $row}}
{{$idField = $row::$databaseColumnId;}}

   {{$ingridient_key = explode( ',', $row->field_7);}}
   {{$ingridient_value = explode( ',', $row->customFieldDisplayByKey('ingredients', 'processed'));}}
     <li class="ipsGrid_span3 ipsStreamItem ipsStreamItem_contentBlock cTopMembers_member ipsAreaBackground_reset ipsPad ipsType_center">
         {{if $trophy}}
         <span class="ipsLeaderboard_trophy ipsLeaderboard_trophy_{$trophy}">
             <i class="fa fa-trophy"></i>
         </span>
         {{endif}}
         <span class='ipsUserPhoto ht_items ht_items-{$ingridient_key[0]}' data-ipstooltip _title="{$ingridient_value[0]}"></span>
         <div class='ipsStreamItem_container'>
             <div class='ipsStreamItem_header ipsSpacer_top ipsSpacer_half'>
                 <h2 class='ipsType_reset ipsStreamItem_title ipsTruncate ipsTruncate_line'>
                     {$ingridient_value[0]}
                 </h2>
             </div>

             <hr class='ipsHr ipsHr_small'>

             <ul class='ipsList_reset ipsGrid'>
                 <li class='ipsGrid_span5 ipsList_reset ipsType_center'>
                   <span class='ipsUserPhoto ht_items ht_items-{$ingridient_key[1]}' data-ipstooltip _title="{$ingridient_value[1]}"></span>
                 </li>
               <li class='ipsGrid_span1 ipsList_reset ipsType_center'>+</li>
                 <li class='ipsGrid_span5 ipsList_reset ipsType_center'>
                   <span class='ipsUserPhoto ht_items ht_items-{$ingridient_key[2]}' data-ipstooltip _title="{$ingridient_value[2]}"></span>
                 </li>
             </ul>
           	<hr class="ipsHr ipsHr_small">
           <p class="ipsType_reset ipsType_medium">{$row->customFieldDisplayByKey('contentfield_3', 'listing')|raw}</p>
         </div>
     </li>

{{endforeach}}

post-60255-0-41812200-1533426643_thumb.png

Изменено пользователем TemKa_SD

Рекомендованные сообщения

  • Автор

Так правильно? Вроде работает, мне просто для нескольких клубов так делать нужно будет.

{{$club = null;}}
{{if $category->_id == 5}}
{{ try { $club = \IPS\Member\Club::load(4); } catch (\OutOfRangeException $e) {} }}
{{endif}}
{{if $category->_id == 3}}
{{ try { $club = \IPS\Member\Club::load(2); } catch (\OutOfRangeException $e) {} }}
{{endif}}

Изменено пользователем TemKa_SD

Так правильно?

Да

 

Можно использовать elseif

{{$club = null;}}
{{if $category->_id == 5}}
   {{ try { $club = \IPS\Member\Club::load(4); } catch (\OutOfRangeException $e) {} }}
{{elseif $category->_id == 3}}
   {{ try { $club = \IPS\Member\Club::load(2); } catch (\OutOfRangeException $e) {} }}
{{endif}}

  • Автор

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

 

Т.е примерно так:

 

{{if $category->_name == $название клуба}}

 

Только я переменные не знаю как вывести с клуба.

Название категории может быть на нескольких языках.

 

Только я переменные не знаю как вывести с клуба.

Сперва его нужно получить.
  • Автор

Название категории может быть на нескольких языках.

 

Название категории будет соответствовать названию клуба, в этом я уверен.

 

Сперва его нужно получить.

 

Естественно.

 

Вы может не поняли о чем я ?

 

Как вместо этого получить название клуба?

 

$club = \IPS\Member\Club::load(4);

Изменено пользователем TemKa_SD

Как вместо этого получить название клуба?

На основании чего? Нужны какие-то данные для начала.

  • Автор

Так данные есть, это название клуба. Т.е

 

{{ try { $club = \IPS\Member\Club::load($category->_name); } catch (\OutOfRangeException $e) {} }}

Клуб можно загрузить только по ID

Создайте аккаунт или войдите в него для комментирования

Важная информация

При использовании данного сайта, вы согласаетесь с Условия использования и Чтобы сделать этот веб-сайт лучше, мы разместили cookies на вашем устройстве. Вы можете изменить свои настройки cookies, в противном случае мы будем считать, что вы согласны с этим..

Аккаунт

Навигация

Поиск

Поиск

Настроить push-уведомления браузера

Chrome (Android)
  1. Нажмите на иконку замка рядом с адресной строкой.
  2. Нажмите Права доступа -> Уведомления.
  3. Измените свои настройки.
Chrome (компьютер)
  1. Нажмите на иконку замка в адресной строке.
  2. Выберите Настройки сайта.
  3. Найдите Уведомления и измените свои настройки.