Курс 2016 года “Разработка на UMI.CMS от 0 до готового сайта”
Шаблон отображения списка категорий (магазин "Современный")

Автор manadsgnРаздел Шаблоны XSLT

Ответов: 2
Просмотров: 3058
Последний ответ 03 Июля 2012, 15:22:23
от manadsgn
DOCTYPE - если нужен <!DOCTYPE html>

Автор manadsgnРаздел Шаблоны XSLT

Ответов: 1
Просмотров: 2386
Последний ответ 03 Июля 2012, 11:11:43
от manadsgn
Шаблон для вывода новостей с 3 разными блоками

Автор koroganРаздел Шаблоны TPL

Ответов: 3
Просмотров: 3312
Последний ответ 01 Октября 2011, 03:05:48
от admin
Добавление атрибута ALT в шаблон catalog-thumbnail

Автор KTIРаздел Шаблоны XSLT

Ответов: 8
Просмотров: 6179
Последний ответ 17 Октября 2012, 10:36:32
от admin
Шаблон вывода редактирования типа данных

Автор crazygeorgioРаздел Шаблоны XSLT

Ответов: 2
Просмотров: 2413
Последний ответ 29 Мая 2013, 21:28:33
от crazygeorgio

0 Пользователей и 1 Гость просматривают эту тему.

*

Sumrakrnd

  • ****
  • 311
  • +1/-0
  • Учусь «на примерах»
    • Просмотр профиля
Шаблон html в xsl с нуля?
« : 05 Февраля 2016, 16:43:08 »
Привет всем!
Пришла пора и мне надо сделать верстку на UMI, решила я обратиться к самому простому, к 20 шагам создания сайта.
Установила сайт, полную версию, добавила шаблон, подключила к одной из страниц.
По пошаговой инструкции было указано, что шаблон необходимо поместить в папку ~/xsltTpls/. По видео я поняла, что помещать шаблон можно так же в папку ~/templates/demodizzy/, соответственно указав в какой папке брать шаблон.
На первом шаге все было нормально  фраза из шаблона "... тестируем шаблон ..." отобразилась, а вот на втором шаге после вставки html, все пропало...

Что не так? Подскажите пожалуйста.

P.S.: так же я уже поставила js, css и images



Небольшое дополнение, есть где почитать/посмотреть, как заменять файлы и страницы в уже готовом тестовом сайте?
« Последнее редактирование: 05 Февраля 2016, 17:14:32 от Sumrakrnd »

*

ilyar

Re: Шаблон html в xsl с нуля?
« Ответ #1 : 07 Февраля 2016, 12:24:43 »
Шаблон действительно можно разместить в папке ~/templates/{имя_шаблона} подробнее о структуре написано в документе: Новый формат хранения шаблонов. В итоге должна получится такая структура:

templates
    └── {имя_шаблона}
        ├── js
        ├── css
        ├── images
        ├── classes
        ├── admin (с версии 2.11)
        ├── umaps
        ├── usels
        └── xslt

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

Рекомендую вставлять пример из второго шага последовательно, т.е. частями и проверять каждое изменение.

Также будет еще полезно использовать "правильный" редактор кода т.е. с поддержкой проверки синтаксиса xsl, также большинство популярных IDE поддерживают такую возможность.


*

Sumrakrnd

  • ****
  • 311
  • +1/-0
  • Учусь «на примерах»
    • Просмотр профиля
Re: Шаблон html в xsl с нуля?
« Ответ #2 : 08 Февраля 2016, 11:26:57 »
Да, белая страница.
Пользуюсь я Notepad++

html из тестового задания работает, да.
Может не работать мой html из-за отсутствия DOCTYPE?

*

ilyar

Re: Шаблон html в xsl с нуля?
« Ответ #3 : 08 Февраля 2016, 12:03:46 »
Может не работать мой html из-за отсутствия DOCTYPE?

Нет.  Обратите внимание на не закрытые теги например <img> в XSL все теги должны  быть закрытыми.

Еще рекомендую включить отображение ошибок это настраивается в конфигурационном файле.

*

Sumrakrnd

  • ****
  • 311
  • +1/-0
  • Учусь «на примерах»
    • Просмотр профиля
Re: Шаблон html в xsl с нуля?
« Ответ #4 : 08 Февраля 2016, 12:12:25 »
<img /> все закрыты.

