🚀 go-pugleaf

RetroBBS NetNews Server

Inspired by RockSolid Light RIP Retro Guy

Article View: pl.comp.xml
Article #9991

Re: [XSLT] Dynamiczne szablony

#9991
From: NotBear
Date: Tue, 16 Sep 2008 19:09
78 lines
3467 bytes
Mariusz S. wrote:
> Tworzenie oddzielnych plików xsl dla każdej akcji w module moim zdaniem 
> mija się z sensem.

IMO to wygodne. Latwo dodac kolejna akcje. Kazdy taki plik zawiera tylko 
niezbedne dla akcji elementy.


Skoro mozesz tak:
> xslt::transformacja('szablony/'.$dane['modul'].'.xsl', $xml);

To pewnie mozesz i tak (pamietajac o koniecznosci sprawdzenia tego, co w 
$_GET przylezie):
xslt::transformacja('szablony/kontakty'.$_GET['akcja'].'.xsl', $xml);

I teraz kwestia napisania XSLi. Moja koncepcja jest w zasadzie zbiezna z 
tym, co proponowal Andrew Cohen, przy czym:
- szablony nazwane nie sa potrzebne w takich przypadkach (IMO)
- sprobowalem pokazac bardza fajna ceche importu - czyli nadpisywanie 
szablonow.

========================================
modul.xsl (tu sa generowane elementy wspolne dla wszystkich widokow)
========================================
<?xml version="1.0" encoding="UTF-8"?>
<xsl:stylesheet version="1.0"
xmlns:xsl="http://www.w3.org/1999/XSL/Transform">

   <xsl:template match="/">
     <html>
       <head>
          ...
       </head>
       <body>
         <xsl:apply-templates select="zakladka"/>
       </body>
     </html>
   </xsl:template>

   <xsl:template match="zakladka">
     <!-- Szablon "abstrakcyjny", mogloby go wogole nie byc
          - i tak zostanie nadpisany :-) -->
   </xsl:template>

</xsl:stylesheet>

========================================
kontakty_lista.xsl (tu tylko to co dla listy)
========================================
<?xml version="1.0" encoding="UTF-8"?>
<xsl:stylesheet version="1.0"
xmlns:xsl="http://www.w3.org/1999/XSL/Transform">

   <xsl:import href="modul.xsl"/>

   <xsl:template match="zakladka">
     <!-- Wyswietlamy liste -->
   </xsl:template>

</xsl:stylesheet>

========================================
kontakty_dodaj.xsl (tu tylko formularz)
========================================
<?xml version="1.0" encoding="UTF-8"?>
<xsl:stylesheet version="1.0"
xmlns:xsl="http://www.w3.org/1999/XSL/Transform">

   <xsl:import href="modul.xsl"/>

   <xsl:template match="zakladka">
     <!-- Wyswietlamy formularz -->
   </xsl:template>

</xsl:stylesheet>

-- 
NotBear
Technical Details
Message-ID: <gap09s$r39$1@pyro.tvk.wroc.pl>
Path: mbox-mo1.pugleaf.net!news-archive.icm.edu.pl!newsfeed.gazeta.pl!opal.futuro.pl!news.tvk.wroc.pl!not-for-mail
References: <galask$skr$1@news.onet.pl> <galq2q$tpl$1@news.onet.pl> <galtep$9n0$1@news.onet.pl> <gam266$nar$1@news.onet.pl> <gam47c$tmc$1@news.onet.pl> <gam59a$60e$1@nemesis.news.neostrada.pl> <gam5ai$1n5$1@news.onet.pl> <gam6eo$4r0$1@news.onet.pl> <gam9jq$g3o$1@news.onet.pl> <gamaee$hpi$2@news.onet.pl> <gamm8f$q6m$1@news.onet.pl>

Show Full Headers
Complete Article Headers
Path: mbox-mo1.pugleaf.net!news-archive.icm.edu.pl!newsfeed.gazeta.pl!opal.futuro.pl!news.tvk.wroc.pl!not-for-mail
From: NotBear <paulcom@HATESPAM.interia.pl>
Newsgroups: pl.comp.xml
Subject: Re: [XSLT] Dynamiczne szablony
Date: Tue, 16 Sep 2008 21:09:46 +0200
Organization: Telewizja Kablowa Wroclaw -- http://www.tvk.wroc.pl/
Lines: 78
Message-ID: <gap09s$r39$1@pyro.tvk.wroc.pl>
References: <galask$skr$1@news.onet.pl> <galq2q$tpl$1@news.onet.pl> <galtep$9n0$1@news.onet.pl> <gam266$nar$1@news.onet.pl> <gam47c$tmc$1@news.onet.pl> <gam59a$60e$1@nemesis.news.neostrada.pl> <gam5ai$1n5$1@news.onet.pl> <gam6eo$4r0$1@news.onet.pl> <gam9jq$g3o$1@news.onet.pl> <gamaee$hpi$2@news.onet.pl> <gamm8f$q6m$1@news.onet.pl>
NNTP-Posting-Host: ip-195-140-236-23.unreg.tvk.wroc.pl
Mime-Version: 1.0
X-Trace: pyro.tvk.wroc.pl 1221592188 27753 195.140.236.23 (16 Sep 2008 19:09:48 GMT)
X-Complaints-To: admin@tvk.wroc.pl
NNTP-Posting-Date: Tue, 16 Sep 2008 19:09:48 +0000 (UTC)
User-Agent: Thunderbird 2.0.0.16 (Windows/20080708)
In-Reply-To: <gamm8f$q6m$1@news.onet.pl>
X-Antivirus: avast! (VPS 080915-0, 2008-09-15), Outbound message
X-Antivirus-Status: Clean
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit