Условие показа блока

ЕСТЬ РЕШЕНИЕ ЗАКРЫТО
#1 3 января 2016 в 14:33
Друзья, создал виджет.

В нем есть несколько блоков которые должны быть показаны отпределенным группам.

виджет.tpl.php содержит

  1. <?php if (in_array(7, $profile['groups'])) { ?>
  2. Блок 1
  3. <?php } elseif (in_array(9, $profile['groups'])) { ?>
  4. Блок 2
  5. <?php } elseif (in_array(8, $profile['groups'])) { ?>
  6. Блок 3
  7. <?php } else { ?>
  8. Блок для остальных
  9. </div>
  10. <?php } ?>
Но к сожалению показывается только "Блок для остальных"
Что-то еще не указал где-то
#2 3 января 2016 в 14:37
widget.php содержит

  1. <?php
  2.  
  3. class widgetUsersВиджет extends cmsWidget {
  4.  
  5. public $is_cacheable = false;
  6.  
  7. public function run(){
  8.  
  9.  
  10.  
  11.  
  12. $profile = cmsCore::getModel('users')->getUser($id);
  13. $user = cmsUser::getInstance();
  14.  
  15.  
  16.  
  17. return array(
  18. 'user' => $user,
  19. 'profile' => $profile,
  20. 'id' => $id,
  21.  
  22. );
  23.  
  24. }
  25.  
  26. }
#3 3 января 2016 в 15:25
Попробуй сделать вот так:
  1.  
  2. <?php if (in_array(7, $profile['groups'])) { ?>
  3. Блок 1
  4. <?php } ?>
  5. <?php if (in_array(9, $profile['groups'])) {
  6. Блок 2
  7. <?php } ?>
  8. <?php if (in_array(8, $profile['groups'])) { ?>
  9. Блок 3
  10. <?php } ?>
  11. /*Здесь можно применить два способа*/
  12. <?php /*можно так*/ if (in_array(1 && 2 && 3, $profile['groups'])) { ?>
  13. <?php /*можно так*/ if ((in_array(1, $profile['groups'])) || (in_array(2, $profile['groups'])) || (in_array(3, $profile['groups']))) { ?>
  14. /*но в любом случае нужно перечислить все оставшиеся группы*/
  15. Блок для остальных
  16. </div>
  17. <?php } ?>
  18.  
Последнее можно сделать двумя способами, оба работают, но я не знаю как лучше.
#4 3 января 2016 в 15:47
Василёк, У вас ошибка в 5-й строке. Но не суть.

Такой способ тоже пробовал, но в таком случае, ничего в обще не выводится.
#5 3 января 2016 в 15:59
Совсем забыл. Это виджет.
Нужно вместо $profile['groups']
вставить $user->groups
#6 3 января 2016 в 16:39
Василёк, то что нужно. Спасибо
Используя этот сайт, вы соглашаетесь с тем, что мы используем файлы cookie.