Пример реализации блока «Самые лучшие пользователи»
22
Отвечая на вопрос, хочу привести небольшой пример того, как создать блок, который будет выводить список лучших пользователей.
За основу я взял блок classes/block/BlockBlogs.class.php. Он выводит топ блогов на сайт.
Немного поправив его получаем следующий код. И сохраняем как classes/block/BlockUserTop.class.php
block.usertop.tpl
block.user_top.tpl
И подключить его в требуемое место в конфиге.
Как вставлять блоки в конфиг описывать не буду.
____
Извините за неточности, потому как времени нет особо расписывать.
За основу я взял блок classes/block/BlockBlogs.class.php. Он выводит топ блогов на сайт.
Немного поправив его получаем следующий код. И сохраняем как classes/block/BlockUserTop.class.php
<?php
class BlockUserTop extends Block {
public function Exec() {
if ($aResult=$this->User_GetUsersRating('good',1,10) ) {
$aUserTop=$aResult['collection'];
$this->Viewer_Assign('aUserTop',$aUserTop);
$sTextResult=$this->Viewer_Fetch("block.user_top.tpl");
$this->Viewer_Assign('sUserTop',$sTextResult);
}
}
}
?>Все, блок готов к работе. Осталось добавить два шаблона.block.usertop.tpl
<div class="block-user-top">
{$sUserTop}
</div>block.user_top.tpl
{foreach from=$aUserTop item=oUser}
{$oUser->getLogin()}<br />
{/foreach}И подключить его в требуемое место в конфиге.
'usertop'=>array('priority'=>1),Как вставлять блоки в конфиг описывать не буду.
____
Извините за неточности, потому как времени нет особо расписывать.
- +6
- 15 марта 2011, 12:14
- skif
если я правильно все понял то в config.php добавляем сюда (правило для главной и страниц)
шаблоны просто кинуть в папку скина?
а выводить в нужном месте как?
эх, грохнут меня тут за тупые вопросы)
$config['block']['rule_index_blog'] = array(
'path' => array(
'___path.root.web___/blog$',
'___path.root.web___/blog/*$',
'___path.root.web___/blog/*/page\d+$',
'___path.root.web___/blog/*/*\.html$',
'___path.root.web___/blog/*\.html$',
),
'action' => array(
'index', 'new'
),
'blocks' => array(
'right' => array('stream'=>array('priority'=>100),'tags'=>array('priority'=>50),'blogs'=>array('params'=>array(),'priority'=>1))
),
'clear' => false,
'usertop'=>array('priority'=>1),
);шаблоны просто кинуть в папку скина?
а выводить в нужном месте как?
эх, грохнут меня тут за тупые вопросы)
вообще, он нужен сразу после хедера, над меню навигации «все», «коллективные»… +)
я на эту тему пытался прикруть блок Кто онлайн из плагина aceblockmanager
но так и не понял, как там поменять расположение
собственно, поэтому и была мысть просто целиковым кодом вставить в нужном месте
я на эту тему пытался прикруть блок Кто онлайн из плагина aceblockmanager
но так и не понял, как там поменять расположение
собственно, поэтому и была мысть просто целиковым кодом вставить в нужном месте
в этом случае нужно будет действовать так:
А в нужное место на странице вставить
$config['block']['rule_index_blog'] = array(
'path' => array(
'___path.root.web___/blog$',
'___path.root.web___/blog/*$',
'___path.root.web___/blog/*/page\d+$',
'___path.root.web___/blog/*/*\.html$',
'___path.root.web___/blog/*\.html$',
),
'action' => array(
'index', 'new'
),
'blocks' => array(
'right' => array('stream'=>array('priority'=>100),'tags'=>array('priority'=>50),'blogs'=>array('params'=>array(),'priority'=>1)),
'top' = array('usertop'=>array('priority'=>1))
),
'clear' => false,
'usertop'=>array('priority'=>1),
);А в нужное место на странице вставить
{if isset($aBlocks.top)}
{foreach from=$aBlocks.right item=aBlock}
{insert name="block" block=`$aBlock.name` params=`$aBlock.params`}
{/foreach}
{/if}Что-то в этом духе, но это конечно не финальный результат.
сейчас покажу наглядно
вот тут внизу на самом дне vidnoegorod.ru/people/
нужно такое же наверху на всех страницах перед меню
вот тут внизу на самом дне vidnoegorod.ru/people/
нужно такое же наверху на всех страницах перед меню
ну смотрите
в сайдбаре вот так сделано
а вы возьмите, поменяйте .right на ваше название (например .top), засуньте в шаблон и в блокменеджере его же юзайте
в сайдбаре вот так сделано
{if isset($aBlocks.right)}
{foreach from=$aBlocks.right item=aBlock}
{if $aBlock.type=='block'}
{insert name="block" block=`$aBlock.name` params=`$aBlock.params`}
{/if}
{if $aBlock.type=='template'}
{include file=`$aBlock.name` params=`$aBlock.params`}
{/if}
{/foreach}
{/if} а вы возьмите, поменяйте .right на ваше название (например .top), засуньте в шаблон и в блокменеджере его же юзайте
Комментарии (19)
RSS свернуть / развернуть