Создание своей главной страницы

Друзья, может быть кто-нибудь может объяснить мне на пальцах, как сделать свою главную страницу?

Чего хочется достичь: главная страница — что-то типа презентации: какие-то свои блоки и прочая инфа, дефолтная главная страница с выводом интересных топиков остается в наличии, просто доступна по какому-нибудь другому адресу.

51 комментарий

avatar
главная страница и так доступна по ссылке /index/ я для себя плагин сделал. Точнее не сделал, я ещё не дорос, просто изменил какой-то существующий. Могу дать.
avatar
vj-team@ya.ru
Буду признателен.
avatar
О спасибо, огромное!
avatar
Можно ли тоже получить?
tberorg*gmail.com
Заранее спасибо!
avatar
А покажите на примере (скриншот, ссылка на сайт) как это выглядит?
avatar
Или если не сложно закиньте и мне тоже lex.on@mail.ru
avatar
Выложил: rteo.ru/плагин.zip

прочитайте инструкцию сначала.
avatar
Позволил себе подкорректировать да подправить плагин:
dl.dropboxusercontent.com/u/85095640/mainpage.zip

Вы не будете против, если я его размещу в каталоге?

Теперь инструкцию читать не надо — при активации плагина, главная страница меняется автоматически.
На страницу добавил область для вывода блоков, так, например, если в конфиге в настройке блоков прописать:

$config['block']['rule_index_main'] = array(
	'action'  => array(
			'mainpage'
		),
	'blocks'  => array(
			'content' => array('stream'=>array('priority'=>100),'tags'=>array('priority'=>50),'blogs'=>array('params'=>array(),'priority'=>1))
		),
	'clear' => false,
);


то на главной странице будут выведены блоки которые находятся в сайдбаре по дефолту.
avatar
Да нет в общем! Выкладывайте. Думаю много кому будет полезен.
avatar
Ок.
avatar
Кто с дропбокса плагин качает — удалите в нем папку 11modules11 — оставил нечаянно.
avatar
Тогда добавьте конфиг вывода блоков и замените в index.tpl эту строку,
{assign var=«noSidebar» value=true}
иначе блоки будут выводиться некорректно по CSS/
avatar
Ошибка извиняюсь.!
avatar
Покажите пожалуйста на живом примере, у кого установлен плагин.
avatar
На живом пока нету, вся фишка в том, чтобы на главной выводить что угодно, т.е. в блоках, к примеру, формируете необходимую вам информацию и выводите ее на главной в любых местах.

Ну вот, к примеру, можно и как-то так сделать: themes.pau1winslow.com/eightytwenty/ — создаете блоки в которых выводите последние топики из определенных блогов, выводите их на главную, дабавляете туда слайдер и вуаля… ) Думаю, идея понятна.
avatar
Такой вопрос — а как будет работать пагинация с таким выводом главной страницы? Или ее не будет совсем? Просто я никак не соображу как будет работать вывод старых топиков.
avatar
Стандартная главная (с интересными топиками) остается доступна по адресу site.ru/index и вы можете поставить на ее ссылку с новой главной (например подкоректировать верхнее меню, пункт «Топики») или вывести на главной блок с последними топиками и ссылкой на все…

Сейчас, если включить плагин, главная станет пустой, а вы уже можете с помощью своих блоков или блоков плагинов сформировать ее по своему усмотрению.

Если надо больше зон для блоков на ней сделать достаточно подкорректировать файл index.tpl шаблона.
avatar
Ясно. Спасибо
avatar
Владимир, растёте! Мои поздравления!
avatar
Выложил плагин на Гитхаб: github.com/vj-team/mainpage
avatar
Не все люди обладают достаточными знаниями в области плагинов для LS, чтобы сразу понять, что папку «mainpage-master» из архива нужно переименовать в «mainpage». Иначе, мы будем получать:

Ошибка: Файл плагина site.ru/plugins/mainpage-master/PluginMainpage-master.class.php не найден

… а так, конечно, спасибо.
avatar
Так для «не всех» плагин и в каталоге есть… :)
avatar
О, сори :)
Правда не видел…
avatar
vOFFka , а не подскажите, как сделать так, чтобы вместо стандартной главной (с интересными топиками) выводилась страница с последними комментариями (т.е.: site.ru/comments/)? Попробовал в index.tpl плагина подключить страницу через
{include file='comment_list.tpl'}
— но ничего не вышло. Страница остается пустой…
avatar
А Вам для этого плагин не нужен — в конфиге сайта просто нужно экшен поменять с:

