+2.75
Рейтинг
11.12
Сила

Виктор

В файле /classes/modules/blog/mapper/Blog.mapper.class.php ищем функцию:
public function GetBlogsRating(&$iCount,$iCurrPage,$iPerPage) {		
		$sql = "SELECT 
					b.blog_id													
				FROM 
					".Config::Get('db.table.blog')." as b 									 
				WHERE 									
					b.blog_type<>'personal'									
				ORDER by b.blog_rating desc
				LIMIT ?d, ?d 	";		
		$aReturn=array();
		if ($aRows=$this->oDb->selectPage($iCount,$sql,($iCurrPage-1)*$iPerPage, $iPerPage)) {
			foreach ($aRows as $aRow) {
				$aReturn[]=$aRow['blog_id'];
			}
		}
		return $aReturn;
	}

Ищем в ней строку:
ORDER by b.blog_rating desc


Заменяем на

ORDER by b.blog_title asc


Чистим кеш и радуемся.
на скорую руку…
в \include\ajax\voteTopic.php после кода
if ($oEngine->Vote_AddVote($oTopicVote) and $oEngine->Topic_UpdateTopic($oTopic)) {

добавить
$oBlog=$oEngine->Blog_GetBlogById($oTopic->getBlogId());
    						if (in_array($iValue,array('1','-1'))) {
    							$oBlogVote=Engine::GetEntity('Vote');
    							$oBlogVote->setTargetId($oBlog->getId());
    							$oBlogVote->setTargetType('blog');
    							$oBlogVote->setVoterId($oUserCurrent->getId());
    							$oBlogVote->setDirection($iValue);
    							$oBlogVote->setDate(date("Y-m-d H:i:s"));
    							$iVal=(float)$oEngine->Rating_VoteBlog($oUserCurrent,$oBlog,$iValue);
    							$oBlogVote->setValue($iVal);
    							$oBlog->setCountVote($oBlog->getCountVote()+1);
    							$oEngine->Blog_UpdateBlog($oBlog);
    						}

и советую расчет рейтинга в строчке
$iVal=(float)$oEngine->Rating_VoteBlog($oUserCurrent,$oBlog,$iValue);

придумать свой.

ну и не идеальный вариант не претендую
livestreet.ru/blog/4462.html — нашёл. может стоит это оформить как плагин…
всё, решено. просто добавляем в header_top.tpl
<li {if  $sMenuHeadItemSelect=='blogs'}class="active"{/if}><a href="{router page='blogs'}">Все блоги</a></li>

и в ActionBlogs.class.php меняем
protected $sMenuHeadItemSelect='blog';

на
protected $sMenuHeadItemSelect='blogs';
Вывод надо прикрутить в шаблон header.tpl. У меня до вывода header_nav.tpl стоит вызов моего шаблона ./promo.html


<div id="wrapper" class="{if !$showUpdateButton}update-hide{/if} {if $showWhiteBack}white-back{/if}">
		
	{php}
	if($_SERVER['REQUEST_URI']=="/") {
		include('./promo.html');
	}
	{/php}
	
	{include file=header_nav.tpl}


в promo.html прописан слайдер
<div id="sliderContent">
...
</div>


Соот-но, вместо "..." можно организовать вызов типа
<!--#include file="lastPost.php" -->


А в твоем lastPost.php и делать выборку посл.постов по тому sql-запросу, что я написал. Анонс до можно брать из поля topic_text_short.ls_topic_content (т.е. таблицы ls_topic_content).
Особых проблем не вижу. Я на своем www.relaxrostov.ru использовал nivo-slider2.3 (но у него из-за моей верстки вылезает вправо невидимый div. А поставить Easy Slider 1.5 на LS не удалось: из-за использования mootools у первого timeout сбивался и скорость увеличивалась в 2 раза).

Выводить обычным php-скриптом в

<div id="sliderContent">
</div>

последние топики в виде div или li из БД вообще не проблема: структура известна таблиц, sql-запрос написать непроблема.

$query="SELECT * FROM ls_topic WHERE 1=1 ORDER BY `topic_id` DESC LIMIT 1";

Единственное, что плагины к LS я не пишу.
/classes/modules/comment/mapper/Comment.mapper.class.php
открываем файл и заменяем в 161 строчке (ORDER by comment_id asc;) asc на desc
должно получиться: ORDER by comment_id desc;

в 180 строчке тоже можно заменить
  • avatar Chiffa
  • 0
if(!$this->oUserCurrent){
   			Router::Location(Router::GetPath('index'));
}

$this->SetDefaultEvent($this->oUserCurrent->getLogin());


Как то-так наверно
  • avatar Chiffa
  • 0
$config['router']['config']['action_default']   = 'index';

заменить на
$config['router']['config']['action_default']   = 'profile';
С папку домена третьего уровня new.redsys.ru залить движок. В настройках прописать:
* $config['path']['root']['web']    = 'http://'.$_SERVER['HTTP_HOST'].'/blog';
* $config['path']['root']['server'] = $_SERVER['DOCUMENT_ROOT'].'/blog';
Но тогда записи блога будут по адресу new.redsys.ru/blog/blog/1234.html, что не есть хорошо
поменял
$config['path']['root']['web']    = 'http://new.redsys.ru/blog'.$_SERVER['HTTP_HOST'].'/subdir';
$config['path']['root']['server'] = $_SERVER['DOCUMENT_ROOT'].'/subdir';

не пашед)
/subdir — тут надо вписывать что то или нет?
пробовал по всякому но в ответ таже история)
Если необходимо установить движок в директорию (не корень сайта) то следует сделать так:
* $config['path']['root']['web']    = 'http://'.$_SERVER['HTTP_HOST'].'/subdir';
* $config['path']['root']['server'] = $_SERVER['DOCUMENT_ROOT'].'/subdir';
Если на домен третьего уровня, то оставить всё как есть.
  • avatar Germis
  • 0
