[PHP] head dinamico, parliamone!

  • Creatore Discussione Creatore Discussione eleumas
  • Data di inizio Data di inizio

eleumas

Utente Attivo
16 Ago 2015
67
2
8
Ciao a tutti, stavo cercando il modo di creare un head dinamico.
In pratica avevo la necessità che ogni pagina avesse un head diverso, perchè magari cambia la meta description con il title e i link css per esempio.

Ho pensato così di fare un array e mettere all'interno di una variabile la porzione di html che mi occorre.

Premesso che sicuramente esiste un modo migliore per fare questa operazione, mi stavo domandando se il mio metodo era corretto. Insomma...all'interno della variabile c'è un intero diverso codice...questo può causare problemi?

Ringrazio anticipatamente chiunque vorrà dire la sua e suggerire metodi alternativi.
 
dove posso uso files (vedi css e js), dove non posso variabili (vedi titolo)
PHP:
<title><?php print $Title; ?></title>

<script type="text/javascript"> <?php require_once '../js/'.$js_script; ?> </script>
<script type="text/javascript"> <?php require_once '../js/'.$SPWcolor; ?> </script>
 
Perdonami ma ho bisogno di un chiarimento. Per i js per esempio metti tutti i link sotto una variabile? Come fai?

Grazie.
 
PHP:
in questo esempio, dal main,

richiamo la funzione da eseguire
    require_once "func_".$func_list[$SPWchoice].".php";

la eseguo
    call_user_func($func_list[$SPWchoice]);

riprendo il js necessario
    $js_script = $js_list[$SPWchoice];

richiamo lo script necessario che completa l''operazione
    if ($js_list[$SPWchoice] == 'T')    require_once "../forms/table.php";
    else                require_once "../forms/graph.php";
in table.php e graph.php ci sono le variabili
con 2 forms, visualizzo tabelle e grafici di contenuti e formati diversi
sufficiente ?

ps, il metodo è proprietà intellettuale di @criric (post di un'era passata), sviluppato per mio uso

ps, ps, una pagina può essere inclusa (require...) non necessariamente deve esserci reindirizzamento
 
Ultima modifica:
Grazie mille per la spiegazione anche se in tutta onestà non ho capito proprio tutto. Soprattutto pensavo che con il require once inserissi i link dei js mentre mi sa che fai tutt'altro
 
i link ai js sono in una tabella ( $js_list[$SPWchoice] ) ma anche a funzioni che preparano i dati da visualizzare ( $func_list[$SPWchoice] )
con require vengono "importate" le pagine di codice necessarie, senza reindirizzamento
quindi senza necessità di passare valori tra script, semplificando la gestione

con parole più semplici, il "main" carica le parti di codice che gli sono necessarie, formando un insieme funzionale finito

ps nel titolo hai parlato di head dinamico, io aggiungo anche script php dinamici che si assemblano in base alle richieste dell'utente
 
Ultima modifica:
Aaaaah ok! In pratica importi lo script finito non il link dello script. Ho capito bene?
 
nel php importo le parti necessarie (script),
nell'head passo i nomi per caricare i js, css, favicon (link) necessari, i "meta" ed il titolo (variabili)
 
Io se ho più pagine e per ognuna voglio mettere una title e una desciption diversa creo un array. È giusto secondo te? Cosa ne pensi del mio metodo illustrato anche a inizio conversazione?
 
ho più pagine e per ognuna voglio mettere una title e una desciption diversa creo un array
si è quello che ho fatto io, aggiungendo anche i link a js e css
di una variabile la porzione di html che mi occorre
se porzione di html intendi il codice js e/o css e/o altro codice
non sono d'accordo, meglio gestire i soli link in modo da avere il codice in file specifici a cui accedere facilmente
 
Ok, ma in questo modo quando devi modificare per esempio un meta tag lo devi fare tante volte per quante pagine hai...o sbaglio qualcosa io nella logica? Esiste un modo per farlo una sola volta per tutte le pagine?

Per essere più chiaro ti riporto un breve esempio di come ho fatto io:

PHP:
$pagine => array(
  
$home => array(
   $head => 'meta tag qui'
    $footer => 'link qui'
)

$azienda => array(
   $head => 'meta tag qui'
    $footer => 'link qui'
)

$servizi => array(
   $head => 'meta tag qui'
    $footer => 'link qui'
)

)
 
quando devi modificare per esempio un meta tag lo devi fare tante volte per quante pagine hai
no,
nei miei progetti cerco di avere un'unica pagina, al massimo un paio, che sono dei "frame" dove inserire tutte le componenti in modo parametrico,
i parametri sono raggruppati in script php che vengono inclusi, in modo da modificare il meno possibile e "riusare" quanto più possibile
in questo modo viene ridotto il tempo di sviluppo, seppur la definizione del "frame" richiede un'analisi approfondita

nel tuo esempio, sei "ancorato" alla pagina, mi sembra di capire

il mio punto di vista sono i contenuti
PHP:
$meta => array(
   $home    => 'meta tag qui'
   $azienda => 'meta tag qui'
   $servizi => 'meta tag qui'
)
$css => array(
   $home    => 'link qui'
   $azienda => 'link quii'
   $servizi => 'link qui'
)
$js => array(
   $home    => 'link qui'
   $azienda => 'link quii'
   $servizi => 'link qui'
)
$bodyframe1 => array(
   $home    => 'codice qui'
   $azienda => 'codice qui'
   $servizi => 'codice qui'
)
$bodyframe2 => array(
   $home    => 'codice qui'
   $azienda => 'codice qui'
   $servizi => 'codice qui'
)
....
$footer => array(
   $home    => 'link qui'
   $azienda => 'link qui'
   $servizi => 'link qui'
)
in questo modo, passando una variabile $pagina='azienda' viene composta la pagina
(pensa al tempo risparmiato se devi aggiungere una pagina)

ps, 'codice qui' può essere il link ad uno script che contiene html o php o .... da includere

spero di aver capito .....
 
Ultima modifica:
E' molto interessante anche "la tua visione". Assolutamente da valutare! Proprio riguardo alla dicitura "codice qui" come posso linkare del codice html li dentro? Non vorrei mettere codice html esteso ma una sorta di include. E' fattibile?
 
E' fattibile?
Si,
PHP:
<div id="content">
    <div id="content-1">
        <?php print $Form1; ?>
    </div>
    <div id="content-2">
        <?php print $Form2; ?>
    </div>
    <div id="content-3">
        <?php print $Form3; ?>
    </div>
    <div id="content-4">
        <?php print $Form4; ?>
    </div>

in ogni caso usando "include" o simili, nelle forme,

$formX="
<html code>
";

oppure

uno script php che genera il codice html

insomma cose alla fine banali .... ma ben organizzate
 

Discussioni simili