Руководство: как убрать, добавить блоки

Задавал вопрос по поводу размещения блоков, ответа так и не получил. Пришлось самому разбираться :)

И так начнёмс...

Для указания блоков, которые мы хотим отображать у нас есть метод в классе Viewer:

$this->Viewer_AddBlocks(позиция,массив с перечисленными блоками);


Указывать блоки нужно в конкретных Actions в методе init().

На данный момент в LiveStreet есть три вида блоков:

comments, blogs, tags

comments — прямой эфир
blogs — блоги
tags- облако тегов

в стандартном шаблоне используется только одна позиция right. Для того, чтобы получить все блоки на страничке, мы добавляем в нужном нам Actions следующий код:

$this->Viewer_AddBlocks('right',array('comments','tags','blogs'));


Рассмотрим на конкретном примере.

Заходя в раздел ТОП у нас справа не отображается не один блок. Нам нужно вывести два блока: Прямой эфир и теги:

1.открываем класс ActionTop.class.php в папаке classes/actions
2.прописываем блоки в методе init():
$this->Viewer_AddBlocks('right',array('comments','tags'));

3.Готово ;)

В шаблонах блоки выводятся в header.tpl (ищем $aBlocks.right).

Вот так всё просто :)

Ну и пробный вариант:

Добавил ещё один блок, может кому так удобней будет )) Блок дублирует информацию о пользователе, после авторизации + добавлено отображение его рейтинга и силы.

Для установки блока, просто скопируйте содержимое архива в корень с установленным движком.
И добавляем его в нужные Actionы.

$this->Viewer_AddBlocks('right',array('cabinet'));

Скачать блок

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

avatar
просто и доступно — спасибо :)
avatar
а какие Actionы нужные, и где они находятся… может вопрос и нубский, но никакого мануала по движку я не нашел
avatar
Ты смотри по названиям.
Если страница ТОПА, в УРЛ у тебя site.ru/top/
Экшен: ActionTop.class.php (Top) и т.д.
avatar
спасибо, с этим разобрался.
avatar
avatar

Сделал все как описано, добавил в ActionTop.class.php в public function Init() $this->Viewer_AddBlocks('right',array('comments','tags')); и еще строку $this->Viewer_AddBlocks('right',array('cabinet')); При нажатии на ссылку «ТОР» блок «кабинет» выводится справа, блоки комментариев и тегов не выводятся. Что я не доделал или не так сделал? Подскажите плиз.
avatar

оставь только:

$this->Viewer_AddBlocks('right',array('cabinet','comments','tags'));
avatar
Спасибо большое, все работает!
avatar
Спасибо помогло.
avatar
Можешь подсказать как сделать блок «полезные ссылки» как на это странице внизу справа?
avatar

Все точно также делается. Создаются 2 файла, 1 класс блока (точно такой же как тут выложен, но назвать и по другому) и 2й файл графического отображения (можно также взять приложенный и переименовать) в нем напиши:

<div class="habrablock">
        <h3 class="new_group_sections">Полезные сслыки
avatar

Глюканул инет, недопостило, постю 2й раз.

Все точно также делается. Создаются 2 файла, 1 класс блока (точно такой же как тут выложен, но назвать и по другому) и 2й файл графического отображения (можно также взять приложенный и переименовать) в нем напиши:

<div class="habrablock">
        <h3 class="new_group_sections">Полезные сслыки
  • gran
  • 0
avatar

Видать code не отрабатывает правильно на специальные символы :( (убрал символы, попытка №3, предпросмотр прошел успешно:)

Все точно также делается. Создаются 2 файла, 1 класс блока (точно такой же как тут выложен, но назвать и по другому) и 2й файл графического отображения (можно также взять приложенный и переименовать) в нем напиши:

<div class="habrablock">
        <h3 class="new_group_sections">Полезные сслыки</h3>
        <div class="live_section">
   
            Мои ссылки
           
        </div>
</div>
 

И добавь отображение блока в ActionBlog.class.php
  • gran
  • +1
avatar
Большое спасибо. Только вот получается, что нужно в каждый экшн где хочешь видеть вставлять. И потому пока раздербанил «популярные блоги» ;) Под новый диз сделаею уже по уму.
avatar
Хочу сделать рядом со статьями такой блок похожий на тот, что у тебя для скачивания предложен, но с информацией об авторе статьи и возможностью сразу оценку поставить.
avatar


