Проверка на "дружбу" внутри виджета список пользователей

#1 30 сентября 2024 в 14:26

Всем доброго. 

Проверка на дружбу в шаблоне «profile_view» работает корректно. 

<?php if ($this->controller->is_friend_profile){ ?>
ссылка удалить
<?php } else { ?>
ссылка добавить
<?php } ?>

А когда пытаюсь организовать проверку в виджете список пользователей, то такой номер не проходит. Кто подскажет решение? 

#2 30 сентября 2024 в 20:16

Кто подскажет решение? 

Ostrova

покажите пример ваших правок. В каком файле и как пытаетесь организовать проверку. 

#3 1 октября 2024 в 10:26

Кто подскажет решение? 

Ostrova

покажите пример ваших правок. В каком файле и как пытаетесь организовать проверку. 

Zau4man

Комп не под рукой. Но если на пальцах — в любом шаблоне для виджета «Список пользователя» пытаюсь добавить кнопку подписаться/ отписаться с помощью этого кода. В профиле пользователя так работает. В шаблоне Список пользователей нет. 

Кто подскажет решение? 

Ostrova

покажите пример ваших правок. В каком файле и как пытаетесь организовать проверку. 

Zau4man

Вот пример. Файл modern/controllers/users/widgets/list/list.tpl

  1. <div class="widget_profiles_list<?php if ($style=='tiles'){ ?> d-flex flex-wrap mr-n2 mb-n2<?php } ?>">
  2. <?php foreach($profiles as $profile){ ?>
  3. <?php $url = href_to_profile($profile); ?>
  4.  
  5. <?php if ($style=='list'){ ?><div class="item media mb-3 align-items-center"><?php } ?>
  6.  
  7. <?php if (!empty($fields['avatar']) && $fields['avatar']['is_in_list']){ ?>
  8. <a href="<?php echo $url; ?>" class="icms-user-avatar<?php if ($style=='list'){ ?> mr-3<?php } else { ?> mr-2 mb-2<?php } ?> <?php if (!empty($profile['is_online'])){ ?>peer_online<?php } else { ?>peer_no_online<?php } ?>" title="<?php html($profile['nickname']); ?>">
  9. <?php if($profile['avatar']){ ?>
  10. <?php echo html_avatar_image($profile['avatar'], $fields['avatar']['options']['size_teaser'], $profile['nickname']); ?>
  11. <?php } else { ?>
  12. <?php echo html_avatar_image_empty($profile['nickname'], 'avatar__inlist'); ?>
  13. <?php } ?>
  14. </a>
  15. <?php } ?>
  16. <?php if ($style=='list'){ ?>
  17. <div class="media-body text-truncate">
  18. <?php if (!empty($fields['nickname']) && $fields['nickname']['is_in_list']){ ?>
  19. <h5 class="my-0">
  20. <a href="<?php echo $url; ?>">
  21. <?php html($profile['nickname']); ?>
  22. </a>
  23. </h5>
  24.  
  25.  
  26. <?php if ($this->controller ->is_subscribe_profile){ ?>
  27. <a class="pt-1 pb-1 mr-2 fs-13 ajax-modal btn btn-outline-secondary" href="/users/unsubscribe<?php echo href_to($profile['id']); ?>">Отписаться </a>
  28.  
  29. <?php } else { ?>
  30. <a class="pt-1 pb-1 mr-2 ajax-modal btn btn-outline-success rounded-pill no-border" href="/users/subscribe<?php echo href_to($profile['id']); ?>">Подписаться </a>
  31. <?php } ?>
  32.  
  33.  
  34.  
  35. <?php } ?>
  36. <?php if (!empty($profile['fields'])){ ?>
  37. <div class="fields mt-2">
  38. <?php foreach($profile['fields'] as $field){ ?>
  39. <div class="field ft_<?php echo $field['type']; ?> f_<?php echo $field['name']; ?>">
  40. <?php if ($field['label_pos'] != 'none'){ ?>
  41. <div class="title_<?php echo $field['label_pos']; ?>">
  42. <?php echo $field['title'] . ($field['label_pos']=='left' ? ': ' : ''); ?>
  43. </div>
  44. <?php } ?>
  45. <div class="value">
  46. <?php echo $field['html']; ?>
  47. </div>
  48. </div>
  49. <?php } ?>
  50. </div>
  51. <?php } ?>
  52. </div>
  53. <?php } ?>
  54. <?php if ($style=='list'){ ?></div><?php } ?>
  55.  
  56. <?php } ?>
  57. </div>

После никнейма выводится кнопка. Но она всегда в режиме «подписаться», т.е. проверка не происходит. 

#4 2 декабря 2024 в 04:31

Я в списках контента так проверял, в виджетах не пробовал. Сюда закинул, может кому-нибудь понадобится.

  1. <?php if ($item['user']['is_friend'] == 1) { ?>
  2. он твой друг
  3. <?php } else { ?>
  4. он твой недруг
  5. <?php } ?>
Вы не можете отвечать в этой теме.
Войдите или зарегистрируйтесь, чтобы писать на форуме.
Используя этот сайт, вы соглашаетесь с тем, что мы используем файлы cookie.