- Punteggio reazioni
- 84
- Punti
- 55
1ma Premessa:
Premetto che non sono un esperto ma ho un minimo fatto un po di ricerca e come concetti , almeno a me , non sembrano cosi complicati , cercherò di spiegargli al meglio che posso.
2da Premessa:
Le informazioni che vi riporto qui di seguito si basano sulle informazioni fornite da Kier , in inglese , a questo link:
http://XenForo.com/community/threads/editing-templates-and-defining-a-callback-for-pages.7226/
A cosa serve la funzione CallBack?
Come dice il nome stesso a richiamare codice da pagine esterne , ovviamente con estenzione .php .
Quali Strumenti ci servono ?
1- Una buona conoscenza del codice nativo XenForo e delle corrispettive Tag utilizzate
[ a tal proposito a darvi una piccola mano potete scaricare l'aggiornamento contenente il codice XenForo e la TagLibrary per DreamWeaver a questo link:
http://XenForo.com/community/thread...late-syntax-highlighting-configuration.9800/]
2- Un Forum XenForo ...
Passiamo alla pratica:
Si deve fare un piccolo ragionamento prima ; se date un occhiata ai video di Kier , anche senza conoscere l'inglese , noterete che lui si era gia preparato buona parte del materiale per il video di spiegazione , quindi l'aspetto visivo del template ( quindi la parte in "HTML" e in CSS) li aveva gia creati in precedenza , e in questa guida non ci occuperemo di questo ma solo di come poter richiamare pagine in formato PHP ad oggetti nei vostri Template.
Quindi ripeto per creare la parte "visiva" del Template avete bisogno di conoscere la sintassi di Xenforo.
Adesso ci passiamo sul serio alla pratica ...
1- Per prima cosa dovete creare la cartella che conterrà le vostre pagine in formato .php , quindi andate nella vostra root , poi entrate nella cartella library e li create una nuova cartella
2- la nuova cartella la chiameremo Dev ( potete chiamarla come volete basta che poi ve lo ricordiate al momento del richiamo tramite funzione CallBack , tenetene presente )
3-All'interno della cartella Dev dovete creare un altra cartella che denomineremo PageCallBack
( potete chiamarla come volete basta che poi ve lo ricordiate al momento del richiamo tramite funzione CallBack , tenetene presente )
4- All'interno di essa creeremo o importeremo un file che nomineremo TemplateDemo.php
( potete chiamarlo come volete basta che poi ve lo ricordiate al momento del richiamo tramite funzione CallBack , tenetene presente )
Quindi il percorso che otterrete è il seguente :
Ok se avete fatto tutto correttamente , e fin qui è tutto semplice , passiamo al contenuto del file TemplateDemo.php
Il contenuto del file Template Demo è il seguente nel nostro caso:
faccio un minimo di spiegazione alla bene meglio di cosa è stato scritto in questo codice:
1- Molto importante è la Classe che contiene tutto il codice cioè questa :
Infatti sarà questa dicitura a dover essere richiamata nella funzione CallBack sul pannello amministrativo di Xenforo .
2- La seconda parte fondamentale del codice è la seguente :
Infatti la denominazione della funzione respond sarà l'altra parte da inserire nella Callback (poi vedremo al momento opportuno come fare e vi sarà tutto più chiaro)
N.B.: La funzione deve essere obbligatoriamente public static per essere richiamata
3- Poi abbiamo il contenuto di quelli che dovranno essere i risultati che vogliamo ottenere , cioè:
la parte in grassetto che vi ho evidenziato appunto sta dicendo se è presente il controllo pubblico e che l'associazione deve essere fatta mediante la variabile $controller , e il controllo del responso è associato tramite la variabile $response.
Per farvi un esempio molto semplice : il sistema sta verificando che sia presente quello che richiediamo e che esista un responso , quindi un risultato , associabile al controllo che ha fatto.
4- poi abbiamo il contenuto stesso di quello che vogliamo che sia controllato e dia un responso ed è questo :
Dove :
serve per eseguire il controllo richiesto ( in questo caso che siano presenti gli utenti che si sono registrati recentemente )
Mentre :
sta dicendo che il responso soggetto al parametro "users" è uguale al controllo degli utenti e che deve riempire il primo array visualizzando come massimo limite 5 utenti.
Salvate il file con questo codice all'interno del file denominato TemplateDemo.php
In fine molto importante è :
Che sta dicendo al sistema dove questo codice php deve essere applicato , cioè nel template che quando lo creerete andando su Pannello di controllo --> Aspetto -->Style -->Scegliete il vostro stile --> E poi cliccate su Nuovo Template , dovrete nominarlo proprio template_demo.
N.B.: Posso comprendere che quello che è stato scritto è arabo , ma vi assicuro che la sintassi Xenforo è intuitiva e una volta compresa capirete anche quello che è stato scritto.
Passiamo adesso all'ultima parte :
1- Accediamo al nostro Pannello di controllo di Xenforo e più precisamente nella voce dei Nodi e creiamo una nuova pagina , quindi il percorso da fare è :
2- riempite le seguenti voci cosi come segue :
Se ricordate nel codice che è stato scritto qui sopra sono entrambe presenti , quindi in Classe inseriamo :
Dev_PageCallBack_TemplateDemo (che riporta anche il percorso della cartella dove si trova il file i formato .php)
mentre alla voce Metodo inseriamo :
respond
Devo far notare le ultime 2 cose :
1- Tutte le funzioni ulteriori ad oggetti che farete nel PHP devono essere poi richiamate o inserite nella funzione (metodo) respond , perche Xenforo legge solo 1 metodo quando andate a creare una Nuova Pagina dal Pannello di controllo di Xenforo.
2- Vi allego l'immagine del codice nativo per il template fatto da Kier:
e questo dovrebbe essere il risultato che otterrete una volta eseguito tutto quello che vi ho scritto in modo corretto :
Spero di esservi stato utile.
P.S.: Agli Admin ed ai Mod : se ho sbagliato la sezione dove scrivere vi prego di spostare questo Topic , Grazie. Mi scuso se c'è qualche errore di sintassi italiana ma l'orario in cui sto scrivendo questo Topic è tardi (3 di notte) quindi sono un po fuso e stanco.
Premetto che non sono un esperto ma ho un minimo fatto un po di ricerca e come concetti , almeno a me , non sembrano cosi complicati , cercherò di spiegargli al meglio che posso.
2da Premessa:
Le informazioni che vi riporto qui di seguito si basano sulle informazioni fornite da Kier , in inglese , a questo link:
http://XenForo.com/community/threads/editing-templates-and-defining-a-callback-for-pages.7226/
A cosa serve la funzione CallBack?
Come dice il nome stesso a richiamare codice da pagine esterne , ovviamente con estenzione .php .
Quali Strumenti ci servono ?
1- Una buona conoscenza del codice nativo XenForo e delle corrispettive Tag utilizzate
[ a tal proposito a darvi una piccola mano potete scaricare l'aggiornamento contenente il codice XenForo e la TagLibrary per DreamWeaver a questo link:
http://XenForo.com/community/thread...late-syntax-highlighting-configuration.9800/]
2- Un Forum XenForo ...
Passiamo alla pratica:
Si deve fare un piccolo ragionamento prima ; se date un occhiata ai video di Kier , anche senza conoscere l'inglese , noterete che lui si era gia preparato buona parte del materiale per il video di spiegazione , quindi l'aspetto visivo del template ( quindi la parte in "HTML" e in CSS) li aveva gia creati in precedenza , e in questa guida non ci occuperemo di questo ma solo di come poter richiamare pagine in formato PHP ad oggetti nei vostri Template.
Quindi ripeto per creare la parte "visiva" del Template avete bisogno di conoscere la sintassi di Xenforo.
Adesso ci passiamo sul serio alla pratica ...
1- Per prima cosa dovete creare la cartella che conterrà le vostre pagine in formato .php , quindi andate nella vostra root , poi entrate nella cartella library e li create una nuova cartella
Root -->Library --> Crea una nuova cartella
2- la nuova cartella la chiameremo Dev ( potete chiamarla come volete basta che poi ve lo ricordiate al momento del richiamo tramite funzione CallBack , tenetene presente )
3-All'interno della cartella Dev dovete creare un altra cartella che denomineremo PageCallBack
( potete chiamarla come volete basta che poi ve lo ricordiate al momento del richiamo tramite funzione CallBack , tenetene presente )
4- All'interno di essa creeremo o importeremo un file che nomineremo TemplateDemo.php
( potete chiamarlo come volete basta che poi ve lo ricordiate al momento del richiamo tramite funzione CallBack , tenetene presente )
Quindi il percorso che otterrete è il seguente :
Root --> Library --> Dev --> PageCallBack --> TemplateDemo.php
Ok se avete fatto tutto correttamente , e fin qui è tutto semplice , passiamo al contenuto del file TemplateDemo.php
Il contenuto del file Template Demo è il seguente nel nostro caso:
<?php
Class Dev_PageCallBack_TemplateDemo
{
public static function respond(XenForo_ControllerPublic_Abstract $controller, XenForo_ControllerResponse_Abstract $response)
{
$userModel = $controller->getModelFromCache('XenForo_Model_User');
$response->params['users'] = $userModel->getLatestUsers(array(),array('limit' => 5));
$response->templateName = 'template_demo';
}
}
?>
faccio un minimo di spiegazione alla bene meglio di cosa è stato scritto in questo codice:
1- Molto importante è la Classe che contiene tutto il codice cioè questa :
<-- CLASSEDev_PageCallBack_TemplateDemo
Infatti sarà questa dicitura a dover essere richiamata nella funzione CallBack sul pannello amministrativo di Xenforo .
2- La seconda parte fondamentale del codice è la seguente :
<--- METODOpublic static function respond(----)
Infatti la denominazione della funzione respond sarà l'altra parte da inserire nella Callback (poi vedremo al momento opportuno come fare e vi sarà tutto più chiaro)
N.B.: La funzione deve essere obbligatoriamente public static per essere richiamata
3- Poi abbiamo il contenuto di quelli che dovranno essere i risultati che vogliamo ottenere , cioè:
public static function respond(XenForo_ControllerPublic_Abstract $controller, XenForo_ControllerResponse_Abstract $response)
la parte in grassetto che vi ho evidenziato appunto sta dicendo se è presente il controllo pubblico e che l'associazione deve essere fatta mediante la variabile $controller , e il controllo del responso è associato tramite la variabile $response.
Per farvi un esempio molto semplice : il sistema sta verificando che sia presente quello che richiediamo e che esista un responso , quindi un risultato , associabile al controllo che ha fatto.
4- poi abbiamo il contenuto stesso di quello che vogliamo che sia controllato e dia un responso ed è questo :
$userModel = $controller->getModelFromCache('XenForo_Model_User');
$response->params['users'] = $userModel->getLatestUsers(array(),array('limit' => 5));
$response->templateName = 'template_demo';
Dove :
$userModel = $controller->getModelFromCache('XenForo_Model_User');
serve per eseguire il controllo richiesto ( in questo caso che siano presenti gli utenti che si sono registrati recentemente )
Mentre :
$response->params['users'] = $userModel->getLatestUsers(array(),array('limit' => 5));
sta dicendo che il responso soggetto al parametro "users" è uguale al controllo degli utenti e che deve riempire il primo array visualizzando come massimo limite 5 utenti.
Salvate il file con questo codice all'interno del file denominato TemplateDemo.php
In fine molto importante è :
$response->templateName = 'template_demo';
Che sta dicendo al sistema dove questo codice php deve essere applicato , cioè nel template che quando lo creerete andando su Pannello di controllo --> Aspetto -->Style -->Scegliete il vostro stile --> E poi cliccate su Nuovo Template , dovrete nominarlo proprio template_demo.
N.B.: Posso comprendere che quello che è stato scritto è arabo , ma vi assicuro che la sintassi Xenforo è intuitiva e una volta compresa capirete anche quello che è stato scritto.
Passiamo adesso all'ultima parte :
1- Accediamo al nostro Pannello di controllo di Xenforo e più precisamente nella voce dei Nodi e creiamo una nuova pagina , quindi il percorso da fare è :
Applicazioni --> Crea Nuova Pagina ( o tramite tasto destro in alto allo schermo)
2- riempite le seguenti voci cosi come segue :
Porzione della URL: TemplateDemo
Titolo: TemplateDemo
3- Cliccate sul pulsante a metà schermo verso l'alto denominato Callback PHP
4- In questa pagina troverete la voce Callback PHP dove vedete due spazi liberi , dove in uno è scritto CLASSE e nell'altro METODO
Se ricordate nel codice che è stato scritto qui sopra sono entrambe presenti , quindi in Classe inseriamo :
Dev_PageCallBack_TemplateDemo (che riporta anche il percorso della cartella dove si trova il file i formato .php)
mentre alla voce Metodo inseriamo :
respond
Devo far notare le ultime 2 cose :
1- Tutte le funzioni ulteriori ad oggetti che farete nel PHP devono essere poi richiamate o inserite nella funzione (metodo) respond , perche Xenforo legge solo 1 metodo quando andate a creare una Nuova Pagina dal Pannello di controllo di Xenforo.
2- Vi allego l'immagine del codice nativo per il template fatto da Kier:
e questo dovrebbe essere il risultato che otterrete una volta eseguito tutto quello che vi ho scritto in modo corretto :
Spero di esservi stato utile.
P.S.: Agli Admin ed ai Mod : se ho sbagliato la sezione dove scrivere vi prego di spostare questo Topic , Grazie. Mi scuso se c'è qualche errore di sintassi italiana ma l'orario in cui sto scrivendo questo Topic è tardi (3 di notte) quindi sono un po fuso e stanco.