+5.20
Рейтинг
14.53
Сила

Алексей Белов

Новый журнальный шаблон «READER» (LS2.0)

Уважаемое сообщество, спешу сообщить вам приятную новостью о выходе моего нового шаблона для новой ЛайфСтрит! :)
Много писать не буду, лучше посмотреть своими глазами на шаблон и уже сделать свой вывод: понравится он или нет! Дело личное и каждого. В каталоге его пока нет, проходит модерацию.
Напишу кратко о шаблоне, остальное будет дополнятся комментариями и представляться в демо




ДЕМО

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

Как вставить код в head только для топиков? [решение в топике]

Уважаемое сообщество, помогите пожалуйста со следующей задачей: нужно вставить код, который бы выводился между тегами head /head только на страницах топиков. Как это можно реализовать, с помощью каких условий?

Решение найдено:

{if Router::GetAction() == 'blog' && Router::GetActionEventName() == 'topic'}

{/if}

Новый журнальный шаблон «TREND»

Привет, сообщество ЛС!

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



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

Обрезка аватаров в мобильном

Доброго времени. Столкнулся с проблемой по работе функции «Обрезка изображений» на мобильных устройствах, раньше замечал на яблочных девайсах, но значения не придавал. Собственно корявое решение и проблема описана ниже.


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

Редактор tinymce и LS 1.0.3

Приветствую всех. Очень нужна помощь опытных пользователей. Подключен редактор из коробки, шаблон renews, версия LS 1.0.3.
Суть проблемы:
Когда формируешь пост через tinymce и ставишь картинку в первом абзаце по левой стороне картинка, то пост публикуется пустым… Заходишь в редактировать, так есть картинка и кусок текста, если нажать опубликовать, то это опубликуется.
Как вариант перед публикацией можно уже в редакторе сформированный пост, через кнопку HTML открыть и там перед картинкой поставить
<p>неразрывный пробел</p>
и оно публикует нормально, но это не пояснить простым пользователям…

Вот код моего jevix.php

<?php

return array(
	'default' => array(
		// Разрешённые теги
		'cfgAllowTags' => array(
			// вызов метода с параметрами
			array(
				array('ls','cut','a', 'img', 'i', 'b', 'u', 's', 'video', 'em',  'strong', 'nobr', 'li', 'ol', 'ul', 'sup', 'abbr', 'sub', 'acronym', 'h4', 'h5', 'h6', 'br', 'hr', 'pre', 'code', 'object', 'param', 'embed', 'blockquote', 'iframe','table','th','tr','td', 'p'),
			),			
		),
		// Коротие теги типа
		'cfgSetTagShort' => array(
			array(
				array('br','img', 'hr', 'cut','ls')
			),
		),
		// Преформатированные теги
		'cfgSetTagPreformatted' => array(
			array(
				array('pre','code','video')
			),
		),
		// Разрешённые параметры тегов
		'cfgAllowTagParams' => array(
			// вызов метода
			array(
				'img',
				array('src', 'style'=> '#text', 'alt' => '#text', 'title', 'align' => array('right', 'left', 'center', 'middle'), 'width' => '#int', 'height' => '#int', 'hspace' => '#int', 'vspace' => '#int', 'class'=> array('image-center','image-left','image-right'))
			),
			// следующий вызов метода
			array(
				'a',
				array('title', 'href', 'rel' => '#text', 'name' => '#text', 'target' => array('_blank'))
			),
			// и т.д.
			array(
				'cut',
				array('name')
			),
			array(
				'object',
				array('width' => '#int', 'height' => '#int', 'data' => array('#domain'=>array('youtube.com','rutube.ru','vimeo.com')), 'type' => '#text')
			),
			array(
				'param',
				array('name' => '#text', 'value' => '#text')
			),
			array(
				'embed',
				array('src' => array('#domain'=>array('youtube.com','rutube.ru','vimeo.com')), 'type' => '#text','allowscriptaccess' => '#text', 'allowfullscreen' => '#text','width' => '#int', 'height' => '#int', 'flashvars'=> '#text', 'wmode'=> '#text')
			),
			array(
				'acronym',
				array('title')
			),
			array(
				'abbr',
				array('title')
			),
			array(
				'iframe',
				array('width' => '#int', 'height' => '#int', 'src' => array('#domain'=>array('youtube.com','rutube.ru','vimeo.com')))
			),
			array(
				'ls',
				array('user'=>'#text')
			),
			array(
				'td',
				array('colspan'=>'#int','rowspan'=>'#int','align'=>array('right', 'left', 'center', 'justify'),'height'=>'#int','width'=>'#int')
			),
			array(
				'table',
				array('border'=>'#int','cellpadding'=>'#int','cellspacing'=>'#int','align'=>array('right', 'left', 'center'),'height'=>'#int','width'=>'#int')
			),
			array(
                 'p',
                 array('class'=>'#text', 'style'=>'#text', 'align'=> array('left','center','right','justify'))
            ),
		),
		// допустимые комбинации значений у параметров
		'cfgSetTagParamCombination' => array(
			array(
				'param',
				'name',
				array(
					'allowScriptAccess' => array(
						'value'=>array('sameDomain'),
					),
					'movie' => array(
						'value'=>array('#domain'=>array('youtube.com','rutube.ru','vimeo.com')),
					),
					'align' => array(
						'value'=>array('bottom','middle','top','left','right'),
					),
					'base' => array(
						'value'=>true,
					),
					'bgcolor' => array(
						'value'=>true,
					),
					'border' => array(
						'value'=>true,
					),
					'devicefont' => array(
						'value'=>true,
					),
					'flashVars' => array(
						'value'=>true,
					),
					'hspace' => array(
						'value'=>true,
					),
					'quality' => array(
						'value'=>array('low','medium','high','autolow','autohigh','best'),
					),
					'salign' => array(
						'value'=>array('L','T','R','B','TL','TR','BL','BR'),
					),
					'scale' => array(
						'value'=>array('scale','showall','noborder','exactfit'),
					),
					'tabindex' => array(
						'value'=>true,
					),
					'title' => array(
						'value'=>true,
					),
					'type' => array(
						'value'=>true,
					),
					'vspace' => array(
						'value'=>true,
					),
					'wmode' => array(
						'value'=>array('window','opaque','transparent'),
					),
				),
				true, // Удалять тег, если нет основного значения параметра в списке комбинаций
			),
		),
		// Параметры тегов являющиеся обязательными
		'cfgSetTagParamsRequired' => array(
			array(
				'img',
				'src'
			),			
		),
		// Теги которые необходимо вырезать из текста вместе с контентом
		'cfgSetTagCutWithContent' => array(
			array(
				array('script')
			),
		),
		// Вложенные теги
		'cfgSetTagChilds' => array(
			array(
				'ul',
				array('li'),
				false,
				true
			),
			array(
				'ol',
				array('li'),
				false,
				true
			),
			array(
				'object',
				'param',
				false,
				true
			),
			array(
				'object',
				'embed',
				false,
				false
			),
			array(
				'table',
				array('tr'),
				false,
				true
			),
			array(
				'tr',
				array('td','th'),
				false,
				true
			),
		),
		// Если нужно оставлять пустые не короткие теги
		'cfgSetTagIsEmpty' => array(
			array(
				array('param','embed','a','iframe')
			),
		),
		// Не нужна авто-расстановка 
		'cfgSetTagNoAutoBr' => array(
			array(
				array('ul','ol','object','table','tr')
			)
		),
		// Теги с обязательными параметрами
		'cfgSetTagParamDefault' => array(
			array(
				'embed',
				'wmode',
				'opaque',
				true
			),
		),
		// Отключение авто-добавления 
		'cfgSetAutoBrMode' => array(
			array(
				false
			)
		),
		// Автозамена
		'cfgSetAutoReplace' => array(
			array(
				array('±', '©', '©', '®', '©', '©', '®'),
				array('±', '©', '©', '®', '©', '©', '®')
			)
		),
		// Список допустимых протоколов для ссылок
		'cfgSetLinkProtocolAllow' => array(
			array(
				array('http','https','ftp')
			)
		),
		'cfgSetTagNoTypography' => array(			
			array(
				array('code','video','object')
			),
		),
		// Теги, после которых необходимо пропускать одну пробельную строку
		'cfgSetTagBlockType' => array(
			array(
				array('h4','h5','h6','ol','ul','blockquote','pre','table','iframe')
			)
		),
		'cfgSetTagCallbackFull' => array(
			array(
				'ls',
				array('_this_','CallbackTagLs'),
			),
		),
	),
	
	// настройки для обработки текста в результатах поиска
	'search' => array(
		// Разрешённые теги
		'cfgAllowTags' => array(
			// вызов метода с параметрами
			array(
				array('span'),
			),			
		),
		// Разрешённые параметры тегов
		'cfgAllowTagParams' => array(
			array(
				'span',
				array('class' => '#text')
			),			
		),
	),
);