Вставила верстку частями, но например при вставке меню, сразу белая страница, хотя все теги закрыты:
<!-- /menu -->		
<nav class="menu">
<ul class="blockeasing">
<li class="main"><a href="#">О компании</a>
<div class="menu__drop">
<div class="menu__wrap">
<ul>
<li><a href="#">правовая информация</a></li>
<li><a href="#">как мы работаем</a></li>
<li><a href="#">вакансии</a></li>
</ul>
<ul>
<li><a href="#">отзывы</a></li>
<li><a href="#">статьи</a></li>
<li><a href="#">новости</a></li>
</ul>
<ul class="spec_predl">
<li><a href="#" class="purple">специалисты</a></li>
<li><a href="#" class="blue">цены</a></li>
<li><a href="#" class="green">Записаться на прием?</a></li>
</ul>
</div>
</div>
</li>
<li class="main"><a href="#">Специалисты</a></li>
<li class="main"><a href="#">цены</a></li>
<li class="main"><a href="#">акции & скидки</a></li>
<li class="main"><a href="#">контакты</a></li>
</ul>
</nav>

*

ilyar

Re: Шаблон html в xsl с нуля?
« Ответ #5 : 08 Февраля 2016, 12:48:25 »
<img /> все закрыты.

Вставила верстку частями, но например при вставке меню, сразу белая страница, хотя все теги закрыты:


Проблема в амперсанде "&":

<li class="main"><a href="#">акции & скидки</a></li>

надо заменить на:

<li class="main"><a href="#">акции &amp; скидки</a></li>

*

Sumrakrnd

  • ****
  • 311
  • +1/-0
  • Учусь «на примерах»
    • Просмотр профиля
Re: Шаблон html в xsl с нуля?
« Ответ #6 : 08 Февраля 2016, 13:12:04 »
Из-за это О_О Про такие мелочи не знала... Смогла еще два блока верстки вставить зато. Спасибо ))