Примерно так. Не понятно следующее:
— как сделать стрелочки голосования? копи-паст не срабатывает, вылазит ошибка.
— как выводить названия-ссылки на другие материалы автора?
— как все это прицепить к автору статьи?
avatar
avatar
Может у кого-нибудь сохранился блок 'cabinet', который выложил автор топика?
ссылка умерла :(
  • Yuta
  • 0
avatar
Спасибо. Жаль, что пример автора действительно скачать уже нельзя, но все равно разобрался. И благодаря подсказке от Gran'а в том числе.
avatar
Небольшое дополнение от меня… В виде последовательности действий.

Для создания нового блока с именем Name понадобятся файлы из папок:

classes/blocks — сюда нужно будет добавить файлик с вашим блоком, просто скопировать какой-нибудь имеющийся и поменять его название на BlockName.class.php и аналогично сменив имя внутри самого файлика.

templates/skin/new/ — сюда нужно будет добавить шаблон вашего блока с именем block.name.tpl, где name — имя блока, которое вы уже определили, создавая класс чуть выше.

classes/actions — в них нужно будет добавлять строчку, которая будет выводить новый блок на соответствующих страницах:
$this->Viewer_AddBlocks('right',array('name','comments','tags','blogs'));

Соответственно name — используемое вами имя блока.
avatar
есть еще способ. Можно в экшен не трогать, а в шаблоне в нужном месте написать
{insert name="block" block='name_of_block'}
avatar
Все доступно и понятно, спасибо. Добавил новый блок успешно
avatar
было бы лучше управлять блоками из отдельного файла.
к примеру прописать чтобы код на вывод блоков был на всех страницах.
а управление вынести в отдельный файл, в котором было бы так
страница люди = теги, имя блока1, имя блока2…
страница блоги = имя блока1, имя блока2…
по-моему было бы удобней чем сейчас в каждый файл лазить и там прописывать.
  • _et
  • 0
avatar
иногда отображение тех или иных блоков обладает логикой, которая и реализуется в экшенах
avatar
Ну это понятно.
Я просто привел пример как было бы удобнее управлять блоками.
avatar
я и ответил, что управлять так блоками не получится
а если совмещать два варианта — в конфиге и в экшене, то это приведет подключение одного блока на страницу будет разбросанно по разным файлам, будет больше путаницы
avatar
кстати прямой эфир сейчас обозначается как stream
тоесть
public function Init() {	
	$this->Viewer_AddBlocks('right',array('stream','tags','blogs'));	
	}
avatar
и это как-то даже правильнее чем comments ))
avatar
ооо, Кэп, добро пожаловать.
avatar
просто я сейчас тоже добавлял блоки и заметил что на comments выдает ошибку
avatar
потому что не comments, а stream
avatar
невнимательно прочитал, пардон:)
avatar
Все сделал. Проблема с кракозябрами: Блок нормально добавил, все работает. Только вот с русскими буквами почему-то не дружит.
block.odin.tpl

<div class="block blogs">
<div class="tl"><div class="tr"></div></div>
<div class="cl"><div class="cr">
<h1>Заголовок</h1>
<div class="block-content">
Тест
</div>
</div></div>
<div class="bl"><div class="br"></div></div>
</div>

выводит иероглифы, с латин. все нормально. Подскажите, будте добры
avatar
Файл этот сохранен в UTF-8? Надо UTF-8 кодировку.
avatar
UTF-8.
avatar
Кстати у меня та же проблема возникает и в случае внесения кириллических символов в topic.tpl, думаю и во все остальные тоже, подскажите. Уткнулся и стою на месте. спасибо
avatar
Пользуйся редактором Rapid PHP. Запуская файл, внизу на панельке в программе выбор кодировки. Выбираешь UTF-8 without BOM и живешь счастливо. Или же можешь все русские слова забивать в этот файл templates\language\russian.php
avatar
Спасибо
avatar
А какой экшен отвечает за топик, в ActionTopic.class.php есть только $this->Viewer_AddBlocks('right',array('block.blogInfo.tpl'));
avatar
Как вывести в правый блок рейтинг пользователей? (миниаватар-логин-рейтинг)
avatar
например, есть несколько блогов:
/blog/1/
/blog/2/
/blog/3/

как сделать, чтобы блок, с определенным контентом выводился справа, только во втором?
avatar
добавил в ActionBlogs.clsss.php в init:
public function Init() {
		$this->Viewer_AddBlocks('right',array('stream','tags'));
	}
	

Но на странице с блогами блоки не выводятся. В чем проблема?
avatar
проблема решена.
avatar
подскажите пожалуйста Action главной страницы
avatar
убрал, не нужный мне блок, с главной страницы в «config.php».
avatar
mysite/user/2011/04/26/hudozhestvennye-osobennosti.html как здесь action определить?
avatar
попробую объяснить подробнее что я хочу сделать; уже неделю ищу файл в котором можно закоментить или удалить место, которое отвечает за вывод блока «Блоги» на главной странице и странице каждого топика. Эту тему перечитывал 20 раз, но так и не понял как удалить уже существующие в страндарной теме (developer) блоки.
Нашел в config.php

'blocks' => array(
'right' => array('stream'=>array('priority'=>100),'tags'=>array('priority'=>50),'blogs'=>array('params'=>array(),'priority'=>1))
),

где достаточно удалить 'blogs'=>array('params'=>array(),'priority'=>1) и блок «Блоги» удаляется, но только с главной страницы. А на страницах каждого топика так и висит. Подскажите пожалуйста где находится action или может быть tpl шаблона откуда можно удалить этот злосчастный блок.

Спасибо
avatar
так ничего и не нашел — пришлось закоментить содержимое block.blogs.tpl, что в принципе устраивает.
avatar
Залейте пожалуйста заново блок. Ссылка «Скачать блок» не доступна. Буду благодарен
  • Na53
  • 0
Только зарегистрированные и авторизованные пользователи могут оставлять комментарии.