xml + html в шаблон

Kirill

Новичок
xml + html в шаблон

В цмс сделано так что у страницы есть текстовое содержание (html, генерируется визуальным редактором) и есть содержание обработчика. Т.е. к примеру:
Есть страница "Новости". Её обработчик - модуль новостей. У страницы получается 2 содержания - 1 текстовое (которое пользователь может ввести через визуальный редактор), 2 содержание - содержание обработчика (в зависимости от параметров либо список новостей либо сама новость).
При редактировании в визуальном редакторе есть блок, который удалить нельзя. Вместо него в текст втсавляется последовательность:
{!handler_content!}
Затем эту последовательность нужно заменить на то, что сгенерит обработчик. (к примеру для обработчика новостей эту последовательность нужно заменить на список новостей, или на просмотр конкретной новости)
Каждый обработчик отдает управляющему классу xml и назнвание шаблона. Управляющий класс подбирает нужный шаблон , применяет его и отдает html.
Так вот вопрос:
Как лучше все это сделать? Я вижу два пути:
1) В xml будет нода с page content (т.е. с тем что ввел пользователь через визуальный редактор) и нода новостей. В XSLT шаблоне сначала получаю html новостей, а затем в содержании ноды page_content заменяю {!handler_content!} на html новостей.
2) В обработчике новостей дроблю содержание, которое пользователь ввел через визуальный редактор на 2 части:
top и bottom (до {!handler_content!} и после). Соответственно вместо ноды page_content будет две top_content и bottom_content.
Я склоняюсь ко 2 варианту, т.к. в каждом шаблоне обработчика не прийдется повторять один и тот же кусок кода.
 

Фанат

oncle terrible
Команда форума
ничего непонятно.
при чем здесь нода в xml, если она должна быть в шаблоне?
почему при первом варианте в каждом шаблоне обработчика будет повторяться кусок кода?

у тебя должно быть три XSLT шаблона:
1. шаблон сайта. в котором забито место под сонтент
2. шаблон одной товости. накладывается на HTML
3. шаблон списка новостей.
 

Kirill

Новичок
на выходе обработчик новости отдает один XML. В этом XML должны содержаться и html содержание из редактора и новости.
К примеру xml списка новостей:
<news>
<page_content>
Наши новости. Мы их старательно собирали со всего нета. {!handler_content!} Перепечатка новостей запрещена.
</page_content>
<news_list>
<item name="Новость 1">Текст новости</item>
<item name="Новость 1">Текст новости</item>
<item name="Новость 1">Текст новости</item>
</news_list>
</news>

Так вот в одном шаблоне XSLT нужно получить HTML списка новостей, затем вставить его заместо {!handler_content!}, затем обарботать ноду page_content и отдать html.

-~{}~ 13.05.07 17:05:

а можно генерить более простой xml:
<news>
<content_top>
Наши новости. Мы их старательно собирали со всего нета.
</content_op>
<content_bottom>
Перепечатка новостей запрещена.
</content_bottom>
<news_list>
<item name="Новость 1">Текст новости</item>
<item name="Новость 1">Текст новости</item>
<item name="Новость 1">Текст новости</item>
</news_list>
</news>
это уже второй вариант
 

Фанат

oncle terrible
Команда форума
ты какую-то фигню лепишь.
у тебя XML или бумажка туалетная? что это за {!handler_content!}?! Это тег смарти?
 

Kirill

Новичок
Я пока думаю как сделать. Заменять {!handler_content!} в XSLT как то не хочется. Лучше раздробить как в примере номер 2, тогда получится простейший шаблон.

у тебя XML или бумажка туалетная?
тебя в штатах так подъ@бывать научили?

Это не тег смарти. Я же объясняю.
Если юзер редактирует содержание страницы новостей, то в редакторе посередине textarea есть квадратик, символизирующий содержание обработчика (типа оно вместо него вставится). После редактирования содержания в базу кладется текст, где вместо этого квадратика - {!handler_content!}
 

Фанат

oncle terrible
Команда форума
Кирюша.
Я тебе что пытаюсь объяснить.
Что ты вообще не понимаешь что такое XML , шаблоны, и как с ними работать.
И как научиться делать правильно.
А ты все ждешь, когда тебе подскажут маленькую заплатку.

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

Что ты имеешь в виду под редактированием страницы новостей? верстка пользователем XSLT шаблона страницы новостей?
 

Kirill

