Оформление page

На вордпрессе шаблоны работают таким образом: создаешь страницу, ей присваивается id, например 1. Создаешь файл в папке шаблона с именем page-1.php, который имеет такую структуру (применительно к лс)
{include file="header.tpl"}
...
{include file="footer.tpl"}


Между шапкой и футером вставляешь любой код. таким образом любую страницу можно сверстать так, как душе угодно, придать ей любое оформление. Я думаю, было бы здорово сделать нечто подобное на лс. Сейчас страницы имеет довольно скудные возможности по части кастомизации, максимум — вывод какого то текста.

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

avatar
На самом деле и сейчас ничто не мешает подобным образом организовать шаблоны в ЛС. В smarty есть возможность наследовать шаблоны www.smarty.net/docs/en/language.function.extends.tpl

Например, у меня структура получается примерно следующая: в индексной директории создаю index.tpl (или любое другое удобное вам название), где я размечаю основные блоки, которые будут использоваться на странице, получается примерно следующее:

{strip}
    <!DOCTYPE html>
    <html>
    <head>
        <meta charset="utf-8">
        <title>{$title}</title>   
    
    </head>
    
    <body>
    
        <div id="wrap" class="main_bg">

            {block name="content"}
                {include file="/blocks/header.tpl"}
            {/block}
    
            {block name="content"}{/block}
    
            {block name="content"}
                {include file="/blocks/footer.tpl"}
            {/block}
  
        </div>
    
    </body>    
    </html>
{/strip}


И далее на нужной нам странице «вызываем» этот шаблон, например, чтобы использовать его на индексной странице, в шаблоне actionIndex/index.tpl пропишем следующий код:


	{extends file="app/view/design/index.tpl"}

	{block name="content"}
		{include file="actionIndex/_content.tpl"}
	{/block}


Аналогично можем переопредедить и содержание других блоков:


	{extends file="app/view/design/index.tpl"}

        {block name="header"}
            {include file="actionIndex/_header.tpl"}
        {/block}

	{block name="content"}
	    {include file="actionIndex/_content.tpl"}
	{/block}

        {block name="footer"}
            <div class="footer"></div>
        {/block}


А в итоге получаем очень аккуратный и легкочитаемый код
avatar
Я прошу прощения, примеры кода брал из реального проекта и поэтому путь до наследуемого шаблона написал немного не лайвстритовский, конечно должно быть скорее что-то в таком роде:

{extends file=«index.tpl»}
avatar
а как мне вызвать созданный шаблон на конкретной странице в livestreet? У меня есть 10 страниц, но шаблон page-about.tpl мне нужно вызывать только на одной.
avatar
вставьте следующий код в шаблоне того экшена, который отвечает за нужную вам страницу
{extends file="page-about.tpl"}

только, конечно, нужно прописать верный путь. И я немного погорячился назвав это «вызовом» шаблона, это наследование, конечно :)
avatar
вставьте следующий код в шаблоне того экшена, который отвечает за нужную вам страницу
поподробней, плиз) я пока не оч понял, где искать шаблон экшна, отвечающий за какую то конкретную страницу.
avatar
Сейчас попробую объяснить :)

Допустим вы уже создали шаблон, который собираетесь наследовать, пускай это будет index.tpl и лежит он в корне директории с шаблонами. Далее в нем вы создали блоки, как я показывал на примере выше. С помощью такой разметки, при наследовании этого шаблона, контент этих блоков изменять. То есть, у вас есть одна страница и вы хотите создать вторую точно такую же, но с отличающейся шапкой. Для этого вы просто наследуете шаблон первой странице и изменяете контент только блока с шапкой. Так вот, у вас уже есть шаблон index.tpl (в нем пока есть просто структура страницы и он нигде не выводится), и вы хотите, его использовать на главной странице. А шаблон главной странице лежит в actionIndex/index.tpl и этот шаблон уже вы правите:


{extends file="app/view/design/index.tpl"}

{block name="content"}
    {include file="actionIndex/_content.tpl"}
{/block}


Что происходит в этом примере: с помощью «extends» вы указываете, какой шаблон наследовать (то есть шаблон как бы полностью копируется), а затем переопределяете содержимое блока «content», ну или любого другого созданного вами блока.

Довольно скомкано расписал, так что если у вас будут вопросы — спрашивайте :)
На самом деле, такая техника очень помогает при создании больших проектов, но конечно нужно немного попривыкнуть.

Я наверное, даже сделаю в свободное время шаблон для LS чтобы продемонстрировать плюсы такой организации шаблонов
avatar
И желательно бесплатный) чтоб как наглядный пример, и с хорошим комментированием кода)
avatar
принцип я понял) но мне надо точно знать, что и куда. Поэтому даю пример:
Я создал страницу через стандартный плагин StaticPage. Мне нужна там шапка и футер, а вот содержимое сверстано нестандартно. Как мне вставить код этой верстки именно НА ЭТУ страницу?

я создал файл «page1.tpl» с версткой страницы. Теперь — мне нужно как то вывести этот код на определенной странице, куда идти?
avatar
Не врублюсь в проблему :) Вставляешь код в страницу, как обычно.
avatar
ну, у вас специфическая проблема, попробуйте вставлять html-код через редактор, как предложил aex
avatar
plugins/page/templates/skin/default/actions/ActionPage/
avatar
и вставляешь в page.tpl
avatar
или лучше свой tpl сделать и тогда дописать в классе переход на эту страницу
avatar
Кстати, работает и простой дедовский способ: создаем в корне сайте файл штмл с нужным дизайном а потом просто вставляем ссылку. например. в шапку. Ну а поскольку у нас крутой движек, использующий шаблонизатор SMARTY, то как раз можно делать, как описано выше. При желании к шаблону tpl можно прикрутить собственные css.
Только зарегистрированные и авторизованные пользователи могут оставлять комментарии.