$config['router']['config']['action_default']   = 'index';


на:

$config['router']['config']['action_default']   = 'comments';


Правильнее, правда, просто последнюю строчку в config.local.php добавить, но привел полностью, чтобы было понятно что в конфиге отвечает за главную.
avatar
У нас так и есть (т.е. работаем с измененным "$config['router']['config']['action_default']"). Но хотелось бы иметь следующее: для не зарегистрированных/неавторизированных — «своя» страница (с заданными параметрами), а для пользователей сайта — site.ru/comments/.

Как это сделать без вашего плагина, ума не приложу… Собственно и с ним, у меня ничего не получается.
avatar
В шаблоне плагина делать условие: если не авторизован то… иначе…

А простым
{include file='comment_list.tpl'}

у Вас ничего и не получится — переменные, которые используются в comment_list.tpl не передаются в экшен плагина, т.е. необходимо либо плагин дописывать, либо новый плагин написать и вывод в этом плагине сделать. В любом случае, тут уж Вам к программистам лучше обратится, у меня в этой области знания мизерные.
avatar
Спасибо, Владимир! Во всяком случае, я теперь хоть не буду делать лишних движений мучить себя (и людей).
avatar
А про условия, то я так и делал:
{if $oUserCurrent}
    {include file='header.tpl'}
    {include file='comment_list.tpl'}
{else}
    {assign var="noSidebar" value=true}   
    {include file='header.tpl'}
    {include file='blocks.tpl' group='content'}
{/if}
{include file='footer.tpl'}
или это не то?
avatar
Правильно.
avatar
В общем, сделал так:
1. По адресу site.ru/templates/skin/developer/actions/ActionComments/ в файле index.tpl прописал:
{include file='header.tpl'}		
{if $oUserCurrent}
    {include file='comment_list.tpl'}
{else}
    {assign var="noSidebar" value=true}   
    {include file='my_tpl.tpl'}
{/if}
{include file='footer.tpl'}

2. В корневой директории шаблона создал файл "'my_tpl.tpl" с нужным содержанием (в моем случае это будет html верстка со слайдером). Прошу прощения, возможно это «баян», но додумался я только благодаря этой теме и нашему с Вами диалогу…
avatar
Можно ли в этом плагине сделать так, чтобы для авторизованных отображалась стандартная главная страница, а не для авторизованных он отображал то, что прописано в нем?
avatar
Можно попробовать так (правда я не уверен): в файле шаблона плагина index.tpl прописать следующее:

{if $oUserCurrent}
    {include file='header.tpl' menu='blog' menu_content='blog'}
    {include file='topic_list.tpl'}
{else}
    {assign var="noSidebar" value=true}
    
    {include file='header.tpl'}
    {include file='blocks.tpl' group='content'}
{/if}

{include file='footer.tpl'}
avatar
отображается только стандартная страница, видоизмененная не работает.
avatar
А что и как Вы добавляли в видоизмененную?
avatar
вместо этого
{assign var=«noSidebar» value=true}

{include file='header.tpl'}
{include file='blocks.tpl' group='content'}
{include file='footer.tpl'}

поставил это

{if $oUserCurrent}
{include file='header.tpl' menu='blog' menu_content='blog'}
{include file='topic_list.tpl'}
{else}
{assign var=«noSidebar» value=true}
{include file='header.tpl'}
12345
{include file='blocks.tpl' group='content'}
{/if}

{include file='footer.tpl'}

12345 не отображается.
avatar
я уже понял что туплю…
avatar
Проблема была в закрытом режиме
avatar
vOFFka , а не подскажете как можно добавить topic_list на такую главную? как объявить эту вывод этой переменной в плагине?
avatar
Писать мини-плагин в котором через фильтр выводить нужное. Для примера можете взять мой «Слайдер».

А вообще, слишком мало данных… Какой топик лист Вам нужен, что в нем выводите? С пагинацией или без? Если что-то из стандартного, может можно и без этого плагина обойтись, и просто добавить в нужные места новые зоны для тех же блоков, к примеру? Опишите более подробно чего Вы желаете добиться.
avatar
Благодарю за скорый ответ.
На картинке фрагмент главной, ближе к концу страницы. После картинки описание.