Новичок
ок, я наверное непонятно объяснил.
Сейчас покажу на примере.
Похожая система (я имею ввиду логику и визуально) используется в umi.cms. Зайди на http://www.demo-pro.umi-cms.ru/ - online демо.
Затем заходи в адмику. Заходи в структуру (http://epiblema.demo-pro.umi-cms.ru/admin/content/) (она при входе должна грузится). Далее выбирай страницу "Форум", нажимай на нее.
В поле контента текст : "%forum confs_list()%" - аналогично моему "{!handler_content!}". Попробуй отредактировать страницу - написть текст до и после данного словосочетания. Затем посмотри что получилось на сайте http://epiblema.demo-pro.umi-cms.ru/talks/ Т.е. вместо "%forum confs_list()%" вставился форум. Я хочу сделать чтобы визуально для юзера это было также.
Далее по логике:
Управляющий класс создает экземпляр класса форум (к примеру) и обращается к его методу. От него он хочет получить xml и название шаблона. Затем управляющий класс обратится к методу класса шаблона и проведет преобразование.
Так понятнее? Что у меня не так?
 

Фанат

oncle terrible
Команда форума
Извини. Я не буду никуда ходить.
Если в umi CMS, или в bezumi CMS сделано через одно место, то я не собираюсь повторять за ними.

Ты хочешь сделать шаблонизацию средствами XSLT?
ПОЧЕМУ ты тогда используешь не XSLT ,а какую-то самопальную кривизну?

У сайта должен быть язык шаблонов. С помощью которого задается внешний вид сайта.
Нафига тебе на сайте ДВА языка шаблонов? Ты можешь объяснить?

-~{}~ 13.05.07 18:50:

Ты определись - что ты делаешь.
У тебя, по-моему, каша у голове.
Ты говоришь о редактировании шаблона страницы. Но почему-то сам себе боишься признаться в этом. И называешь это "редактирование страницы новостей".
но ты же шаблон редактируешь.
А почему такие бедные средства редактирования - всего лишь затычка, куда воткнуть новость?

а страница вывода ссылок на новости у тебя как редакритуется? Тоже состоит из одной затычки? А как поменять внешний вид ссылок?

На сайте должен быть Единый, Простой и Понятный Язык Шаблонов.
С посощью которого можно настраивать внешний вид страниц.
Причем не только "страницы новостей", но и шаблона всего сайта.
Если это у тебя XSLT, то везде должен использоваться XSLT
Если это какой-то другой синтаксис - он должен быть везде.
А щас у тебя ни богу свечка - ни черту кочерга.
 

Kirill

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

Фанат

oncle terrible
Команда форума
Не надо кидаться пустыми заявлениями.
Я тебе уже 10 доказательств привел того, что ты делаешь чепуху.
А ты только заявляешь голословно, что я не понял.

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

Ты хотя бы сам, словами можешь рассказать, зачем тебе эта псевдошаблонная затычка? Не показывая пальцем "сходи туда-то"? или ты даже сам не можешь словам иобъяснить, чего хочешь?

-~{}~ 13.05.07 19:54:

ты хоть понял, что для каждой страницы у тебя дожен быть полноценный шаблон, а не фуфло с процентиками?
 

Kirill

Новичок
я пытался объяснить словами.
Ты говоришь о редактировании шаблона страницы. Но почему-то сам себе боишься признаться в этом. И называешь это "редактирование страницы новостей".
Я говорю о редактировании текста страницы, содержания иными словами, а не редактированиишаблона.

Расскажи мне, как при редктировании страницы новостей можно изменить внешний вид списка ссылок.
Внешний вид списка ссылок новостей меняется в XSLT шаблоне новостей. Его из админки редатировать нельзя.

В цмс сделано так что у страницы есть текстовое содержание (html, генерируется визуальным редактором) и есть содержание обработчика(Новости к примеру).
понял?

-~{}~ 13.05.07 19:59:

если бы ты зашел в приведеный пример, я думаю ты бы понял что я имею ввиду
 

Фанат

oncle terrible
Команда форума
ОТЛИЧНО!
именно этого ответа я и ждал два часа!

а теперь ответь мне, пожалуйста.
ГДЕ ИМЕННО внутри текста новости должен быть расположен квадратик, показывающий расположение этой новости на странице?
 

Kirill

Новичок
ща попробую нарисовать в фотошопе чтобы ещё 2 часа не спорить
 

Фанат

oncle terrible
Команда форума
гы гы.
попробуй.
авось, пока будешь рисовать, дойдёт, что фигню делаешь =)
 

Kirill

Новичок
Схематично нарисовал.
Картинка 1 - редактирование содержания страницы:


Сама страница:


Теперь вниматеьно смотрим на 2 картинки и ищем совпадения слов.
Теперь надеюсь понятно,что вместо синего блока "содержание модуля", вставились новости. Так понятнее, или объяснить более подробно?
 

Фанат

oncle terrible
Команда форума
А теперь послушай, что я тебе скажу.
то, что ты называешь словом "содержание обработчика", во всем цивилизованном мире называют шаблоном модуля.
Это раз.

На второй картинке у тебя выводятся новости.
Вопросы:
как обработчик узнал, что надо выводить слева от новости картинку?
как сделать так, чтобы картинка выводилась не слева от новости, а справа?
Ответь, пожалуйста
 

Kirill

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

Для списка новостей есть шаблон(xslt) - там определяется внешний вид.
 

Kirill

Новичок
его никто не редактирует. шаблон редактируется(верстается) один раз, при создании сайта.
 
Сверху