А вот это меню не подскажите? Если что я ставила его в блок <form action="#"><fieldset>...</fieldset></form> вместо <div>, стили позволяют такие замены, но при вставке страница все равно становится белой.. :(
<!-- Menu dop -->
<nav class="menu_dop">

<div class="tabs">

<input id="tab1" type="radio" name="tabs" checked />
<label for="tab1" title="Вкладка 1" class="clinical">Тест1</label>

<input id="tab2" type="radio" name="tabs" />
<label for="tab2" title="Вкладка 2" class="cosmetology">Тест2</label>

<input id="tab3" type="radio" name="tabs" />
<label for="tab3" title="Вкладка 3" class="plastic_surgery">Тест3</label>

<input id="tab4" type="radio" name="tabs" />
<label for="tab4" title="Вкладка 4" class="stomatology">Тест4</label>

<section id="content1">
<div class="menu__wrap row-4">
<ul>
<li><a href="#">Вариант1</a></li>
<li><a href="#">Вариант1</a></li>
<li><a href="#">Вариант1</a></li>
<li><a href="#">Вариант1</a></li>
</ul>
</div>
</section> 
<section id="content2">
<div class="menu__wrap row-3x3">
<ul>
<li><a href="#">Вариант2</a></li>
<li><a href="#">Вариант2</a></li>
<li><a class="menu__drop__link" href="#">Вариант2<span class="new"></span></a></li>
</ul>

<ul>
<li><a href="#">Вариант2</a></li>
</ul>
</div>
</section>
<section id="content3">
<div class="menu__wrap row-3x3">
<ul>
<li><a href="#">Вариант3</a></li>
<li><a href="#">Вариант3</a>
<span class="polygon"></span>
<div class="under_menu">
<div class="block-link">
<span><a href="#" class="orange">Акции</a></span>
<span><a href="#" class="blue">Цены</a></span>
<span><a href="#" class="grey">Особенности</a></span>
</div>
<div class="block-info">
<div class="list-services">
<a href="#">Вариант3-1</a>
<a href="#">Вариант3-1</a>
<a href="#">Вариант3-1</a>
<a href="#">Вариант3-1</a>
<a href="#">Вариант3-1</a>
<a href="#">Вариант3-1</a>
<a href="#">Вариант3-1</a>
<a href="#">Вариант3-1</a>
</div>
<div class="carousel-container">
<ul class="carousel">
<li>
<img src="upload/spec1.png" alt="" />
<big>Имя</big>
<small>Фамилия</small>
<a href="#win1" class="apply">записаться</a>
</li>
<li>
<img src="upload/spec2.png" alt="" />
<big>Имя</big>
<small>Фамилия</small>
<a href="#win1" class="apply">записаться</a>
</li>
<li>
<img src="upload/spec3.png" alt="" />
<big>Имя</big>
<small>Фамилия</small>
<a href="#win1" class="apply">записаться</a>
</li>
</ul>
<button class="prev"></button>
<button class="next"></button>
</div>
</div>
</div>
</li>
<li><a href="#">Вариант3</a></li>
</ul>
</div>
</section>
<section id="content4">
<div class="menu__wrap row-3x4">
<ul>
<li><a href="#">Вариант4</a></li>
<li><a href="#">Вариант4</a></li>
<li><a href="#">Вариант4</a></li>
<li><a href="#">Вариант4</a></li>
</ul>
</div>
</section>
</div>
</nav>
<!-- /Menu dop -->

Здесь надо было сделать выпадающее меню по клику, с раскрытым первым пунктом при загрузки страницы, так же есть всплывающее третье меню... Поэтому такая структура.
К сожалению смогла сделать реализацию только по этой схеме, других вариантов просто не нашла >.<


И вопрос, xslt не любит всплывающие окна?
Хотя если сейчас с меню станет все ясно, то думаю пойму почему при их вставке страница становится белой @_@
« Последнее редактирование: 08 Февраля 2016, 13:14:56 от Sumrakrnd »

*

ilyar

Re: Шаблон html в xsl с нуля?
« Ответ #7 : 08 Февраля 2016, 13:57:15 »
Если все таки последуете совету и включите режим отображения ошибок:

Код: config.ini [Выделить]
[debug]
enabled = "1"
show-backtrace = "1"


то вместо белой страницы, будут отображаться сообщения вида:

Цитировать
Warning: DOMDocument::load(): Specification mandate value for attribute checked in /umi/xsltTpls/default.xsl

Из этого сообщения стразу понятно где проблема и что проблема в атрибуте. Если посмотрим верстку, найдем краткую запись атрибута checked, XLS такое не переваривает:

<input id="tab1" type="radio" name="tabs" checked />

заменить на:

<input id="tab1" type="radio" name="tabs" checked="checked" />
« Последнее редактирование: 08 Февраля 2016, 13:58:56 от ilyar »

*

Sumrakrnd

  • ****
  • 311
  • +1/-0
  • Учусь «на примерах»
    • Просмотр профиля
Re: Шаблон html в xsl с нуля?
« Ответ #8 : 08 Февраля 2016, 14:21:51 »
Спасибо!

Включила debug, возникли вопросы.
У меня использовались атрибуты required для полей и noshade для hr, как сделать чтобы xslt на них не ругался?

Я убрала эти тэги сейчас, чтобы ушли ошибки, и сейчас у меня вот такая ошибка, и я не знаю о чем она говорит.
Цитировать
Warning: DOMDocument::load(): Opening and ending tag mismatch:

*

ilyar

Re: Шаблон html в xsl с нуля?
« Ответ #9 : 08 Февраля 2016, 14:32:28 »
Есть не закрытые теги.

В XSL все теги должны быть закрытыми, часто проблема с одиночными HTML-тегами (img, br, hr). Одиночные HTML-теги можно закрыть так:
<img/> <br/> <hr/>

*

Sumrakrnd

  • ****
  • 311
  • +1/-0
  • Учусь «на примерах»
    • Просмотр профиля
Re: Шаблон html в xsl с нуля?
« Ответ #10 : 08 Февраля 2016, 16:52:50 »
Как сделать чтобы xslt не ругался на required для полей и noshade для hr?

Вопрос:
У меня в верстке контент блоки разбиты на два, т.к. разделяет их галерея на всю ширину.

Можно применить два <xsl:apply-templates select="result" /> на одной страницы?

*

crazygeorgio

  • ***
  • 140
  • +7/-0
    • Просмотр профиля
Re: Шаблон html в xsl с нуля?
« Ответ #11 : 08 Февраля 2016, 17:14:28 »
аналогично
<input required /> => <input required="required" />
<hr noshade /> => <hr noshade="noshade" />

<xsl:apply-templates select="result" /> применять можно сколько угодно раз, только толку, контент от этого сам собой не разделится

*

Sumrakrnd

  • ****
  • 311
  • +1/-0
  • Учусь «на примерах»
    • Просмотр профиля
Re: Шаблон html в xsl с нуля?
« Ответ #12 : 08 Февраля 2016, 17:53:05 »
Ой... не то, я в том плане, что контент страницы можно разбить на отдельные блоки, но в одном файле, а галерея в другом?
Не знаю, правильно ли я сейчас выразилась

*

crazygeorgio

  • ***
  • 140
  • +7/-0
    • Просмотр профиля
Re: Шаблон html в xsl с нуля?
« Ответ #13 : 08 Февраля 2016, 18:18:38 »
ну как-то наверное можно

*

Sumrakrnd

  • ****
  • 311
  • +1/-0
  • Учусь «на примерах»
    • Просмотр профиля
Re: Шаблон html в xsl с нуля?
« Ответ #14 : 08 Февраля 2016, 19:02:07 »
А почему после добавления <xsl:include href="modules/content_test.xsl"/> выдает ошибку
Цитировать
Warning: XSLTProcessor::importStylesheet(): I/O warning : faile

И еще, нет какой-нибудь литературы с примерами прикручивания верстки html/css на xslt? Или очень внятного справочника?

Видео-вебинар Umi я посмотрела, но он не дает представления совмещения верстки и xslt.
А сайт за 20 шагов на Umi тоже не очень то информативен...