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

Discussione: template php

  1. #1

    template php

    sto cercando di fare un file template in php in modo da poter agire su questo singolo file se in futuro voglio cambiare qualche impostazione nel layout.
    ho problema sulla navigazione: vorrei che lo stile del link cambi a seconda che ci trovi su una pagina oppure su un'altra.
    faccio un esempio per maggior chiarezza:

    <ul>[*]chi siamo[*]dove siamo[*]contatti[/list]

    per esempio se clicco sulla pagina contatti vorrei che lo stile class="selected" apparisse vicino alla corrispondente voce "contatti" nella navigazione:

    <ul>[*]chi siamo[*]dove siamo[*]contatti[/list]

    esiste un modo per far fare questo lavoro a php? oppure esiste un metodo in javascript?
    ciò che è essenziale per me è di poter aver un unico file (navigazione.php) di modo che se in futuro volessi aggiungere delle nuove voci nel menu di navigazione lo posso fare modificando esclusivamente tale file e non doverne modificare x file per ogni pagina.

  2. #2
    Utente di HTML.it
    Registrato dal
    Feb 2002
    Messaggi
    361
    il menù immagiono che sia in un file esterno che tu richami con include.

    Se per ogni pagina setti una variabile di sessione nomepagina, e le dai il nome della pagina, nel menù verifichi in che pagina sei e selezioni lo stile che ti serve.

    Spero sia questo quello che volevi fare

  3. #3
    ciao guallo e grazie.
    si è esattamente quello che volevo fare, purtroppo non sono molto esperto in php e non saprei come fare a verificare nel menu in quale pagina sono.
    se riesci a spiegarmi un po' più approfonditamente quale codice inserire nel file menu te ne sarei grato

  4. #4
    Utente di HTML.it
    Registrato dal
    Feb 2002
    Messaggi
    361
    bhe le variabili d sessione valgono finchè nn chiudi IE... giusto per indentificarle molto stringatamente.

    in ogni pagina devi abilitarle

    session_start();

    in ogni pagina le assegni il valore della pagina:

    chisiamo.php

    $_SESSION['nomepagina']="chi siamo";


    poi avrai una pagina che è menu.php dove scrivi il tuo menù che fa i tuoi controlli

    la linchi dove ti serve in ogni pagina con il comando

    include("menu.php");

    oviamente devi prima popolare la la variabile di sessione nomepagina, altrimenti il menù pensa che sei nella pagina precedente.

  5. #5
    penso allora che dovrò documentarmi un pochino meglio...
    ho capito cosa inserire nelle varie pagine e come inserire il file menu .php con il comando include ma non ho capito cosa inserire nel file menu.php per fargli fare il controllo per capire in quale pagina si trova.

  6. #6
    Utente di HTML.it L'avatar di smt
    Registrato dal
    Jul 2002
    Messaggi
    167
    a cosa ti serve screverlo in sessione??? non va recuperato di sessione in sessione, basta leggere il nome della pagina richiesta corrente...
    ti basta:
    Codice PHP:
    if($_SERVER['PHP_SELF']=='/nome_pagina.php'){ echo 'class="selected"';} 
    fammi sapere se non ho capito il problema...
    Reality is that which, when you stop believing in it, doesn't go away

  7. #7
    smt ho provato a fare come mi hai detto:

    Codice PHP:
    [*][url="index.php"] >home[/url
    purtroppo non succede nulla.


    ho provato a togliere 1 dei 2 ==:

    Codice PHP:
    [*][url="index.php"] >home[/url
    però poi la class="selected" mi compare su tutte le pagine e non solo sulla home page.

    :master: :master:

  8. #8
    perchè = effettua una assegnazione di un valore ad una variabile, mentre il confronto va fatto con ==
    puoi fare...
    <?php $currentPage = basename($_SERVER['SCRIPT_NAME']); ?>

    <ul>[*]>Home
    ...
    ...(altre voci)[/list]

    ad ogni link confronti il valore di $currentpage col nome del file della pagina, se sono uguali fai stamapare "selected"

  9. #9
    Utente di HTML.it
    Registrato dal
    Feb 2002
    Messaggi
    361
    con la variabile di sessione era + "semplice" perche lui la pagina chi_siamo.php poteva chiamarla come preferiva, e sapendo quale valore assegnava x ogni pagina, nn c'era il rischio che il controllo fallisse.

    PHP_SELF o SCRIPT_NAME restituiscono si il nome pagina, ma anche il folder in cui si trova.

    ora, facendo

    echo $_SERVER[PHP_SELF]);

    guarda che valore ha salvato.
    (dovrebbe essere "/nomecartella/nomepagina.php")

    una volta che sai che valore c'è dentro a PHP_SELF, aggiusta il controllo

    Codice PHP:
    [*][url="index.php"] >home[/url

  10. #10
    Originariamente inviato da ilcarota
    perchè = effettua una assegnazione di un valore ad una variabile, mentre il confronto va fatto con ==
    puoi fare...
    <?php $currentPage = basename($_SERVER['SCRIPT_NAME']); ?>

    <ul>[*]>Home
    ...
    ...(altre voci)[/list]

    ad ogni link confronti il valore di $currentpage col nome del file della pagina, se sono uguali fai stamapare "selected"
    ho provato così ma la class="selected" viene assegnata sempre indipendentemente dalla pagina in cui mi trovo.

    forse ho dimenticato di specificare che il mio sito è organizzato in cartelle e tutti i file si chiamano index.php:

    index.php
    chi-siamo/index.php
    dove-siamo/index.php
    contatti/index.php
    ecc.

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.