Menu in html ed effetto con php

Forum dedicato alla programmazione.

Moderatore: Staff

Regole del forum
1) Citare in modo preciso il linguaggio di programmazione usato.
2) Se possibile portare un esempio del risultato atteso.
3) Leggere attentamente le risposte ricevute.
4) Scrivere i messaggi con il colore di default, evitare altri colori.
5) Scrivere in Italiano o in Inglese, se possibile grammaticalmente corretto, evitate stili di scrittura poco chiari, quindi nessuna abbreviazione tipo telegramma o scrittura stile SMS o CHAT.
6) Appena registrati è consigliato presentarsi nel forum dedicato.

La non osservanza delle regole porta a provvedimenti di vari tipo da parte dello staff, in particolare la non osservanza della regola 5 porta alla cancellazione del post e alla segnalazione dell'utente. In caso di recidività l'utente rischia il ban temporaneo.
samiel
Staff
Staff
Messaggi: 5511
Iscritto il: ven 16 gen 2004, 0:00
Nome Cognome: Mauro Sacchetto
Slackware: 13.0
Kernel: 2.26
Desktop: KDE
Distribuzione: anche Debian
Località: Venezia

Re: Menu in html ed effetto con php

Messaggio da samiel »

Ragà, mi state facendo venire i capogiri... Ho preso due o tre tomi su PHP,
e sto appena appena leggendo le cose di base (variabili, funzioni, array).
Sono però trattazione abbastanza teoriche se uno vuole essere operativo
almeno in 2 o 3 cose in tempi limitati. Però l'idea del wiki è molto buona.
A patto però che sia, almeno in parte, per dummies. Il difetto di molti esperti
è che danno troppe cose per scontate, che spesso usano un linguaggio iniziatico
per cui l'inesperto è e resta "in braghe di tela". In ogni caso, mi accorgo
che l'idea di Loris di aggiungere questa sezione è stata davvero ottima.

Veniamo al dunque. Ho provato a fare un array, che naturalmente
non funziona. Ormai rinvio a domani esperimenti sulle soluzioni
che mi avete proposto. Il codice è questo:

Codice: Seleziona tutto

<?php
// riporto il codice della funzione headers()
function headers () {
    echo
<<<EOD
<div id="header">
<h1>TEATRO IN F<span class="emph">O</span>LLE</h1>
<div id="navbar_wrapper">
<div id="navbar">
<ul>
<li><a href="index.php">Home</a></li>
<li><a href="./comenato.php">Com'&#232; nato</a></li>
<li><a href="./chisiamo.php">Chi siamo</a></li>
<li><a href="./copioni.php">Copioni</a></li>
<li><a href="./immagini.php">Immagini</a></li>
<li><a href="./spettacoli.php">Spettacoli</a></li>
<li><a href="./contattaci.php">Contattaci</a></li>
</ul>
</div>
</div>
</div>
EOD;
};

// definisco un array con le combinazioni
// link//etichetta che comporranno il menù
$array_link = array(
"index.php" => "Home Page",
"chisiamo.php" => "Chi Siamo",
"comenato.php" => "Come &egrave; Nato",
"copioni.php" => "Copioni",
"immagini.php" => "Immagini",
"spettacoli.php" => "Spettacoli",
"contattaci.php" => "Contattaci",
);

// vado a recuperare l'indirizzo dello script ed
// estraggo solo la parte che mi interessa.
$pagina_corrente = basename($_SERVER['PHP_SELF']);

// scorro l'array e ne estrapolo
// le coppie di valori

foreach($array_link as $link => $label) {

if ($link == $pagina_corrente) {
     $selettore_css = " id=\"currentpage\" ";
} else {
     $selettore_css = "";
}

$menu .= "
<li><a href=\"$link\" $selettore_css title=\"Vai alla pagina
$label\">$label</a></li>
";
}
?>
Indipendentemente dal fatto che possa non essere la soluzione migliore,
vorrei capire dove sto sbagliando. Altrimenti, preso dalla fretta di sistemare
delle pagine, finisco per copiare codice che non capisco...

M.

samiel
Staff
Staff
Messaggi: 5511
Iscritto il: ven 16 gen 2004, 0:00
Nome Cognome: Mauro Sacchetto
Slackware: 13.0
Kernel: 2.26
Desktop: KDE
Distribuzione: anche Debian
Località: Venezia

