Как сделать перелинковку на жанры?

Mad

Местный житель
Клиент
Сообщения
26
Реакции
2
@MSE-Script, спасибо! Теперь жанры выводятся, только треки у которых 2 жанра, там дублируется поле с жанром - http://prntscr.com/m5r2rj. И еще момент, при реализации перелинковки по жанру, вставляю код, который указан тут:

Файл track.tpl, после {foreach $track.genres as $genre} вставить:
HTML:
{$genre === "genre_name"}
<a href="/genre/genre_link">genre_name</a>
{/if}
Где genre_name - название нужного жанра.
Получается такой код:
Код:
{foreach $track.genres as $genre}
{$genre === "genre_name"}
<a href="/genre/genre_link">genre_name</a>
    <span class="full-track__info-item">
        <span class="full-track__info-item-name _hide-to-mobile">Жанр: </span>
        <span class="full-track__info-item-content">{$genre}</span>
    </span>
{/foreach}
И это выглядит вот так - http://prntscr.com/m5r4so, при этом ссылки не работаю.
 

MSE-Script

Developer
Команда форума
Сообщения
864
Реакции
309
дублируется поле с жанром
У вас некорректная структура верстки. Все, что между тегами {foreach $track.genres as $genre} и {/foreach} будет повторяться N-раз. Вынесите ненужные элементы за эти теги:

PHP:
<span class="full-track__info-item">
   <span class="full-track__info-item-name _hide-to-mobile">Жанр: </span>
   <span class="full-track__info-item-content">
      {foreach $track.genres as $genre}
         {if $genre === "genre_name"}
            <a href="/genre/genre_link">{$genre}</a>
         {else}
            {$genre}
         {/if}
      {/foreach}
   </span>
</span>
Логика:
Если {$genre} = имя_нужного_жанра, то вывести ссылку на жанр
Иначе вывести вывести просто {$genre}
Все это повторять циклично, к каждому жанру
 
  • Like
Реакции: Mad

Mad

Местный житель
Клиент
Сообщения
26
Реакции
2
@MSE-Script, сейчас отображается корректно, спасибо! Только вот ссылками жанры никак не хотят становиться, проверял именно по тем жанрам, которые точно есть на сайте. Попробовал, еще такой вариант кода для перелинковки:
Код:
<span class="full-track__info-item">
   <span class="full-track__info-item-name _hide-to-mobile">Жанр: </span>
   <span class="full-track__info-item-content">
      {foreach $track.genres as $genre}
         {if $genre === "genre.name"}
            <a href="/genre/{$genre.url}">{$genre}</a>
         {else}
            {$genre}
         {/if}
      {/foreach}
   </span>
</span>
Но он тоже не заработал. И еще, такой тупой вопрос, как можно разделить несколько жанров в поле запятой?:)
 

MSE-Script

Developer
Команда форума
Сообщения
864
Реакции
309
ссылками жанры никак не хотят становиться
Проверяйте имя, оно должно быть полностью идентично выводимому. Попробуйте так же заменить === на ==.

как можно разделить несколько жанров в поле запятой
Вставить запятую после {$genre} :)
 

Mad

Местный житель
Клиент
Сообщения
26
Реакции
2
@MSE-Script,
Вставить запятую после {$genre} :)
Сделал так, но он выводит запятую и после последнего жанра - http://prntscr.com/m5scnw, а вот как бы сделать так, что бы он после последнего не выводил?

Проверяйте имя, оно должно быть полностью идентично выводимому. Попробуйте так же заменить === на ==.
Сейчас попробую, проверю все еще раз
 

night_music

Эксперт
Клиент
Сообщения
237
Реакции
52
@MSE-Script,

Сделал так, но он выводит запятую и после последнего жанра - http://prntscr.com/m5scnw, а вот как бы сделать так, что бы он после последнего не выводил?


Сейчас попробую, проверю все еще раз
Получилось?

Смотрю в стандартных шаблонах есть код:
Код:
Прослушиваний: {$track.play_count}
Битрейт: {$track.bitrate}
Размер: {$track.size}
Текст песни: {$track.text}
Почему не выводит информацию ни по одному из этих тегов?
 

MSE-Script

Developer
Команда форума
Сообщения
864
Реакции
309
Почему не выводит информацию ни по одному из этих тегов?
Используемый парсер не поддерживает эти теги или эти данные отсутствуют в просматриваемом треке.

MSE-Script 3.0 от 6.12.2018
...
3. Добавлен вывод жанра и альбома для парсера Zvuk.
4. Добавлен вывод альбома, битрейта, размера файла, кол-ва скачиваний для парсера Mail.
...
 

MSE-Script

Developer
Команда форума
Сообщения
864
Реакции
309
@Mad, Можно попробовать сделать запятые на CSS:

PHP:
<span class="full-track__info-item">
   <span class="full-track__info-item-name _hide-to-mobile">Жанр: </span>
   <span class="full-track__info-item-content">
      {foreach $track.genres as $genre}
         {if $genre === "genre_name"}
            <a href="/genre/genre_link" class="genre-link">{$genre}</a>
         {else}
            <span class="genre-link">{$genre}</span>
         {/if}
      {/foreach}
   </span>
</span>
CSS:
.genre-link:not(:last-child):after {
  content: ', ';
}
 

Sador

Местный житель
Клиент
Сообщения
26
Реакции
0
Файл track.tpl, после {foreach $track.genres as $genre} вставить:
HTML:
{$genre === "genre_name"}
<a href="/genre/genre_link">genre_name</a>
{/if}
Где genre_name - название нужного жанра.
а если в файле track.tpl нет кода {foreach $track.genres as $genre} как быть?
 

Sador

Местный житель
Клиент
Сообщения
26
Реакции
0
и вопрос, как сделать чтобы жанры, в виде ссылок, выводились на странице под треком?
 
Сверху