|
Wildcards (inserttags) di Typolight |
|
|
|
|
venerdì 24 luglio 2009 |
Typolight è un CMS molto flessibile, ho già fatto due tutorial che illustrano come ottenere ottimi risultati: come creare un template e come gestire le news.
In questo terzo tutorial presento una funzione molto interessante che ci regala nuove possibilità per maneggiare sia i template, che i moduli e pagine. Si tratta delle "wildcards" o "inserttags", la pagina del sito originale è: http://dev.typolight.org/wiki/EnglishInserttags
L'utilità di queste wildcards è questa: tramite un codice chiuso tra parentesi graffe si può includere qualcosa di dinamico ovunque in un template, modulo, intestazione o contenuto di Typolight. Quando infatti il CMS genera la pagina cerca queste wildcards ed esegue le istruzioni che richiedono. E siccome insert tags viene eseguito solo quando la pagina viene stampata a video, si può usarlo con pagine in cache.
Per fare un esempio pratico, consideriamo la wildcard {{insert_module::ID}} Dove ID è il numero identificativo del modulo che vogliamo includere.
Grazie a questa quindi possiamo inserire il modulo del breadcrumb direttamente nel template (fe_page.tpl) senza ricorrere al montaggio dei moduli tramite un layout come abbiamo visto nel tutorial precedente. Immaginate quanta flessibilità le wildcard ci danno nel comporre il nostro template. Non siamo legati alle posizioni standard di Typolight (header, centro, colonna sinistra, colonna destra, footer), possiamo fare nuove posizioni ovunque ci aggrada, inserendoci i moduli che preferiamo.
Stesso discorso si applica ai moduli. Per esempio potrebbe capitare che nella colonna sinistra ci sia un menu che però nel design ha dei tag aggiuntivi non previsti: è racchiuso in un box fatto con 4 div, ha un'immagine sotto, e una intestazione con icona e testo. Bene... il modulo navigatore di Typolight sarebbe insufficiente poichè genera solo l'intestazione e la lista UL e LI. Nessun problema! facciamo un modulo "contenitore" di tipo html personalizzato, il quale ha poi all'interno la wildcard {{insert_module::ID}} con il modulo del navigatore che desideriamo. Nel layout poi basta chiamare il modulo di html personalizzato e non quello del navigatore e il gioco è fatto.
Lista delle wildcards:
- {{article::ID}}
- {{article_teaser::ID}}
- {{news_teaser::ID}}
- {{event_teaser::ID}}
- {{date}}
- {{date::format}}
- {{email::address}}
- {{env::page_id}}
- {{env::page_alias}}
- {{env::page_name}}
- {{env::page_title}}
- {{env::parent_alias}}
- {{env::parent_name}}
- {{env::parent_title}}
- {{env::main_alias}}
- {{env::main_name}}
- {{env::main_title}}
- {{env::website_title}}
- {{env::url}}
- {{env::path}}
- {{env::request}}
- {{env::referer}}
- {{env::ip}}
- {{iflng::LN}}
- {{image::filename?param=value¶m2=value2}}
- {{file::file.php}}
- {{insert_article::ID}}
- {{insert_content::ID}}
- {{insert_module::ID}}
- {{lang::ID}}
- {{last_update}}
- {{last_update::format}}
- {{link::page}}
- {{link::back}}
- {{link::login}}
- {{link_open::page}}
- {{link_url::page}}
- {{link_title::page}}
- {{user::property}}
Spiegazione delle wildcards in italiano: {{article::ID}} Questo insert tag verrà sostituito con un link ad un articolo. Cambia ID con il numero ID dell'articolo.
{{article_teaser::ID}} Questo insert tag verrà sostituito con il teaser di un articolo. Cambia ID con il numero ID dell'articolo
{{news_teaser::ID}} Questo insert tag verrà sostituito con il teaser di una news. Cambia ID con il numero ID della news
{{event_teaser::ID}} Questo insert tag verrà sostituito con il teaser di un evento. Cambia ID con il numero ID dell'evento
{{date}} Questo insert tag verrà sostituito con la data corrente secondo il formato globale
{{date::format}} Questo insert tag verrà sostituito con la datasecondo il formato che puoi inserire nel secondo argomento. Per esempio con Y/m/d si ottiene 2007/03/07. Maggiori info http://www.php.net/date.
{{email::address}} Questo insert tag verrà sostituito con un link all'indirizzo email specificato
{{env::page_id}} Questo insert tag verrà sostituito con l'id della pagina corrente (env = environment)
{{env::page_alias}} Questo insert tag verrà sostituito con l'alias della pagina corrente
{{env::page_name}} Questo insert tag verrà sostituito con il nome della pagina corrente
{{env::page_title}} Questo insert tag verrà sostituito con il titolo della pagina corrente
{{env::parent_alias}} Questo insert tag verrà sostituito con l'alias della pagina di livello superiore
{{env::parent_name}} Questo insert tag verrà sostituito con il nome della pagina di livello superiore
{{env::parent_title}} Questo insert tag verrà sostituito con il titolo della pagina di livello superiore
{{env::main_alias}} Questo insert tag verrà sostituito con l'alias della pagina genitore di livello superiore
{{env::main_name}} Questo insert tag verrà sostituito con il nome della pagina genitore di livello superiore
{{env::main_title}} Questo insert tag verrà sostituito con il titolo della pagina genitore di livello superiore
{{env::website_title}} Questo insert tag verrà sostituito con il titolo del sito
{{env::url}} Questo insert tag verrà sostituito con l'url del sito corrente (e.g. http://www.yoursite.com).
{{env::path}} Questo insert tag verrà sostituito con l'url e path della pagina corrente in forma di directory (e.g. http://www.yoursite.com/path).
{{env::request}} Questo insert tag verrà sostituito con il nome della pagina corrente (e.g. home.html).
{{env::referer}} Questo insert tag verrà sostituito con l'url della pagina visitata precedentemente
{{env::ip}} Questo insert tag verrà sostituito con l'indirizzo ip dell'utente connesso
{{iflng::LN}} Questo insert tag verrà rimosso se la pagina non è corrispondente al tag LN (cambia LN con il codice iso della lingua). Usato per inserire pezzi in lingua specifica in moduli e form.
{{iflng::en}}Your name{{iflng}}{{iflng::de}}Ihr Name{{iflng}} In questo esempio si scrive "Your name" nelle pagine in inglese, e "Ihr Name" in quelle tedesche e una stringa vuota nelle altre.
{{image::filename?param=value¶m2=value2}} Questo inserisce il thumbnail di una immagine, i parametri supportati sono: width: Thumbnail width height: Thumbnail height alt: Alternative text class: CSS class rel: rel-attribute (e.g. "lightbox")
I thumbnails sono in "system/html". Ecco un grande esempio: {{image::tl_files/music_academy/james-wilson.jpg?width=80&height=120&alt=James Wilson&class=ce_image}}
{{file::file.php}} Con questo si inserisce l'output di file.php. I file PHP da includere devono essere messi in cartella templates. Si possono aggiungere argomenti: {{file::file.php?arg=val&arg2=val2}}
{{insert_article::ID}} Questo insert tag verrà sostituito con l'output di un articolo specificato. Utile per inserire un articolo o news in altre news o articoli.
{{insert_content::ID}} Questo insert tag verrà sostituito con l'output del contenuto specificato. Utile per inserire il contenuto di un articolo o news in altre news o articoli.
{{insert_module::ID}} Questo insert tag verrà sostituito con l'output del del modulo specificato. Utile per includere un modulo in un articolo, layout, tema ecc...
{{lang::ID}} Usa questo insert tag per marcare lingue straniere nel tuo testo (accessibilità)
{{lang::fr}}Au revoir{{lang}} Verrà sostituito con <span lang="fr" xml:lang="fr">Au revoir</span>
{{last_update}} Questo insert tag verrà sostituito con la data dell'ultimo update, secondo il formato globale
{{last_update::format}} Questo insert tag verrà sostituito con la data dell'ultimo update secondo il formato indicato nel secondo argomento. Per esempio con Y/m/d esce 2007/03/07. Più informazioni http://www.php.net/date.
{{link::page}} Questo insert tag verrà sostituito con un link ad una pagina interna. Cambia page con l'id o alias della pagina
{{link::back}} Questo insert tag verrà sostituito con un link alla pagina vista precedentemente. Puoi usarlo anche con link_open, link_url e link_title.
{{link::login}} Questo insert tag verrà sostituito con un link alla pagina di login del corrente utente ed è mostrata solo se è presente un utente loggato. Puoi usarlo anche con link_open, link_url e link_title.
{{link_open::page}} Questo insert tag verrà sostituito con il tag di apertura di un link ad una pagina interna. Comunque puoi usare un testo personalizzato o immagine come link: {{link_open::page}}my text</a>
{{link_url::page}} Questo insert tag verrà sostituito con l'url di una pagina interna. <a href="{{link_url::page}}">my text</a>
{{link_title::page}} Questo insert tag verrà sostituito con il titolo di una pagina interna e può essere usato in attributi title o alt: <a href="{{link_url::page}}" title="{{link_title::page}}">my text</a>
{{user::property}} Questo insert tag verrà sostituito con una proprietà particolare di un utente front end, indicata nel secondo argomento. Per esempio puoi indirizzare l'utente con il suo nome {{user::firstname}} {{user::lastname}}. Qui una lista di proprietà:
id: Unique ID firstname: First name lastname: Last name company: Company email: E-mail address street: Street postal: Postal code city: City state: State country: Country phone: Phone number mobile: Mobile phone number fax: Fax number
Aggiungi ai preferiti (154) | Visualizzazioni: 2321
Powered by AkoComment Tweaked Special Edition v.1.4.6 AkoComment © Copyright 2004 by Arthur Konze - www.mamboportal.com All right reserved |