Pagina 1 di 3 1 2 3 ultimoultimo
Visualizzazione dei risultati da 1 a 10 su 25

Discussione: Titolo dinamico: come?

  1. #1

    Titolo dinamico: come?

    Ciao.

    In una pagina dinamica in Php come posso fare affinchè il titolo della stessa muti in relazione alla nuova pagina che vado a visitare?
    Mi spiego meglio: se dalla pagina www.miosito.com con titolo "Mio Sito" (cliccando ad esmpio su un link chiamato "Computer") vado alla pagina www.miosito.com/computer.php, come posso fare affinche la nuova pagina abbia per titolo "Mio sito > Computer" ?

    Ho visto in gitro che bisogna impostare il title nella seguente maniera:

    <title>Mio Sito &gt; <?=$addTitle?></title>

    e poi...come integrare il resto della funzione?

    La mia idea è quello di integrare la funzione con l'url, ma come?

    Grazie

  2. #2
    Utente di HTML.it
    Registrato dal
    Feb 2005
    Messaggi
    267
    per uqanto riguara il codice non so,ma credo che puoi semplicemete fare l'echo del titolo

    echo "<title> $titolo </title>"

    mentre per fare passare il titolo da pagina a pagina
    secondo me basta che una volta che vai alla pagina che desideri setti quella variabile col nome che vuoi visualizzare:

    es: pagina computer

    <?php
    $titolo="computer";
    echo"
    <html>
    <head>
    <title> $titolo </title>
    <body>
    .."


    etc etc

  3. #3
    Ok. Potrebbe essere la via giusta, ma come implementare la funzione in modo che spostandomi fra le pagine il titolo corrisponda all'url che vado a visitare (eliminando il nome del dominio, gli "/" e sostituiendoli con ">")?
    Cioè se mi trovo in pagina www.miosito.com/computer.php
    voglio che il titolo sia: "Mio sito > Computer"
    se vado alla pagina www.miosito.com/computer/software.php
    voglio che il titolo sia: "Mio sito > Computer > Software"

    ecc. ecc.

    Basterebbe una piccola funzione che tramuti semplicemente l'url in titolo con le piccole modifiche segnalate.

    Come posso ottenere ciò?

  4. #4
    Utente di HTML.it
    Registrato dal
    Feb 2005
    Messaggi
    267
    implica l'uso di explode e della lettura del nome del file locale. onestamente del secondo non non lo so,però sicuramente non è una cosa difficile.l'uso di explode però è molto macchinoso perchè implica che te conosca già a priori la directory su cui lavori.
    cioè uno script che sviluppi per trovare il nome della pagina dalla stringa dell'url non funziona se cambi la directory:

    ovvero:
    www.sito.com/file.php
    ti basta passare due volte l'explode la prima volta eliminando il www.sito.com
    e la seconda eliminando .php
    secondo me la cosa più facile è scrivere la variabile in ogni pagina.

    però sicuramente c'e anche l'altro modo ,su cui pultroppo non sono in grado di aiutarti .

  5. #5
    Utente di HTML.it L'avatar di neida
    Registrato dal
    Feb 2005
    Messaggi
    1,478
    Passa ai templates, sono semplicissimi da gestire una volta compreso il loro funzionamento...

    Comunque, come alternativa (un po' grezza), potresti fare così:

    crei un un file da "includere" in tutte le pagine e il titolo lo richiami con:
    Codice PHP:
    <?=$title;?>
    Nel file da includere avrà questo codice:
    Codice PHP:
    $page basename($_SERVER['PHP_SELF']);
    $extns end(explode('.'$page)); 
    $title ucfirst(basename($page"." .$extns)); 
    In pratica recuperi il percorso completo del file, e ne visualizzi "solo il nome", senza l'estensione. Se ad esempio hai un file in "/directory_sito/sottodirectory_sito/pagina.php" il risultato sarà una cosa tipo "Pagina" e basta.

    Ma ti consiglio di usare i templtaes...

  6. #6
    Ciao, ti ringrazio, Neida.
    Il tuo script funziona solo che poichè l'url è di questo tipo:
    http://www.sito.it/pagina.php?c=/Computer/Hardware/

    ...il titolo viene che viene fuori è sempre "pagina", perchè credo che la funzione utilizzi l'ultimo nome prima del punto.

    Come si puo corregerla per un url come quello sopra, in modo che mi venga fuori un titolo tipo: "Computer > Hardware"?

    Grazie

  7. #7
    Utente di HTML.it L'avatar di neida
    Registrato dal
    Feb 2005
    Messaggi
    1,478
    Ciao Dino, premesso che il funzionamento dello script precedente è identico a quello che segue (inclidi il file e poi visualizzi il titolo dinamicamente con <?=$title?>), puoi sostituire il codice che ti ho indicato prima (per recuperare solo il nome della pagina), con questo:
    Codice PHP:
    $url_page $_SERVER['PHP_SELF'];
    $mod_sep str_replace("/"," > ",$url_page);
    $title ucwords(substr($mod_sep,2,-4)); 
    Questo codice funziona più o meno come avevi chiesto.

    Ad esempio, se il file si trova nella root principale il titolo sarà qualcosa come Home page (senza estensione) e se la pagina si dovesse trovare in qualche directory o sottodirectory, il titolo della pagina sarà: Directory1 > Directory 2 > Directory 3 > Titolo pagina (sempre senza estensione).

    Ah, una sola avvertenza importante: l'estensione della pagina in cui userai lo script dovrà essere di 4 caratteri. Tipo .php oppure .htm

    Nel caso avessi delle pagine con un'estensione diversa, ad esempio .html, è necessario modificare questa parte di codice:
    Codice PHP:
    substr($mod_sep,2,-4
    dovrai sostituire -4 a -5.

    Tutto qui...

    PS: ...ad ogni modo, un pensierino per i templates lo farei!

  8. #8
    Ciao neida e grazie ancora.
    Purtroppo nemmeno la tua ultima versione funziona: mi visualizza nel titolo solo il nome della pagina principale: tutto quello che c'è dopo il "?c=" non compare.
    Per cui nel mio caso...

    http://www.sito.it/pagina.php?c=/Computer/Hardware/

    ..viene sempre fuori "Pagina" ed invece di "Computer" "hardware" nemmeno l'ombra.

    Come fare.

    Passerei volentieri ai Templates, ma dietro questo progetto ho perso molto tempo. E' questa del titolo è solo la ciliegina sulla torta per coronare mesi di lavoro. Comunque approfondirò a breve il tema dei template per il prossimo lavoro.

    Mi daresti un ultimo aiuto?

    Grazie ancora.

    Dino

  9. #9
    Utente di HTML.it L'avatar di neida
    Registrato dal
    Feb 2005
    Messaggi
    1,478
    Ciao Dino, visto che ci sei, prova a fare quest'ultimo tentativo, non si sa mai?!

    Allora, resta tutto invariato riguardo al file da includere.
    Al suo interno metti questo codice:
    Codice PHP:
    <?php
    $url 
    strstr($_SERVER['REQUEST_URI'],'?c=/');
    $mod str_replace("/"," > ",$url);

    if(
    $mod) {
    //se hai l'url (come hai specificato) tipo: "http://www.sito.it/pagina.php?c=/Computer/Hardware/"
    //l'outupt prodotto sarà "Computer > Hardware > Pagina"
    $title ucwords(substr($mod.basename($_SERVER['PHP_SELF']),6,-4));

    } else {
    //se il file "pagina.php" si trova nella root principale
    //l'outupt prodotto sarà "Pagina"
    $title ucwords(substr(basename($_SERVER['PHP_SELF']),0,-4));
    }
    ?>
    Poi, ad esempio in "pagina.php", richiami il titolo con
    Codice PHP:
    <?=$title ?>
    ...dovrebbe andare bene, adesso.


  10. #10
    Niente, nemmeno questo funziona.
    Il comportamento è identico ai precedenti. Di restituire i valori dopo "?c=/", non ne vuole proprio sapere.

    Comunque grazie davvero, ...isso bandiera Bianca.

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2025 vBulletin Solutions, Inc. All rights reserved.