В Персональном меню если нет подписок и друзей, 404 страница. 2.X

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

 
Посетитель
small user social cms
МедальПочетный донор проекта
Сообщений: 643
Приветствую, уважаемое сообщество.

Как сделать, чтобы когда нет друзей и подписок, в персональном меню пользователя отображалась не 404 страница при нажатии на ссылку - "users/{user.id}/subscriptions" и "users/{user.id}/friends", а показывалась страница, что "Нет друзей", "Нет подписок"?

Дело в том, что по умолчанию вкладки друзья и подписки скрыты в профилях пользователей, хотя в настройках профиля стоит галочка на "Показывать вкладку", но если мы выводим дополнительную ссылочку в персональное меню такого типа - users/{user.id}/subscriptions, то нас перекидывает на не существующую страницу.

Вопрос, как исправить данное недоразуменее?
Может надо в каком то файле открыть по умолчанию вкладки "Друзья" и "Подписки" и тогда отобразятся надписи что "Нет друзей", "Нет подписок"?
Посетитель
small user social cms
Медаль
Сообщений: 106
skewes:

Приветствую, уважаемое сообщество.

Как сделать, чтобы когда нет друзей и подписок, в персональном меню пользователя отображалась не 404 страница при нажатии на ссылку - "users/{user.id}/subscriptions" и "users/{user.id}/friends", а показывалась страница, что "Нет друзей", "Нет подписок"?

Дело в том, что по умолчанию вкладки друзья и подписки скрыты в профилях пользователей, хотя в настройках профиля стоит галочка на "Показывать вкладку", но если мы выводим дополнительную ссылочку в персональное меню такого типа - users/{user.id}/subscriptions, то нас перекидывает на не существующую страницу.

Вопрос, как исправить данное недоразуменее?
Может надо в каком то файле открыть по умолчанию вкладки "Друзья" и "Подписки" и тогда отобразятся надписи что "Нет друзей", "Нет подписок"?

Вот тут есть ответ на твой вопрос
https://instantcms.ru/forum/thread29499-1.html#287159
Реклама
cms
Посетитель
no avatar
Сообщений: 78
Может логичнее было бы скрывать этот пункт меню при отсутствии информации для вывода? Нет друзей и подписок не выводится и сам пункт.
Посетитель
small user social cms
МедальПочетный донор проекта
Сообщений: 643
DrDooM, спасибо большое, буду пробовать!
Посетитель
small user social cms
Медаль
Сообщений: 993
@Demonstrator:
Может логичнее было бы скрывать этот пункт меню при отсутствии информации для вывода?

Логичнее, а как это реализовать?
Самые дешевые и быстрые VPS | Выгодный перенос доменов
Посетитель
small user social cms
Медаль
Сообщений: 106
Андрей:

@Demonstrator:
Может логичнее было бы скрывать этот пункт меню при отсутствии информации для вывода?

Логичнее, а как это реализовать?

Вам не надо ни чего реализовывать, кнопки появляются автоматом при наличии данных, а если их прикручивать насильно, то способ указанный мною выше поможет
Посетитель
small user social cms
Медаль
Сообщений: 993
DrDooM:
указанный мною выше поможет

Я читал про ваш способ. Если честно понял до сюда:

Далее идем в файл profile_friends.php и добавляем переменные

Код PHP:
  1. ]$friends = $this->model->getFriendsCount($profile['id']);
Код PHP:
  1. $users = $this->cms_user->id;
Комментируем строку проверки наличия друзей и вывода 404

Переменные рендерим в шаблон.

Итог: юзер заходя в друзья видит сообщение нет друзей и кнопку перенаправление на поиск людей. А юзеры которые ручками попытаются поменять свой id в адресной строке на другой при этом находясь на странице друзья увидят сообщение что у этого пользователя нет друзей. Может кто то добавит конструктивной критики? :)
Редактировалось: 1 раз (Последний: 12 декабря 2018 в 19:46)
Самые дешевые и быстрые VPS | Выгодный перенос доменов
Посетитель
small user social cms
Медаль
Сообщений: 106
Андрей:
Я читал про ваш способ. Если честно понял до сюда:
Это был общий принцип работы способа, на самом деле я уже давно переделал эти костыли, теперь достаточно в файле profile_friends.tpl.php заменить все что там было на:
Код PHP:
  1.  
  2. <?php
  3. $this->setPageTitle($tab['title'], $profile['nickname']);
  4. $this->setPageDescription($profile['nickname'].' — '.$tab['title']);
  5. $this->addBreadcrumb(LANG_USERS, $this->href_to(''));
  6. $this->addBreadcrumb($profile['nickname'], $this->href_to($profile['id']));
  7. $this->addBreadcrumb($tab['title']);
  8. ?>
  9.  
  10. <?php
  11. $users = cmsUser::getInstance();
  12. $users_id = $users->id;
  13. $friends = cmsCore::getModel('users');
  14. $friends_id = $friends->getFriendsCount($profile['id']);
  15. ?>
  16.  
  17. <?php if (!$friends_id) { ?>
  18. <?php if ($users_id == $profile['id']) { ?>
  19. <div class="friend_notice"><?php echo 'У вас нет друзей' ?></div>
  20. <?php } else { ?>
  21. <div class="friend_notice"><?php echo 'У пользователя нет друзей' ?></div>
  22. <?php }?>
  23. <?php } ?>
  24.  
  25. <?php if ($friends_id) { ?>
  26. <div id="user_profile_header">
  27. <?php $this->renderChild('profile_header', array('profile'=>$profile, 'tabs'=>$tabs)); ?>
  28. </div>
  29. <div id="user_content_list"><?php echo $profiles_list_html; ?></div>
  30. <?php } ?>
  31.  
получаем при заходе в свои друзья сообщение "У вас нет друзей" и если заходим к кому то у кого тоже нет друзей "У пользователя нет друзей"
И да, что бы все было без ошибок в файле system\controllers\users\actions\profile_friends, 11 строку заменить на:
Код PHP:
  1.  
  2. if (!isset($this->tabs['friends'])){ error_reporting(0);}
  3.  
вроде бы ни чего не забыл.
Посетитель
small user social cms
Медаль
Сообщений: 993
DrDooM:
вроде бы ни чего не забыл.

+++ Спасибо
Самые дешевые и быстрые VPS | Выгодный перенос доменов
В начало страницы
Предыдущая темаСледующая тема Перейти на форум:
Быстрый ответ
Чтобы писать на форуме, зарегистрируйтесь или авторизуйтесь.