Ссылки в заголовках виджетов

 
Посетитель
small user social cms
МедальАвторитет форума
Сообщений: 1902
Всем привет.

Возникла небольшая проблема при создании шаблона. Это мой первый блин, который комом scratch , поэтому за не имением опыта обращаюсь ко всем, кто что-то в этом понимает.

Что я сделал? В заголовках виджетов ссылки отображаются в виде блока, при наведении на который подъезжают ссылки. Блок этот имеет фиксированные размеры, а поверх него добавлен псевдоэлемент :before с иконкой fontawesome.

Ссылки в заголовках виджетов


И всё бы ничего, если бы не одно досадное недоразумение. Если таким образом вывести ссылки во вкладках, когда виджеты объединены, то даже если у виджета нет ссылок, "кнопка" все равно видна. По-умолчанию блок .links-wrap не имеет ни цвета, ни размера. Поэтому, если его никак не оформлять, его и не видно при отсутствии ссылок. Но у меня немного иная ситуация.

И, собственно, сам вопрос к профессионалам: как сделать проверку на наличие ссылок в заголовке виджета и при их отсутствии скрыть блок .links-wrap?

Здесь есть ссылки в заголовке виджета:
Ссылки в заголовках виджетов

А здесь нет ссылок:
Ссылки в заголовках виджетов

Спасибо.
Редактировалось: 1 раз (Последний: 7 июля 2016 в 09:22)
Посетитель
small user social cms
МедальАвторитет форумаКубок зрительских симпатий
Сообщений: 3549
После 12 строки добавьте строку
Код PHP:
  1. if(empty($widget['links']){continue;}
Редактировалось: 1 раз (Последний: 7 июля 2016 в 09:44)
Реклама
cms
Посетитель
small user social cms
МедальАвторитет форумаКубок зрительских симпатий
Сообщений: 3549
Либо поменяйте там местами 13 и 14 строки и 19 и 20.
Посетитель
small user social cms
МедальАвторитет форума
Сообщений: 1902
Loadырь:
После 12 строки добавьте строку
Вставил вот так после 12 строки:

Код PHP:
  1. <?php if(empty($widget['links']){continue;}?>
Но теперь вообще ничего нет. Если просто поменять строки местами, то в том виджете, где есть ссылки, показывает пустую кнопку, а где нет - показывает ссылки из первого виджета.

Если поменять строки местами:

Здесь должны быть ссылки:

Ссылки в заголовках виджетов

А здесь нет ссылок, но показываются ссылки того виджета, где они есть:
Ссылки в заголовках виджетов

А вот так, если вставить после 12 строки предложенный код:

Ссылки в заголовках виджетов
Посетитель
small user social cms
МедальАвторитет форумаКубок зрительских симпатий
Сообщений: 3549
Упс, скобочку пропустил. Но по сути это должно выглядеть также как и смена строк местами.
Код PHP:
  1. <?php if(empty($widget['links'])){continue;}?>
Посетитель
small user social cms
МедальАвторитет форумаКубок зрительских симпатий
Сообщений: 3549
Убирать этот блок совсем нельзя. Но можно изменить у него класс или совсем удалить класс.
Посетитель
small user social cms
МедальАвторитет форума
Сообщений: 1902
Loadырь:
Не срабатывает этот код. Все равно кнопка видна.

Loadырь:
можно изменить у него класс
Вот этот вариант сработал бы наверное. Добавить класс с display:none, и тогда бы всё отображалось правильно. Но как это сделать?
Посетитель
small user social cms
МедальАвторитет форумаКубок зрительских симпатий
Сообщений: 3549
Приводим строку 13 к виду
Код PHP:
  1. <div class="links-wrap" id="widget-links-<?php echo $widget['id']; ?>" <?php if ($index>0 || empty($widget['links'])) { ?>style="display: none"<?php } ?>>
Посетитель
small user social cms
МедальАвторитет форумаКубок зрительских симпатий
Сообщений: 3549
Но лучше так
Код PHP:
  1. <div class="<?php if (empty($widget['links'])) { ?>novisible<?php } else {?>links-wrap<?php } ?>" id="widget-links-<?php echo $widget['id']; ?>" <?php if ($index>0) { ?>style="display: none"<?php } ?>>
и добавить стили для класса novisible.
Посетитель
small user social cms
МедальАвторитет форума
Сообщений: 1902
Loadырь:
Приводим строку 13 к виду
Спасибо большое, работает!

Правда, я немного не правильно изначально классы указал, нужно было скрыть не .links-wrap, а .links. Но Ваш способ мне все равно очень помог))
В начало страницы
Предыдущая темаСледующая тема Перейти на форум: