Avatar billede coolcom Nybegynder
21. august 2007 - 20:22 Der er 6 kommentarer og
1 løsning

Opbygning af stort site

Hey..

Jeg er ved at forberede et projekt. Jeg har fået lavet det færdige design som jeg vil have det, og er faktisk klar til at starte programmeringen, MEN.
Jeg har i den seneste tid læst flere artikler og forums hvor der bliver beskrevet OOP og at det er meget smartere at benytte dette, og opbygge sit site via classes.

Dette har jeg så også forstået nogenlunde men, jeg vil gerne have en class hvori mit design ligger. Og her kommer mit problem så: Hvordan får jeg lagt mit design ind i en class så jeg senere kan benytte det på index.php?..

Mit design er som følger:



<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head><meta name="Description" />
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
<title>Felderbal</title>
<link href="style.css" rel="stylesheet" type="text/css" />
</head>
<body>
<table width="100%" border="0" cellpadding="0" cellspacing="0" id="content">
  <tr>
    <td><table width="750" border="0" cellspacing="0" cellpadding="0">
      <tr>
        <td width="30" background="images/header_left.gif">&nbsp;</td>
        <td><object classid="clsid:D27CDB6E-AE6D-11cf-96B8-444553540000" codebase="http://download.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=7,0,19,0" width="690" height="269">
          <param name="movie" value="flash/header.swf" />
          <param name="quality" value="high" />
          <embed src="flash/header.swf" quality="high" pluginspage="http://www.macromedia.com/go/getflashplayer" type="application/x-shockwave-flash" width="690" height="269"></embed>
        </object></td>
        <td width="30" background="images/header_right.gif">&nbsp;</td>
      </tr>
      <tr>
        <td colspan="3"><table width="750" border="0" cellpadding="0" cellspacing="0">
          <tr>
            <td width="134" background="images/menu_background.gif" class="table"><table width="179" height="346" border="0" cellpadding="0" cellspacing="0" id="left_menu">
              <tr>
                <td height="55" background="images/menu_top.gif">&nbsp;</td>
                  </tr>
              <tr>
                <td width="185" height="94" background="images/menu_bg.gif" class="menu"><p><a href="#">Menu fsaf </a></p>
                  <p><a href="#">Menu 2</a>dsafasfas</p>
                  <p><a href="#">Menu 3</a>sfa</p>
                  <p>&nbsp;</p>
                  <p>&nbsp;</p>
                  <p>&nbsp;</p>
                  <p>&nbsp;</p>
                  <p>&nbsp;</p></td>
                  </tr>
              <tr>
                <td height="72" background="images/Menu_bottom.gif">&nbsp;</td>
                  </tr>
              <tr>
                <td height="125" background="images/members_bg.gif" class="mem"><p align="center">&nbsp;</p>
                      <p align="center">Klik p&aring; nedenst&aring;ende link for at logge ind:</p>
                      <p align="center"><a href="admin/login.php">Login</a></p></td>
                  </tr>
             
            </table>              </td>
            <td width="616" class="content_bg"><table width="100%" border="0" cellspacing="0" cellpadding="0">
                <tr>
                  <td height="55" background="images/content_top.jpg" class="overskrift">Nyheder</td>
                </tr>
                <tr>
                  <td background="images/content.gif"><table width="100%" border="0" cellspacing="0" cellpadding="0">
                      <tr>
                        <td width="2"><img src="images/spacer.gif" width="2" height="123" /></td>
                        <td width="98%" class="content"><p><strong>Lorem Ipsum</strong> is simply dummy text of the printing and typesetting  industry. Lorem Ipsum has been the industry's standard dummy text ever since the  1500s, when an unknown printer took a galley of type and scrambled it to make a  type specimen book. It has survived not only five centuries, but also the leap  into electronic typesetting, remaining essentially unchanged. It was popularised  in the 1960s with the release of Letraset sheets containing Lorem Ipsum  passages, and more recently with desktop publishing software like Aldus  PageMaker including versions of Lorem Ipsu</p>
                          <p>&nbsp;</p>
                          <p>&nbsp;</p>
                          <p>&nbsp;</p>
                          <p>&nbsp;</p>
                          <p>&nbsp;</p>
                          <p>&nbsp;</p></td>
                      </tr>
                    </table>                    </td>
                </tr>
                <tr>
                  <td height="171" background="images/content_bottom.gif"><p>&nbsp;</p>
                    <p>&nbsp;</p>
                    <p>&nbsp;</p></td>
                </tr>
              </table>              </td>
          </tr>
         
        </table></td>
      </tr>
      <tr>
        <td colspan="3"><table width="100%" border="0" cellspacing="0" cellpadding="0">
          <tr>
            <td width="37" height="70" background="images/bottom_left.gif">&nbsp;</td>
            <td height="70" background="images/bottom_bg.gif" class="footer"><p>Webmaster: Steffan LIldholdt :: <a href="mailto:steffan@lildholdt.dk?subject=Webdesign">steffan@lildholdt.dk</a></p></td>
            <td width="38" height="70" background="images/bottom_right.gif">&nbsp;</td>
          </tr>
        </table></td>
      </tr>
    </table>
  </tr>