Re: Menu in html ed effetto con php

Messaggio da samiel »

Correzione del codice:

Codice: Seleziona tutto

<?php
function headers () {
?>

<div id="header">
<h1>TEATRO IN F<span class="emph">O</span>LLE</h1>
<div id="navbar_wrapper">
<div id="navbar">
<ul>
<?php

$array_link = array(
"index.php" => "Home Page",
"chisiamo.php" => "Chi Siamo",
"comenato.php" => "Come è Nato",
"copioni.php" => "Copioni",
"immagini.php" => "Immagini",
"spettacoli.php" => "Spettacoli",
"contattaci.php" => "Contattaci",
);

/*
la variabile $pagina_corrente viene passata
dallo script sotto forma di variabile globale
per cui non serve più ricavarla
*/

foreach($array_link as $link => $label) {

if ($link == $pagina_corrente) {
     $selettore_css = " id=\"currentpage\" ";
} else {
     $selettore_css = "";
}

$menu .= "
<li><a href=\"$link\" $selettore_css title=\"Vai alla pagina
$label\">$label</a></li>
";
}

echo $menu;

?>
</ul>
</div>
</div>
</div>
<?php
};
?>
e in index.php:

Codice: Seleziona tutto

<head>
<title>Teatro in folle</title>
<meta name="GENERATOR" content="Quanta Plus" />
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<meta name="description" content="teatro in folle" />
<meta name="keywords" content="teatro, attori, attori di strada, venezia,
mestre" />
<link rel="stylesheet" type="text/css" href="layout.css" />



<?php
// importi la funzione headers()
include('functions.php');

// definisci quale sia la pagina corrente
$pagina_corrente = basename($_SERVER['PHP_SELF']);
// in questo caso il risultato è ==> $pagina_corrente == index.php;

// rendi la variabile globale per metterla
// disponibile anche all'interno di una funzione
global $pagina_corrente;
?>


<body>
<div id="container">

<?php
headers ();
?>
Ma l'effetto activelink non appare lo stesso. Che depressione!
Ieri ho fatto le 3 di notte e mi sa che oggi faccio il bis,
ma non riesco a uscirne...

M.

Avatar utente
aschenaz
Staff
Staff
Messaggi: 4623
Iscritto il: mer 28 lug 2004, 0:00
Nome Cognome: Nino
Slackware: current
Kernel: 5.4.x
Desktop: KDE
Località: Reggio Calabria
Contatta:

Re: Menu in html ed effetto con php

Messaggio da aschenaz »

