Этот хак позволяет пользователю настроить разрешение показывать свой профиль определенным группам.
Постановка задачи
Как известно, стандартные настройки icms Первой ветки позволяют настроить показ своего профиля либо всем, либо только зарегистрированным, либо только друзьям. На некоторых сайтах, которые мне заказывали, это было маловато, но как-то обходилось.
Однако мне заказали сайт, где в ТЗ было прямо прописано ограничивать показ профиля определенным группам. Например, на сайте есть группа Ламеры и есть группа Чайники. Требовалось сделать так, чтобы Ламеры могли увидеть профиль, а Чайники — нет, если пользователь так возжелал.
Вы же меня знаете. Я давно отношусь к Первой ветке Инстанта как к конструктору, из которого можно сделать все что хочешь. Попросили меня сделать такой хак — я сделал, а теперь делюсь с вами.
Я отлично понимаю, что хаки — это зло. Зло в том смысле, что доступны только квалифицированным пользователям, которые хотя бы умеют смотреть код. Но, к сожалению, данную работу оформить в виде плагина не получается. Ну никак. Сорри.
Как выглядит сайт после применения хака
1. В админке компонента «Профили пользователя» появилась дополнительная регулировка:
Эта регулировка админа.
Если радиокнопка стоит на Да, то в Профиле пользователя, который запрещен к показу, выводится аватар, который юзер загрузил в свой профиль и никнейм этого юзера. По сути, это стандартная настройка движка.
Если радиокнопка стоит на Нет, то в запрещенном к показу профиле, вместо аватара пользователя, выводится стандартная картинка Инстанта, которая показывается, когда юзер еще не загрузил аватар. Аналогично, вместо никнейма (часто это бывает Фамилия, Имя, Отчество) выводится логин юзера, под которым он зарегистрировался на сайте. Такая вот конспирация ))))
2. В Профиле пользователя (Нажать под профилем шестеренку, закладка Приватность) выпадающий список заменен на радиокнопки. В остальном стандартный функционал движка сохранен:
Однако, как мы видим, появилась еще одна настройка «Перечисленным группам»:
Если нажать на нее, появится выпадающий список, с перечнем созданных на сайте групп. Удерживая клавишу Ctrl, можно выбрать несколько групп. Если пользователь не включил показ своего профиля админам, пусть обломится — админы все равно увидят его профиль. Хе-хе.
ЗАМЕЧАНИЕ. Поскольку хак ограничивает показ профиля, может случиться так, что пользователь не сможет зайти в собственный профиль. Чтобы обойти это ограничение (свой профиль пользователю посмотреть все-таки нужно) я добавил одну строчку в ядро (файл core/cms.php). Трогать ядро — последнее дело, я это отлично понимаю. Эта строчка содержит исключение для компонента users, у которого теперь хакнутая система показа профиля. Пришлось на это пойти, чтобы пользователь свой профиль мог все-таки увидеть.
Совместимость с версиями
Хак тестировался на 1.10.4. Просмотрев код буквально вчера выложенной версии 1.10.5, я пришел к выводу, что хак можно использовать и на этой версии, с одним ограничением: файл components/users/frontend.php придется смержить — это обязательное требование. Для версии 1.10.6 хак мною не тестировался, за отсутствием у меня времени.
ЗАМЕЧАНИЕ ДЛЯ БЛОНДИНОК. Смержить — это запустить программу сравнения файлов и папок. Таких программ множество. Например, могу порекомендовать бесплатную программу WinMerge. Есть и более продвинутый вариант Araxis Merge, но она платная. Даже у Великого и Ужасного Notepad ++ есть плагин Compare, позволяющий сравнить два файла ( в 90% случаев им и пользуюсь). Пользуйтесь тем, что больше нравится — суть одна. Хотя, конечно, блондинкам нечего в ядро лазить, кыш отсюда!
Изменяемые файлы
templates/_default_/components/com_users_edit_profile.tpl
templates/_default_/components/com_users_not_allow.tpl
languages/ru/admin/components/users.php
languages/ru/components/users.php
components/users/frontend.php
components/users/model.php
core/cms.php
admin/components/users/backend.php
Установка хака на сайт
1. Естественно, в обязательном порядке (и под угрозой расстрела в случае невыполнения) сделайте бекап файлов и снимите с базы дамп.
2. Распакуйте архив в любое место.
3. В архиве, кроме папок, находится файлик с инструкцией и три картинки. В том случае, если Вы уверены, что в перечисленных файлах нет других хаков, можете заливать содержимое архива в корень сайта с заменой, кроме, естественно, readme.txt и картинок. Если Вы не уверены, то перечисленные файлы следует смержить.
4. Если на Вашем сайте шаблон, отличный от дефолтного, то два файла:
templates/_default_/components/com_users_edit_profile.tpl
templates/_default_/components/com_users_not_allow.tpl
следует перекинуть из дефолтного шаблона в текущий.
5. В инструкции лежит текст sql-запроса, который нужно сделать к базе, чтобы подключить хак. Сюда дублирую этот запрос:
ALTER TABLE `cms_user_profiles` ADD `groups_view` VARCHAR( 300 ) CHARACTER SET utf8 COLLATE utf8_general_ci NOT NULL AFTER `allow_who` ;
6. Наслаждаться.
Как скачать.
Скачать можно:
без показа профиля самому пользователю,
показывать профиль самому пользователю,
даром, то есть бесплатно.
Куда говорить спасибо
Как водится, кармы добавьте :)
Удачи в сайтостроении!
Реклама #
qwest 10 лет назад #
Странник 10 лет назад #
DELLитант 9 лет назад #
Странник 9 лет назад #
Олег Васильевич я 9 лет назад #
Странник 9 лет назад #
Олег Васильевич я 9 лет назад #
mullo 9 лет назад #
Странник 9 лет назад #
pikasso 9 лет назад #
Странник 9 лет назад #
Доротея 9 лет назад #
Странник 9 лет назад #
Майкл 9 лет назад #
Странник 9 лет назад #
Странник 9 лет назад #
Майкл 9 лет назад #
Странник 9 лет назад #
abasia 5 лет назад #
abasia 6 лет назад #