</table>
</body>


</html>



Der er kun 2 krav:

1. Dette stykke:
"<td width="185" height="94" background="images/menu_bg.gif" class="menu"><p><a href="#">Menu fsaf </a></p>
                  <p><a href="#">Menu 2</a>dsafasfas</p>
                  <p><a href="#">Menu 3</a>sfa</p>
                  <p>&nbsp;</p>
                  <p>&nbsp;</p>
                  <p>&nbsp;</p>
                  <p>&nbsp;</p>
                  <p>&nbsp;</p></td>"

Skal være variablet så man kan tilføje/fjerne/redigere de forskellige menu punkter.


2. Dette stykke:
"<td width="98%" class="content"><p><strong>Lorem Ipsum</strong> is... osv."

Skal være sådan at jeg kan bruge $_GET['page'] til at hente de forskellige sider ind på index.php.


Jeg håber ikke det var for svært at forstå, men ellers må i bare lige sige til;)
Avatar billede miqe Nybegynder
22. august 2007 - 00:41 #1
XTemplate kan bringe dig godt på vej. Det er generelt bare en php-fil du inkluderer på dit site, hvis klasse og metoder du så refererer til fra de andre filer.
http://www.phpxtemplate.org/
Open Source er en rar ting.
Selve dit layout lægger du ind i template filer, du kalder via XTemplate, når data skal fyldes ind og siden skal sendes til browseren.
Avatar billede coolcom Nybegynder
22. august 2007 - 15:10 #2
Jeg vil gerne kode det selv og derved lærer lidt samtidig..:D
Avatar billede coolcom Nybegynder
24. august 2007 - 13:59 #3
Ingen der har en løsning?
Avatar billede miqe Nybegynder
25. august 2007 - 20:06 #4
Hvis du nærstuderer kildekoden kan du se hvordan OOP kan bruges i praksis.
Et praktisk eksempel på hvordan XTemplate er brugt er http://www.cubecart.com

Har selv en idé om at jeg skal lave mit eget template system, men har ikke haft ordentligt tid til at kigge på det. Derfor er dette også det bedste svar jeg kan give dig... indtil videre!
Avatar billede coolcom Nybegynder
26. august 2007 - 18:04 #5
Jeg fandt en anden løsning, men hvis du vil have lidt point for dit forsøg kan du smide et svar.
Avatar billede miqe Nybegynder
27. august 2007 - 21:12 #6
Det er OK! :-)
Men det kunne være interessant at høre hvad du fandt.
Avatar billede coolcom Nybegynder
27. august 2007 - 22:30 #7
Jeg har en fil der hedder skin_global.php, med følgende kode:

<?php
/*
//////////////////////////////////////////////////////////////
//                                                            //
//        www.felderbal.dk                                    //
//        Kodet af Steffan Lildholdt                            //       
//        Email: steffan@lildholdt.dk                            //
//        Lavet: 16. August 2007                                //
//                                                            //
//----------------------------------------------------------//
//                                                            //
//        Script: skin_global.php                                //                                               
//                                                            //
//////////////////////////////////////////////////////////////
*/

//------------------------------------------------
//Definere at denne side ikke må åbnes direkte
//------------------------------------------------

if ( ! defined( "DIRECT" ) )
{    die("<h1>Adgang nægtet</h1>Du har ikke tilladelse til at åbne denne side direkte.");
}

//-------------------------------
//Starter klassen "skin_global"
//-------------------------------

class skin_global {
   
    //------------------------------------------------------------
    //Definiere en række funktioner der hører til "skin_global"
    //------------------------------------------------------------

    function head($mod_title, $url, $css) {
    global $info;
   
    echo <<<EOT
   
        <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
        <html xmlns="http://www.w3.org/1999/xhtml">
        <head><meta name="Description" />
        <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
        <title>{$info['title']}
        EOT;
        if ($mod_title == "")
        {
        echo <<<EOT
        </title>
       
        EOT;
        }
        else
        {
        echo <<<EOT
        $mod_title</title>
       
        EOT;
        }
        </title>
        <style media="all" type="text/css">
        @import url($css);
        </head>
   
    }