conraid ha scritto:Mancano tutti i criteri di accessibilità è vero, ma non mi sembra che dipenda dal metodo usato per arrivare all'html. Poi uno ci aggiunge title, accesskey, etc...
nuitari ha scritto:-_-''' non stavo postando un esempio di html valido & accessibile, pensavo fosse palese... Se è per questo, per come è strutturata quella pagina macano tutti i tag (html, head, body) etc etc.
Era solo un esempio di utilizzo del template per mostrare la differenza fra l'avere il codice php mischiato all'html e viceversa.
Era una risposta un po' ironica sulla bontà dei template e di molti cms.

Secondo me, oggi bisogna cominciare con il rendere accessibile una pagina e poi fare tutto il resto.

Come dicevo prima, non bisognerebbe usare le liste per i menu (era questo il senso, lo so che poi tutto il resto si può aggiungere, tanto che scrivevo "prova a validare ... una pagina con quel menu").
Con il menu che ho postato sopra, ho ottenuto la conformità WAII AAA e WCAG P3 sulle mie pagine più recenti (sia con webexact che con altri tool).
Non si può inserire una sfilza di link non separati da alcun carattere.
In fondo costa poca fatica...

E' per questo motivo che preferisco fare tutto in prima persona, senza affidarmi alle pappe pronte. Il fatto di non mischiare i due codici..., beh, penso si possa ottenere anche da soli e poi, sinceramente, non mi sembra una grande priorità...

E' anche così, in fondo, che ho imparato quel poco di web building che so (vi ricordo che sono un autodidatta). Altrimenti, avrei magari imparato a configurare quello o quell'altro cms e basta...

@ samiel

Ho letto il tuo codice e IMHO è ridondante: pensa solo al fatto che scrivi le stesse cose più volte...
Ma poi, fammi capire: vuoi aprire sempre pagine diverse, senza ricorrere all'inclusione? E che te ne fai della potenza di uno scripting lato server, allora?

Ottenere l'effetto sperato con sette o otto righe (come ti suggerivo sopra) non ti va giù? Fai un po' tu...

Avatar utente
aschenaz
Staff
Staff
Messaggi: 4623
Iscritto il: mer 28 lug 2004, 0:00
Nome Cognome: Nino
Slackware: current
Kernel: 5.4.x
Desktop: KDE
Località: Reggio Calabria
Contatta:

Re: Menu in html ed effetto con php

Messaggio da aschenaz »

Ecco la versione modificata (con titoli diversi dai file e accesskey numerici).
Sistema la classe .menu e il tag a nel css così come vuoi. Dovrebbe bastare.

Codice: Seleziona tutto

isset($_REQUEST["page"]) ? $page=$_REQUEST["page"] : $page="home";
// menu
$pgs=array(
 "home"=>"Home Page",
 "chisiamo"=>"Chi Siamo",
 "comenato"=>"Come &egrave; nato",
 "copioni"=>"Copioni",
 "immagini"=>"Immagini",
 "spettacoli"=>"Spettacoli",
 "contattaci"=>"Contattaci");
$ak=1;
foreach($pgs as $kp=>$pg) {
   echo "
       <p class=\"menu\"> &nbsp;&middot; ";
   if($page!=$kp) echo "<a href=\"index.php?page=$kp\" accesskey=\"$ak\" title=\"accesskey $ak\">";
   echo $pg;
   if($page!=$kp) echo "</a>";
   echo "</p>\n";
   $ak++;
}
// al momento giusto, poi...
include_once("$page.php");
Tra l'altro, così, ottieni anche il risultato (che mi sembra logico) di non linkare la pagina attiva...

Ciao,
nino

Avatar utente
puzuma
Linux 2.x
Linux 2.x
Messaggi: 482
Iscritto il: mar 4 lug 2006, 17:14
Nome Cognome: Stefano Salvador
Slackware: current
Kernel: 2.6.32.2
Desktop: KDE 4.4.0
Località: Udine
Contatta:

Re: Menu in html ed effetto con php

Messaggio da puzuma »

samiel ha scritto:Ragà, mi state facendo venire i capogiri... Ho preso due o tre tomi su PHP,
e sto appena appena leggendo le cose di base (variabili, funzioni, array).
Sono però trattazione abbastanza teoriche se uno vuole essere operativo
almeno in 2 o 3 cose in tempi limitati. Però l'idea del wiki è molto buona.
secondo me vuoi fare troppe cose tutte assieme e ti stai incasinando tra html+css+php, prova a fare un passo indietro e costrisciti una pagina di prova in puro html e appliccaci i css, quando il risultato ti soddisfa prendi il pezzo di codice html relativo al menù e dinamicizzalo con il php, ricorda i principi base della programmazione: "kiss" e "baby steps".
The quiet ones are the ones who change the world. The loud ones only take the credit.

Avatar utente
giberg
Linux 4.x
Linux 4.x
Messaggi: 1282
Iscritto il: mer 21 set 2005, 17:28
Nome Cognome: Gianni
Slackware: current64
Kernel: 3.7.1
Desktop: 4.8.5
Località: S. Biagio di Callalta (TV)

Re: Menu in html ed effetto con php

Messaggio da giberg »

aschenaz ha scritto: Era una risposta un po' ironica sulla bontà dei template e di molti cms.
Come cms, Plone dovrebbe ottenere la validazione WAI AA.

Avatar utente
aschenaz
Staff
Staff
Messaggi: 4623
Iscritto il: mer 28 lug 2004, 0:00
Nome Cognome: Nino
Slackware: current
Kernel: 5.4.x
Desktop: KDE
Località: Reggio Calabria
Contatta:

Re: Menu in html ed effetto con php

Messaggio da aschenaz »

giberg ha scritto:
aschenaz ha scritto: Era una risposta un po' ironica sulla bontà dei template e di molti cms.
Come cms, Plone dovrebbe ottenere la validazione WAI AA.
Però Plone (che mi dicono ottimo) si appoggia all'accoppiata Zope-Python, non al php...

Avatar utente
giberg
Linux 4.x
Linux 4.x
Messaggi: 1282
Iscritto il: mer 21 set 2005, 17:28
Nome Cognome: Gianni
Slackware: current64
Kernel: 3.7.1
Desktop: 4.8.5
Località: S. Biagio di Callalta (TV)

Re: Menu in html ed effetto con php

Messaggio da giberg »

Sì sì, era per dire che ci sono dei cms che creano pagine accessibili.

Avatar utente
nuitari
Linux 3.x
Linux 3.x
Messaggi: 777
Iscritto il: dom 14 ott 2007, 12:51
Slackware: 12.0
Località: San Colombano al Lambro
Contatta:

Re: Menu in html ed effetto con php

Messaggio da nuitari »

aschenaz ha scritto: Era una risposta un po' ironica sulla bontà dei template e di molti cms.
La validazione con i template non c'entra nulla, così come i template e i cms sono due argomenti ben separati (i template esistono come concetto e come implementazione da molto prima dei cms, basti pensare a COBOL/CICS). Per cui mi chiedo nuovamente a che scopo il tuo intervento.. e non sono il solo (quoto conraid).
Secondo me, oggi bisogna cominciare con il rendere accessibile una pagina e poi fare tutto il resto.
Che vuoi che ti dica, ognuno la pensa a modo proprio. In ogni caso, il tuo commento non era pertinente, visto che mi si *taccia* di fare ironia inutile senza dare un contributo, la tua mi sembrava altrettanto una critica inutile e fuori dal contesto.
Come dicevo prima, non bisognerebbe usare le liste per i menu (era questo il senso, lo so che poi tutto il resto si può aggiungere, tanto che scrivevo "prova a validare ... una pagina con quel menu").
Con il menu che ho postato sopra, ho ottenuto la conformità WAII AAA e WCAG P3 sulle mie pagine più recenti (sia con webexact che con altri tool).
Non si può inserire una sfilza di link non separati da alcun carattere.
In fondo costa poca fatica...
Non sono un Web Designer, sono un programmatore PHP. Il codice HTML non lo scrivo io, lo scrive gente che pensa a fare quello e basta, per cui per quel che mi riguarda potrebbero essere liste, tabelle, un elenco di testi separati da <br /> o quel che vi pare, non mi interessa.
L'unica cosa, che posso dire, è che collaboro ogni giorno con gente che l'HTML lo scrive e molto bene, ed ho sentito tutt'altri pareri in merito alle liste. Le liste per i menù mi han detto essere consigliate anche dal W3C, mi han detto che sono meglio indicizzate dai motori di ricerca e mi han detto essere più leggibili nel caso in cui si visualizzi la pagina con browser differenti dai soliti (testuali ad esempio). Se anche tutto questo fosse falso, ripeto, non m'interessa, non è il mio lavoro scrivere HTML. Inoltre, tanto per esser precisi, quel codice html (come avevo scritto) l'ho copiato dagli altri post, perchè il mio obbiettivo era solo dimostrare come determinati problemi nella gestione delle pagine dipendono non dal linguaggio, ma dal metodo.
E' per questo motivo che preferisco fare tutto in prima persona, senza affidarmi alle pappe pronte. Il fatto di non mischiare i due codici..., beh, penso si possa ottenere anche da soli e poi, sinceramente, non mi sembra una grande priorità...
Non so a cosa tu ti riferisca. La pappa pronta è forse il template engine che ho postato? Perchè quello l'ho ottenuto io partendo come base da un engine trovato anni ed anni fa, per cui non è assolutamente pappa pronta, è farina del mio sacco. Se ti riferivi a CMS, ripeto, è fuori dal contesto.

In quanto al non "mischiare i due codici", ne abbiamo già parlato altrove. Personalmente, collaboro con molte aziende per lo sviluppo di applicazioni web, sia come sviluppatore che project manager, e lo faccio da anni.
Per esperienza lavorativa, ritengo che la suddivisione del codice php da quello HTML sia un obbiettivo *mission critical* e che migliori la gestione, lo sviluppo ed il mantenimento di un progetto. Poi ognuno la può pensare come vuole, ma sicuramente in un progetto gestito da me codice php/html mischiato non si vedrà MAI.
Secondo me, l'esempio proposto in questo topic dimostra in modo molto evidente come l'utilizzo del php insieme al markup costringa a scrivere codice inutilmente complesso, con acrobazie fra escape, inclusioni, continua apertura e chiusura dei tag, posizionamento del codice in base alla visualizzazione, etc etc, tutti problemi risolvibili ed affrontabili con un approccio più logico e strutturato, come nel caso dei template.
Anche solo aumentare la leggibilità del codice è un obbiettivo che ogni programmatore dovrebbe perseguire, e l'html mischiato al php è tutto fuorchè leggibile (e questo non sono mica solo io a dirlo).

Avatar utente
conraid
Staff
Staff
Messaggi: 13630
Iscritto il: gio 14 lug 2005, 0:00
Nome Cognome: Corrado Franco
Slackware: current64
Desktop: kde
Località: Livorno
Contatta:

Re: Menu in html ed effetto con php

Messaggio da conraid »

aschenaz ha scritto: Secondo me, oggi bisogna cominciare con il rendere accessibile una pagina e poi fare tutto il resto.
Allora ok
aschenaz ha scritto: Come dicevo prima, non bisognerebbe usare le liste per i menu
Prima considerazione: IMHO bisogna usare le liste per i menù.
Cosa sono i menù se non liste di pagine?
Se usi le liste non devi fare nessuno strano trucco su screen reader o browser testuali, mentre lo devi fare con i CSS, ma è poca cosa
Se non fidi di me guarda questo codice

Codice: Seleziona tutto

  <ol id="nav1" type="A">
    <li><a href="gettingstarted/Overview.html">Introducing Accessibility</a></li>
    <li><a href="guid-tech.html">Guidelines & Techniques</a></li>
    <li><a href="managing.html">Managing Accessibility</a></li>
    <li><a href="eval/Overview.html">Evaluating Accessibility</a></li>
    <li><a href="groups.html">WAI Groups</a></li>
    <li><a href="about-links.html">About WAI</a></li>
  </ol>
Direttemente dal sito WAI

Oppure controlla con WebXACT questo sito http://www.graphobyte.com e guarda dopo come sono fatte i menù. Non da errori, eppure non ho messo bollini perché secondo me non è accessibile come dovrebbe.
Se il menù è una lista di pagina, ripeto la domanda, perché non usare le liste?
Altrimenti, cosa sono i menù se non liste di pagine?
aschenaz ha scritto: Non si può inserire una sfilza di link non separati da alcun carattere.
In fondo costa poca fatica...
Le liste sono già separate di suo, ecco perché usarle.
Ed un appunto. Quei siti danno gli errori, ma l'accessibilità si misura sul campo.
Se vuoi un consiglio spassionato, prendili con le pinze e non come termini di paragone.
Il sito che ti ho linkato sopra è accessibile, ma con gli screen reader a volte da problemi.
Addirittura c'è chi dice che a volte bisogna "fare errore" per rendere un sito veramente accessibile, in quanto sul campo gli screen reader non si comportano sempre come lo standard vorrebbe. Standard che spesso è fatto su misura del codice e non dell'utente finale.
Guarda la Legge Stanca e la teoria del colori per esempio, che si rifà ad algoritmi usati anche dal WAI. Un tono di grigio su bianco non va bene, un fucsia su celeste acceso si. Ora dimmi se un utente con problemi alla vista vede quella pagina?

Se poi vogliono aprire tutta una discussione sull'accessibilità ben venga, purtroppo io oltre che sviluppatore di soluzione sono anche un utente di tali soluzioni :-(

Avatar utente
aschenaz
Staff
Staff
Messaggi: 4623
Iscritto il: mer 28 lug 2004, 0:00
Nome Cognome: Nino
Slackware: current
Kernel: 5.4.x
Desktop: KDE
Località: Reggio Calabria
Contatta:

Re: Menu in html ed effetto con php

Messaggio da aschenaz »

@ nuitari:

Mi ritiro in buon ordine di fronte alla tua indubbia competenza, con cui hai fatto così bene affiorare (nel caso ci fosse bisogno) la mia lacunosa inesperienza (che, tra l'altro, non ho mai nascosto). Non era mia intenzione competere con te, che, a quanto posso capire, sei un professionista che viene da studi specifici, mentre io sono un impiegato, con studi umanistici, che si diletta di web-building e programmazione spicciola a tempo perso.

Quello che intendevo dire è che, se lo scopo è quello di fare del web-building senza eccessive velleità, senza dover ricorrere per forza alla suddivisione dei ruoli (html vs. scripting), ma ottenendo lo stesso degli ottimi risultati in termini di efficacia e usabilità e, soprattutto, conseguendo la validazione sia dal punto di vista della codifica che in termini di accessibilità, quello di dover separare le codifiche mi sembra un'inutile virtuosismo. Certo, è diverso il caso di progetti monumentali in cui il lavoro organizzato in forma di team è praticamente obbligatorio...

Permettimi, però, un appunto. Quando dici...
Secondo me, l'esempio proposto in questo topic dimostra in modo molto evidente come l'utilizzo del php insieme al markup costringa a scrivere codice inutilmente complesso
...ti sembra che il codice che ho proposto io sia più complesso o meno leggibile degli altri presenti in questo topic?

@ conraid:

Innanzitutto, complimenti per quel sito (è tuo, vero?).

Non so che dire, le mie prove con le liste risalgono ad anni fa e ti posso assicurare che allora i validatori segnalavano errore in presenza di menu fatti con le liste. In un'altra community avevamo proprio intavolato una lunga discussione al proposito (se la trovo, la linko). Evidentemente i validatori si sono, nel frattempo, affinati.

In ogni caso, per tornare allo scopo del topic, mi piacerebbe sapere se Samiel abbia almeno provato la mia soluzione...

Avatar utente
conraid
Staff
Staff
Messaggi: 13630
Iscritto il: gio 14 lug 2005, 0:00
Nome Cognome: Corrado Franco
Slackware: current64
Desktop: kde
Località: Livorno
Contatta:

Re: Menu in html ed effetto con php

Messaggio da conraid »

aschenaz ha scritto: Innanzitutto, complimenti per quel sito (è tuo, vero?).
Si è il mio, quello della mia vecchia attività. Dico vecchia perché ora sono fermo da un po'
Ti ringrazio per i complimenti.
aschenaz ha scritto: Non so che dire, le mie prove con le liste risalgono ad anni fa e ti posso assicurare che allora i validatori segnalavano errore in presenza di menu fatti con le liste. In un'altra community avevamo proprio intavolato una lunga discussione al proposito (se la trovo, la linko). Evidentemente i validatori si sono, nel frattempo, affinati.
Come ti ho detto non fidarti completamente dei validatori :-)
Anche io avevo dei link su questa questione che non trovo più.
Ma guarda per esempio, tanto per rimanere in italia webaccessibile.it o usabile.it, hanno menù con liste.
Diodati no, usa il classico separatore.
Alcuni mettono ogni riga dentro <p> e questo semanticamente lo trovo un errore, un link è al limite una lista, ma non un paragrafo.
E la semantica si misura "umanamente", i tool non riescono a controllarla. Per questo anche webexact dopo dice di controllarla a mano.
Questo per dire che ci sono varie forme e tutte valide, ma se molti si sforzano di usare le liste, che spesso complicano la vita nei browser normali per la mole di lavoro in più in fase di CSS ci sarà un motivo o è solo un moda?
Chiaro che la riposta può essere la seconda, ma guarda le diverse soluzioni con lynx, non è uno screen reader, ma è quello che più ci si avvicina

Il tutto detto sempre con la curiosità di capire sempre di più di questo argomento, che come avrai capito mi appassiona

Avatar utente
puzuma
Linux 2.x
Linux 2.x
Messaggi: 482
Iscritto il: mar 4 lug 2006, 17:14
Nome Cognome: Stefano Salvador
Slackware: current
Kernel: 2.6.32.2
Desktop: KDE 4.4.0
Località: Udine
Contatta:

Re: Menu in html ed effetto con php

Messaggio da puzuma »

nuitari ha scritto: Per esperienza lavorativa, ritengo che la suddivisione del codice php da quello HTML sia un obbiettivo *mission critical* e che migliori la gestione, lo sviluppo ed il mantenimento di un progetto. Poi ognuno la può pensare come vuole, ma sicuramente in un progetto gestito da me codice php/html mischiato non si vedrà MAI.
Secondo me, l'esempio proposto in questo topic dimostra in modo molto evidente come l'utilizzo del php insieme al markup costringa a scrivere codice inutilmente complesso, con acrobazie fra escape, inclusioni, continua apertura e chiusura dei tag, posizionamento del codice in base alla visualizzazione, etc etc, tutti problemi risolvibili ed affrontabili con un approccio più logico e strutturato, come nel caso dei template.
il problema secondo me non si risolve usando dei template engine, ho visto certi script in smarty che facevano paura, quando il template engine è complesso (alcuni dicono potente) ricadi nell'errore che volevi evitare (cioè html troppo mischiato con codice).

la soluzione è un'implementazione corretta del pattern MVC (model-view-controller) che non è detto si ottenga automaticamente usando un template engine (la puoi ottenere anche con php e basta, non lo dico io ma gente ben più esperta).

detto questo penso che la piega che preso questa discussione abbia fatto scappare samiel ;-)
The quiet ones are the ones who change the world. The loud ones only take the credit.

Avatar utente
aschenaz
Staff
Staff
Messaggi: 4623
Iscritto il: mer 28 lug 2004, 0:00
Nome Cognome: Nino
Slackware: current
Kernel: 5.4.x
Desktop: KDE
Località: Reggio Calabria
Contatta:

Re: Menu in html ed effetto con php

Messaggio da aschenaz »

@ conraid:

Ho chiesto ad un amico e collega che collabora con Diodati e mi ha confermato alla lettera quello che mi dici tu.

Chiedo scusa, la mia pretesa che quel codice fosse inaccessibile era del tutto sbagliata (o riferita a convinzioni superate).

Anzi, ripropongo la mia soluzione utilizzando, però, una lista:

Codice: Seleziona tutto

    isset($_REQUEST["page"]) ? $page=$_REQUEST["page"] : $page="home";
    // menu
    $pgs=array(
    "home"=>"Home Page",
    "chisiamo"=>"Chi Siamo",
    "comenato"=>"Come &egrave; nato",
    "copioni"=>"Copioni",
    "immagini"=>"Immagini",
    "spettacoli"=>"Spettacoli",
    "contattaci"=>"Contattaci");
    $ak=1;
    echo "
       <ul id="menulist">";
    foreach($pgs as $kp=>$pg) {
       echo "
           <li class=\"menu\">";
       if($page!=$kp) echo "<a href=\"index.php?page=$kp\" accesskey=\"$ak\" title=\"accesskey $ak\">";
       echo $pg;
       if($page!=$kp) echo "</a>";
       echo "</li>";
       $ak++;
    }
    echo "
     </ul>\n";
    // al momento giusto, poi...
    include_once("$page.php");
Adesso bisogna definire anche le caratteristiche dell'id #menulist nel css.

samiel
Staff
Staff
Messaggi: 5511
Iscritto il: ven 16 gen 2004, 0:00
Nome Cognome: Mauro Sacchetto
Slackware: 13.0
Kernel: 2.26
Desktop: KDE
Distribuzione: anche Debian
Località: Venezia

Re: Menu in html ed effetto con php

Messaggio da samiel »

secondo me vuoi fare troppe cose tutte assieme e ti stai incasinando tra html+css+php, prova a fare un passo indietro e costrisciti una pagina di prova in puro html e appliccaci i css, quando il risultato ti soddisfa prendi il pezzo di codice html relativo al menù e dinamicizzalo con il php, ricorda i principi base della programmazione: "kiss" e "baby steps".
Hai perfettamente ragione. In realtà, il piccolo sito in html è fatto:
dacci un'occhiata all'indirizzo http://teatroinfolle.netsons.org.
Si accettano ulteriori critiche e consigli (è solo html e css).
Siccome ci sono gli stessi menu in tutte le pagine, volevo provare
a rendere la cosa più snella con php. Ma con php sto avendo adesso
i primi (innaturali e perversi) rapporti, anche se mi piace molto.
Ho acquistato alcuni ponderosi volumi, dopo aver letto le guide
di html.it. Ma una cosa è capire a grandi linee il concetto di array,
un'altra scriverne uno per un tuo obiettivo personale ecc. Non è cosa
che si impara nel giro di poche ore e senza provare ed esercitarsi.

@ashkenaz
Non ho ancora provato. Ieri sera ho smanettato un po' con quell'array,
ma poi ho dovuto stendere un verbale e altro. Poi si è svegliata mia figlia,
e ho dovuto darmi ai biberon... comunque spero oggi di farcela e ti so dire
Grazie

M.

Rispondi