Sidebar

Добавил страницу в профили пользователя, через плагин, подскажите каким образом вывести туда sidebar профиля… Пытался через конфиг, но не получилось, есть еще способы?

13 комментариев

avatar
Если сайдбар не подцепился, то в tpl страницы в самом верху, удалить:

{assign var="noSidebar" value=true}


Или можно поменять на:

{assign var="sidebarPosition" value='left'}


После чего выводить блок через конфиг по аналогии с другими, только поменять экшен или ивент. Подробней про конфиг есть в поиске.
avatar
я подцепил последний вариант, в конфиге добавлял в rule_profile в action массив экшен этой страницы, и указывал даже такой путь шаблона.
___path.root.server___/templates/skin/___view.skin___/actions/ActionProfile/sidebar.tpl

Но после этих дел страница совосем не загружается, только header и foter.
Вот и решил узнать, может что-то забыл?
avatar
даже header и foter уже не подгружается… чистый background…
avatar
Попытался создать даже отдельное правило
$config['block']['rule_profile1'] = array(
	'action'  => array( 'pages_settings'),
	'blocks'  => array( 'right' => array('___path.root.server___/templates/skin/___view.skin___/actions/ActionProfile/sidebar.tpl') ),
);

Эффект тот-же…
avatar
Ругается на эту ошибку
<b>Fatal error</b>:  Call to a member function isOnline() on a non-object 
avatar
Потому что вы не правильно подключаете. pages_settings точно так страница называется в URL? site.com/pages_settings? Попробуйте:

$config['block']['rule_profile1'] = array(
	'action'  => array( 'pages_settings'),
	'blocks'  => array( 'right' => array('actions/ActionProfile/sidebar.tpl') ),
);
avatar
да без разницы, хоть так, хоть этак, ошибка та-же…
avatar
И покажите код tpl sidebar.tpl.
avatar
{hook run='profile_sidebar_begin' oUserProfile=$oUserProfile}
		<div class="profile-photo-wrapper">
			<div class="status {if $oUserProfile->isOnline()}status-online{else}status-offline{/if}">{if $oUserProfile->isOnline()}{$aLang.user_status_online}{else}{$aLang.user_status_offline}{/if}</div>
			<a href="{$oUserProfile->getUserWebPath()}"><img src="{$oUserProfile->getProfileFotoPath()}" alt="photo" class="profile-photo" id="foto-img" /></a>
		</div>
avatar
Акшен pages_settings не знает isOnline профайла, нужно в него добавить эту функцию, или создать отдельные блок, который будет ее обрабатывать. Так же oUserProfile относится к профилю пользователя, а у вас экшен pages_settings к нему никакого отношения не имеет.
avatar
это как бы понимаю, но вопрос как это сделать я пытался добавил isOnline в акшен, но он никак не реагирует…
avatar
Для начала надо создать новый блок, подключить в конфиге, заменить в нем oUserProfile на oUserCurrent, должно все заработать, за исключением количества друзей, еще каких то счетчиков.
avatar
Только так
Только зарегистрированные и авторизованные пользователи могут оставлять комментарии.