-3.49
Рейтинг
0.61
Сила

Выделение (class="active") под-меню статической страницы. (решение найдено)

При помощи плагина Page добавил статическую страницу Мастерская, а в ней 2-е под-страницы.
Проблема состоит в том, что эти под-меню не делаются активными по переходу на них.

Что бы эти 2-е подстраницы отобразились я в header_nav.tpl добавил вот такой код

{if $oUserCurrent and ($sAction=='page' and $sEvent=='workshop')}		
			<ul class="menu">
				<li {if $sMenuItemSelect=='page/workshop/forks'}class="active"{/if}>
					<a href="{router page='page/workshop/forks'}">{$aLang.forks}</a>
				</li>
				<li {if $sMenuItemSelect=='page/workshop/rearshok'}class="active"{/if}>
					<a href="{router page='page/workshop/rearshok'}">{$aLang.rearshok}</a>
				</li>				
			</ul>					
		{/if}


Все замечательно, но при выборе одного из этих под-меню оно не выделяется. Причина понятна, проблема с $sMenuItemSelect. Но где её правильно инициализировать, что бы её можно было использовать в моем случае.

Или, если есть, буду рад другому предложению. Может быть есть какая-то глобальная переменная хранящая в себе текущий url?

Заранее спасибо.

Плагин Groups - создаем группы пользователей


По многочисленным просьбам сделал плагин. Позволяет администратору сайта создавать группы и присваивать юзеру определенную группу. В понимании этого плагина, группа — всего лишь красивая надпись под ником пользователя с картинкой 12x12px.
Админка находится по адресу %sitename%/groups/

После активации плагина пропишите в шаблоне whois.tpl строчку
{hook run='user_group' oUserProfile=$oUserProfile}
после
<img src="{$oUserProfile->getProfileAvatarPath(100)}" alt="avatar" class="avatar" />
<p class="nickname">{$oUserProfile->getLogin()}</p>
{if $oUserProfile->getProfileName()}
	<p class="realname">{$oUserProfile->getProfileName()|escape:'html'}</p>		
{/if}


Не забудьте сделать chmod 0777 на папку /plugins/groups/uploads/

UPD
  • Теперь юзеру можно присвоить несколько групп
  • Можно выкинуть юзера из группы
  • Можно изменить порядок групп, в котором они будут выводиться в профиле юзера

Читать дальше →

Форматирование дат (На сайте: 1 год 5 месяцев 6 дней )

Хочу поделится хаком, как выводить дату в таком формате. Для этого необходимо в файл \engine\modules\viewer\plugs\function.date_format.php в function smarty_function_date_format вставить:

if(isset($aParams['day_back'])) {
		require_once('modifier.declension.php');
		$iTimeDelta = round((time()- $iDate)/(60*60*24));
		$year=floor($iTimeDelta/365);
		$mouth=floor(($iTimeDelta%365)/30);
		$day=($iTimeDelta%365)%30;
		$r = "";
		if($year>0) $r = smarty_modifier_declension(
						$year,
						$oEngine->Lang_Get('date_year_back',array('year'=>$year)),
						$oEngine->Lang_GetLang()
					);
		if($mouth>0) $r.= smarty_modifier_declension(
						$mouth,
						$oEngine->Lang_Get('date_mouth_back',array('mouth'=>$mouth)),
						$oEngine->Lang_GetLang()
					); 	
		if($day>0)	$r.= smarty_modifier_declension(
						$day,
						$oEngine->Lang_Get('date_day_back',array('day'=>$day)),
						$oEngine->Lang_GetLang()
					);	
		if($r!=""){
			return $r;
		}
		else return $oEngine->Lang_Get('date_day_back_less');
			
		
	}

В файл \templates\language\russian.php

'date_day_back' => '%%day%% день; %%day%% дня; %%day%% дней',
'date_mouth_back' => '%%mouth%% месяц; %%mouth%% месяца; %%mouth%% месяцев',
'date_year_back' => '%%year%% год; %%year%% года; %%year%% лет',

И при выводе даты прописать {date_format date=$oUserProfile->getDateRegister() day_back=«1»}

Как правильно делать и вставлять новый блок в шаблон LS.

Несколько дней провел в поисках и экспериментах, некоторые вещи удалось понять, на других просто остановился и не могу двинутся дальше.

Что удалось понять:


Читать дальше →

Livestreet: дао разработчика - 2

Первая часть цикла

Дао — это действие, процесс, поток. Чем чаще вы смотрите на код других плагинов, тем больше вы понимаете, как делать свой.
Накачайте плагинов под 0.4.2 и расматривайте, что у них внутри. Без этого вы не сможете начать писать свои плагины.

Я сделал типовой шаблон, из которого удобно делать свои собственные плагины. Располагается он тут:
http://github.com/medar/livestreetplugin
Чтобы скачать его, надо нажать в правом верхнем углу кнопку «Download Source». Желающие могут форкать и вносить изменения.

В файле находится «рыба» плагина с названием abcplugin.
Читать дальше →