Подскажите куда копать…

Делаем уникальный вывод новостей - Isotope, Metro, Masonry

Итак ребята, хочу сделать свой сайт на Лайвстрите более уникальным. Давайте разберемся как можно подключить Isotope, Metro, Masonry вывод новостей на главной, а именно вывод блоками по методу описанному чуть ниже:

isotope.metafizzy.co/v1/demos/layout-modes.html



Давайте вместе подумаем как это реализовать, спасибо всем кто участвует в данной дискуссии.

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

Стили и блоки на статических страницах

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

Для того, что б на статических страничках присутствовали стили как и на всех других страница (сайдбар, меню, кнопки редактирования и т.п.), необходимо провести такие манипуляции с шаблоном:
Читать дальше →

Простой сервис push-уведомлений для Вашего сайта

Как известно, самое интересное происходит на стыке технологий, вот и я хочу поделиться с Вами последней своей разработкой, которая по ненадобности своей для меня стала вещью-в-себе. а сообществу может и пригодиться представляет собой сервис push-сообщений для сайта на базе livestreet.

Что такое сервис push-сообщений? Это некоторый функционал, позволяющий посылать сообщения с Вашего сайта на телефоны пользователей. Это технология сочетает в себе три составляющие:

  1. клиентское приложение (в нашем случае приложение для телефонов с ОС Android);
  2. сервис GCM, предоставляемый Googlом;
  3. серверная часть в виде плагина для LS.


Как это все работает читаем ниже…

MarkitUP для новичков. Или как добавить свои кнопки в редактор? [Перепост]

Перепост давно почившего из DB, но полезного топика (битые ссылки убрал).
По мотивам: этого топика и этого комментария, спасибо lifecom .

1. Введение

Заголовок говорит сам за себя — данная статья это итоги моего ковыряния в редакторе MarkitUP.
Все началось с того, что на сайте сообщества появилась небольшая статья о том как добавить кнопку в редактор (точнее это был вопрос) и в комментариях пользователь Shrike дал очень важные для меня наводки. После этого у меня появилась идея добавить пару новых возможностей в редактор:

  1. Цвет текста
  2. Выравнивания текста по центру, левому краю, правому краю
  3. Вертикальное выравнивание текста (sub, sup)

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