Запрет просмотра чужих профилей

#1 25 сентября 2014 в 12:26
Версия 1.10.3
Задача:
1. Обычный пользователь может просмотреть только свой профиль, если даже знает логин другого пользователя, он вбивает его в адресную строку /users/any_login и его редиректит на главную.
2. Админ может смотреть любые профили.
3. При заходе на /users редирект на главную.

Буду признателен за помощь hoho
#2 25 сентября 2014 в 12:40
Ну я бы попробовал это сделать так.
1. шаблон com_users_profile.tpl
в самом начале вставить
  1. {if $myprofile || $is_admin}
в самом конце вставить
  1. {else} здесь либо текст который увидит пользователь зашедший не на свою страницу, либо код редиректа на главную {/if}
2. выше предусмотрено.
3. Удалить всё из com_users_view.tpl и вставить код редиректа на главную
#3 25 сентября 2014 в 12:48
Но вообще то если делать такое, то нужно переработать весь шаблон и везде где есть ссылка на профиль пользователя, делать ее просты текстом, либо тоже разделять "мой профиль / админ" = ссылка, чужой профиль = просто ник без ссылки. А иначе, смысл в кликабельных аватарах на форуме и никах везде где есть, если клик будет вести на главную.
Или плагин какой то может быть, если это можно сделать плагином.
#4 25 сентября 2014 в 12:53
Нил, спасибо! Работает smile

По поводу ссылок на профили. На сайте нет социальной активности: никаких форумов, комментариев, записей, блогов.
#5 26 сентября 2014 в 09:13
Вопрос вдогонку: как сделать, чтобы поиск пользователей был доступен только админу, другие же пользователи со страницы /users, как и прежде, редиректятся на главную?

Поставил конструкцию
  1. {if $is_admin}
  2. поиск
  3. {else}
  4. редирект
  5. {/if}
в файл com_users_view.tpl, но выводится только часть для редиректа независимо от того, админ или нет.
#6 26 сентября 2014 в 16:34
попробуйте добавить в
components/users/fronted.php

assign('is_admin', $inUser->is_admin)->

где то в куске который начинается с

cmsPage::initTemplate('components', 'com_users_view')->
#7 29 сентября 2014 в 00:28
А можно вот этот код
{if $myprofile || $is_admin}

поместить в .php файл.
На сколько я знаю это только для .tpl файлов?
#8 29 сентября 2014 в 00:29
Может быть вот этот код: assign('is_admin', $inUser->is_admin)->
будет заменой в Php?
#9 12 октября 2014 в 15:31
Кто нибудь наконец подскажет?)
Нужно код {if $myprofile} {/if}
Прописать в php файл. Как это сделать? Если копировать из .tpl файла, получается криво
#10 12 октября 2014 в 16:24

{if $myprofile} {/if}

Доротея
  1. if ($myprofile): тут пишем что хотели натворить endif;
или
  1. if ($myprofile){ тут пишем что хотели натворить}
#11 12 октября 2014 в 20:13
А закрывать {/if} получается не нужно в php да?
#12 12 октября 2014 в 21:35
Нужно, я вам уже показал — это или "endif;" или "}". И не забудьте про тег <?php перед началом кода php
Вы не можете отвечать в этой теме.
Войдите или зарегистрируйтесь, чтобы писать на форуме.
Используя этот сайт, вы соглашаетесь с тем, что мы используем файлы cookie.