Удалите из конфига плагина строчку
Config::Set('router.page.digest', 'PluginDigest_ActionDigest');
  • avatar Rush
  • 0
Спасибо, помогло :)
Итоговый код, если кому понадобится:

#leftcolumn { width: 15%; float: left; margin-left: 1%; margin-top: -6px; }
#content { width: 58%; background: #fff; float: left; padding-top: 20px; padding-bottom: 20px; zoom: 1; }
#sidebar { width: 25%; float: left; margin-left: 1%; margin-top: -6px; }
  • avatar tih
  • 0
В ActionProfile EventWhois добавьте код из ActionMy EventTopics и подключите нужный шаблон. Либо по средством плагина, либо хуками, как крайний вариант прямым редактированием соответствующего акшина.
в style.css добавь
#leftbar {float: left; width:20%;}

потом в header перед
<div id="content" {if $bNoSidebar}style="width:100%;"{/if}>

добавь
<div id="leftbar">	{include file=leftbar.tpl}</div>	


далее создай файл leftbar.tpl и туда пиши что хочешь
Вообщем сам разобрался с плагином, предлагаю примерный вариант (рабочий) взаимодействия плагина aceBlockManager со всеми имеющимися на данный момент блоками (стандартными блоки, входящие в состав движка, блоками плагина Дополнительные блоки и блоки самого плагина aceBlockManager) Повторяю, данный способ это мой варинат взаимодействия и размещения блоков по приоритетности, у вас он может быть своим. Вообщем вдруг кому пригодится…

/***
 * Параметры модуля
 */

/***
 * Сброс блоков - сбрасывать/не сбрасывать установку блоков, которая 
 * задается во actions
 * 
 * Например:
 *   $config['clear_blocks'] = true; // Сбросить все блоки
 *
 *   $config['clear_blocks'] = false; // Не сбрасывать блоки
 *
 *   $config['clear_blocks'] = array('include'=>'index,blog');
 *     // Cбрасывать блоки, которые заданы в actions index и blog
 *
 *   $config['clear_blocks'] = array('exclude'=>'admin, people, profile');
 *     // Cбрасывать блоки во всех actions, кроме admin и profile
 */
$config['clear_blocks'] = false;

$config['clear_blocks'] = array('include'=>'index,blog,personal_blog'); // Cбрасывать блоки, которые заданы в actions index и blog

$config['blocks'][]=array(
        'block'=>'template', // название блока
        'position'=>'right', // позиционирование блока
        'params'=>array(
        'plugin'=>'aceblockmanager', //
         //'title'=>'title of template block',
         'file'=>'block.google.tpl',
            ),
        'exclude'=>array('admin', 'settings', 'profile', 'talk', 'people', 'top', 'topic', 'question', 'link', 'blog/add', 'adsense', 'blogs', 'my'),
);
$config['blocks'][]=array(
  'block'=>'stream', // название блока
  'position'=>'right', // позиционирование блока
  'include'=>'index,blog,personal_blog', // на каких страницах показывать
  //'exclude'=>'top', // на каких страницах НЕ показывать

);
$config['blocks'][]=array(
  'block'=>'tags', // название блока
  'position'=>'right', // позиционирование блока
  'include'=>'index,blog,personal_blog', // на каких страницах показывать
  //'exclude'=>'top', // на каких страницах НЕ показывать
  
);
$config['blocks'][]=array(
  'block'=>'blogs', // название блока
  'position'=>'right', // позиционирование блока
  'include'=>'index,blog,personal_blog', // на каких страницах показывать
  //'exclude'=>'top', // на каких страницах НЕ показывать
  
);
$config['blocks'][]=array(
        'block'=>'template', // название блока
        'position'=>'right', // позиционирование блока
        'params'=>array(
        'plugin'=>'aceblockmanager', //
            //'title'=>'title of template block',
            //'text'=>'text1 text1 text1',
            //'footer'=>'footer1',
         'file'=>'block.reklama.tpl',
            ),
        'exclude'=>array('admin', 'settings', 'profile', 'talk', 'people', 'top', 'topic', 'question', 'link', 'blog/add', 'adsense', 'blogs', 'my'),
);
$config['blocks'][]=array(
        'block'=>'TopTopics', // название блока
        'position'=>'right', // позиционирование блока
        'params'=>array(
        'plugin'=>'lsblocks', //
         ),
        'include'=>'index', // на каких страницах показывать
);
$config['blocks'][]=array(
        'block'=>'TopUsers', // название блока
        'position'=>'right', // позиционирование блока
        'params'=>array(
        'plugin'=>'lsblocks', //
         ),
        'include'=>'index', // на каких страницах показывать
);
$config['blocks'][]=array(
        'block'=>'usersonline', // название блока
        'position'=>'right', // позиционирование блока
        'params'=>array(
        'plugin'=>'aceblockmanager', //
        'users_max'=>20,    // Максимальное число отображаемых пользователей
        'users_period'=>5*60,  // Время, в течение которого пользователь считается в онлайне (сек)
         'renew_time'=>5,    // Время обновления (сек)
            ),
        'exclude'=>array('admin', 'blog', 'personal_blog', 'settings', 'profile', 'talk', 'people', 'top', 'my', 'topic', 'question', 'link', 'blog/add', 'adsense', 'blogs'),
);

