0.00
Рейтинг
0.00
Сила

zgood

Как создать свой вид топика, используя систему плагинов

3 года назад было написано Руководство: Как создать свой вид топика на LiveStreet. В то время ещё не было системы плагинов, и всё делалось «топорно», что в последствии затрудняло обновление движка, т.к. приходилось свои куски кода вставлять опять. С появлением системы плагинов LiveStreet стал более гибким и легко обновляемым. Передо мной встала задача создать новый вид топика, и я решил сделать это плагином. Но в процессе выяснилось, что то ли я чего-то не знаю, толи этого нет.

Напишу, что и как я делал, заодно задам вопросы, может быть на них решение уже есть. Надеюсь, совместно у нас получится сделать каркас нового типа топика в форме плагина.
Читать дальше →

Дополнительное поле при создании топика

Здравствуйте, довольно актуальная тема на 0.5.x

Дополнительное поле при создание топика

Сразу хочу сказать спасибо:
bas eXtravert bamboo

Источники: HOWTO: Дополнительные поля при создании топика — подправил адреса к файлам + добавил русского языка

Цель:
  • Часть I создание дополнительного поля в шаблоне new под 0.5.1
  • Часть II опубликованное дополнительное поле видно только администраторам


Читать дальше →

Плагин Static Page его меню подменю /Решено

При работе с данным плагином выскочила трабла, в меню выводились только страницы родители, при переходе на которые по сути должны появляется дочерние страницы. Но судя по всему функционал не доделан.

Данные доработки сделаны на примере шаблона new-jquery и на версии LS 0.5 (на других не тестил)

Все что нам нннужно:

1) Создаем хук, идем в файл plugins/page/classes/hook/HookPage.class.php

Добавляем в метод
RegisterHook
строку
$this->AddHook('template_main_sub_menu','Sub_Menu');


Добавляем метод новый Sub_Menu в класс PluginPage_HookPage
public function Sub_Menu() {
		$aPages=$this->PluginPage_Page_GetPages(array('main'=>1,'active'=>1));
		$this->Viewer_Assign('aSubPagesMain',$aPages);
                $this->Viewer_Assign('aServerUri',$_SERVER['REQUEST_URI']);
		return $this->Viewer_Fetch(Plugin::GetTemplatePath(__CLASS__).'main_sub_menu.tpl');
	}


2)Далее пилим в plugins/page/templates/skin/new-jquery и создаем там файл «main_sub_menu.tpl» со след содержимым
{assign var="arrServerUri" value="/"|explode:$aServerUri}
<ul class="menu">
{foreach from=$aSubPagesMain item=oPage}
   {assign var="sub_url" value="/"|explode:$oPage->getUrlFull()}
      {if $sEvent==$sub_url.0}
       <li {if $sAction=='page' and $sub_url.1==$arrServerUri.3} class="active" {/if}>
          <a href="{router page='page'}{$oPage->getUrlFull()}/" >{$oPage->getTitle()}</a>
       </li>
      {/if}
{/foreach}
</ul>


3)Создаем новый файл темплайт «menu.page.tpl» в папке /templates/scin/new-jquery/
туда добавляем
{hook run='main_sub_menu'} 


4) Идем /templates/skin/new-jquery/nav.tpl и добавляем туда

{if $sAction=='page'}
	{include file="menu.page.tpl"}
{/if}


Теперь дочерние страницы будут именно там, где они должны быть.
И нет необходимости при создании дочерних страниц их в рукопашную прописывать.

Создание тем для LiveStreet: руководство для новичков.

Дорогие друзья! В первую очередь, хочу поблагодарить создателей проекта, а так же всех, кто приложил немало усилий в развитии такой замечательной CMS как LiveStreet. Спасибо вам!

Я абсолютный новичок в LS, да и в программировании в целом. Но мне очень хочется научиться работать с этой CMS, на уровне создания своих, собственных тем. Благо, здесь есть достаточно много информации для самостоятельного изучения и отзывчивые специалисты, судя по комментариям.

Мне бы хотелось внести свой вклад, написав подробное руководство, по основам создания тем для блога на основе LS. У меня был опыт создания тем для wordpress, на этом, мое понимание как это делать и заканчивается, но если найдутся люди, готовые помочь разобраться в основах на практике, я буду рад, отразить эти результаты в подробном руководстве для начинающих.
Говоря проще, если найдутся люди, готовые возиться с новичком, я готов подробно, в картинках, описывать весь процесс создания темы. Большинство своих вопросов, я буду начинать с фразы “как сделать”, но постараюсь задавать их в правильной форме, чтобы всем было легче понять чего я хочу и какой именно ответ нужен.

