Форум » Система построения сайтов » Темы оформления » Хак "Весёлый профиль" для профиля зарегистрированного пользователя
Открыть Ответить

Хак "Весёлый профиль" для профиля зарегистрированного пользователя

27.07.2021 09:40:00 28.07.2021 21:35:23

Небольшая инструкция, как сделать профиль зарегистрированного пользователя более позитивным.

Инструкция в два шага:

  1. Устанавливаем шрифт Font Awesome.
  2. Модифицируем функцию navi().

— 1 —


Заходим на сайт https://fontawesome.com/v5.15/how-to-use/on-the-web/setup/hosting-font-awesome-yourself и скачиваем шрифт.
Из скаченного архива нам потребуется папка [b]webfonts [/b] и файл css/[b]all.css[/b].
Папку webfonts закачиваем в каталог font необходимой темы ( например, default).
Сюда же добавляем файл all.css.
Далее открываем в выбранной теме файл [b]style.css[/b] и добавляем в него строку @import url(fonts/all.css);. В итоге содержимое будет выглядеть примерно таким образом:
@import url(css/pure.css);
@import url(css/grids-responsive.css);
@import url(css/custom.css);
@import url(fonts/all.css);


— 2 —


Теперь нам нужно модифицировать навигацию в профиле.
Открываем файл user.php, что располагается в папке function.
Находим в нём строку [b]# User account navigation[/b], и далее заменяем функцию которая там на вот этот код:

function navi() {
	global $conf, $conffav, $confpr;
	$userinfo = getusrinfo();
	$uid = intval($userinfo['user_id']);
	if ($conf['name'] != 'account') get_lang('account');
	
    $color=array();
    $icon=array();
	
    $title[] = _HOME;
	$ititle[] = _RETURNACCOUNT;
	$link[] = 'index.php?name=account';
	$img[] = 'account/home.png';
    $color[]='#ec5237';
    $icon[]='fas fa-house-user';
	
	if ($conf['forum_link']) {
		$title[] = 'Форум&nbsp;<i class="fas fa-share" style="color:#607d8b"></i>';
		$ititle[] = _ACCOUNT;
		$link[] = 'forum/'.$conf['forum_link'];
		$img[] = 'account/account.png';
            $color[]='#607d8b';
            $icon[]='fab fa-wpforms';
	}
	if ($conf['forum_mess']) {
		$title[] = _MESSAGES.'&nbsp;<i class="fas fa-share" style="color:#607d8b"></i>';
		$ititle[] = _PRIVAT;
		$link[] = 'forum/'.$conf['forum_mess'];
		$img[] = 'account/messages.png';
            $color[]='#607d8b';
            $icon[]='fas fa-envelope-open-text';
	}
	if ($conf['forum']) {
		$title[] = _FORUM;
		$ititle[] = _FORUM;
		$link[] = 'forum/index.php';
		$img[] = 'account/forum.png';//
            $color[]='#3f51b5';
            $icon[]='fas fa-user-friends';
	}
	if ($confpr['act']) {
		$title[] = _MESSAGES;
		$ititle[] = _PRIVAT;
		$link[] = 'index.php?name=account&amp;op=privat';
		$img[] = 'account/messages.png'; 
            $color[]='#2196f3';
            $icon[]='fas fa-envelope-open-text';
	}
	if (is_active('clients') && is_mod_group('clients')) {
		get_lang('clients');
		$title[] = _PRODUCTS;
		$ititle[] = _PRODUCTSINFO;
		$link[] = 'index.php?name=clients';
		$img[] = 'account/product.png';//
            $color[]='#ff9800';
            $icon[]='fas fa-shopping-cart';
	}
	if (is_active('shop')) {
		get_lang('shop');
		$title[] = _CLIENT;
		$ititle[] = _CLIENTINFO;
		$link[] = 'index.php?name=shop&amp;op=clients';
		$img[] = 'account/clients.png';
            $color[]='#009688';
            $icon[]='fas fa-user-tag';
		include('config/config_shop.php');
		if ($confso['part'] == 1) {
			$title[] = _PARTNER;
			$ititle[] = _PARTNERINFO;
			$link[] = 'index.php?name=shop&amp;op=partners';
			$img[] = 'account/partners.png';
                    $color[]='#795548';
                    $icon[]='far fa-handshake';
		}
	}
	if (is_active('help') && is_mod_group('help')) {
		get_lang('help');
		$title[] = _HELP;
		$ititle[] = _HELPINFO;
		$link[] = 'index.php?name=help';
		$img[] = 'account/help.png';
            $color[]='#8bc34a';
            $icon[]='far fa-question-circle';
	}
	if ($conffav['favact']) {
		$title[] = _FAVORITES;
		$ititle[] = _FAVORITES;
		$link[] = 'index.php?name=account&amp;op=favorites';
		$img[] = 'account/favorites.png';
            $color[]='#f06292';
            $icon[]='fas fa-star';
	}
	$title[] = _INFO;
	$ititle[] = _PERSONALINFO;
	$link[] = 'index.php?name=account&amp;op=view&amp;id='.$uid;
	$img[] = 'account/account.png';
    $color[]='#9c27b0';
    $icon[]='fas fa-address-card';
	
	$title[] = _CHANGE;
	$ititle[] = _CHANGE;
	$link[] = 'index.php?name=account&amp;op=edithome';
	$img[] = 'account/preferences.png';
    $color[]='#673ab7';
    $icon[]='fas fa-tools';
	
	$title[] = _LOGOUT;
	$ititle[] = _LOGOUT;
	$link[] = 'index.php?name=account&amp;op=logout';
	$img[] = 'account/exit.png';
    $color[]='#000000';
    $icon[]='fas fa-sign-out-alt';
	
	$cont = '<div style="text-align: center;">';
	foreach ($title as $key => $val) {
		$cont .= '
        <span style="display: inline-block; margin: 0.5rem 1rem">
            <a href="'.$link[$key].'" title="'.$ititle[$key].'" style="text-decoration: none;">';
            if($icon[$key]){
                $color2= ($color[$key]) ? $color[$key] : 'rgb(16 15 15 / 75%)'; 
                $cont .= '<i class="'.$icon[$key].' fa-3x" style="color: '.$color2.'; display: block;"></i>';
            }else{
                $cont .='<img src="'.img_find($img[$key]).'" alt="'.$ititle[$key].'" title="'.$ititle[$key].'">';     
            }
            $cont .= '</a>
            <a href="'.$link[$key].'" title="'.$ititle[$key].'">'.$title[$key].'</a>
       </span>';
	}
    $cont.='</div>';
	return tpl_eval('open').$cont.tpl_eval('close');
}


