<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom" xmlns:dc="http://purl.org/dc/elements/1.1/">
			<channel>
			<title>Alto CMS/Скины и шаблоны - принципы,  концепции, стандарты</title>
			<link>https://altocms.ru/blog/skins/</link>
			<description><![CDATA[Вырабатываем стандарты шаблонизации Alto CMS]]></description>
			<language>ru</language>
			<managingEditor>vshemarov@gmail.com</managingEditor>
			<webMaster>noreply@altocms.ru</webMaster>
			<generator>Alto CMS v.1.5.0b1</generator>
							<item>
					<title>Интерфейс загрузки изображений (концепт)</title>
					<guid isPermaLink="true">https://altocms.ru/t/1038/</guid>
					<link>https://altocms.ru/1038.html</link>
					<author>acstrelcova@gmail.com</author>
					<description><![CDATA[<img src="http://creatime.org/img/add/add62.jpg"><br>
В продолжение темы <a href="https://altocms.ru/1029.html">https://altocms.ru/1029.html</a> , которая вызвала живую дискуссию участников сообщества, хочу предложить свое видение интерфейса загрузки изображений. Концепция за исключением мелочей отталкивается от идей <a href="https://altocms.ru/profile/aVadim/" data-alto-role="popover" data-api="user/2/info">aVadim</a> в большей степени, а так же предложений <a href="https://altocms.ru/profile/Klaus/" data-alto-role="popover" data-api="user/96/info">Klaus</a> и <a href="https://altocms.ru/profile/inliquid/" data-alto-role="popover" data-api="user/666/info">inliquid</a><br>
<br>
Концепт не предлагает «изобретение велосипедов», а является продолжением существующего функционала. Загрузка изображений выносится под редактор bbcodes и объединяется с фотосетом. Т.о. все управление и загрузкой изображений осуществляется из единого интерфейса.<br>
<br>
Подробности под катом. Кнопки «Добавить изображения» и «Добавить опрос» вынесены сразу под редактор. По сути они являются вкладками с подгружаемым на ajax содержимым.<br>
<img src="http://creatime.org/img/add/add1.jpg"><br>
<br>
Содержание вкладки «Добавить изображения» повторяет содержимое модального окна.<br>
<img src="http://creatime.org/img/add/add2.jpg"><br>
<br>
После загрузки изображений, происходит перенаправление в «Этот топик». Здесь доступны опции масштабирования и выравнивания, так же можно вставить одно или несколько изображений в место где находится курсор. Здесь можно выбрать как выводить изображения — в ряд, фотосет (который кстати теперь можно просто удалить из шаблона, если в нем нет необходимости), либо другой вывод.<br>
<br>
Идея Вадима, добавить иконки по работе с конкретным изображением. Хотелось сделать так, чтобы не перегружать интерфейс, надеюсь получилось :) При наведение на изображение, кроме размеров подсвечивается иконка «редактировать»<br>
<img src="http://creatime.org/img/add/add62.jpg"><br>
<br>
Тоже идея Вадима, так же некоторые идеи по этому поводу были от nikto — по клику разворачивается окно в котором можно задать описание и если включен фотосет, то можно отметить как превью. Думаю эта кнопка будет использоваться не часто и разворачивать ее по событию hover вполне достаточно.<br>
<br>
<img src="http://creatime.org/img/add/add93.jpg"><br>
К тому же теперь просто по клику на изображение можно прямо вставлять его в топик (без кнопки вставить выбранное). <br>
<br>
В редакторе bbcodes, теперь эту кнопку можно использовать только для оборачивания ссылки в «a href» без всяких всплывающих окон<br>
<img src="http://creatime.org/img/add/add5.jpg"><br>
<br>
В целом концепт не дает революционных изменений, а является логическим продолжением существующих функций.]]></description>
					<pubDate>Mon, 16 Mar 2015 21:10:01 +0300</pubDate>
									</item>
							<item>
					<title>Experience Simple</title>
					<guid isPermaLink="true">https://altocms.ru/t/1005/</guid>
					<link>https://altocms.ru/1005.html</link>
					<author>acstrelcova@gmail.com</author>
					<description><![CDATA[Задача стояла упростить, убрать тени, поправить некоторые стили и сделать светлую тему. В процессе работы было около десятка различных вариантов, некоторые из них здесь. Нужно было объединить все пожелания пользователей и в тоже время упростить настолько, что при создании проекта потребовалось бы минимум времени на выпиливание лишней «красоты». <a href="http://creatime.org/img/esimple-index.jpg" rel="nofollow"><img src="http://creatime.org/img/esimple-index.jpg"></a><br>
<br>
В итоге получилась тема еще проще (визуально), чем StartKit с функциональностью Experience. Возможности же наоборот значительно выросли )<br>
<br>
Пример темной темы с лоу поли бекграундом от <a href="http://qrohlf.com/trianglify/" rel="nofollow">http://qrohlf.com/trianglify/</a><br>
<a href="http://creatime.org/img/esimple-dark-bg.jpg" rel="nofollow"><img src="http://creatime.org/img/esimple-dark-bg.jpg"></a><br>
<br>
<h4>Другие страницы</h4>
<a href="http://creatime.org/img/esimple-news.jpg" target="_blank" rel="nofollow">Полная новость</a><br>
<a href="http://creatime.org/img/esimple-profile-wall.jpg" target="_blank" rel="nofollow">Профиль пользователя+стена</a><br>
<a href="http://creatime.org/img/esimple-profile-album.jpg" target="_blank" rel="nofollow">Фотоальбом в профиле</a><br>
<a href="http://creatime.org/img/esimple-people.jpg" target="_blank" rel="nofollow">Страница «Люди»</a><br>
<a href="http://creatime.org/img/esimple-blogs.jpg" target="_blank" rel="nofollow">Блоги</a><br>
<a href="http://creatime.org/img/esimple-actives.jpg" target="_blank" rel="nofollow">Активность</a><br>
<a href="http://creatime.org/img/esimple-add.jpg" target="_blank" rel="nofollow">Добавление контента</a><br>
<br>
Всплывающие подсказки (предложение Вадима), везде где встречается имя пользователя (автор топика, прямой эфир, люди, друзья, активность и т.д), можно вызвать всплывающее окно с информацией о пользователе и опциями: добавить в избранное, в друзья, отправить сообщение. По моему гениальная идея :)<br>
<br>
<img src="http://creatime.org/img/esimple-tips.jpg"><br>
<br>
Значительно переработаны личные сообщения <br>
<br>
<a href="http://creatime.org/img/esimple-message.jpg" rel="nofollow"><img src="http://creatime.org/img/esimple-message.jpg"></a><br>
<br>
Длинные названия блогов, ники обрезаются <br>
<img src="https://altocms.ru/uploads/images/00/01/17/2015/02/10/0u664f2145-36d02c14-531d3630.jpg"><br>
<br>
Версткой и программированием темы (а в ней есть немало функционала требующего программной реализации) сейчас занимается <a href="https://altocms.ru/profile/andreyv/">Андрей</a>. Думаю скоро можно будет увидеть бета версию :)<br>
<br>
P.s. Если интересно могу выложить psd макеты, но предупреждаю они не стандартизирован — в некоторых местах отсутствует выравнивание по сетке, некоторые элементы могут быть не в своих группах слоев. Проект не коммерческий и времени чтобы сделать макет начисто просто нет.]]></description>
					<pubDate>Thu, 26 Feb 2015 14:16:40 +0300</pubDate>
									</item>
							<item>
					<title>Список страниц для разработки дизайна типового скина</title>
					<guid isPermaLink="true">https://altocms.ru/t/586/</guid>
					<link>https://altocms.ru/586.html</link>
					<author>vshemarov@gmail.com</author>
					<description><![CDATA[<img src="https://altocms.ru/uploads/images/00/00/02/2014/05/14/1ce5d6.jpg" align="right">Решил составить список страниц, которые необходимо разработать при создании нового дизайна для движка. Перечень получился, доложу я вам, неслабый, аж сам удивился. Делал я этот список не с нуля, когда-то давно <a href="https://altocms.ru/profile/LeX/" data-alto-role="popover" data-api="user/93/info">LeX</a> подобный списочек выкладывал. И я, опираясь на него, подготовил свой, с учетом всех изменений и дополнений, прошедших с того времени, ну и с учетом своего опыта, конечно.<br>
<br>
Разумеется, для конкретных проектов, создаваемых на нашем движке, список может быть иным. И, к тому же, это вовсе не значит, что каждая страница с нуля рисуется, на них будут использоваться общие элементы. Поэтому данный список нужно использовать не как догму, а, скорее, как некое руководство или шпаргалку, чтобы не забыть о каких-то вещах, которые вылезут потом на этапе верстки.<br>
<br>
И всех, кто имеет уже опыт разработки дизайна и/или проектирования интерфейса для сайтов на Альто, я приглашаю к обсуждению, и готов выслушать любые предложения по дополнению и изменению этого списка. <h5>0000 – Главная страница</h5>
<em>Дополнительные элементы и режимы</em><br>
<ol><li>Вид для неавторизованного пользователя (кнопки «Вход»/«Регистрация»)</li><li>Вид для авторизованного пользователя</li><li>Пользовательское меню</li><li>Неактивная и активная входящих сообщений (с числом новых сообщений)</li><li>Кнопка «Создать» и модальное окно «Создать» (черновик, топик, блог, категория, сообщение, событие, галерея, место, карту, новость)</li><li>Сайдбар и общий вид виджетов в сайдбаре (если есть)</li><li>Виджеты – Прямой эфир, Список категорий, Список блогов, Теги</li><li>Попап-блок с текстом комментария для Прямого эфира</li><li>Попап-блок со статистикой голосов</li><li>Всплывающие системные сообщения (Notice, Error)</li><li>Статические системные сообщения (Notice, Error)</li></ol>
<h5>0010 – Модальные окна</h5>
<ol><li>1) Общий вид модальных окон – форма, информационное сообщение, важное сообщение</li><li>2) Окно авторизации – вход, регистрация, восстановление пароля</li><li>3) Ошибка авторизации/регистрации</li></ol>
<h5>0100 – Список топиков</h5>
<ol><li>Виды топиков: черновик, отложенный, опубликованный, из закрытого блога, на модерации</li><li>Топик с превью и без</li><li>Топик с фотосетом, с голосованием, с сылкой-источником</li><li>Сайдбар и общий вид виджетов в сайдбаре</li><li>Виджеты – Прямой эфир, Список категорий, Список блогов, Теги</li><li>Пагинация (блок со списком страниц)</li> </ol>
<h5>0200 – Просмотр топика</h5>
<ol><li>Вид топика: черновик, отложенный, опубликованный, из закрытого блога, на модерации</li><li>Служебное меню: Редактировать / Удалить</li><li>Элементы текста: заголовки (h4, h5, h6), изображения, списки, цитаты, ссылка на пользователя</li><li>Фотосет, голосование (выбор и результаты), ссылка на источник</li><li>Дополнительные поля: теги, дата, место, прикрепленные файлы</li><li>Голосование за топик (+/-/воздержался)</li><li>Комментарии разрешены/запрещены</li><li>Дерево комментариев (авторский, новый, прочитанный, помеченный на удаление, удаленный)</li><li>Написать комментарий</li></ol>
<h5>0210 – Создание/редактиование топика</h5>
<ol><li>Виджет – Информация о блоге</li><li>Блок «Доступные теги»</li><li>Блоки — Фотосет, голосование, ссылка на источник</li><li>Дополнительные поля: теги, дата, место, прикрепленные файлы</li><li>Предпросмотр топика</li></ol>
<h5>0300 – Список блогов</h5>
<ol><li>Типы блогов: персональные, открытые, закрытые, тайные, корпоративные</li><li>Кнопки «Подписаться»/«Отписаться»</li></ol>
<h5>04xx – Блог</h5>
<strong>0400 – Блог. Лента топиков</strong><br>
<ol><li>Информация о блоге (свернутая/развернутая)</li><li>Служебное меню: Редактировать/Администрировать/Удалить</li></ol>
<strong>0410 – Блог. Администрирование</strong><br>
<ol><li>1) Виджет – Приглашение в блог</li></ol>
<strong>0420 – Блог. Создание/Редактирование</strong><br>
<h5>0500 – Люди</h5>
<ol><li>Виджеты – Города, Страны, Статистика</li></ol>
<h5>06xx – Профиль чужой</h5>
<strong>0600 – Информация</strong><br>
<ol><li>Без заметки</li><li>Добавить заметку</li><li>С заметкой</li><li>В пунктах Публикации, Избранное, Друзья – бейджи с числом</li></ol>
<strong>0610 – Стена</strong><br>
<ol><li>Просмотр</li><li>Написать/Ответить</li></ol>
<strong>0620 – Публикации (топики/комментарии)</strong><br>
<strong>0630 – Избранное (топики/комментарии)</strong><br>
<strong>0640 – Друзья</strong><br>
<strong>0650 – Активность</strong> <br>
<h5>07xx – Профиль свой</h5>
<strong>0600 – Информация</strong><br>
<strong>0610 – Стена</strong><br>
<strong>0620 – Публикации (топики/комментарии)</strong><br>
<strong>0630 – Избранное (топики/комментарии)</strong><br>
<strong>0640 – Друзья</strong><br>
<strong>0650 – Активность</strong><br>
<strong>0660 – Настройки профиля</strong><br>
<strong>0670 – Настройки аккаунта</strong><br>
<strong>0680 – Настройки сайта</strong><br>
<h5>08xx – Система сообщений</h5>
<strong>0800 – Список сообщений</strong><br>
<ol><li>Раскрывающийся блок «Поиск сообщений»</li></ol>
<strong>0810 – Просмотр сообщения</strong><br>
<ol><li>Ответить</li></ol>
<strong>0820 – Создать сообщение</strong><br>
<strong>0830 – Блокировать</strong><br>
<h5>0900 – Активность</h5>
<ol><li>Виджет – Список отслеживаемых пользователей, добавить пользователя</li></ol>
<h5>10xx – Лента</h5>
<ol><li>Контекстное меню: Подписки, Комментарии, Новые</li></ol>
<strong>1010 – Подписки (лента топиков)</strong><br>
<ol><li>Виджеты – Люди, на которых подписан, Друзья, Блоги</li></ol>
<strong>1020 – Комментарии (лента топиков)</strong><br>
<ol><li>Виджеты – Топики, в которых отслеживаются комментарии</li></ol>
<strong>1030 – Новые</strong><br>
<h5>1100 – Статическая страница (например, «About»)</h5>
<ol><li>Родительская страница без дочерних</li><li>Родительская страница с дочерними страницами</li><li>Дочерняя страница</li></ol>
<h5>1200 – Страница ошибки (404)</h5>
<br>
Вот такой вот списочек. А если шаблон планируется еще и адаптивным, то каждую из этих страниц надо будет прорисовать в различных размерах экрана.<br>
<br>
Кстати, к вопросу о трудоемкости разработки шаблонов для Альто/ЛС — давно предполагал (а сейчас в этом утвердился), что одна из причин более высокой трудоемкости разработки — наш движок «из коробки» имеет гораздо больше функционала, и для него поэтому требуется гораздо больше страниц и элементов.]]></description>
					<pubDate>Wed, 14 May 2014 12:36:39 +0400</pubDate>
									</item>
							<item>
					<title>Модальные окна – общаемся с пользователем красиво (часть 2)</title>
					<guid isPermaLink="true">https://altocms.ru/t/583/</guid>
					<link>https://altocms.ru/583.html</link>
					<author>vshemarov@gmail.com</author>
					<description><![CDATA[<img src="https://altocms.ru/uploads/images/00/00/02/2014/05/08/db050d.jpg" align="right" />В <a href="https://altocms.ru/blog/skins/581.html" rel="nofollow" >первой части</a> я рассказал про «шаблонные» модальные окна. Т.е. такие, для которых создаются отдельные файлы-шаблоны. И сложность и навороченность этих окон может быть безграничной.<br/>
<br/>
Но нередко для общения с пользователем нужны совсем простые диалоговые окна – просто вывести какое-то сообщение с единственной кнопкой «Ок», которое он не сможет не заметить, или запросить у него подтверждение какого-либо действия.<br/>
<br/>
Часто на сайтах для таких целей используют <a href="https://altocms.ru/911.html" title="<strong>Системные функции&nbsp;</strong><br>Есть в движке несколько групп так называемых «системных» функций. Файлы, содержащие эти функции, загружаются в самом начале работы движка, еще до загрузки файлов конфигурации, и сами функции не привязаны к какому-либо модулю и могут использоваться в любом месте, в любом компоненте – в модулях, экшенах, мапперах и пр." class="term">системные функции</a> <strong>alert()</strong>, <strong>confirm()</strong> и <strong>prompt()</strong>. Примерно вот так:<br/>
<pre class="prettyprint"><code>&lt;a href=&quot;site.com/delete/all/&quot; onclick=&quot;return confirm('Вы уверены?');&quot;&gt;Удалить все!&lt;/a&gt;</code></pre><br/>
Это работает в любом браузере, но окна, которые выводятся такими функциями, выглядят некрасиво, примитивно и ломают всю красоту, которую мы наводим на своем сайте. <a name="cut" rel="nofollow"></a> <br/>
<br/>
Чтоб решить эту проблему в движке сейчас можно (я бы сказал – нужно) использовать аналоги:<br/>
<br/>
<strong>ls.modal.alert(options)</strong> — вывод информационного окна с одной кнопкой «Ок»<br/>
<strong>ls.modal.confirm(options)</strong> — вывод окна с кнопками «Отмена» и «Подтвердить»<br/>
<strong>ls.modal.prompt(options)</strong> — окно с полем ввода<br/>
<br/>
Во всех функциях параметр <strong>options</strong> может быть либо строкой, либо объектом. Например:<br/>
<pre class="prettyprint"><code>ls.modal.alert(‘Hello, world!’);</code></pre><br/>
Этот код выведен модальное окно с текстом <strong>«Hello, world!»</strong> и кнопкой <strong>«Ok»</strong>. И самое главное – это окно будет оформлено точно так же, как все другие модальные окна вашего сайта.<br/>
<br/>
Мы можем также повесть обработчик на нажатие кнопки:<br/>
<pre class="prettyprint"><code>ls.modal.alert({title: 'I say', text: 'Hello, world!', onConfirm: function(){
   // юзер кликнул по кнопке Ok
}});
</code></pre>Здесь добавляется заголовок окна 'I say' и по нажатию кнопки будет выполнена функция, которая передана в параметре <strong>onConfirm</strong>.<br/>
<br/>
Но это еще не все! Мы можем в теле окна вывести любой HTML-код:<br/>
<pre class="prettyprint"><code>var htmlCode = '&lt;img src=&quot;site.com/uploaded/avatar.jpg&quot;&gt; Вот ваш новый аватар';
ls.modal.alert({title: 'Аватар', html: htmlCode});
</code></pre>И получим примерно такое вот окошко:<br/>
<img src="https://altocms.ru/uploads/images/00/00/02/2014/05/08/39b2d2.jpg" /><br/>
Обратите внимание, что для отображения HTML-кода используется параметр <strong>html</strong>, а не <strong>text</strong> (если передать оба параметра, то будет использован <strong>text</strong>, а <strong>html</strong> будет проигнорирован).<br/>
<br/>
Аналогично используются функции <strong>ls.modal.confirm()</strong> и <strong>ls.modal.prompt()</strong>. Но в этих функциях возможны дополнительные параметры. Например в параметрах функции <strong>ls.modal.confirm()</strong> мы можем передать, не один, а два обработчика — по обработчику на каждую кнопку:<br/>
<pre class="prettyprint"><code>ls.modal.confirm({title: 'Удаление', text: 'Удалить все подряд?', 
   onConfirm: function(){
      // юзер кликнул по кнопке «Подтвердить»
   },
   onCancel: function(){
      // юзер кликнул по кнопке «Отмена»
   }
});</code></pre>Функция <strong>ls.modal.prompt()</strong> используется, чтобы запросить у пользователя какое-нибудь значение. И мы можем задать это значение по умолчанию:<br/>
<pre class="prettyprint"><code>ls.modal. prompt ({title: 'Ввод числа', text: 'Введите сюда число', value: 123
   onConfirm: function(value){
      // Введенное значение в <a href="https://altocms.ru/919.html" title="<strong>переменной&nbsp;</strong><br>Общая схема имени переменной выглядит следующим образом: &lt;strong&gt;префикс&lt;/strong&gt;+&lt;strong&gt;ДополнительныйПрефикс&lt;/strong&gt;+&lt;strong&gt;ИмяПеременной&lt;/strong&gt;+&lt;strong&gt;Суффикс&lt;/strong&gt;. Имена переменных содержат латинские буквы верхнего и нижнего регистров и начинаются с префикса, записаного в нижнем регистре, обозначающего тип данных значения этой переменной. Перечень префиксов, рекомендованых к использованию указан ниже. Дополнительный префикс конкретизирует значение переменной и выбирается из перечня указанных ниже рекоммендуемых дополнительных префиксов. Имя переменной состоит из одного или нескольких слов, описывающих смысловое значение этой переменной, и записывается горбатым регистром. Так как префиксы описывают тип значения переменной, ее имя описывает экземпляр данного типа в единственном числе. Суффикс дополняет имя переменной и конкретизирует ее смысловое значение. Перечень суффиксов, рекоммендованых к использованию указан ниже. Цифры в имени допускаются, но не рекомендуются. Знак нижнего подчеркивания в имени не используется.&lt;br/&gt;
&lt;br/&gt;
&lt;strong&gt;Префиксы&lt;/strong&gt;&lt;br/&gt;
Рекомендован к использованию следующий перечень префиксов:&lt;br/&gt;
 — a (array) — массив значение;&lt;br/&gt;
 — b (bool) — логическое значение;&lt;br/&gt;
 — e (entity) — объект типа Entity и наследуемые от него;&lt;br/&gt;
 — i (integer) — целочисленное значение;&lt;br/&gt;
 — f (float) — значение вещественного типа;&lt;br/&gt;
 — m (mapper) — объект типа Mapper и наследуемые от него;&lt;br/&gt;
 — n (number) — значение неопределеного цифрового типа, которое может принимать как целое, так и&lt;br/&gt;
вещественное значение. Требует проверки на значение типа при использовании.&lt;br/&gt;
&lt;br/&gt;
 — o (object) — объект, типа отличного от Mapper и Entity;&lt;br/&gt;
 — s (string) — строковое значение;&lt;br/&gt;
 — x (miXed) — объект смешанного типа. Требует проверки на значение типа при использовании.&lt;br/&gt;
&lt;br/&gt;
Рекомендован к использованию следующий перечень дополнительных префиксов:&lt;br/&gt;
 — Min (minimum) — минимальное значение;&lt;br/&gt;
 — Max (maximum) — максимальное значение;&lt;br/&gt;
 — Current — текущее значение.&lt;br/&gt;
&lt;br/&gt;
&lt;strong&gt;Суффиксы&lt;/strong&gt;&lt;br/&gt;
В отличие от Дополнительных префиксов суффиксы конкретизируют семантическое значение имени переменной, а не ее&lt;br/&gt;
значение. Рекомендован к использованию следующий перечень суффиксов:&lt;br/&gt;
 — First — первое значение из доступного списка;&lt;br/&gt;
 — Last — последнее значение из доступного списка;&lt;br/&gt;
 — Limit — предельное значение из доступного списка;&lt;br/&gt;
 — Tmp — временное значение;&lt;br/&gt;
 — New — новое (устанавливаемое) значение;&lt;br/&gt;
 — Old — старое (затираемое) значение;&lt;br/&gt;
&lt;br/&gt;
&lt;strong&gt;Исключения&lt;/strong&gt;&lt;br/&gt;
Существуют имена переменных, предназначенных для специального использования — исключения из указанных&lt;br/&gt;
рекоммендаций:&lt;br/&gt;
 — i, j — итераторы для небольших циклов (цикл считается небольшим, если помещается полностью на&lt;br/&gt;
один экран и позволяет увидеть сразу все вхождения итераторов);&lt;br/&gt;
 — k, v — переменные цикла foreach ($aData as $k =&amp;gt; $v);&lt;br/&gt;
 — key, value — переменные цикла foreach ($aData as $key =&amp;gt; $value);&lt;br/&gt;
 — s — cериализованное представление данных;&lt;br/&gt;
 — data — переменная с данными в сеттере сущности, а также данные возвращаемые из методов маппера;&lt;br/&gt;
 — sql — в мапперах переменная, содержащая текст запроса – префикс «s» не используется." class="term">переменной</a> «value»
   }
});</code></pre>Здесь в обработчик передается введенное пользователем значение и мы можем использовать его для того, чтоб определиться, что ж с ним дальше делать.<br/>
<br/>
В заключении этой части хочу обратит внимание на одну особенность, о которой не надо забывать: есть важное отличие в поведении системных функций <strong>alert()</strong>, <strong>confirm()</strong> и <strong>prompt()</strong> и их аналогах, о которых идет речь — <strong>ls.modal.alert(options)</strong>, <strong>ls.modal.confirm(options)</strong> и <strong>ls.modal.prompt(options)</strong>. А именно — <a href="https://altocms.ru/911.html" title="<strong>Системные функции&nbsp;</strong><br>Есть в движке несколько групп так называемых «системных» функций. Файлы, содержащие эти функции, загружаются в самом начале работы движка, еще до загрузки файлов конфигурации, и сами функции не привязаны к какому-либо модулю и могут использоваться в любом месте, в любом компоненте – в модулях, экшенах, мапперах и пр." class="term">системные функции</a> останавливают выполнение кода javascript и ждут реакции пользователя. И только после того, как пользователь среагировал, выполнение кода продолжается. Когда же вы используете описанные здесь функции, то сначала выполняется полностью весь код, где идет сам вызов, и только потом выводится диалоговое окно.<br/>
<br/>
Поэтому если взять код, приведенной в начале статьи и просто заменить вызов <strong>confirm()</strong> на <strong>ls.modal.confirm()</strong> и код придется переписать примерно так:<br/>
<pre class="prettyprint"><code>&lt;a href=&quot;#&quot; class=&quot;js-delete-all&quot;&gt;Удалить все!&lt;/a&gt;
&lt;script&gt;
$(function(){
    $('js-delete-all').click(
        ls.modal.confirm('Вы уверены?', function(){
            location.href=&quot;site.com/delete/all/&quot;;
        });
    );
});
&lt;script&gt;</code></pre>Обратите внимание — функция обработчик передается не в параметре onConfirm, а вторым аргументом функции, это тоже допустимо.<br/>
<br/>
Да, кода получается немного больше. Но зато красиво! А красота, как известно, требует жертв.]]></description>
					<pubDate>Thu, 08 May 2014 13:51:19 +0400</pubDate>
									</item>
							<item>
					<title>Модальные окна – общаемся с пользователем красиво (часть 1)</title>
					<guid isPermaLink="true">https://altocms.ru/t/581/</guid>
					<link>https://altocms.ru/581.html</link>
					<author>vshemarov@gmail.com</author>
					<description><![CDATA[<img src="https://altocms.ru/uploads/images/00/00/02/2014/05/08/703f45.jpg" align="right">Статья рассчитана на тех, кто знает, что такое «модальные окна» и зачем они нужны, и занимается разработкой шаблонов или просто проектирует интерфейс и придумывает дизайн для сайта на <a href="https://altocms.ru/871.html" title="<strong>Alto&nbsp;</strong><br>Если вы собираетесь создавать сайт и выбираете для этой цели CMS (или «движок», как еще говорят), то наверняка у вас возникает вопрос: «А чем же Alto лучше других CMS? И годится ли для моих задач?»&lt;br/&gt;
&lt;br/&gt;
Выбирая Alto CMS, вы получаете «из коробки» функционал, который в других движках достигается установкой множества плагинов:" class="term">Alto</a> CMS.<br>
<br>
Модальные окна — неотъемлемая часть функционального сайта, где предполагается общение с пользователем, поэтому важно понимать хотя бы общие принципы, как с ними управляться. Вообще все модальные окна можно разделить на два вида – подготовленные заранее и создаваемые на лету.<br>
<br>
<strong>Шаблонные</strong> (заранее подготовленные) модальные окна – это обычно диалоговые окна для конкретных случаев, которые содержат множество полей для заполнения. Для этих окон для них создаются отдельные шаблоны, которые подключаются в нужном месте в родительских шаблонах.<br>
<br>
<strong>Системные</strong> модальные окна, создаваемые на лету, это, как правило, аналоги системных функций <strong>alert()</strong>, <strong>confirm()</strong> и <strong>prompt()</strong>.<br>
<h5>Шаблонные модальные окна</h5>
Как явствует из названия, шаблонные окна – это окна, у которых есть собственные файлы шаблонов. Эти файлы обычно лежат в папке <strong>tpls/modals/</strong> скина, и имеют префикс <strong>modal.</strong> (здесь и далее в статье пути указываются относительно папки скина). Каждое модальное окно на странице имеет свой ID, и он определенным образом соответствует названию файла шаблона.<br>
<br>
Например, в файле <strong>tpls/modals/modal.add_friend.tpl</strong> находится шаблон для окна с ID <strong>modal-add_friend</strong>, в файле <strong>tpls/modals/modal.write.tpl</strong> – шаблон для окна с ID <strong>modal-write</strong>, и т.д.<br>
<br>
Чтобы не было путаницы, крайне не рекомендуется использовать в названии файлов шаблонов модальных окон знак «минус».<br>
<br>
Файлы окон могут подключаться в другие шаблоны обычным образом – директивой Smarty <strong>{include file=&#34;...&#34;}</strong>. Но т.к. каждая страница формируется из большого числа шаблонов, то есть вероятность, что файл модального окна может быть подключен несколько раз, и тогда получим на странице несколько одинаковых окон с одним и тем же ID, что не очень хорошо. Чтобы этого избежать, рекомендуется использовать директиву <strong>{include_once file=&#34;...&#34;}</strong>. Например:<br>
<pre class="prettyprint"><code>{include_once file=&#34;tpls/modals/modal.write.tpl&#34;}</code></pre><br>
Эта директива действует точно так же, как <strong>{include …}</strong>, но она запоминает все подключенные с ее помощью шаблоны и не подключает их второй раз (т.е. просто игнорируется).<br>
<br>
Оформляются и управляются шаблонные модальные окна так, как нам велит Bootstrap, поэтому подробно расписывать не буду, но напомню css-классы, которые используются для создания окна:<br>
<pre class="prettyprint"><code>.modal, .modal-dialog { /* это классы-обертки и их трогать не рекомендуется*/}
.modal-content        { /* собственно само модальное окно */}
.modal-header         { /* шапка окна, обычно это тег &#60;header&#62; */}
.modal-title          { /* заголовок окна, стандартно это тег &#60;h4&#62; */}
.modal-body           { /* тело окна, его основное содержимое */}
.modal-footer         { /* «подвал» окна, обычно там размещают кнопки */}
</code></pre>Для отображения и скрытия модальных окон можно использовать и родные бутстраповские методы, но все же рекомендуется использовать альтовские, вот так:<br>
<strong>ls.modal.show(&#39;#modal-write&#39;)</strong> – отображение модального окна с ID modal-write<br>
<strong>ls.modal.hide(&#39;#modal-write&#39;)</strong> – скрытие модального окна с ID modal-write<br>
<strong>ls.modal.hide()</strong> – вызов без параметра скроет любое отображаемое модальное окно.<br>
<br>
О системных модальных окнах <strong>ls.modal.alert()</strong>, <strong>ls.modal.confirm()</strong> и <strong>ls.modal.prompt()</strong>, а также о том, как можно на лету создавать любые модальные окна, которые будут смотреться в общем стиле сайта, я расскажу в следующей части.<br>
<br>
UPD: <a href="https://altocms.ru/blog/skins/583.html">Часть 2</a>]]></description>
					<pubDate>Thu, 08 May 2014 04:38:40 +0400</pubDate>
									</item>
							<item>
					<title>Experience универсальный дизайн для Alto CMS (UPD)</title>
					<guid isPermaLink="true">https://altocms.ru/t/580/</guid>
					<link>https://altocms.ru/580.html</link>
					<author>acstrelcova@gmail.com</author>
					<description><![CDATA[<a href="http://creatime.org/img/expirience/poster.jpg" rel="nofollow"><img src="http://creatime.org/img/expirience/poster.jpg"></a><br>
<br>
Дизайн Experience для адаптивного многофункционального шаблона на основе Startkit и соотв. Bootstrap 3. Было принято решение сделать его бесплатным и заменить дизайн, который должен был идти в дистрибутиве (Sky), на Experience. <br>
<br>
Это связанно с некоторыми особенностями интерфейса – Experience. Более функциональный и универсальный, чем Sky, он так же обладает большими возможностями по кастомизации, к тому же его легче сверстать , если использовать за основу Startkit. По предварительной договоренности Вадим согласился включить Experience в стандартный дистрибутив <a href="https://altocms.ru/871.html" title="<strong>Alto&nbsp;</strong><br>Если вы собираетесь создавать сайт и выбираете для этой цели CMS (или «движок», как еще говорят), то наверняка у вас возникает вопрос: «А чем же Alto лучше других CMS? И годится ли для моих задач?»&lt;br/&gt;
&lt;br/&gt;
Выбирая Alto CMS, вы получаете «из коробки» функционал, который в других движках достигается установкой множества плагинов:" class="term">Alto</a> CMS. <strong>Но пока это только дизайн и релиз шаблона на его основе станет возможным только при поддержке <a href="https://altocms.ru/871.html" title="<strong>Alto&nbsp;</strong><br>Если вы собираетесь создавать сайт и выбираете для этой цели CMS (или «движок», как еще говорят), то наверняка у вас возникает вопрос: «А чем же Alto лучше других CMS? И годится ли для моих задач?»&lt;br/&gt;
&lt;br/&gt;
Выбирая Alto CMS, вы получаете «из коробки» функционал, который в других движках достигается установкой множества плагинов:" class="term">Alto</a> сообщества</strong>.<br>
<br>
Прежде всего хочу рассказать о реализации портального вывода постов по категориям на основе дизайна Experience . Подробности под катом. Здесь и далее изображения кликабельны.<br>
<a href="http://creatime.org/img/expirience/news.jpg" rel="nofollow"><img src="http://creatime.org/img/expirience/news.jpg"></a><br>
<br>
Такой вывод информации подойдет для новостных сайтов, городских порталов и тематических сообществ где есть несколько различных разделов. <br>
<br>
Для примера на спортивном портале есть несколько категорий – футбол, баскетбол, теннис и т.д. Для каждой категории указанной в настройках выводим отдельный блок, в котором есть главная новость (например с самым высоким рейтингом) и несколько обычных. Такой вывод позволит посетителю, который зашел на сайт, быстро выделить для себя блок с интересной для него информацией, вместо того, чтобы путаться в разных разделах, где все намешано в сплошной ленте. Это можно реализовать с помощью специального плагина для <a href="https://altocms.ru/871.html" title="<strong>Alto&nbsp;</strong><br>Если вы собираетесь создавать сайт и выбираете для этой цели CMS (или «движок», как еще говорят), то наверняка у вас возникает вопрос: «А чем же Alto лучше других CMS? И годится ли для моих задач?»&lt;br/&gt;
&lt;br/&gt;
Выбирая Alto CMS, вы получаете «из коробки» функционал, который в других движках достигается установкой множества плагинов:" class="term">Alto</a> “Категории” и соответствующего шаблона. Предложенная мной концепция Experience, это только один из вариантов оформления таких блоков.<br>
<br>
Конечно такой вывод можно сделать на других CMS – joomla, Wordpress, Drupal и т.д., но главное премущество в реализации именно на <a href="https://altocms.ru/871.html" title="<strong>Alto&nbsp;</strong><br>Если вы собираетесь создавать сайт и выбираете для этой цели CMS (или «движок», как еще говорят), то наверняка у вас возникает вопрос: «А чем же Alto лучше других CMS? И годится ли для моих задач?»&lt;br/&gt;
&lt;br/&gt;
Выбирая Alto CMS, вы получаете «из коробки» функционал, который в других движках достигается установкой множества плагинов:" class="term">Alto</a> CMS – ленту новостей формируют пользователи сайта даже без участия админа, в итоге получаем самомодерируемое сообщество портального типа. Реализация таких сообществ до последнего времени была возможна только на основе платных CMS или со значительными доработками вышеперечисленных joomla, Wordpress, Drupal (что в свою очередь приводит к еще большей стоимости и/или временным затратам).<br>
<br>
Вывод через категории подойдет для совершенно различных тематик – бизнес, авто порталы, новостные медиа, техника, туристические сообщества и многие другие.<br>
<br>
Так же в Experince предусмотрен стандартный вывод постов. <br>
<a href="http://creatime.org/img/expirience/index.jpg" rel="nofollow"><img src="http://creatime.org/img/expirience/index.jpg"></a><br>
<br>
В шапке вместо баннера выводятся категории или блоги (которые указаны в настройках). Но вместе с тем на этом месте можно выводить баннер/слайдер либо полностью отключить этот блок.<br>
<a href="http://creatime.org/img/expirience/banner.jpg" rel="nofollow"><img src="http://creatime.org/img/expirience/banner.jpg"></a><br>
<br>
Так же можно использовать тематические обои или полноразмерную рекламу<br>
<a href="http://creatime.org/img/expirience/wallpapper.jpg" rel="nofollow">ссылка на скриншот</a><br>
<br>
В профиле нет ничего необычного , кроме того, что при открытии профиля пользователя, по умолчанию выводятся его публикации, а информация скрыта под спойлером. Это мне кажется более логичным для блого социальной сети.<br>
<a href="http://creatime.org/img/expirience/profile.jpg" rel="nofollow"><img src="http://creatime.org/img/expirience/profile.jpg"></a><br>
<br>
Отдельно хочу предложить идею, на которую меня натолкнула демо версия Startkit <a href="http://demo.altocms.ru/start-kit/index/newall/" rel="nofollow">http://demo.altocms.ru/start-kit/index/newall/</a> , а именно скин свитчер на панели навигации. Кнопки навигации всегда находятся у пользователя под рукой в любом месте страницы, почему бы не сделать здесь кнопку меню с быстрым доступом к самым необходимым для пользователя функциям – ссылка на профиль, сообщения, избранное, настройки.<br>
<a href="http://creatime.org/img/expirience/nav.jpg" rel="nofollow"><img src="http://creatime.org/img/expirience/nav.jpg"></a><br>
<br>
Для шаблона отрисованы аватары male/female, вдохновили аватары из шаблона Lexa — Synio, но на мой вкус <br>
<img src="http://creatime.org/img/expirience/eavatar.jpg"><br>
<br>
Как я писала выше, Experience легко кастомизировать под различные темы. Примеры цветовых схем (мобильный вид)<br>
<a href="http://creatime.org/img/expirience/mobile.jpg" rel="nofollow"><img src="http://creatime.org/img/expirience/mobile.jpg"></a><br>
<br>
Есть желание сделать еще несколько вариантов вывода топиков, особенно с использованием встроенного в <a href="https://altocms.ru/871.html" title="<strong>Alto&nbsp;</strong><br>Если вы собираетесь создавать сайт и выбираете для этой цели CMS (или «движок», как еще говорят), то наверняка у вас возникает вопрос: «А чем же Alto лучше других CMS? И годится ли для моих задач?»&lt;br/&gt;
&lt;br/&gt;
Выбирая Alto CMS, вы получаете «из коробки» функционал, который в других движках достигается установкой множества плагинов:" class="term">alto</a> функционала по работе с изображениями. Но думаю это разумнее будет делать на уже “живом шаблоне”.<br>
<br>
Так же предполагается выпуск для шаблона плагина masonry (аналог Synio flow), c широким выбором настроек. Плагин будет платным, но для участников краудфандинга – бесплатно в качестве небольшого бонуса :)<br>
<br>
<strong>UPD</strong> Список участников, которые отписались в теме<br>
<br>
<ol><li>braindep</li> <li>Seigiard</li> <li>sunrise</li> <li>Barthazar</li> <li>georgos</li><li>aVadim</li> <li>Kenex</li> <li>Live</li> <li>Lena</li><li>01001</li><li>Zaicev</li><li>perfect</li><li>Pring</li><li>MySochi</li><li>Alyona</li><li>orthograf</li></ol>
<br>
Для участников краудфандинга создано приватное коллективное обсуждение. Все дополнительные материалы — остальные страницы шаблона, ссылки на тестирование, бонусы и т.д будут обсуждаться в этой теме.]]></description>
					<pubDate>Tue, 06 May 2014 12:40:11 +0400</pubDate>
									</item>
							<item>
					<title>Start-kit - выход на публику</title>
					<guid isPermaLink="true">https://altocms.ru/t/554/</guid>
					<link>https://altocms.ru/554.html</link>
					<author>vshemarov@gmail.com</author>
					<description><![CDATA[Кто еще не в курсе, что такое <strong>start-kit</strong>, могут почитать предыдущие статьи об этом <a href="https://altocms.ru/blog/skins/528.html">тынц</a> и <a href="https://altocms.ru/blog/skins/551.html">тынц</a>.<br>
<br>
Кто не любит читать, а хочет сразу потрогать руками, тот может сделать это здесь: <a href="http://demo.altocms.ru/start-kit/index/newall/" rel="nofollow">http://demo.altocms.ru/start-kit/index/newall/</a><br>
<br>
А кому интересны подробности, пожалуйте под кат После некоторых раздумий, я решил все же привести всю структуру папок и имен файлов к одному стандартному виду. А это значит, что шаблоны экшенов тоже теперь называются по-новому. Например, раньше файл для добавления блогов назывался <strong>add.tpl</strong> и лежал в папке <strong>actions/ActionBlog/add.tpl</strong>. Теперь же его место в структуре такое: <strong>actions/blog/action.content.add.tpl</strong><br>
<br>
Т.е. общий принцип такой: файлы лежат по папкам, и префикс файлов соответствует названию папок. Зато четко понятно, какой файл где нужно искать.<br>
<br>
Разумеется, «плагин LS-совместимости» тоже был доработан, чтобы старые (old-style) ЛС-шаблоны можно было использовать в Альто.<br>
<br>
И также напомню, что <a href="https://altocms.ru/profile/Alyona/" data-alto-role="popover" data-api="user/117/info">Alyona</a> предложила <a href="https://altocms.ru/blog/skins/533.html">свой дизайн</a> для start-kit. И именно его вы можете лицезреть в демо-версии здесь: <a href="http://demo.altocms.ru/start-kit/index/new/" rel="nofollow">http://demo.altocms.ru/start-kit/index/new/</a> Добавлю, что будет еще две темы в более темных тонах.<br>
<br>
<strong>ВАЖНО</strong>: Шаблон будет бесплатным и полностью свободным для использования и/или модификации. Копирайт «Design by...» может быть снят без каких-либо предварительных условий.]]></description>
					<pubDate>Tue, 01 Apr 2014 23:21:03 +0400</pubDate>
									</item>
							<item>
					<title>Типовая структура шаблонов для Alto CMS</title>
					<guid isPermaLink="true">https://altocms.ru/t/551/</guid>
					<link>https://altocms.ru/551.html</link>
					<author>vshemarov@gmail.com</author>
					<description><![CDATA[Эта статья написана в продолжение статьи <a href="https://altocms.ru/blog/skins/528.html">Базовый скин (шаблон) для Alto CMS</a>, рассчитана на тех, кто проектирует и верстает шаблоны для <a href="https://altocms.ru/871.html" title="<strong>Alto&nbsp;</strong><br>Если вы собираетесь создавать сайт и выбираете для этой цели CMS (или «движок», как еще говорят), то наверняка у вас возникает вопрос: «А чем же Alto лучше других CMS? И годится ли для моих задач?»&lt;br/&gt;
&lt;br/&gt;
Выбирая Alto CMS, вы получаете «из коробки» функционал, который в других движках достигается установкой множества плагинов:" class="term">Alto</a> CMS.<br>
<br>
Работа над скином <strong>start-kit</strong> движется, и уже забрезжил на горизонте финальный огонек. Что сделано за это время:<br>
1) Более-менее «устаканилась» структура папок и именование файлов (об этом и пойдет, в основном, речь в этой статье).<br>
2) Удалось избавится от множества лишних файлов и js-скриптов.<br>
3) Чуть больше стало настроек самого скина: верхний баннер стал виджетом, логотип и главное меню можно менять в настройках, не трогая шаблоны.<br>
<br>
Кого интересует то, что в итоге получается, скин можно скачать здесь. Кому интересны детали, ход разработки и/или если есть желание обсудить, тех прошу под кат. <h5>Общие принципы</h5>
<img src="https://altocms.ru/uploads/images/00/00/02/2014/03/27/2861fc.jpg" align="right">Сейчас сформировалась вот такая структура папок, как на картинке. Возможно, что-то еще по мелочи меняться будет, но не думаю, что сильно. Мне очень хотелось соблюсти баланс между двумя задачами – с одной сделать структуру более понятной и простой, с другой – максимально гибкой и настраиваемой. Как это получилось – судить вам.<br>
<br>
Сейчас большинство шаблонов в папке <strong>tpls</strong> раскидано по подпапкам. И имя файла шаблона соответствует названию подпапки. Например, файл <strong>menu.main.tpl</strong> лежит в подпапке menus, файл <strong>topic.show.tpl</strong> лежит в подпапке <strong>topics</strong> и т.д. <br>
<br>
Исключение пока составляет подпапка <strong>tpls/actions</strong> – ее структура осталась прежней (во всяком случае, пока).<br>
<br>
В общем, по имени файла шаблона (в большинстве случаев) можно понять, где этот файл лежит. Осталось, правда, некоторое количество файлов в папке <strong>tpl</strong>, которые пока никуда не определены. Пока думаю, как быть с ними. Склоняюсь к тому, чтобы их разместить в подпапке, скажем,common или system. Если у кого-то будут идеи на этот счет – с радостью выслушаю.<br>
<h5>Модальные окна</h5>
Модальные окна, как и прочие крупные элементы, лежат в своей папке. И каждое модальное окно лежит в отдельном файле. Напомню, что для работы с модальными окнами используются «родные» механизмы бутстрапа. Модальные окна (как HTML-элементы) имеют свой id, и он жестко связывается с названием файла. Например, модальное окно, которое находится в файле <strong>modal.auth.tpl</strong>, имеет <strong>id</strong> такой: <strong>id=&#34;modal-auth&#34;</strong>, а окно в файле <strong>modal.blog_delete.tpl</strong> — <strong>id=&#34;modal-blog_delete&#34;</strong>.<br>
<br>
Т.к. модальные окна имеют свои <strong>id</strong>, а подключаться они могут в любом шаблоне, то возможна ситуация, когда одно и то же окно подключается несколько раз. Дабы избежать этой коллизии, рекомендуется шаблоны окон подключать директивой не <strong>include</strong>, а <strong>include_once</strong>:<br>
<pre class="prettyprint"><code>{include_once file=&#34;modals/modal_auth.tpl&#34;}</code></pre><br>
<h5>Виджеты</h5>
<img src="https://altocms.ru/uploads/images/00/00/02/2014/03/27/ad9fd9.jpg"><br>
Как-то так привыкли многие, что виджеты — это то, что в сайдбаре выводится. На самом деле виджет — это более широкое понятие. Виджетом, по сути, может стать любой элемент выводимой страницы. Сейчас, кроме блоков, выводимых в сайдбаре, виджеты формируют так называемый toolbar (это кнопочки у правого края экрана), а также выводятся в начале страницы в виде статичной картинки или слайд-шоу. Все виджеты находятся, как и положено в подпапке <strong>widgets</strong> и имеют префикс <strong>widget</strong>.<br>
<h5>Контент – топики (статьи) и поля</h5>
У нас есть три режима работы с контентом: создание/редактирование, вывод списка, отображение единицы контента (топика или статьи). Для этих трех режимов предназначены шаблоны с суффиксами .edit.tpl, .list.tpl и .show.tpl, лежащие в папках topics и fields. И модифицируя эти шаблоны, можно настраивать вывод контента для разных режимов.<br>
<br>
Но это еще не все! Как известно, в <a href="https://altocms.ru/871.html" title="<strong>Alto&nbsp;</strong><br>Если вы собираетесь создавать сайт и выбираете для этой цели CMS (или «движок», как еще говорят), то наверняка у вас возникает вопрос: «А чем же Alto лучше других CMS? И годится ли для моих задач?»&lt;br/&gt;
&lt;br/&gt;
Выбирая Alto CMS, вы получаете «из коробки» функционал, который в других движках достигается установкой множества плагинов:" class="term">Alto</a> CMS можно задавать собственные типы контента. И в новой структуре есть возможность автоматически сопоставлять шаблон редактирования/вывода с нужным типом контента. Поясню на примере.<br>
<br>
Допустим, вы создаете тип контента «review». И в подпапку topics вы можете положить шаблоны <strong>topic.type_review.edit.tpl</strong> (для создания и редактирования), <strong>topic.type_review.list.tpl</strong> (для отображения списком) и <strong>topic.type_review.show.tpl</strong> (для полного отображения). И именно они будут использоваться для работы с топиками типа «review». И это без всякой правки движка, без дополнительных плагинов и прочих сложностей. Для тех типов контента, для которых нет «родных» шаблонов, будут использоваться файлы по умолчанию типа <strong>topic.type_default.show.tpl</strong>.<br>
<br>
Вот, совсем кратенько, о новой структуре шаблонов. И подчеркну: новая структура вовсе не предполагает, что нельзя будет работать со старыми шаблонами, разработанными для LS/<a href="https://altocms.ru/871.html" title="<strong>Alto&nbsp;</strong><br>Если вы собираетесь создавать сайт и выбираете для этой цели CMS (или «движок», как еще говорят), то наверняка у вас возникает вопрос: «А чем же Alto лучше других CMS? И годится ли для моих задач?»&lt;br/&gt;
&lt;br/&gt;
Выбирая Alto CMS, вы получаете «из коробки» функционал, который в других движках достигается установкой множества плагинов:" class="term">Alto</a> прежних версий. Они будут работать, как прежде, обратную совместимость никто не отменяет! Единственный нюанс — для корректной работы LS-шаблонов может потребоваться активация плагин совместимости, который идет в комплекте с движком. Но при создании новых следует опираться уже на новые правила.<br>
<br>
Вот, как-то так. И, как обычно, жду ваших отзывов, пожеланий, предложений.]]></description>
					<pubDate>Thu, 27 Mar 2014 16:10:44 +0400</pubDate>
									</item>
							<item>
					<title>Start-Kit - дизайн для базового шаблона</title>
					<guid isPermaLink="true">https://altocms.ru/t/533/</guid>
					<link>https://altocms.ru/533.html</link>
					<author>acstrelcova@gmail.com</author>
					<description><![CDATA[<a href="http://coorp.org/startkit/start-show.jpg" rel="nofollow"><img src="http://coorp.org/startkit/start-show2.jpg"></a><br>
<br>
Дизайн для дефолтного шаблона Start-Kit. Как мне кажется шаблон должен иметь собственный узнаваемый дизайн. В макете я постаралась сохранить линию дизайна сайта altocms.ru и простоту github для <strong>Start-Kit experience</strong>. В то же время отличия от оригинала минимальны, что позволит выполнить дизайн в качестве темы — сохранены все основные положения блоков. <strong>«Стартовый»</strong> шаблон должен иметь дизайн, который позволит использовать его не только разработчикам, но и на готовых сайтах без дополнительных правок.<br>
<br>
Все изображения кликабельны.<br>
<br>
<a href="http://coorp.org/startkit/sk2.jpg" rel="nofollow"><img src="http://coorp.org/startkit/sk3.jpg"></a><br>
<br>
Simple — без бекграунда и теней<br>
<a href="http://coorp.org/startkit/skn1.jpg" rel="nofollow"><img src="http://coorp.org/startkit/skn2.jpg"></a><br>
<br>
Вид с включенным баннером<br>
<a href="http://coorp.org/startkit/skb1.jpg" rel="nofollow"><img src="http://coorp.org/startkit/skb2.jpg"></a>]]></description>
					<pubDate>Fri, 07 Mar 2014 12:18:12 +0400</pubDate>
									</item>
							<item>
					<title>Кастомизация шаблона &quot;Developer Kit&quot;</title>
					<guid isPermaLink="true">https://altocms.ru/t/529/</guid>
					<link>https://altocms.ru/529.html</link>
					<author>acstrelcova@gmail.com</author>
					<description><![CDATA[<strong>Это кросспост статьи автора шаблона <a href="http://voffka.the-hut.by/blog/developer-kit/11.html" rel="nofollow">http://voffka.the-hut.by/blog/developer-kit/11.html</a></strong><br>
<br>
Не знаю на сколько это справедливо для <a href="https://altocms.ru/blog/skins/528.html">StartKit</a>, в любом случае на <a href="https://altocms.ru/871.html" title="<strong>Alto&nbsp;</strong><br>Если вы собираетесь создавать сайт и выбираете для этой цели CMS (или «движок», как еще говорят), то наверняка у вас возникает вопрос: «А чем же Alto лучше других CMS? И годится ли для моих задач?»&lt;br/&gt;
&lt;br/&gt;
Выбирая Alto CMS, вы получаете «из коробки» функционал, который в других движках достигается установкой множества плагинов:" class="term">alto</a> есть и developer-kit. Далее текст автора<br>
<br>
«Я все чаще убеждаюсь, что большая часть пользователей шаблона не до конца понимает все прелести его кастомизации…<br>
<br>
Ребята, этот шаблон можно очень просто стилизировать не имея при этом обширных знаний css и html! Да, чтобы менять структуру шаблона, надо что-то знать, но изменить цвета шаблона, шрифты, формы и прочее проще некуда!<br>
<br>
Я не просто так оставляю ссылку на кастомизированную страницу Бустрапа в теме шаблона (файл README.md). Перейдя по ней Вы попадете на страницу где сохранены текущие настройки для дефолтной темы шаблона, изменяя их Вы можете изменить Ваш шаблон как угодно и получить на выходе что-то свое, индивидуальное! Ниже опишу пошагово как это сделать.<br>
<br>
Итак, копируем куда-нибудь папку с дефолтной темой шаблона и переименовываем ее по своему усотрению. Заливаем обратно в шаблон. Далее работаем только с ней. Открываем файл README.md и переходим по указанной ссылке. Листаем ее чуть вниз, до раздела Less variables (если разбираетесь в верхней части, можно повыключать ненужное).<br>
<br>
Раздел Less variables. Здесь можно настроить ну ооочень многое… Я бы даже сказал, что практически все начиная от цветов и заканчивая дополнительными компонентами. Единственное, что надо сделать — уделить немного времени чтобы разобраться в этом всем разнообразии и поэкспериментировать.<br>
<br>
Давайте остановимся на нескольких подразделах для примера. Дальше, думаю, сами поймете.<br>
<br>
Возмем первый подраздел — Colors. Из названия понятно, что в нем настраиваются цвета. В них нас больше всего интересует пять полей: @brand-primary, @brand-success, @brand-info, @brand-warning и @brand-danger. Они задают основные цвета нашего шаблона. Понять их предназначение можно и из перевода. В шаблоне именно в таком ключе я старался их и применять. @brand-primary задает «главный» цвет, от его будут зависеть многие элементы, так, например, такого же цвета будут активные вкладки навигации. Если необходимо, его можно переопределять для отдельных элементов в их настройках.<br>
<br>
Рассмотрим на примере, чтобы было понятно. Для последней версии шаблона «Developer-Kit» в качестве @brand-success был выбран цвет #16b76f — соответственно все кнопки, имеющие такой класс, стали зеленого цвета. Для @brand-primary был задан синий цвет и те же активные пункты навигации (интересные, новые, обсуждаемые...) должны были быть синего света, но для них я задал другой цвет — красный в настройках подраздела Pills.<br>
<br>
Далее давайте рассмотрим раздел Typography. Он отвечает за наши шрифты — какие использовать, какого размера, настройки заголовков. Опять же все просто, необходимый минимум — поля @font-family-sans-serif, @font-size-base, @headings-font-family и @headings-font-weight. Здесь я изменил только @headings-font-family и @headings-font-weight для того, чтобы заголовки выводились шрифтом «Open Sans» жирным начертанием. Меняем по своему усмотрению.<br>
<br>
Внимание! Если Вы используете не системные шрифты, а, например, Гугловские, то их необходимо отдельно подключать в шаблоне. Если необходимо описать как это делается, спрашивайте, опишу.<br>
<br>
Ну и на последок возьмем еще подраздел настроек Navbar. Navbar — это та самая верхняя полоса в шаблоне с названием сайта и навигацией. У него может быть два класса — navbar-default и navbar-inverse (посмотрите примеры на странице компонентов Бутстрапа). В шаблоне используется navbar-inverse, поэтому можно настраивать только ту часть, которая касается только его. Почитайте название полей, по-моему все предельно понятно. Можно настраивать на свой вкус: высота, цвет, цвет ссылок, их состояний, цвет названия сайта… Поэкспериментируйте с настройками, думаю для себя что-то подберете! :)<br>
<br>
Все остальные разделы настраиваются аналогично. Внимательно читаем название поля, если надо изменить на свое значение — меняем, переходим к следующему. Что может быть проще?<br>
<br>
После того, как внесли все необходимые изменения, жмем кнопку «Compile and Download» в самом низу страницы и забираем готовые файлы с нужными изменениями. Осталось закинуть их в нашу тему взамен старых и шаблон приобретает новый вид!<br>
<br>
Это, конечно, минимум того, что можно сделать, но уже что-то, уже можно сделать свой сайт не похожим на другие. А дальше… дальше можно вооружившись такими нехитрыми инструментами как Firefox, Firebug и Notepad++ взять и немного подправить файл стилей шаблона, подкорректировать html…<br>
<br>
Если получилось сумбурно — извиняйте. Если непонятно — спрашивайте. :)»]]></description>
					<pubDate>Wed, 05 Mar 2014 23:55:41 +0400</pubDate>
									</item>
					</channel>
	</rss>
