View previous topic :: View next topic |
Author |
Message |
Ginko Guru
Joined: 01 May 2002 Posts: 371 Location: nearby my linux laptop
|
Posted: Thu Jan 01, 2004 6:46 pm Post subject: |
|
|
Se si punta su PHP io caldeggio molto la scelta di smarty e l'uso di templates per separare il piu' possibile il codice dal layout del sito.
--Gianluca |
|
Back to top |
|
|
fedeliallalinea Administrator
Joined: 08 Mar 2003 Posts: 31445 Location: here
|
Posted: Fri Jan 02, 2004 12:03 am Post subject: |
|
|
Ginko wrote: | Se si punta su PHP io caldeggio molto la scelta di smarty e l'uso di templates per separare il piu' possibile il codice dal layout del sito. |
Ho iniziato a leggere qualcosa su smarty e devo dire che e' proprio quello che fa per noi visto che vogliamo utilizzare php. Io voto per smarty. _________________ Questions are guaranteed in life; Answers aren't. |
|
Back to top |
|
|
daniele_dll Tux's lil' helper
Joined: 12 Dec 2003 Posts: 143 Location: Sicily
|
|
Back to top |
|
|
Ginko Guru
Joined: 01 May 2002 Posts: 371 Location: nearby my linux laptop
|
Posted: Fri Jan 02, 2004 6:33 pm Post subject: |
|
|
daniele_dll wrote: | ehm...
xche usare smarty?
|
Per separare il codice dalla presentazione. Con smarty la separazione e' totale (se lo si vuole).
Un eval di PHP credo che implicitamente richieda che il template sia scritto in PHP, sbaglio?
--Gianluca |
|
Back to top |
|
|
daniele_dll Tux's lil' helper
Joined: 12 Dec 2003 Posts: 143 Location: Sicily
|
Posted: Fri Jan 02, 2004 6:42 pm Post subject: |
|
|
Ginko wrote: | daniele_dll wrote: | ehm...
xche usare smarty?
|
Per separare il codice dalla presentazione. Con smarty la separazione e' totale (se lo si vuole).
Un eval di PHP credo che implicitamente richieda che il template sia scritto in PHP, sbaglio?
--Gianluca |
sbagli ^^
eval('$content = "' . $_TEMPLATES->read('main/main.tpl.php') . '";');
non ti far ingannare dal .php
lo metto solo per non far leggere il sorgente della pagina
$_TEMPLATES è una classe che mi sono fatto che si occupa di caricare\scaricare i file di template e gestire 1 cache temporanea _________________ CMSoft 0.0.6NEW!!! - PHPSoft.it Forum |
|
Back to top |
|
|
emix Veteran
Joined: 30 Nov 2003 Posts: 1014
|
Posted: Fri Jan 02, 2004 8:04 pm Post subject: |
|
|
daniele_dll wrote: | eval('$content = "' . $_TEMPLATES->read('main/main.tpl.php') . '";');
non ti far ingannare dal .php
lo metto solo per non far leggere il sorgente della pagina |
Evviva l'opensource |
|
Back to top |
|
|
daniele_dll Tux's lil' helper
Joined: 12 Dec 2003 Posts: 143 Location: Sicily
|
Posted: Fri Jan 02, 2004 8:44 pm Post subject: |
|
|
^^
lol...questo non si chiama open source...serve ad evitare che qualcuno possa provare a sfruttare qualke strana vulnerabilità ^^
ed inoltre...lol...fai cosi x una paginetta? potremmo chiamare il file della configurazione dei nostri applicativi .txt e non .php in modo da farli vedere a tutti ^^ cosi siamo tutti "più opensource" _________________ CMSoft 0.0.6NEW!!! - PHPSoft.it Forum |
|
Back to top |
|
|
akiross Veteran
Joined: 02 Mar 2003 Posts: 1170 Location: Mostly on google.
|
Posted: Sat Jan 03, 2004 10:46 am Post subject: |
|
|
Hola raga!
E' un po che non vengo sul forum, infatti mi sono accorto solo ora di questo progetto del sito dei gechi...
Io me la cavicchio con l'aspetto tecnico, non per niente faccio un sito dietro l'altro e li lascio sempre vuoti perche' non so cosa metterci
quindi, se avete bisogno di qualcosa chiedete pure.
Giusto per ricordarlo posso esservi utile:
nella parte grafica, so usare discretamente
- The GIMP
- Blender 3D
- Flash 5 -> Lib SWF e se riesco studio MING
nella parte di codifica, uso bene
- PHP + MySQL
- C/C++ per eventuali CGI (anche se x il web preferisco PHP)
bhe, ovviamente potrei studiarmi qualcosa in caso di necessita'...
Meglio se mi rintracciate su ICQ o per email visto che sul forum non vengo molto spesso
(sapete perche? perche' la mia gentoo box va da Dio e non mi crea problemi )
Comunque vedo che qui ci sono esperti, anzi, ESPERTONI, quindi e' un avviso quasi inutile il mio... vabe, meglio far sapere che ci sono anche io
Ciauz!
EDIT:
Ho letto qualcosina su Smarty, a me sembra una buona idea.
In ogni caso ci sono altri modi per adattare il layout agli script... secondo me un uso ponderato di PHP (MySQL) con XML e Stylesheet CSS puo' fare un ottimo lavoro. E comunque voledo si puo' anche alzare il livello di astrazione di PHP per ottenere qualcosa di simile a smarty.
Fate vobis _________________ Libera scienza in libero stato.
Horizon of Events |
|
Back to top |
|
|
akiross Veteran
Joined: 02 Mar 2003 Posts: 1170 Location: Mostly on google.
|
Posted: Sat Jan 03, 2004 10:58 am Post subject: |
|
|
Io sono uno di quelli che preferirebbe riciclare al massimo, quindi smarty mi sembra una buona diea.
Se pero' volete che ci sia un velocita' razzo, mi sa che l'unica e' sceglieresi un layout decente e fare il sito bene, da subito. Ogni parte dedicata e ottimizzata.
Ovvio che se abbiamo intenzione di cambiare qualcosa, tutto il lavoro se ne va a Fut Fut (o gran parte di esso), ma non e' che si fa un restyling generale ogni anno... basta fare le cose con criterio da subito e, secondo me, possiamo anche fare tutto il codice inline da subito.
Io personalmente sui miei svariati siti (cioe' sempre lo stesso rifatto a nuovo ogni volta ) uso semplicissimi file con le funzioni che includo in un index.php, nel quale gestisco tutto. A me non sembra sia lento e la tattica funziona
Comunque non sono espertissimo di metodologie di programmazione, quindi mi sbaglio sicuramente.
Ciauz _________________ Libera scienza in libero stato.
Horizon of Events |
|
Back to top |
|
|
emix Veteran
Joined: 30 Nov 2003 Posts: 1014
|
Posted: Sat Jan 03, 2004 11:14 am Post subject: |
|
|
akiross wrote: | Meglio se mi rintracciate su ICQ o per email visto che sul forum non vengo molto spesso |
Colgo l'occasione per porre una problematica non di poco conto. Come ci organizziamo per collaborare? Intendo il metodo di comunicazione... il forum non mi sembra un'ottima risorsa. |
|
Back to top |
|
|
akiross Veteran
Joined: 02 Mar 2003 Posts: 1170 Location: Mostly on google.
|
Posted: Sat Jan 03, 2004 11:24 am Post subject: |
|
|
Bhe, direi che la migliore di tutte e' che ognuno mette online il proprio numero di cellulare e che ci facciamo rimborsare le telefonate da mamma gentoo... sapete quanto guadagnano vendendo tazzine?!?!
AhahAHA ovviamente scherzo
Secondo me dovremmo usare forum e IRC in contemporanea... sul canale di gentoo (su azzurra) potremmo discutere di cose veloci e scelte minori, nonche' proporci per un eventuale aiuto o collaborazione se qualcuno ha bisogno.
Sul forum potremmo lasciare un thread per discutere di eventuali scelte importanti e tenere aggionrati tutti su come va il lavoro. Insomma, per tenerci e coordinare le fasi del lavoro.
Altro non mi sembra il caso (e non mi viene in mente)
Ciauz _________________ Libera scienza in libero stato.
Horizon of Events |
|
Back to top |
|
|
daniele_dll Tux's lil' helper
Joined: 12 Dec 2003 Posts: 143 Location: Sicily
|
Posted: Sat Jan 03, 2004 12:04 pm Post subject: |
|
|
mmm
anch'io sono per IRC, e in aggiunta, chi ha gaim o altri IM, può postare i suoi nick\uin vari in modo da permettere anche una comunicazione istantanea
Anche perché magari mentre sei impegnato non guardi la finestra della chat, è più facile che rispondi a chi ti chiama tramite un IM
per il resto, continuo a pensare che la soluzione più efficente è appunto quella di farci un template engine, semplice, ma veloce. Poi magari quando siamo più addentro, vi propongo per intero la mia idea del template engine, perché vi assicuro che si possono fare cose VERAMENTE potenti (come ad es fare l'overload GET delle variabili di una classe, e se ci sta un prefisso ben preciso al nome della variabile allora vuol dire che deve essere caricato il blocco o l'addon che corrisponde al nome della variabile (prefisso escluso)) ovviamente questo si può fare solamente cosi, perché se si devono utilizzare dei rigiri si rallenta tutto, mentre utilizzando eval, questa è una cosa implicita _________________ CMSoft 0.0.6NEW!!! - PHPSoft.it Forum |
|
Back to top |
|
|
emix Veteran
Joined: 30 Nov 2003 Posts: 1014
|
Posted: Sat Jan 03, 2004 12:34 pm Post subject: |
|
|
daniele_dll wrote: | Poi magari quando siamo più addentro, vi propongo per intero la mia idea del template engine, perché vi assicuro che si possono fare cose VERAMENTE potenti ... |
Perchè invece non ce lo spieghi ora? |
|
Back to top |
|
|
daniele_dll Tux's lil' helper
Joined: 12 Dec 2003 Posts: 143 Location: Sicily
|
Posted: Sat Jan 03, 2004 1:23 pm Post subject: |
|
|
emi wrote: | daniele_dll wrote: | Poi magari quando siamo più addentro, vi propongo per intero la mia idea del template engine, perché vi assicuro che si possono fare cose VERAMENTE potenti ... |
Perchè invece non ce lo spieghi ora? |
ok
allora
io nel mio CMS ho utilizzato questo sistema:
se andate su cmsoft.phpsoft.it ci sono varie sezioni appunto generate tramite l'overload del metodo di lettura delle variabili
ad es il numero di utenti online, il tempo di esecuzione, la memoria occupata, il numero di quey, il blocco del login e la data se non erro pure.
ad esempio il blocco del login è generato con:
Code: |
</form>
</div>
</div>
<br />
--> {$GLOBALS['_BLOCKS']->block_userpanel} <--
</td>
</tr>
</table>
<!-- END CONTENUTO -->
|
il codice dell'overload della classe $_BLOCKS non fa altro che controllare se block_ c'è ed è all'inizio (ho usato un'explode, ma si poteva tranquillamente passare ad usare un strpos)
Se c'è si può esplodere la stringa tramite il _, eliminare la prima parte (che in questo caso sarebbe block) reimplodere tutto per evitare che se ci sono altri _ si perde il nome, e dopo di che alla classe che mi gestisce i blocchi faccio prima caricare ed inizializzare il blocco e poi lo avvio. Il contenuto che mi ritornà è il codice html del blocco. Dopo che estraggo i dati dal metodo start li imposto dentro la variabile! E poi al resto ci pensa php.
Questo però da vantaggi importanti, ad esempio, la classe che mi gestisce i blocchi prevede che se viene restituito FALSE dal blocco stesso, non ritorna nulla (il metodo start esegue il blocco, e poi inserisce dentro un template il nome ed il contenuto e restituisce quello in modo che l'overload deve solo impostarlo)
Quindi se ad esempio il blocco userpanel non deve visualizzarsi nella pagina del login basta controllare quale pagina è stata caricata e restituire un semplice false
Questo non sarebbe stato cosi lineare farlo perché si sarebberò dovute usare delle espressioni regolari per prima cercare la stringa che eseguiva la richiesta, parsare tutte le varie richieste dei blocchi e degli addons e dopo averle eseguite sostituirle...quindi mettiamo ad es che c'erano 6 elementi tra blocchi ed addons, sarebberò state eseguite 6 str_replace e 1 preg_match_all che sicuramente sono più lenti dell'eval Oltre al fatto che appunto con l'eval posso impostare delle variabili dentro l'array GLOBAL e quindi poterle reusare in tutta l'esecuzione della pagina php! _________________ CMSoft 0.0.6NEW!!! - PHPSoft.it Forum |
|
Back to top |
|
|
akiross Veteran
Joined: 02 Mar 2003 Posts: 1170 Location: Mostly on google.
|
Posted: Sat Jan 03, 2004 1:36 pm Post subject: |
|
|
Scusate la mia ignoranza, ma cos'e' un CMS?
E poi mi spiegate perche' si deve fare
Code: | {$GLOBALS['_BLOCKS']->block_userpanel} |
e non un
Code: | <?php chiama_funzione_che_fa_qualcosa(); ?> |
ho capito come funziona il metodo di daniele_dll, ma quella pagina da chi viene processata? scusate ma e' la prima volta che vedo qualcosa del genere.
E perche' e' meglio tutto cio' che una chiamata diretta di una funzione php? Non e' piu' veloce chiamare delle funzioni piuttosto che processare quella stringa e poi fa quel che deve?
Mi spiace ma non so proprio nulla su questi metodi, altrimenti saprei dare un parere, credo...
Grazie per la pazienza
ciauz _________________ Libera scienza in libero stato.
Horizon of Events |
|
Back to top |
|
|
daniele_dll Tux's lil' helper
Joined: 12 Dec 2003 Posts: 143 Location: Sicily
|
Posted: Sat Jan 03, 2004 1:47 pm Post subject: |
|
|
no...
non posso mettere <?php....?>
xche faccio
eval('$content = "' . $_TEMPLATES->gettpl('templates/main.tpl.php') . '";');
a me mi serve prendere il contenuto e metterlo in una variabile
ma nello stesso tempo mi serve poter appunto far trasformare al php le variabili stesse con il loro contenuto ^^
un CMS è un Content Managment System...una cosa tipo http://cmsoft.phpsoft.it o http://www.myphp.it o per farla sporca (anche se è troppo scadente e tocca nel vero senso del termina il fondo) www.phpnuke.it
Si, fare una semplice chiama ad una funzione è più veloce...ma la funzione deve stare in un file e deve fare qualcosa
dovrebbe, come minimo, ritornarmi il testo.
quindi a me bastarebbe un (ad esempio include("templates/main.php"); ) ma questo vorrebbe dire che deve prendere il file, interpretarlo, aggiungere il file alla sua lista e poi posso eseguire le funzioni, solo che questo non server, perché un template, per definizione, deve SOLO rappresentare l'html, il contenuto. Quello che fa questo sistema è proprio questo, sostituisce il le variabili con il loro contenuto e ti ritorna il template, però permette una certa usabilità e anche una certa velocità
PS: quello li è il contenuto di una pagina html, non di codice php il codice php per definizione è codice, non deve contenere l'html, altrimenti gli script vengono molto incasinati ^^
PS2: per maggiori informazioni qui -> http://freephp.html.it/articoli/view_articolo.asp?id=67 _________________ CMSoft 0.0.6NEW!!! - PHPSoft.it Forum |
|
Back to top |
|
|
GNU/Duncan Tux's lil' helper
Joined: 16 Sep 2003 Posts: 87 Location: Italy, Florence
|
Posted: Sat Jan 03, 2004 1:53 pm Post subject: |
|
|
Beh visto che la maggioranza è per PHP e mysql... usiamo quelli |
|
Back to top |
|
|
emix Veteran
Joined: 30 Nov 2003 Posts: 1014
|
Posted: Sat Jan 03, 2004 1:55 pm Post subject: |
|
|
daniele_dll wrote: | io nel mio CMS ho utilizzato questo sistema: |
Un pò incasinato da capire (soprattutto senza vedere la classe) ma sembra abbastanza interessante. |
|
Back to top |
|
|
daniele_dll Tux's lil' helper
Joined: 12 Dec 2003 Posts: 143 Location: Sicily
|
Posted: Sat Jan 03, 2004 2:01 pm Post subject: |
|
|
emi wrote: | daniele_dll wrote: | io nel mio CMS ho utilizzato questo sistema: |
Un pò incasinato da capire (soprattutto senza vedere la classe) ma sembra abbastanza interessante. |
http://dev.cmsoft.phpsoft.it
si può scaricare da li
le classi stanno dentro
src/system/cls
e la configurazione
src/system/inc/config.include.php
come ho detto su, ho già un sacco di codice pronto sotto lgpl...quindi se vi sembra buono e si adatta alle vostre esigenze si può tranquillamente reusare _________________ CMSoft 0.0.6NEW!!! - PHPSoft.it Forum |
|
Back to top |
|
|
akiross Veteran
Joined: 02 Mar 2003 Posts: 1170 Location: Mostly on google.
|
Posted: Sat Jan 03, 2004 2:09 pm Post subject: |
|
|
ho letto l'articolo che mi hai passato, sembra interessante...
umm umm non ho mai pensato ad analizzare questo aspetto dello sviluppo...
umm umm lo terro' in considerazione.
Bene, ora che ho capito all'incirca di cio' che si parla, avete la mia approvazione
ciauz _________________ Libera scienza in libero stato.
Horizon of Events |
|
Back to top |
|
|
daniele_dll Tux's lil' helper
Joined: 12 Dec 2003 Posts: 143 Location: Sicily
|
Posted: Sat Jan 03, 2004 3:04 pm Post subject: |
|
|
akiross wrote: | ho letto l'articolo che mi hai passato, sembra interessante...
umm umm non ho mai pensato ad analizzare questo aspetto dello sviluppo...
umm umm lo terro' in considerazione.
Bene, ora che ho capito all'incirca di cio' che si parla, avete la mia approvazione
ciauz |
anche in prevision di PHP5 direi di scrivere il tutto utilizzando gli oggetti perché il codice viene veramente più comprensibile (e non ditemi che sono lenti, dipende da chi li usa e da come programma il programmatore ) _________________ CMSoft 0.0.6NEW!!! - PHPSoft.it Forum |
|
Back to top |
|
|
emix Veteran
Joined: 30 Nov 2003 Posts: 1014
|
Posted: Sat Jan 03, 2004 8:27 pm Post subject: |
|
|
daniele_dll wrote: | anche in prevision di PHP5 direi di scrivere il tutto utilizzando gli oggetti perché il codice viene veramente più comprensibile (e non ditemi che sono lenti, dipende da chi li usa e da come programma il programmatore ) |
Sono completamente d'accordo. |
|
Back to top |
|
|
Ginko Guru
Joined: 01 May 2002 Posts: 371 Location: nearby my linux laptop
|
Posted: Sat Jan 03, 2004 11:07 pm Post subject: |
|
|
daniele_dll wrote: | Ginko wrote: | daniele_dll wrote: | ehm...
xche usare smarty?
|
Per separare il codice dalla presentazione. Con smarty la separazione e' totale (se lo si vuole).
Un eval di PHP credo che implicitamente richieda che il template sia scritto in PHP, sbaglio?
--Gianluca |
sbagli ^^
|
Non voglio farne una guerra di religione pero' credo che non sbaglio affatto. Mettere variabili PHP all'interno di un file HTML e poi farne un
eval non significare separare il codice dal layout IMHO.
Ad ogni modo per me una cosa vale l'altra.
--Gianluca |
|
Back to top |
|
|
fedeliallalinea Administrator
Joined: 08 Mar 2003 Posts: 31445 Location: here
|
Posted: Sun Jan 04, 2004 10:23 am Post subject: |
|
|
Ginko wrote: | Non voglio farne una guerra di religione pero' credo che non sbaglio affatto. Mettere variabili PHP all'interno di un file HTML e poi farne un
eval non significare separare il codice dal layout IMHO.
Ad ogni modo per me una cosa vale l'altra. |
Trovo anche io molto piu' pulito il sistema di Ginko, meglio separare il ayout da resto se si vuole lavorare in gruppo. _________________ Questions are guaranteed in life; Answers aren't. |
|
Back to top |
|
|
daniele_dll Tux's lil' helper
Joined: 12 Dec 2003 Posts: 143 Location: Sicily
|
Posted: Sun Jan 04, 2004 11:55 am Post subject: |
|
|
mmm
la cosa mi sembra al quanto assurda per 1 semplice motivo
con qualsiasi template engine qualcosa per "sostituire" le variabili al loro contenuto la devi mettere, e quel qualcosa deve avere un nome che potrebbe cambiare, dipende dal codice, di conseguenza è la stessa cosa al fatto di mettere le variabili e usando eval, ma con il vantaggio che puoi accedere alle variabili globali e quindi fare dei giochetti come quello dell'overload. _________________ CMSoft 0.0.6NEW!!! - PHPSoft.it Forum |
|
Back to top |
|
|
|