Главная у меня состоит из таких вот мини-блоков без сайдбара (есть и лучшие и обсуждаемые, и список блогов и просто последние топики и др.). Если бы можно было, как вы писали выше, добавлять нужные зоны (например, зону после определенного div) для блоков я был бы счастлив :)
avatar
vOFFka , можно еще один маленький вопрос.
Когда с главной переходишь на mysite.ru/blog, нажимаешь в менюшке на «хорошие» — то снова вовзращаешься на главную страницу. Как сделать, чтобы при клике на хорошие показывались хорошие, а не осуществлялся переход на главную?
avatar
Подправьте менюшку, вместо
<a href="{cfg name='path.root.web'}/">

пропишите
<a href="{cfg name='path.root.web'}/index/">


Для ссылки «Топики» в главном меню, кстати, тоже надо поправить.
avatar
Добавить новую зону для блоков проще простого: в нужное место шаблона вставляете
{include file='blocks.tpl' group='zonename'}

где zonename — название зоны и все. В настройках блока соответсвенно указываете нужную зону для вывода. Ну и стили, если неоюходимо…
avatar
спасибо большое, vOFFka !
не могли бы вы чуть-чуть подробней остановиться на второй части: «где zonename — название зоны и все. В настройках блока соответсвенно указываете нужную зону для вывода.»

Допустим, что у меня есть виджет вконтакте в блоке block.vk.tpl, его содержимое ниже.

{literal}<script type="text/javascript" src="//vk.com/js/api/openapi.js?105"></script>

<!-- VK Widget -->
<div id="vk_groups"></div>
<script type="text/javascript">
VK.Widgets.Group("vk_groups", {mode: 1, width: "auto", height: "100", color1: 'FFFFFF', color2: '2B587A', color3: '5B7FA6'}, 22222222);
</script>{/literal}


Я хочу вывести его в header.tpl в блоке . Что для этого нужно сделать?
avatar
zonename — просто свое любое имя, чтобы знали где расположена зона. Допустим располагаете новую зону в хедере — назавите headerblocks, в футере — footerblocks, в общем, как Вам больше нравиться. А потом, при настройке блоков, просто укажете нужную для конкретного блока зону, например добавим в config.local.php следующее:

/**
 * Настройки вывода блоков
 */

$config['block']['rule_blog_description'] = array(
	'action'  => array(
			'blog' => array('{blog}')
		),
	'blocks'  => array(
			'headerblocks' => array('blocks/block.blogDescription.tpl'=>array('priority'=>300))
		),
	'clear' => false,
);


данная настройка выведет блок в зоне headerblocks, для блока будет использован файл blocks/block.blogDescription.tpl шаблона.

Для вывода Вашего блока можно просто попробовать поменять blocks/block.blogDescription.tpl на blocks/block.vk.tpl

Для других блоков или зон все делается по аналогии.

Если выводите блок плагина в свою зону, но надо в настройках плагина искать настройку соответствующего блока и менять в ней зону вывода. Пример для плагина ТОР топиков:

// Настройки вывода блока

Config::Set('block.rule_blocktop', array(
	'action' => array(
		'index'
	),
    'blocks' => array(
		'footerblocks' => array(
			'top' => array('params' => array('plugin' => 'blocktop'), 'priority' => 70),
		)
    ),
    'clear' => false,
));


В данном случае ТОР будет выведен в зоне footerblocks. Хотя в плагинах не всегда так выводятся блоки.
avatar
вы отлично объяснили, спасибо

а скажите, пожалуйста, можно без зон вот так сделать {include file='blocks/footerblocks.tpl'} или это будет неправильно? блок выводится.
avatar
Если выводится, то почему би и нет? В вышеописанном примере Вы можете в зону выводить сколькоугодно блоков, задавать их приоритет и настраивать отображение на необходимых страницах, т.е. получается более гибкий вариант.
avatar
действительно, теперь понял)

по поводу «Если нужно подробнее опишите подробно что надо — попробую помочь (я в этом не дока, но кое-что интуитивно понимаю)». Вы мне итак очень сильно помогаете) Пока с вышеописанными вещами разбираюсь, если возникнут вопросы обязательно спрошу. Еще раз спасибо)
avatar
Спрашивайте. Пожалуйста. :)
avatar
Ну а по выводу лент: если выводите что-то стандартное, можно использовать готовые конструкции типа:
$aTopTopics=$this->Topic_GetTopicsRatingByDate($sDate,Config::Get('plugin.blocktop.topic_count'));

если же надо вывести что-тот свое, то делается фильтр.

Если нужно подробнее опишите подробно что надо — попробую помочь (я в этом не дока, но кое-что интуитивно понимаю).
Только зарегистрированные и авторизованные пользователи могут оставлять комментарии.