    function body() {
    global $info, $cms;
   
    echo <<<EOT
   
        <body>
        <table width="100%" border="0" cellpadding="0" cellspacing="0" id="content">
          <tr>
            <td><table width="750" border="0" cellspacing="0" cellpadding="0">
              <tr>
                <td width="30" background="images/header_left.gif">&nbsp;</td>
                <td><object classid="clsid:D27CDB6E-AE6D-11cf-96B8-444553540000" codebase=
                "http://download.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=7,0,19,0" width="690" height="269">
                  <param name="movie" value="flash/header.swf" />
                  <param name="quality" value="high" />
                  <embed src="flash/header.swf" quality="high" pluginspage="http://www.macromedia.com/go/getflashplayer" type=
                  "application/x-shockwave-flash" width="690" height="269"></embed>
                </object></td>
                <td width="30" background="images/header_right.gif">&nbsp;</td>
              </tr>
              <tr>
                <td colspan="3"><table width="750" border="0" cellpadding="0" cellspacing="0">
                  <tr>
                    <td width="134" background="images/menu_background.gif" class="table"><table width="179" height="346" border="0"
                    cellpadding="0" cellspacing="0" id="left_menu">
                      <tr>
                        <td height="55" background="images/menu_top.gif">&nbsp;</td>
                          </tr>
                      <tr>
       
    EOT;
   
   
        }
   
    function nav() {
    global $info;
   
    echo <<<EOT
   
                <td width="185" height="94" background="images/menu_bg.gif" class="menu"><p><a href="#">Menu fsaf </a></p>
                <p><a href="#">Menu 2</a>dsafasfas</p>
                <p><a href="#">Menu 3</a>sfa</p>
                <p>&nbsp;</p>
                <p>&nbsp;</p>
                <p>&nbsp;</p>
                <p>&nbsp;</p>
                <p>&nbsp;</p></td>
                </tr>
       
    EOT;
    }
   
       
    function mid() {
    global $info, $skin;
        echo <<<EOT
       
            <tr>
                <td height="72" background="images/Menu_bottom.gif">&nbsp;</td>
                  </tr>
              <tr>
                <td height="125" background="images/members_bg.gif" class="mem"><p align="center">&nbsp;</p>
                      <p align="center">Klik p&aring; nedenst&aring;ende link for at logge ind:</p>
                      <p align="center"><a href="admin/login.php">Login</a></p></td>
                  </tr>
             
            </table>              </td>
            <td width="616" class="content_bg"><table width="100%" border="0" cellspacing="0" cellpadding="0">
                <tr>
                  <td height="55" background="images/content_top.jpg" class="overskrift">Nyheder</td>
                </tr>
                <tr>
                  <td background="images/content.gif"><table width="100%" border="0" cellspacing="0" cellpadding="0">
                      <tr>
                        <td width="2"><img src="images/spacer.gif" width="2" height="123" /></td>
                        <td width="98%" class="content"><p>
       
       
    EOT;
    }
   
    function bottom() {
   
        echo <<<EOT
   
                    </p></td>
                              </tr>
                            </table>                    </td>
                        </tr>
                        <tr>
                          <td height="171" background="images/content_bottom.gif"><p>&nbsp;</p>
                            <p>&nbsp;</p>
                            <p>&nbsp;</p></td>
                        </tr>
                      </table>              </td>
                  </tr>
                 
                </table></td>
              </tr>
              <tr>
                <td colspan="3"><table width="100%" border="0" cellspacing="0" cellpadding="0">
                  <tr>
                    <td width="37" height="70" background="images/bottom_left.gif">&nbsp;</td>
                    <td height="70" background="images/bottom_bg.gif" class="footer"><p>Webmaster: Steffan LIldholdt :: <a href=
                    "mailto:steffan@lildholdt.dk?subject=Webdesign">steffan@lildholdt.dk</a></p></td>
                    <td width="38" height="70" background="images/bottom_right.gif">&nbsp;</td>
                  </tr>
                </table></td>
              </tr>
            </table>
          </tr>
        </table>
        </body>
       
   
    </html>
       
   
    EOT;
    }
   
   
    function redirect($txt, $url, $css) {
   
        $CMSHTML = <<<EOT
        <html>
        <head>
        <title>Please wait while we redirect you</title>
        <meta http-equiv="refresh" content="3; url=$url" />
        <style media="all" type="text/css">
        @import url($css);
        </style>
        </head>
        <body>
        <div class='redirect'>Please wait while we redirect you...
        <p>$txt</p>
        Please click <a href="$url">here</a> if you do not wish to wait.
        </div>
        </body>
        </html>
        EOT;
   
    return $CMSHTML;
    }
   
//------------------
//Slutter klassen   
//------------------
   
}
?>

Så har jeg så en class_skin.php der samler funktionerne og udskriver dem.
Til sidst henter jeg så class_skin.php ind på min index.php side:D

Jeg har bare stadig et problem: At få undermenuen til at virke, og det er det jeg sidder og roder med nu:P
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Vi tilbyder markedets bedste kurser inden for webudvikling

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester