Модераторы: skyboy, MoLeX, Aliance, ksnk
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> php+xml+xslt+mysql, Шаблонизация сайта 
:(
    Опции темы
AlexanderWhite
Дата 5.8.2006, 11:35 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 2
Регистрация: 5.8.2006
Где: Екатеринбург

Репутация: нет
Всего: нет



Меня интересует вопрос! Как реализовать шаблонизацию веб проекта на базе php+xml+xsl+mysql. Интересуют конкретные решения, то есть связь файлов, их расположение, содержимое. Решение должно быть универсальным, легко конфигурируемым, перенастраиваемым, дополняемым.

PM MAIL ICQ   Вверх
RoDeX
Дата 5.8.2006, 12:08 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 55
Регистрация: 11.10.2005

Репутация: нет
Всего: нет



Ну есть  специальная фича для создания динамичных шаблонов - Smarty называется... smile 
PM MAIL WWW ICQ   Вверх
AlexanderWhite
Дата 5.8.2006, 14:17 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 2
Регистрация: 5.8.2006
Где: Екатеринбург

Репутация: нет
Всего: нет



Ну что такое смарти я знаю smile просто предпологается хранить контент в xml.
PM MAIL ICQ   Вверх
Хоббит
Дата 15.8.2006, 10:16 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Завсегдатай
Сообщений: 1263
Регистрация: 6.11.2005

Репутация: нет
Всего: 1



а что сложного в устройстве шаблонов на XSL  .... google и читать про XSLT ....
А если тебя интересует концепция устройства cms ок, то грузи себе опесоурцевские cms ставь и смотри... лучше тебе никто не предложит. Сколько людей столько и мнений
PM MAIL   Вверх
BlackTheMad
Дата 16.8.2006, 12:23 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 4
Регистрация: 15.8.2006

Репутация: нет
Всего: 2



Вот только рекомендую учесть ряд проблем.

1) XSLT-трансформации на стороне пользовательских браузеров выполняются не всегда так, как тебе этого хочется (больше всего проблем будет с Opera).
2) XSLT-трансформации это всё же достаточно трудоёмкий процесс для браузера.

Всё остальное - дело техники и Google ;) Удачи.
PM MAIL   Вверх
ewolf
Дата 17.8.2006, 22:23 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 389
Регистрация: 15.8.2006
Где: г. Москва

Репутация: 1
Всего: 18



Не обязательно обрабатывать XSLT на стороне клиента, можно и на стороне сервера, главное, чтобы был вот этот модуль в составе php
http://www.php.net/manual/ru/ref.xslt.php
PM MAIL ICQ   Вверх
IZ@TOP
Дата 23.8.2006, 10:26 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Панда-бир!
****


Профиль
Группа: Участник
Сообщений: 4795
Регистрация: 3.2.2003
Где: Бамбуковый лес

Репутация: 1
Всего: 73



Цитата(BlackTheMad @  16.8.2006,  13:23 Найти цитируемый пост)
1) XSLT-трансформации на стороне пользовательских браузеров выполняются не всегда так, как тебе этого хочется (больше всего проблем будет с Opera).
2) XSLT-трансформации это всё же достаточно трудоёмкий процесс для браузера.

Я бы не сказал что для современных браузеров на современных машинках этот процесс будет сильно трудоемким. Гораздо лучше и быстрее отдать клиенту на обработку данные, чем при одновременном запросе на сервер сотни клиентов эти работы будет проводить сам сервер.
А вот для специфичных браузеров, у которых проблемы с преобразованием, можно отдавать уже собранные данные.


--------------------
Один из розовых плюшевых-всадников апокалипсиса... очень злой...

Семь кругов ада для новых элементов языка
Мои разрозненные мысли
PM MAIL WWW ICQ Skype GTalk   Вверх
Eugene_Bond
Дата 10.9.2006, 13:29 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 138
Регистрация: 3.9.2006

Репутация: 1
Всего: 4



В силу трудоемкости трансформации очевидным решением кеширования является кеширование результатов трансфорамции smile

То есть:
имеем XML новости (или чего-нибудь) и шаблон для ее оторажения. Если XML и шаблон не изменялись -- результат трансформации берется прямо из кеша. Если было изменение -- трансформируем и сохраняем результат трансформации в кеш.

Наиболее узким моментом является обработка и кеширование отдельных частей страницы. Решается введением дополнительного неймспейса со своим обработчиком (фактически он и будет контроллером шаблонизатора)
PM MAIL   Вверх
c0t
Дата 27.9.2006, 16:49 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 1
Регистрация: 27.9.2006

Репутация: нет
Всего: нет



сходу вот так, могут быть небольшие ошибки ибо проверить сейчас негде :o)

php4
Код

<?php
function c($str_value) 

    return @iconv("windows-1251","UTF-8",$str_value);
}

function writeresponse($xsl_f) 

$html_s=false;
$xsl_f=realpath($xsl_f);
$html_s=$GLOBALS['XML']->dump_mem();
echo ($html_s)?$html_s:"error!"; 
exit;


$XML=domxml_new_doc("1.0");
$Root=$XML->create_element("root");
$XML->append_child($Root);
$Element=$XML->create_element("element");
$Element->set_attribute("attr_name",c("хеллоу ворлд!"));
$Root->append_child($Element");
unset($Element);
writeresponse("index.xsl");
?>


php5
Код

<?php
function c($str_value) 

    return @iconv("windows-1251","UTF-8",$str_value);
}
function xml2html($xsl_file)
{
$xsl_file=realpath($xsl_file);
$xsl=new DOMDocument();
@$xsl->load($xsl_file);
$proc=new XSLTProcessor();
@$proc->importStylesheet($xsl);
$ret=@$proc->transformToXml($GLOBALS['DOM']));
return $ret;
}

$DOM=new DOMDocument();
$Root=$DOM->createElement("root");
$DOM->appendChild($Root);
$Element=$DOM->createElement("element");
$Element->setAttribute("attr_name",c("хеллоу ворлд!"));
$Root->appendChild($Element);
unset($Element);
echo xml2html("index.xsl");
?>


XSL
Код

<?xml version="1.0"?>
<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
<xsl:output doctype-system="DTD/xhtml1-transitional.dtd" doctyle-public="-//W3C//DTD XHTML 1.0 Transitional//EN"/>

<xsl:template match="root">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=windows-1251"/>
<title>Test</title>
</head>
<body>
<xsl:apply-templates select="element"/>
</body>
</html>
</xsl:template>

<xsl:template match="element">
<h1><xsl:value-of select="@attr_name"/></h1>
</xsl:template>
</xsl:stylesheet>

PM MAIL   Вверх
  
Ответ в темуСоздание новой темы Создание опроса

Внимание: данный раздел предназначен для решения сложных, нестандартных задач.

 
1 Пользователей читают эту тему (1 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | PHP: Для профи | Следующая тема »


 




[ Время генерации скрипта: 0.1013 ]   [ Использовано запросов: 21 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.