-6.38
Рейтинг
0.46
Сила
  • avatar AlikMis
  • 0
\www\classes\actions\ActionProfile.class.php

$this->Viewer_AssignAjax('aLastTopics', $this->Topic_GetLastTopicsByUserId($this->oUserProfile->getId(),60*60*24*365,5));

\templates\skin\synio\actions\ActionProfile\whois.tpl

сюда вывод, код можно взять из любого шаблона со списком топиков, используя массив $aLastTopics
  • avatar netlanc
  • 0
в classes\actions\ActionAjax.class.php в функции EventVoteUser, EventVoteComment, EventVoteTopic, EventVoteBlog, после проверки авторизации
/**
		 * Пользователь авторизован?
		 */
		if (!$this->oUserCurrent) {
			$this->Message_AddErrorSingle($this->Lang_Get('need_authorization'),$this->Lang_Get('error'));
			return;
		}

добавить код
if (getRequest('value',null,'post')==-1){
$this->Message_AddErrorSingle('Мы не голосуем в минус',$this->Lang_Get('error'));
return;
}
отличное предложение, только не плагином, а опционально в конфиг движка.

для себя уже давно использую костыль (для05x, на 04x не пробовал): файл \engine\lib\external\Smarty\libs\sysplugins\smarty_internal_templatecompilerbase.php

найти строку (примерно 58)
$template_header .= "         compiled from \"" . $this->template->getTemplateFilepath() . "\" */ ?>\n";
после нее добавить
$template_header .= "<!-- Start " . $this->template->getTemplateFilepath() . " -->";
и найти строки (примерно 86)
if ($template->suppressFileDependency) {
            $template->compiled_template = $_compiled_code;
        } else {
            $template->compiled_template = $template_header . $template->createPropertyHeader() . $_compiled_code;
        }
и изменить на
if ($template->suppressFileDependency) {
            $template->compiled_template = $_compiled_code."<!-- End " . $this->template->getTemplateFilepath() . " -->";
        } else {
            $template->compiled_template = $template_header . $template->createPropertyHeader() . $_compiled_code."<!-- End " . $this->template->getTemplateFilepath() . " -->";
        }

на идеальность решения конечно не претендую, НО ОЧЕНЬ помогает при верстке.
ну и вынести все это настройкой в конфиг было бы идеальным решением
$phone_array = array('iphone', 'pocket', 'palm', 'windows ce', 'windowsce', 'cellphone', 'opera mobi', 'ipod', 'small', 'sharp', 'sonyericsson', 'symbian', 'opera mini', 'nokia', 'htc_', 'samsung', 'motorola', 'smartphone', 'blackberry', 'playstation portable', 'tablet browser');
$agent = strtolower( $_SERVER['HTTP_USER_AGENT'] );

foreach ($phone_array as $value) {
        if ( strpos($agent, $value) !== false ) {
                $config['view']['skin'] = 'Название мобильного шаблона';  
                break;
        } else {
                $config['view']['skin'] = 'developer';  
        }
}
$phone_array = array('iphone', 'pocket', 'palm', 'windows ce', 'windowsce', 'cellphone', 'opera mobi', 'ipod', 'small', 'sharp', 'sonyericsson', 'symbian', 'opera mini', 'nokia', 'htc_', 'samsung', 'motorola', 'smartphone', 'blackberry', 'playstation portable', 'tablet browser');
$agent = strtolower( $_SERVER['HTTP_USER_AGENT'] );

foreach ($phone_array as $value) {
	if ( strpos($agent, $value) !== false ) {
		$config['IsMobile'] = 'true';
		break;
	} else {
		$config['IsMobile'] = 'false'; 
	}
}
  • avatar kerby
  • 0
Хук должен выглядеть так:
public function TopicShow($aParams)
{
	$oTopic=$aParams['oTopic'];
	
	// Проверяем авторизован ли юзер, если нет - обновляем статистику
	$do_count_visits=(!$this->User_IsAuthorization());
	if (!$do_count_visits)
	{
		// Если авторизован, проверяем не он ли стартер топика
		$oUser=$this->User_GetUserCurrent();
		$do_count_visits=$oUser->getId()!=$oTopic->getUserId();
	}

	if ($do_count_visits)
	{
		$oTopic->setCountRead($oTopic->getCountRead()+1);
		$this->Topic_UpdateTopic($oTopic);

	}
}


Единственное, тут ни где не учитывается посещение сайта поисковыми машинами, но, в принципе, этим можно пренебречь при большом количестве посещений :)