return $config;
// EOF

Таким образом, я использую 2 Template блока, в конфиге они стоят первым и пятым (первый для Google рекламы, пятый для баннера). У вас их может и не быть вовсе или может быть другое использование Template блоков (читаем выше->топик).
Все, что стоит за двумя // можно не вписывать, просто лень было удалять ))
Абсолютно согласен, я сделал именно так:
{if $oUserCurrent and ($sAction==$ROUTE_PAGE_BLOG or $sAction==$ROUTE_PAGE_INDEX or $sAction==$ROUTE_PAGE_NEW or $sAction==$ROUTE_PAGE_PERSONAL_BLOG)}
			<div class="write">
				<a href="{$DIR_WEB_ROOT}/{$ROUTE_PAGE_TOPIC}/add/" alt="{$aLang.topic_create}" title="{$aLang.topic_create}" class="button small">
					<span><em>{$aLang.topic_create}</em></span>
				</a>
			</div>
            {elseif $sAction==$ROUTE_PAGE_BLOG or $sAction==$ROUTE_PAGE_INDEX or $sAction==$ROUTE_PAGE_NEW or $sAction==$ROUTE_PAGE_PERSONAL_BLOG or $sAction==$ROUTE_PAGE_TOP}

                        <div class="write">
                                <a href="{$DIR_WEB_ROOT}/{$ROUTE_PAGE_LOGIN}/" onclick="return showLoginForm();" alt="{$aLang.topic_create}" title="{$aLang.topic_create}" class="button small">
                                        <span><em>{$aLang.topic_create}</em></span>
                                </a>
                        </div>
		{/if}

т.е. прописал не
href="{$DIR_WEB_ROOT}/{$ROUTE_PAGE_REGISTRATION}/"
, а
href="{$DIR_WEB_ROOT}/{$ROUTE_PAGE_LOGIN}/" onclick="return showLoginForm();"

  • avatar Mmka
  • 0
В header_top.tpl (куда именно вставлять я надеюсь разберетесь — взято с готового уже проекта)
<div id="nav">
		<div class="left"></div>
		{if $oUserCurrent and ($sAction==$ROUTE_PAGE_BLOG or $sAction==$ROUTE_PAGE_INDEX or $sAction==$ROUTE_PAGE_NEW or $sAction==$ROUTE_PAGE_PERSONAL_BLOG or $sAction==$ROUTE_PAGE_TOP)}
                        <div class="write">
                                <a href="{$DIR_WEB_ROOT}/{$ROUTE_PAGE_TOPIC}/add/" alt="{$aLang.topic_create}" title="{$aLang.topic_create}" class="button small">
                                        <span><em>{$aLang.topic_create}</em></span>
                                </a>
                        </div>
                				{elseif $sAction==$ROUTE_PAGE_BLOG or $sAction==$ROUTE_PAGE_INDEX or $sAction==$ROUTE_PAGE_NEW or $sAction==$ROUTE_PAGE_PERSONAL_BLOG or $sAction==$ROUTE_PAGE_TOP}

                        <div class="write">
                                <a href="{$DIR_WEB_ROOT}/{$ROUTE_PAGE_REGISTRATION}/" alt="{$aLang.topic_create}" title="{$aLang.topic_create}" class="button small">
                                        <span><em>{$aLang.topic_create}</em></span>
                                </a>
                        </div>
                {/if}
Парсер лох, извиняюсь:

<Directory /path/to/diretcory>
order allow,deny
deny from all
<Directory>