Как вывести правильно?
Как сделать, чтобы когда нет друзей и подписок, в персональном меню пользователя отображалась не 404 страница при нажатии на ссылку — "users/{user.id}/subscriptions" и "users/{user.id}/friends", а показывалась страница, что "Нет друзей", "Нет подписок"?
Дело в том, что по умолчанию вкладки друзья и подписки скрыты в профилях пользователей, хотя в настройках профиля стоит галочка на "Показывать вкладку", но если мы выводим дополнительную ссылочку в персональное меню такого типа — users/{user.id}/subscriptions, то нас перекидывает на не существующую страницу.
Вопрос, как исправить данное недоразуменее?
Может надо в каком то файле открыть по умолчанию вкладки "Друзья" и "Подписки" и тогда отобразятся надписи что "Нет друзей", "Нет подписок"?
Приветствую, уважаемое сообщество.
Как сделать, чтобы когда нет друзей и подписок, в персональном меню пользователя отображалась не 404 страница при нажатии на ссылку — "users/{user.id}/subscriptions" и "users/{user.id}/friends", а показывалась страница, что "Нет друзей", "Нет подписок"?
Дело в том, что по умолчанию вкладки друзья и подписки скрыты в профилях пользователей, хотя в настройках профиля стоит галочка на "Показывать вкладку", но если мы выводим дополнительную ссылочку в персональное меню такого типа — users/{user.id}/subscriptions, то нас перекидывает на не существующую страницу.
Вопрос, как исправить данное недоразуменее?
Может надо в каком то файле открыть по умолчанию вкладки "Друзья" и "Подписки" и тогда отобразятся надписи что "Нет друзей", "Нет подписок"?
Вот тут есть ответ на твой вопрос
/forum/thread29499-1.html#287159
Может логичнее было бы скрывать этот пункт меню при отсутствии информации для вывода?
Логичнее, а как это реализовать?
Может логичнее было бы скрывать этот пункт меню при отсутствии информации для вывода?
Логичнее, а как это реализовать?
Вам не надо ни чего реализовывать, кнопки появляются автоматом при наличии данных, а если их прикручивать насильно, то способ указанный мною выше поможет
указанный мною выше поможет
Я читал про ваш способ. Если честно понял до сюда:
Далее идем в файл profile_friends.php и добавляем переменные
]$friends = $this->model->getFriendsCount($profile['id']);Комментируем строку проверки наличия друзей и вывода 404
$users = $this->cms_user->id;
Переменные рендерим в шаблон.
Итог: юзер заходя в друзья видит сообщение нет друзей и кнопку перенаправление на поиск людей. А юзеры которые ручками попытаются поменять свой id в адресной строке на другой при этом находясь на странице друзья увидят сообщение что у этого пользователя нет друзей. Может кто то добавит конструктивной критики? :)
Это был общий принцип работы способа, на самом деле я уже давно переделал эти костыли, теперь достаточно в файле profile_friends.tpl.php заменить все что там было на:Я читал про ваш способ. Если честно понял до сюда:
<?php $this->setPageTitle($tab['title'], $profile['nickname']); $this->setPageDescription($profile['nickname'].' — '.$tab['title']); $this->addBreadcrumb(LANG_USERS, $this->href_to('')); $this->addBreadcrumb($profile['nickname'], $this->href_to($profile['id'])); $this->addBreadcrumb($tab['title']); ?> <?php $users = cmsUser::getInstance(); $users_id = $users->id; $friends = cmsCore::getModel('users'); $friends_id = $friends->getFriendsCount($profile['id']); ?> <?php if (!$friends_id) { ?> <?php if ($users_id == $profile['id']) { ?> <div class="friend_notice"><?php echo 'У вас нет друзей' ?></div> <?php } else { ?> <div class="friend_notice"><?php echo 'У пользователя нет друзей' ?></div> <?php }?> <?php } ?> <?php if ($friends_id) { ?> <div id="user_profile_header"> </div> <div id="user_content_list"><?php echo $profiles_list_html; ?></div> <?php } ?>
И да, что бы все было без ошибок в файле system\controllers\users\actions\profile_friends, 11 строку заменить на:
вроде бы ни чего не забыл.
+++ Спасибо