Пожалуйста, если мое предложение уместно и кто-то готов помочь в написании такого гайда, пишите ответы и предложения :)

Первый и самый важный для меня вопрос:

  1. Уместно ли в вопросах, проводить аналогию с WordPress? То есть, спрашивать как создать ту или иную функцию, приводя в пример ее реализацию на wp. Или же сам метод создания тем настолько отличается, что ответа на подобные вопросы никто не даст?

Выделение (class="active") под-меню статической страницы. (решение найдено)

При помощи плагина Page добавил статическую страницу Мастерская, а в ней 2-е под-страницы.
Проблема состоит в том, что эти под-меню не делаются активными по переходу на них.

Что бы эти 2-е подстраницы отобразились я в header_nav.tpl добавил вот такой код

{if $oUserCurrent and ($sAction=='page' and $sEvent=='workshop')}		
			<ul class="menu">
				<li {if $sMenuItemSelect=='page/workshop/forks'}class="active"{/if}>
					<a href="{router page='page/workshop/forks'}">{$aLang.forks}</a>
				</li>
				<li {if $sMenuItemSelect=='page/workshop/rearshok'}class="active"{/if}>
					<a href="{router page='page/workshop/rearshok'}">{$aLang.rearshok}</a>
				</li>				
			</ul>					
		{/if}


Все замечательно, но при выборе одного из этих под-меню оно не выделяется. Причина понятна, проблема с $sMenuItemSelect. Но где её правильно инициализировать, что бы её можно было использовать в моем случае.

Или, если есть, буду рад другому предложению. Может быть есть какая-то глобальная переменная хранящая в себе текущий url?

Заранее спасибо.

Поиск Яндекса вместо Sphinx

Это просто, но для меня стало решением проблемы поиска по сайту на виртуальном хостинге.
В выдаче много повторов (ссылки на теги, топы), но зато все прелести Яндекса( подсказки, автозамена, смена раскладки, транслит, морфология).
Результат: govoritoskol.ru и страница результатов поиска

Читать дальше →

Адаптация шаблонов под 0.4

Я уже переделывал шаблон под 0.4, но делал это в несколько заходов, к тому же, начал делать тогда, когда сама конструкция еще не устаканилась, и что-то приходилось переделывать несколько раз.

Теперь, как я понимаю, резких телодвижений в обозримом будущем быть не должно. И можно уже смело паковать чемоданы, готовя «нольтришные» сайты к переезду на 0.4. Надеюсь, все с пониманием относятся к тому, что нет пока внятной документации — не до того пока ребятам. Поэтому я сейчас попробую описать отличия в шаблонах для версий 0.3 и 0.4. Думаю, это будет полезно тем, готовится к переезду.


Читать дальше →

Список файлов шаблона

/blog/add — страница создания/редактирования блога
/blog/admin — страница управления блогом
/blog/blog — страница профиля блога
/blog/comment — комментарии
/blog/index — главная страница блогов
/blog/topic — страница топика

Читать дальше →

Кое-какие записи по поводу шаблонов

Решила переделать сама шаблон.
Изучаю. Решила параллельно писать заметки.
Постоянно обновляется запись.
Изменить логотип
файл header.light.tpl в строчке
<h1 class="lite-header"><a href="{$DIR_WEB_ROOT}">Live<span>Street</span></a></h1>

файл header_top.tpl в строчке
<h1><a href="{$DIR_WEB_ROOT}"><strong>Live</strong>Street</a></h1>

Как вставить логотип-картинку
правильно указывать путь к логотипу — например вместо
<h1><a href="{$DIR_WEB_ROOT}"><strong>Live</strong>Street</a></h1>
вставить логотип-картинку, которая находится в папке images текущего шаблона, помнить что это картинка, поэтому для тех пользователей кто отключает картинки, а также для поисковиков, нужно добавить атрибут alt к тегу img:
<a href="{$DIR_WEB_ROOT}"><img src="{$DIR_STATIC_SKIN}/images/logo.gif" alt="название сайта" border=0/></a>

при изменении стандартного шаблона new не удалять
<h1 class="lite-header"> 
иначе логотип уплывет
Читать дальше →