Перейти к публикации
View in the app

A better way to browse. Learn more.

Дизайн и модификация Invision Community

A full-screen app on your home screen with push notifications, badges and more.

To install this app on iOS and iPadOS
  1. Tap the Share icon in Safari
  2. Scroll the menu and tap Add to Home Screen.
  3. Tap Add in the top-right corner.
To install this app on Android
  1. Tap the 3-dot menu (⋮) in the top-right corner of the browser.
  2. Tap Add to Home screen or Install app.
  3. Confirm by tapping Install.

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

Опубликовано:

Здравствуйте. Сделал систему рецептов для крафта вещей: 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

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

Сейчас на странице 0

  • Нет пользователей, просматривающих эту страницу.

Configure browser push notifications

Chrome (Android)
  1. Tap the lock icon next to the address bar.
  2. Tap Permissions → Notifications.
  3. Adjust your preference.
Chrome (Desktop)
  1. Click the padlock icon in the address bar.
  2. Select Site settings.
  3. Find Notifications and adjust your preference.