В переменных [b]color[/b] и [b]icon[/b] можно установить свои цвета или иконки.
Доступные иконки и их кода можно подсмотреть тут:
https://fontawesome.com/v5.15/icons?d=listing&p=2&m=free

Все иконки, которые будут заменены:


Все иконки которые будут заменены

Текущий (рабочий) вариант:


Текущий рабочий вариант

Мобильная версия:


Мобильная версия

[i]ПС: Для SLAED CMS 6.2 Pro[/i]
Группа
Клиент
Пункты
32360
Регистрация
06.05.2011
Пол
Мужчина
Предупреждения
Нет
olevpa
olevpa
4.02

4.02

olevpa, интересное решение, спасибо!

На сколько востребован данный функционал?
Может быть есть смысл, в конфигурациях профиля предусмотреть возможность добавления администратором дополнительных логотипов с ссылкой на сторонние модули или сервисы?


О сколько нам открытий чудных,
Готовит просвещенья дух,
И опыт, сын ошибок трудных,
И гений, парадоксов друг...
Группа
Клиент
Пункты
39379
Регистрация
30.04.2005
Пол
Мужчина
Из
Germany
Предупреждения
Нет
SLAED CMS
SLAED CMS
3.24

3.24

olevpa, интересное решение, спасибо!

На сколько востребован данный функционал?
Может быть есть смысл, в конфигурациях профиля предусмотреть возможность добавления администратором дополнительных логотипов с ссылкой на сторонние модули или сервисы?


Мне кажется данный функционал будет повторять «фавориты» и/или «собственное меню». В движке очень много возможностей. Просто они не всегда очевидны с первого взгляда.

Группа
Клиент
Пункты
32360
Регистрация
06.05.2011
Пол
Мужчина
Предупреждения
Нет
olevpa
olevpa
4.02

4.02

Имел в виду добавление дополнительных полей администратором проекта из панели администратора системой. В случае применения стороннего модуля исключительно для пользователей.


О сколько нам открытий чудных,
Готовит просвещенья дух,
И опыт, сын ошибок трудных,
И гений, парадоксов друг...
Группа
Клиент
Пункты
39379
Регистрация
30.04.2005
Пол
Мужчина
Из
Germany
Предупреждения
Нет
SLAED CMS
SLAED CMS
3.24

3.24

Имел в виду добавление дополнительных полей администратором проекта из панели администратора системой. В случае применения стороннего модуля исключительно для пользователей.


Не думаю, что такая "разрисовка" сильно востребована. А если кому-то и будет нужна, то скорее для специфического проекта. А в таких проектах знающие код так и так будут.

Группа
Клиент
Пункты
32360
Регистрация
06.05.2011
Пол
Мужчина
Предупреждения
Нет
olevpa
olevpa
4.02

4.02

Открыть Ответить
Хотите опробовать SLAED CMS в действии?
Идеи и предложения
Обратная связь