Documenti per lo sviluppo di MDPro 1.08x
Alcuni trucchi e consigli per convertire vecchi moduli a MDPro 1.08x
Alcuni vecchi moduli MDPro/Postnuke hanno bisogno di molte modifiche per poter funzionare e renderli MDPro 1.08x compatibile, altri moduli hanno bisogno di minime modifiche per poter funzionare, potete leggere di seguito alcuni tips che possono esservi utili per convertire alcuni moduli, fateci conoscere se intendete lavorare alla conversione di alcuni moduli in modo che tutta la comunità possa saperlo.
con queste semplici azioni molti vecchi moduli potranno cosi funzionare con MDPro 1.08x e per cortesia condifidete il vostro lavoro
se volete utilizzare Tinymax editor nel vostro modulo, potete seguire le seguenti istruzioni
Possiamo usare gli hooks per attivare Tinymax editor nei nostri moduli, quindi ad esempio
potete aggiungere del codice tipo questo
pnModCallHooks('item','transform','',array('textarea name1','textarea name2'));
nel vostro modulo, quindi potete attivare Tynimax editor manualmente in Admin/modules cliccando sul nome del modulo oppure potete aggiungere qualche cosa tipo questo nel vostro db
INSERT INTO md_hooks VALUES ('', 'item', 'transform', 'Name module', NULL , 'API', 'Tinymax', 'user', 'transform');
certamente potete utilizzare pninit per effettuare questa applicazione automaticamente con la procedura d'installazione
Documentazione Autorender
Indice
•1.Introduzione
•2.Struttura delle cartelle
•3.Algoritmo di esecuzione
•4.Plugin
•5.Modulo d'esempio
•6.Dettagli sui Template
•7.NOTE
1. Introduzione
Il modulo Autorender è un motore grafico di templating basato sia sul popolare motore AutoTheme di Shawn McKenzie e che sul motore Smarty di smarty.php.net
Autorender vuole coniugare la potenza dei motori AutoTheme e Smarty in un unico modulo. Permette il supporto dei temi AutoTheme senza significative modifiche e tuttemlemcaratterisitche di Smarty.
Il supporto per Smarty permette inoltre la piena portatilità dei moduli basati su pnRender di PostNuke.
2. Struttura delle Cartelle
Autorender ha la seguente struttura delle cartelle:
Root MDPro
|--libs
|--render_smarty contiene il codice base di Smarty senza modifiche
|--plugins contiene i plugin di Smarty per l'intero sito
|--smarty_core contiene plugin base di smarty plugins degli sviluppatori
|--api contiene plugin dipendenti dalle API di PostNuke e MDPro
|--modules
|--Autorender Contiene il codice AutoTheme modificato per supportare Smarty.
|--Tuo modulo personalizzato
|--templates Contiene i template Autorender del tuo modulo personalizzato
|--plugins Contiene i plugins perr Autorender del tuo modulo
|--cache
|--_arcompile Contiene i template compilati per Autorender, deve essere 777
|--_cache Contiene pagine cache di smarty, deve avere permessi 777
3. Algoritmi di esecuzione.
Fondamentalmente, Autorender può lavoroqare in due modi:
Primo modo - riceve il template, esegue il parsing, cioè lo elabora con smarty, lo interpreta come un template AutoTheme e lo elabora sotto AutoTheme, poi lo ritorna all'utente. Questo metodo supporta tutte le costanti inserite nel template, siano esse di Smarty e/o di Autotheme, ma è più lento nell'elaborazione che se si usasse solo Smarty o solo AutoTheme.
Secondo Modo - riceve il template, lo elabora con Smarty, poi lo ritorna all'utente. Questo metodo supporta solo i tag di Smarty, ma lavora più velocemente che il primo metodo. Se ne raccomanda l'uso nei moduli o nei blocchi sensibili alla velocità, che non richiedono tag di AutoTheme.
4. Plugins.
I plugin consentono di creare un comando o un modificatore personalizzato da usare all'interno del template.
I plugin si possono dividere fondamentalmente in
A. I plugin di Smarty si trovano nella cartella libs/render_smarty/plugins/smarty_core e sono necessari per utilizzare le funzionalità base di Smarty.
a) Commandi
nome del file di plugin:
function.NomeTuaFunzione.php
uso nel template:
<% NomeTaFunzione
NomeParametro1=ValoreParametro1
NomeParametro2=ValoreParametro2
%>
b) Modificatori
nome del file di plugin:
modifiers.NomeTuoModificatore.php
uso nel template:
<% $valore|NomeTuoModificatore %>
a) Alcuni utili esempi di sintassi Smarty forniti da un comando:
<% section loop=$myarray name="myvar" %>
<% $myarray[myvar].array_element %> <br>
<%sectionelse%>
No data found
<%/section%>
Esegue un loop sulle voci di un vettore
http://smarty.php.net/manual/en/language.function.section.php
<%if $condition ne "" %>
<% $condition %> is not null
<%else%>
<% $condition %> is null
<%/if%>
Controlla se la condizione è vera o falsa
Supporta le operazioni base (eq,ne,gt,lt,le,ge,not e analoghi matematici)
http://smarty.php.net/manual/en/language.function.if.php
<% include file="tuofile.tpl" %>
Includes another template into current one
http://smarty.php.net/manual/en/language.function.include.php
<%php%>
echo "php code works";
<%/php%>
Include codice php nel template. Non si raccomanda l'uso ;)
http://smarty.php.net/manual/en/language.function.php.php
Ecco alcune utili funzioni core supportati da Smarty (definite come plugins):
<% config_load file='dfsf' section='dsfsd'
scope='fsd' global=true %>
è usata per caricare le variabili di configurazione dal file di configurazione al file del template.
<% counter name='dfsf' start=1 skip=2
direction=up print=false assing=varname %>
Registra il contatore per ogni iterazione e viene usato per stampare tale indice.
http://smarty.php.net/manual/en/language.function.counter.php
<% cycle name="gfdg" values="blue,green,red" print="false" delimiter="," assign="varname" reset="true" %>
Viene usato per far ruotare una serie di valori (funziona come il foreach del PHP).
http://smarty.php.net/manual/en/language.function.cycle.php
<% debug output="La tua frase quì" %>
inserisce la console di debug nella pagina.
http://smarty.php.net/manual/en/language.function.debug.php
<% eval var="$x+1" assign="varname"%>
usato per valutare una variabile come un template smarty.
http://smarty.php.net/manual/en/language.function.eval.php
<% fetch file="http://posizione.file/file" assign="varname" %>
Usato per scaricare file da un file system locale, http oppure ftp e visualizza o ne assegna il contenuto.
http://smarty.php.net/manual/en/language.function.fetch.php
<% html_checkboxes name="outputname"
options=$associated_array_values
selected=$string_or_array_of_values %>
è una funzione personalizzata che crea gruppi di checkbox con valori forniti dal creatore.
http://smarty.php.net/manual/en/language.function.html.checkboxes.php
<% html_options
name="outputname"
values=$array_of_values
selected=$string_or_array %>
Funziona come html_checkboxes, ma per liste di tipo select
http://smarty.php.net/manual/en/language.function.html.options.php
<% html_radios name="outputname"
values=$array_of_values
selected=$string_or_array %>
Funziona come html_checkboxes, ma per radio buttons
http://smarty.php.net/manual/en/language.function.html.radios.php
<% html_select_date prefix="mydate_"
time="2005-12-31"
start_year="1970"
end_year="2020" %>
Crea menu tendine a discesa per scegliere tra date.
http://smarty.php.net/manual/en/language.function.html.select.date.php
<% html_select_time
prefix="mytime_"
time=$unixtimestamp
%>
Crea menu tendine a discesa per scegliere tra date.
http://smarty.php.net/manual/en/language.function.html.select.time.php
<% html_table loop=$array_of_data cols=10 rows=20 %>
Inserisce un vettore in una tabella HTML.
http://smarty.php.net/manual/en/language.function.html.table.php
<% html_image file="image_path" height=10 width=20
alt="Alt name" href="http://link.here/" %>
Crea il tag immagine dai dati inseriti.
Non so se ciòpossa essere utile nel nostro caso... http://smarty.php.net/manual/en/language.function.html.image.ph
<% mailto address="me@maxdev.com" text="Contattaci"
subj="Mail from site" %>
Crea il tag mailto per i dati inseriti.
http://smarty.php.net/manual/en/language.function.mailto.php
<% math equation="x*y" x=2 y=3 format="%d" %>
Calcola una equazione matematica.
http://smarty.php.net/manual/en/language.function.math.php
Tutte le informazioni dettagliate sulle sopra descritte fuzioni possono essere trovate sul sito di Smarty:
b) Ed ecco alcuni modificatori core per Smarty:
truncate:20:"...":true
Limita la lunghezza dei byte stampati alla lunghezza di 20 caratteri e inserisce '...' in fondo.
http://smarty.php.net/manual/en/language.modifier.truncate.php
nl2br
Converte il line feeds nel tag <br>
http://smarty.php.net/manual/en/language.modifier.nl2br.php
date_format:"%B %e, %Y %H:%M:%S"
Visualizza in output il unixtimestamp in formato stringa data.
http://smarty.php.net/manual/en/language.modifier.date.format.php
strip_tags
Rimuove tag HTML
http://smarty.php.net/manual/en/language.modifier.strip.tags.php
Tutte le informazioni dettagliate sui modificatori possono essere trovate sul sito Smarty:
http://smarty.php.net/manual/en/
B. Funzioni e modifcatori API per PostNuke/MDPro
Esistono diversi modificatori speciali e diverse funzioni in supporto alle funzionalità che dipendono dalle API di PosNuke e di MDPro. Sotto PostNuke essi vengono usate da pnRender.
a. Funzioni
<% opentable %>
<% closetable %>
<% opentable2 %>
<% closetable2 %>
Tag per aprire e chiudere due tipi standard di tabelle.
<% const name=_YOUR_CONSTANT_NAME%>
Visualizza una costante (dovrebbe essere dipendente dalla lingua)
<% pager %>
Mostra il pager con i parametri che vengono passati.
<% pnblock id=45 %>
Il ocntenuto in outut di un blocco di cui è specificato l'id (in un sistema che permette di aggiungere blocchi da admin->Blocks)
<% pnconfiggetvar name="param_name" %>
Stampa i valori di configurazione per un nome di parametro dato
<% pnmodapifunc modname="YouModuleName" type="user"
func="your_func_name" param1="val1"
param2="val2" %>
Chiama una funzione API per un modulo, un tipo e un parametro inserito
<% pnmodgetvar module="YouModuleName" name="ParamName" %>
Riceve una variabile di configurazione del modulo
<% pnvarcleanfrominput name="ParamName" %>
Riceve parametri di input (post/get)
<% pnusergetvar uid="2" name="ParamName" %>
Riceve parametri passati dall'utente
<% pnsecgenauthkey module="YourModuleName" assign=$variable_name %>
Genera AuthKey (richiesta in certe operazioni di modifica/cancella/aggiorna)
b. Modificatori:
pnvarprepforstore
Prepara le variabili alla memorizzazione
pnvarprepfordisplay
Prepara le variabili alla visualizzazione
pnvarprephtmldisplay
Prepara le variabili per la visualizzazione come codice HTML
AutoRender_ita.pdf (36.90 KB 05.01.2007 08:17)