Visualizzazione risultati 1 fino 3 di 3

Discussione: meta tag TITLE dinamico in pagina di secondo livello

  1. #1
    Guest

    Predefinito meta tag TITLE dinamico in pagina di secondo livello

    Salve a tutti. Vorrei sottoporre alla Vostra attenzione questo problema:

    Vorrei rendere dinamico il meta tag TITLE per visualizzare contenuti diversi a seconda delle pagine caricate. A tale scopo ho creato un file config.php richiamato sopra l'header del template, dove ho inserito due switch

    Codice PHP:
    <?php
    // CONFIG.PHP

    $pagina = isset($_GET["pagina"]) ? $pagina=$_GET["pagina"] : $pagina="home";

    // PRIMO SWITCH
    switch ($pagina) {

    case (
    $pagina == "home"):
    $title = "sagre paesane";
    break;

    case (
    $pagina == "notizie-delle-sagre-2015"):
    $title = "notizie delle sagre 2015";
    break;

    }



    $subpagina = isset($_GET["sezione"]) ? $sezione=$_GET["sezione"] : $sezione="notizie-brevi-sagre";

    // SECONDO SWITCH
    switch ($subpagina) {

    case (
    $pagina == "notizie-delle-sagre-2015" && $subpagina == "sagra-delle-cozze"):
    $title = "sagra delle cozze";
    break;

    case (
    $pagina == "notizie-delle-sagre-2015" && $subpagina == "sagra-del-pomodoro"):
    $title = "sagra del pomodoro";
    break;

    }
    ?>
    <!DOCTYPE html>
    <html lang="it">
    <head>
    <title><?php echo $title; ?></title>
    </head>
    <body>
    .....
    CONTENUTO DELLA PAGINA
    .....
    </body>
    </html>
    notizie-delle-sagre-2015.php contiene

    Codice PHP:
    <?php
    include("notizie-delle-sagre-2015/$sezione.php");
    ?>
    Le URL del sito sono state riscritte con mod_rewrite in htaccess.

    Il codice del primo switch funziona benissimo, visualizzando i titoli dinamici, per l'URL /sagre/notizie-delle-sagre-2015/

    Il codice del secondo switch che deve gestire l'URL /sagre/notizie-delle-sagre-2015/sagra-delle-cozze/ non funziona in quanto, nelle pagine richiamate, non viene riconosciuta più la variabile $title e di conseguenza viene visualizzato questo errore:

    <title><br />
    <b>Notice</b>: Undefined variable: title in <b>c:\programmi\easyphp1-8\www\notizie\include\template\header.php</b>
    on line <b>4</b><br />
    </title>

    Se qualcuno mi potesse spiegare dove sbaglio, ne sarei molto grato.

  2. #2
    L'avatar di javascripter
    javascripter non è connesso Moderatore
    Data registrazione
    14-02-2010
    Messaggi
    1,114

    Predefinito

    Definisci $title prima dello switch o nel default case dello switch.
    Comunque non è quello il modo di fare uno switch. Nei vari case bisogna specificare un valore. Una condizione, dopo essere valutata, si traduce sempre in un booleano true/false e non è quello che serve a te ( confrontare stringa con un booleano ).

    Anche la condizione inline (operatore ternario) nella prima riga è usato impropriamente.

    Codice PHP:
    $pagina = isset($_GET["pagina"]) ? $_GET["pagina"] : "home";

    // PRIMO SWITCH
    switch ($pagina) {

    case
    "home":
    $title = "sagre paesane";
    break;

    case
    "notizie-delle-sagre-2015":
    $title = "notizie delle sagre 2015";
    break;

    default:
    $title = "Titolo default";
    }
    Ti invito a correggere la parte successiva, mantenendo questa sintassi.
    Ultima modifica di javascripter : 15-06-2015 alle ore 10.52.19

  3. #3
    Guest

    Predefinito

    Grazie javascripter per la risposta. Ho provato a fare in questo modo

    Codice PHP:
    <?php
    $pagina
    = isset($_GET["pagina"]) ? $_GET["pagina"] : "home";
    $subpagina = isset($_GET["sezione"]) ? $_GET["sezione"] : $sezione="notizie-brevi-sagre";

    // PRIMO SWITCH
    switch ($pagina) {

    case
    "home":
    $title = "sagre paesane";
    break;

    case
    "notizie-delle-sagre-2015":
    $title = "notizie delle sagre 2015";
    break;

    case
    "notizie-delle-sagre-2014":
    $title = "notizie delle sagre 2014";
    break;

    default:
    $title = "sagre paesane";

    }
    // fine switch


    // SECONDO SWITCH
    switch ($subpagina) {

    case
    "notizie-delle-sagre-2015/sagra-delle-cozze":
    $title = "notizie della sagra delle cozze 2015";
    break;

    case
    "notizie-delle-sagre-2015/sagra-delle-fragole":
    $title = "notizie della sagra delle fragole 2015";
    break;


    case
    "notizie-delle-sagre-2014/sagra-delle-cozze":
    $title = "notizie della sagra delle cozze 2014";
    break;

    case
    "notizie-delle-sagre-2014/sagra-delle-fragole":
    $title = "notizie della sagra delle fragole 2014";
    break;

    default:
    $title = "notizie brevi delle sagre paesane";

    }
    // fine switch
    ?>
    ma mi visualizza su tutte le pagine il titolo di default del secondo switch.
    Inoltre $subpagina = isset($_GET["sezione"]) ? $_GET["sezione"] : "notizie-brevi-sagre"; non richiama la pagina di default. Pertanto ho scritto così:
    $subpagina = isset($_GET["sezione"]) ? $_GET["sezione"] : $sezione="notizie-brevi-sagre";

Tags for this Thread

Regole di scrittura

  • Non puoi creare nuove discussioni
  • Non puoi rispondere ai messaggi
  • Non puoi inserire allegati.
  • Non puoi modificare i tuoi messaggi
  •