Osiris Serverless Portal System: Creazione dei modelli - Osiris Serverless Portal System

Jump to content

Page 1 of 1
  • You cannot start a new topic
  • You cannot reply to this topic

Creazione dei modelli Breve tutorial Rate Topic: -----

#1 User is offline   Berserker 

  • Osiris Developer
  • PipPipPip
  • Group: Administrators
  • Posts: 918
  • Joined: 02-October 06
  • Gender:Male

Posted 27 November 2006 - 10:34 AM

Prendendo spunto da un mio messaggio sul portale di test, riporto qui un breve tutorial (probabilmente verrà esteso nel wiki) sulla gestione dei modelli in Osiris.

Partiamo dall'idea che sostanzialmente nasce dalla necessità facilitare la creazione dei contenuti di un portale e di consentirne l'organizzazione in modo uniformemente strutturato.
L'utilizzo dei modelli in Osiris avviene in due fasi: nella prima vengono definiti la struttura dati (schema) e la modalità di rappresentazione (stylesheet) di questi ultimi, mentre nella seconda si procederà all'immissione dei dati.
Cerchiamo innanzitutto di capire cosa si intende per schema:
Uno schema, meglio conosciuto come XSD, è sostanzialmente la descrizione di come devono essere organizzati i dati che vogliamo rappresentare.
Uno stylesheet, propriamente detto XSL, definisce invece il modo in cui tali dati verranno rappresentati.
Penso comunque che un buon esempio valga più di mille parole :D
Prendiamo come ipotesi un portale dedicato al cinema in cui vi sia una sezione dove inserire le schede dei vari films: l'idea è di fare in modo che chi inserisce una scheda non si debba preoccupare di come formattarla, ma si limiti semplicemente al puro inserimento dei dati lasciando così il compito di rappresentarli a qualcun altro.
Il procedimento sarà il seguente:
- Verrà innanzitutto creato un modello chiamato, ad esempio, "template_film"
- Nello schema di template_film si definiranno tutti i campi che saranno necessari in una scheda, diciamo ad esempio di volere una locandina, il titolo del film, l'anno, la durata e la trama.
Uno schema che rispecchi tale necessità potrebbe essere il seguente:
<?xml version="1.0"?>
<xs:schema attributeFormDefault="unqualified" elementFormDefault="qualified" xmlns:xs="http://www.w3.org/2001/XMLSchema">
  <xs:element name="film">
	<xs:complexType>
	  <xs:sequence>
		<xs:element name="locandina" type="xs:string" />
		<xs:element name="titolo" type="xs:string" />
		<xs:element name="anno" type="xs:unsignedShort" />
		<xs:element name="durata" type="xs:string" />
		<xs:element name="trama" type="xs:string" />
	  </xs:sequence>
	</xs:complexType>
  </xs:element>
</xs:schema>

Tale schema definisce un xml così strutturato
<film>
  <locandina>...</locandina>
  <titolo>...</titolo>
  <anno>...</anno>
  <durata>...</durata>
  <trama>...</trama>
</film>

- Ora che abbiamo deciso cosa rappresentare dobbiamo decidere come visualizzarlo: poniamo il caso in cui in ogni nostra scheda vogliamo innanzitutto il titolo del film centrato ed in grassetto, successivamente la locandina, l'anno, la durata ed infine la trama in corsivo.
Possiamo ottenere tutto ciò dal seguente stylesheet
<?xml version="1.0"?>
<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
  <xsl:output method="text"/>
  <xsl:template match="film">
	[center][b]<xsl:value-of select="titolo"/>[/b][/center]
	[img]<xsl:value-of select="locandina"/>[/img]
	Anno: <xsl:value-of select="anno"/>
	Durata: <xsl:value-of select="durata"/>
	Trama: [i]<xsl:value-of select="trama"/>[/i]	   
  </xsl:template>
</xsl:stylesheet>

Tralasciando gli aspetti specifici dell'XSL che non sono il tema di questo "tutorial", si dovrebbe comunque intuire che tale xsl estrarrà dall'xml definito in precedenza i dati necessari per generare un bbcode che rispecchi le nostre esigenze.
Un grosso vantaggio di tale implementazione è che ogni revisione dello Stylesheet si ripecuoterà in automatico a tutte le schede dei films presenti sul portale senza che questi debbano essere minimamente modificati.

Portiamo come esempio concreto la scheda di Sin City
<?xml version="1.0"?>
<film> 
<locandina>http://upload.wikimedia.org/wikipedia/en/thumb/9/9e/Sincitypostercast.jpg/200px-Sincitypostercast.jpg</locandina>
  <titolo>Sin City</titolo>
  <anno>2005</anno>
  <durata>126'</durata>
  <trama>
Il film comincia con una scena ambientata in una notte di pioggia, su una balconata di un grattacielo della violenta e corrotta Sin City, una ragazza impegnata ad ammirare il panorama notturno della città viene avvicinata e successivamente sedotta da un affascinante ragazzo. 
  </trama>
</film>

Tale scheda, applicata al modello sopra definito, produrrà il seguente ouput:

Sin City
Posted Image
Anno: 2005
Durata: 126'
Trama:
Il film comincia con una scena ambientata in una notte di pioggia, su una balconata di un grattacielo della violenta e corrotta Sin City, una ragazza impegnata ad ammirare il panorama notturno della città viene avvicinata e successivamente sedotta da un affascinante ragazzo.


