Про слои

Mar 02, 2013 01:31

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

ВНИМАНИЕ
Урок для продвинутых пользователей.
Подразумевается, что вы знакомы с Html и Css и вас не пугает программный код. В идеале иметь хотя бы небольшие навыки программирования.
Для экспериментов обязательно иметь платный аккаунт (можно купить за 5$ на 2 месяца, если что).

Итак, слои.

Какие типы слоев существуют?

Core - родительский слой.
- i18nc - языковые слои.
- layout - слои стилей.
- - i18n - языковые слои для слоев стилей.
- - theme - темы.
- - user - слои настроек.

Описание

Core - родительский слой для всех прочих типов слоев. Недоступен для редактирования, но содержит массу полезной информации

Содержание слоя
Код слоя

- i18nc - языковые слои, так же недоступны для редактирования. Они применяются, когда вы в настройках оформления выбираете язык для надписей в своем журнале.

Пример слоя

- layout - слои стилей. Именно они отвечают за разметку страниц и возможности стилей из конкретных групп. Всего таких слоев 35, интерес представляют лишь некоторые из них, потому что часть дублируется, а большинство безнадежно устарело. Minimalism, Expressive, Flexible Squares - это именно слои стилей.

Примеры:
* Expressive
* Minimalism

- - i18n - языковые слои для слоёв стилей. Также применяются при выборе языка в настройках оформления.

- - theme - конкретные темы. Именно их вы выбираете в каталоге стилей.

Пример слоя

- - user - слой, в котором хранятся ваши настройки дизайна. Практически всё, что вы меняете вот тут сохраняется в этом слое.
При каждом изменении настроек этот слой перезаписывается, поэтому никогда не храните там то, что не хотите потерять.

Как пользоваться слоями?

Общий принцип такой: вы создаете новый слой, копируете в него отдельные функции или слой стилей целиком, затем подключаете свой слой к журналу.

Все полезные ссылки есть на странице Расширенные возможности оформления

Для того, чтобы увидеть как это работает, давайте попробуем создать слой и добавить с его помощью на страницу какой-нибудь текст.

1. Зайдите в Ваши слои, найдите внизу страницы форму и выберите значения как на картинке:



Нажмите Создать

Затем в таблице ваших слоев найдите такую строчку:



Цифра будет другой, но тип слоя будет theme и слой пока не имеет названия.

2. Нажмите Правка, чтобы перейти к редактированию. Откроется вот такой редактор кода (поля будут пустыми):



Увеличить

Свежесозданный слой в поле для кода содержит только две строчки кода:

layerinfo "type" = "theme";
layerinfo "name" = "";

Это объявление типа темы и её название.
Назовите как-нибудь свою тему, а затем ниже вставьте такой код:

function Page::print () { var string lay = get_layout(); var string body_layout_class = body_class($lay); var string[] wide_themes = []; # These are the wide themes, which look better when the hbox_top is below the banner var bool print_below_banner = false; foreach var string theme ($wide_themes) { if ($theme == $*base_theme) { $print_below_banner = true; } } """http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> http://www.w3.org/1999/xhtml" id="sixapart-standard"> """; $this->print_head(); $this->print_stylesheets(); print safe """""" + $this->title() + """\n"""; """

Привет, мир! : )

"""; $this->print_control_strip(); container_open("container"); if (viewer_sees_hbox_top()) { if ($print_below_banner) { container_open("page"); $this->lay_print_header_links(); container_open("ad-leaderboard"); $this->print_hbox_top(); container_close(); } else { container_open("ad-leaderboard"); $this->print_hbox_top(); container_close(); container_open("page"); $this->lay_print_header_links(); } } else { container_open("page"); $this->lay_print_header_links(); } container_open("content"); render_layout($this, $lay); container_close(); """"""; container_open("footer"); if (viewer_sees_hbox_bottom()) { container_open("ad-5linkunit"); $this->print_hbox_bottom(); container_close(); } container_close(); """"""; container_close(); """"""; container_close(); """"""; """\n"""; }

Это фунция для вывода страницы в Expressive - Page::print ().

Нажмите Save & Compile - она наверху, над полем для редактирования.

В поле с результатами компиляции должно появиться собщение Compiled with no errors. (как у меня на скриншоте).

3. Теперь можно посмотреть что у нас получилось. Зайдите в каталог стилей и в левой колонке найдите пункт Собственные слои.

В этом разделе должен находиться ваш новый слой с именем, которое вы ему задали:



Вы можете отважно применить слой к журналу (внимание!!! ваше текущее оформление слетит!) либо нажмите на лупу, чтобы посмотреть, что получилось, не надевая слой на журнал.

Должно получиться вот так:



на скрине только верхняя часть страницы

Это дефолтная тема Expressive, голубая с цветком, и текст, который я вставила в функцию вывода страницы - Привет, мир! : )

Если верх вашего журнала выглядит как на скриншоте - значит у вас всё получилось!

А дальше?

Теперь вы можете сами создавать и редактировать слои.
Вам следует выбрать удобный способ работы с ними.

Я показала как можно не трогая основной слой стиля отредактировать только нужную функцию. Это удобно, код короткий и в нём только то, что нужно вам.
Но есть ограничения: в слое типа theme нельзя создавать свои настройки (property) и функции.

Если нужны все возможности слоя стиля - вам потребуется скопировать его код целиком и вставить его в слой типа layout (слой макета).
Плюсы - вам не нужно будет копировать функции по одной, в вашем распоряжении сразу будут все возможности слоя.
Минусы - очень длинный код.

Где брать код?

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

Список всех слоев можно найти на странице Общедоступные слои

Как отлаживаться?

Если в коде есть проблема, при компиляции в нижнем поле вывалится ошибка, и слой не скомпилируется.
На вашем журнале это никак не отразится - последние изменения не применятся к журналу, пока слой не будет исправлен и скомпилирован без ошибок.
В сообщении об ошибке будет указана строка с проблемой.

Что почитать?

На русском:
Какие виды слоёв в системе стилей S2?
Как мне создать новый стиль S2?

На английском:
S2 Manual
Содержание Core
s2layers

Хозяйке на заметку

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

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

useful: слои, useful: платный аккаунт

Previous post Next post
Up