Нужна помощь в разборке кода

ЕСТЬ РЕШЕНИЕ ЗАКРЫТО
#1 3 января 2016 в 19:49
Инстант 2.4.0, виджет "список контента", стиль "обычный"
  1. <?php if ($image) { ?>
  2. <div class="image">
  3. <?php if ($url) { ?>
  4. <a href="<?php echo $url; ?>"><?php echo html_image($image, 'small', $item['title']); ?></a>
  5. <?php } else { ?>
  6. <?php echo html_image($image, 'small', $item['title']); ?>
  7. <?php } ?>
  8. </div>
  9. <?php } ?>
Ниже по коду такое уже условие для вывода заголовка (со ссылкой или без), ещё ниже, — для комментов.
Переменная в этом <?php if ($url) { ?> условии откуда берётся? Вроде б в настройках виджета её нет scratch
Спасибо!
#2 3 января 2016 в 20:02
Олег Васильевич я, чуть выше в том же файле есть
  1. <?php
  2. $url = href_to($ctype['name'], $item['slug']) . '.html';
  3. $is_private = $item['is_private'] && $hide_except_title && !$item['user']['is_friend'];
  4. $image = (($image_field && !empty($item[$image_field])) ? $item[$image_field] : '');
  5. if ($is_private) {
  6. $image = default_images('private', 'small');
  7. $url = '';
  8. }
  9. ?>
там $url собирается из набора этого href_to($ctype['name'], $item['slug']). '.html';
#3 3 января 2016 в 20:06
А затем, если запись приватная, то значение этой переменной уничтожается и в итоге ссылка на эту запись не отображается в списке, только её название.
Олег Васильевич я, такое ощущение что у вас строки между тегами <?php и ?> монитор не отображает
#4 3 января 2016 в 20:16

Олег Васильевич я, чуть выше в том же файле есть

Loadырь
Я вижу, и понимаю что приватная запись не выведется. Об этом и спрашиваю: для чего условие стоит:
если запись не приватная, то вывести картинку со ссылкой на запись, а, если приватная, то картинку без ссылки?
#5 3 января 2016 в 20:20
Другими словами, почему не так:
  1. <?php if ($url) { ?>
  2. тут поле
  3. <?php } ?>
Или вообще не
  1. <?php if ($url) { ?>
  2. тут вся запись
  3. <?php } ?>
#6 3 января 2016 в 20:29
В 2.4.0 есть три варианта для приватности:
1 не показывать совсем
2 показывать совсем
3 показывать только название.
поэтому в коде
  1. <div class="title">
  2. <?php if ($url) { ?> если есть ссылка показываем её
  3. <a href="<?php echo $url; ?>"><?php html($item['title']); ?></a>
  4. <?php } else { ?> иначе (а это в случае когда - пользователь не друг автора записи и у записи стоит "приватность" и в настройках типа контента стоит флаг показа только названий - и всё это одновременно) показываем только название
  5. <?php html($item['title']); ?>
  6. <?php } ?>
  7. <?php if ($item['is_private']) { ?> а если у записи стоит "приватность", то сообщаем об этом пользователей этим спаном
  8. <span class="is_private" title="<?php html(LANG_PRIVACY_PRIVATE); ?>"></span>
  9. <?php } ?>
  10. </div>
#7 3 января 2016 в 20:36
Ключ к разгадке:

и в настройках типа контента стоит...

Loadырь
Спасибо!
Используя этот сайт, вы соглашаетесь с тем, что мы используем файлы cookie.