Il supporto ai modelli in Osiris non è tuttavia ancora completo in quanto adesso l'utente è costretto a scrivere l'xml dei dati a mano (il che è impensabile ovviamente), in futuro invece verrà generata in dinamico un'interfaccia specifica sulla base del template scelto (ciò è possibile processando l'xsd) che chiederà all'utente i parametri specifici del modello selezionato (nell'esempio sopra riportato verrebbero generati 5 inputbox per l'inserimento della locandina, del titolo, dell'anno, della durata e della trama) e provvederà a generare l'xml finale :)
Posted Image

Feel Free !
0

#2 User is offline   framework 

  • Advanced Member
  • PipPipPip
  • Group: Members
  • Posts: 81
  • Joined: 14-July 10
  • Gender:Male

Posted 16 July 2010 - 09:42 PM

grazie^^ auspicherei a un controllo dei bbcode come in vbulletin ad esempio,alla fine il rislutato è lo stesso,ma gestibile più facilmente^^penso...
0

#3 User is offline   Clodo 

  • Osiris Developer
  • PipPipPip
  • Group: Administrators
  • Posts: 2209
  • Joined: 31-May 06
  • Gender:Male
  • Location:Misinto (MI)
  • Interests:Coding, Anime, Home-Automation

Posted 18 July 2010 - 02:00 PM

View Postdionnison, on 16 July 2010 - 10:42 PM, said:

grazie^^ auspicherei a un controllo dei bbcode come in vbulletin ad esempio,alla fine il rislutato è lo stesso,ma gestibile più facilmente^^penso...

Quel che tu intendi sono i bbcode-custom, è una cosa diversa dai modelli xml di Osiris. I bbcode-custom mancano ma verrano implementati, ma non posso far previsioni di tempi ora.

Un'altra ipotesi era di implementare via bbcode i template come li ha MediaWiki...
Posted Image Posted Image
Posted ImagePosted Image
«Chi rinuncia alla libertà per raggiungere la sicurezza, non merita né la libertà né la sicurezza.» (Benjamin Franklin)
«Se il cervello fosse così semplice da permetterci di capirlo, noi saremmo così semplici da non capirlo.» (Lyall Watson)
0

#4 User is offline   framework 

  • Advanced Member
  • PipPipPip
  • Group: Members
  • Posts: 81
  • Joined: 14-July 10
  • Gender:Male

Posted 25 July 2010 - 03:12 PM

usando vbulletin mi troverei meglio con i bbcode custom,e te ne sarei davero grato se potessi implementarli! cmq ho provato ad usare questo modello,ma non capisco come funzioni nei topic:

ho creato il modello come la guida indica,poi sono andato a creare un nuovo topic ,ho inserito nel campo "modello" la scritta "template_forum" ma non capisco come fare ora...boh..sapete aiutarmi??grazie mille
0

#5 User is offline   megaborg 

  • Advanced Member
  • PipPipPip
  • Group: Supporters
  • Posts: 520
  • Joined: 04-October 06

Posted 27 July 2010 - 05:25 PM

Non ti funziona perche' non devi mettere il titolo del forum ma l'Id (identificativo) del modello
Credo che in futuro quando verra' ripreso e miglioratoa tale feature verra' permesso di usare nome del modello
Quando hai creato modello clicca su assitente in alto a destra apparira' schermata con dati sul modello tra cui l'ID
Clicca su icona accanto a ID e poi clicca su CTRL C per copiare negli appunti.
Dovresti avere un valore alfanumerico simile a questo:
0F000002627803993FFA5AF142EF6942F98B2A442DFC3635
E' quel valore che devi utilizzare per creare post con modello
0

#6 User is offline   framework 

  • Advanced Member
  • PipPipPip
  • Group: Members
  • Posts: 81
  • Joined: 14-July 10
  • Gender:Male

Posted 27 July 2010 - 08:27 PM

mi dice "errore impossibile applicare il modello"
0

#7 User is offline   framework 

  • Advanced Member
  • PipPipPip
  • Group: Members
  • Posts: 81
  • Joined: 14-July 10
  • Gender:Male

Posted 27 July 2010 - 08:38 PM

chiedo scusa,risolto,dovevo usare :

<?xml version="1.0"?>
<film>
<locandina>http://upload.wikimedia.org/wikipedia/en/thumb/9/9e/Sincitypostercast.jpg/200px-Sincitypostercast.jpg</locandina>
<titolo>sin city</titolo>
<anno>2005</anno>
<durata>126'</durata>
<trama>
Il film comincia con una scena ambientata in una notte di pioggia, su una balconata di un grattacielo della violenta e corrotta Sin City, una ragazza impegnata ad ammirare il panorama notturno della città viene avvicinata e successivamente sedotta da un affascinante ragazzo.
</trama>
</film>

io invece usavo

<film>
<locandina>...</locandina>
<titolo>...</titolo>
<anno>...</anno>
<durata>...</durata>
<trama>...</trama>
</film>
0

Share this topic:


Page 1 of 1
  • You cannot start a new topic
  • You cannot reply to this topic

1 User(s) are reading this topic
0 members, 1 guests, 0 anonymous users