Visualizzazione dei risultati da 1 a 10 su 10
  1. #1
    Utente di HTML.it
    Registrato dal
    Dec 2009
    Messaggi
    107

    strutturare e impostare pagine sito

    Buongiorno a tutti,
    sto creando un sito internet essenzialmente basato su php..ogni pagina del sito è strutturata così:

    Codice PHP:
    <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Strict//EN" [url]http://www.w3.org/TR/html4/strict.dtd[/url]>
    <html lang="it">
    <
    head>
    <
    title>Home Sito</title>
    <
    meta http-equiv="Content-Type" content="text/html; charset=iso-8859-15">
    <
    meta http-equiv="content-script-type" content="text/javascript">
    <
    meta http-equiv="content-style-type" content="text/css">
    <
    link rel="stylesheet" type="text/css" href="layout.css">
    <
    link rel="stylesheet" type="text/css" href="page.css">
    </
    head>
    <
    body
    <
    div id="container"
      <
    div id="header">
      <
    h1>HOME</h1>
      </
    div
      <
    div id="navigation">     
        <
    ul> [*][url="#"][b]Home[/b][/url][*]....[*]....[/list]
       </
    div>
       <
    div id="extra">
         <
    ul>[*]...[*]...[/list]
       </
    div>
       <
    div id="content">   **CONTENUTO PAGINA **
       </
    div
       <
    div id="footer">
       </
    div>
    </
    div>
    </
    body>
    </
    html
    In pratica, ogni pagina è strutturata nello stesso modo: div header, colonne navigation e extra, div footer; l'unica cosa che cambia è il contenuto all'interno del div content, cioè quello principale.
    Volevo sapere, dato che sono alle prime armi ed è il mio primo sito, se c'è un modo per salvare questa impaginazione in un file, o nel file index.php, eppoi richiamarla nelle altre pagine (pagina1.php, pagina2.php, ecc), scrivendo in ogni pagina solo il contenuto del div content, oppure se in tutte le pagine devo lasciare questa impostazione html di base.

    Io, finora, ho sempre ricopiato in blocco quest'impaginazione in tutte le pagine e ho modificato solo il div content, e tutto funziona perfettamente, ma mi chiedevo se in realtà è corretto fare così, o se ci sono altri modi che permettono di alleggerire le pagine andando a caricare una sola volta l'impostazione di base.

    Grazie per l'aiuto! spero di essermi spiegato bene!

  2. #2
    Si puoi farlo semplicemente utilizzando la funzione include("nomefile"); del php.

    Ad esempio:
    File: header.php
    Codice PHP:
    <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Strict//EN" [url="http://www.w3.org/TR/html4/strict.dtd"][url]http://www.w3.org/TR/html4/strict.dtd[/url][/url]>
    <html lang="it">
    <
    head>
    <
    title>Home Sito</title>
    <
    meta http-equiv="Content-Type" content="text/html; charset=iso-8859-15">
    <
    meta http-equiv="content-script-type" content="text/javascript">
    <
    meta http-equiv="content-style-type" content="text/css">
    <
    link rel="stylesheet" type="text/css" href="layout.css">
    <
    link rel="stylesheet" type="text/css" href="page.css">
    </
    head>
    <
    body>
    <
    div id="container">
      <
    div id="header">
      <
    h1>HOME</h1>
      </
    div>
      <
    div id="navigation">     
        <
    ul>[*][url="#"][b]Home[/b][/url][*]....[*]....[/list]
       </
    div>
       <
    div id="extra">
         <
    ul>[*]...[*]...[/list]
       </
    div
    File footer.php
    Codice PHP:
    <div id="footer">
       </
    div>
    </
    div>
    </
    body>
    </
    html
    Quindi in ogni pagina ti basta scrivere:
    Codice PHP:
    <?php 
    include ("header.php");
    ?>
     <div id="content">   **CONTENUTO PAGINA **
       </div> 
    <?php 
    include ("footer.php");
    ?>
    Ciao
    --Cosimo
    MAIL: cosimo.g18@gmail.com

  3. #3
    Utente di HTML.it
    Registrato dal
    Dec 2009
    Messaggi
    107
    Ciao Cosimo..intanto grazie per la risposta..
    la tua soluzione è corretta in effetti...però non avevo pensato che in ogni pagina cambio anche il titolo (<title>) e nel div navigation, assegno la classe "activelink" al link della pagina in cui mi trovo..quindi, facendo come hai detto tu questo mi rimane sempre su una..
    Dovrei spezzetare ancora in più file? Tipo header.php , navigation.php , footer.php? se mi bastano...ma a questo punto mi chiedo se convenga oppure no in termini di caricamento delle pagine...finora ho lavorato in locale e fila tutto liscio, magari poi, una volta pubblicato potrei notare un po' di lentezza nel caricamento?

  4. #4
    Utente di HTML.it
    Registrato dal
    Apr 2004
    Messaggi
    3,709
    puoi senz'altro spezzettare, ma nel tuo caso (e in altri) potresti anche fare così:

    crei il file generico "template.php" con il tuo HTML e nei punti "critici" (dove ci sono le parti che cambiano) inserisci delle variabili, p.es.:

    Codice PHP:
    ...
    <title><?php print $TEMPLATE['titolo']; ?></title>
    ...
    <div id="content">
    <?php print $TEMPLATE['contenuto']; ?>
    </div> 
    ...
    e nei singoli file una cosa tipo (es.: "index.php" per la home):

    Codice PHP:
    $TEMPLATE['titolo'] = 'Titolo pagina home';
    $contenuto "
    ...blocco HTML...
    "
    ;
    $TEMPLATE['contenuto'] = $contenuto;
    include (
    'template.php'); 

  5. #5
    Utente di HTML.it L'avatar di span
    Registrato dal
    Jan 2004
    Messaggi
    1,644
    Ciao Pape, solitamente almeno la parte di visualizzazione va gestita separatamente. La prima soluzione che ti ha proposto eiyen (la seconda è ok ) è da considerarsi una bad practice (anche se molto utilizzata) e te ne sei accordo anche da solo non appena hai avuto necessità di personalizzare un title.

    una soluzione semplice è inserire nelle tue pagina la sola parte di accesso ai dati, per poi richiamare un template per stamparli.


    Ad esempio:

    Codice PHP:
    $title "Titolo della mia pagina";
    require 
    APP 'views/pagina.php'

    E in pagina.php (il template o la vista):

    codice:
    <!doctype html>
    <html><head><tittle><?php echo @$title ?>
    <body>
    
    
    Il tuo contenuto statico o dinamico</p>
    ec...

    Poi puoi decidere di isolare le parti comuni (header, footer, barra di navigazione), come ti ha suggerito eiyen, e di includerle in pagina.php, o in alternativa di mantenere solo le parti comuni e isolare quelle che variano :P (ma la seconda forse è un po' + complessa)

  6. #6
    Utente di HTML.it
    Registrato dal
    Apr 2004
    Messaggi
    3,709
    Originariamente inviato da span
    Ciao Pape, solitamente almeno la parte di visualizzazione va gestita separatamente.
    concordo con questo consiglio

    La prima soluzione che ti ha proposto eiyen (la seconda è ok ) è da considerarsi una bad practice (anche se molto utilizzata) e te ne sei accordo anche da solo non appena hai avuto necessità di personalizzare un title.
    ? non l'ho proposta io, infatti non la userei... ho solo detto che funzionerebbe...

    Poi puoi decidere di isolare le parti comuni (header, footer, barra di navigazione), come ti ha suggerito eiyen
    ? eh eh... non ero io quello...


    Aggiungo che chiaramente esistono tante tecniche... nel caso in questione mi sembra che la soluzione di un "template.php" o simile sia comunque la più semplice.

  7. #7
    Utente di HTML.it L'avatar di span
    Registrato dal
    Jan 2004
    Messaggi
    1,644
    oops... scusa eiyen, ti ho completamente confuso per un altro

  8. #8
    Utente di HTML.it
    Registrato dal
    Apr 2004
    Messaggi
    3,709
    no problem!

  9. #9
    Utente di HTML.it
    Registrato dal
    Dec 2009
    Messaggi
    107
    Originariamente inviato da eiyen
    puoi senz'altro spezzettare, ma nel tuo caso (e in altri) potresti anche fare così:

    crei il file generico "template.php" con il tuo HTML e nei punti "critici" (dove ci sono le parti che cambiano) inserisci delle variabili, p.es.:

    Codice PHP:
    ...
    <title><?php print $TEMPLATE['titolo']; ?></title>
    ...
    <div id="content">
    <?php print $TEMPLATE['contenuto']; ?>
    </div> 
    ...
    e nei singoli file una cosa tipo (es.: "index.php" per la home):

    Codice PHP:
    $TEMPLATE['titolo'] = 'Titolo pagina home';
    $contenuto "
    ...blocco HTML...
    "
    ;
    $TEMPLATE['contenuto'] = $contenuto;
    include (
    'template.php'); 
    Intanto grazie anche a Eiyen e Span per le risposte..
    allora, ho provato a fare come suggerito qui sopra da Eiyen, solo che ho trovato due difficoltà:
    1) il contenuto di molte pagine è formato da diversi pezzi di codice php che mi assai complicato mettere tutto all'interno di una stringa e chiamarla, come in questo caso, $contenuto. Questo perchè dovrei mettere un backslah davanti ad ogni carattere come le virgolette, gli apici, punti e virgole, ecc, affinchè la stringa sia corretta. Giusto? C'è un altro modo per farlo? Magari in questo caso ricorrere ai file, tipo contenuto_home.php, contenuto_chi_sono.php, ecc. Insomma, un file di contenuto php per ogni pagina. Potrebbe andare?

    2) ho sempre il problema del div 'navigation' in quanto non so come sistemarlo in modo che gli attributi href e la classe associati al tag <a> dell'elemento[*] siano corretti..ecco un esempio:

    Su index.php deve essere così:
    Codice PHP:
    <div id="navigation">
      <
    ul>[*][url="#"][b]Home[/b][/url][*][url="pagina1.php"]Pagina1[/url][*][url="pagina2.php"]Pagina2[/url][*][url="pagina3.php"]Pagina3[/url][/list]
    </
    div
    Su pagina1.php deve essere così:
    Codice PHP:
    <div id="navigation">
      <
    ul>[*][url="index.php"][b]Home[/b][/url][*][url="#"]Pagina1[/url][*][url="pagina2.php"]Pagina2[/url][*][url="pagina3.php"]Pagina3[/url][/list]
    </
    div
    ecc...
    In questo caso sono più parti a cambiare a seconda della pagina, quindi forse, almeno per la navigazione mi conviene metterla esplicitamente su ogni pagina del sito.
    Cosa ne dite?

  10. #10
    Utente di HTML.it
    Registrato dal
    Dec 2009
    Messaggi
    107
    Nessuna idea allora? :master:
    ci sarà un modo, o una funzione, per convertire tutto il contenuto di un file php (quindi codice php) in una stringa html..o no?
    cioè, io ho questa variabile $contenuto che deve contenere un pezzo di codice di php, come faccio?
    aiutooooo....

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.