Avatar billede camban Nybegynder
28. juli 2005 - 16:34 Der er 33 kommentarer og
1 løsning

php - skabelon

Jeg skal have lavet en skabelon som kan bruges igen og igen til de foskellige sider og på en måde så jeg kun skal rette et sted hvis der er rettelser. Jeg har selvfølgelig søgt rundt herinde og bl.a. haft fat i http://www.eksperten.dk/spm/79436 som egentlig er tæt på det jeg søgte (nederst kommentar af stalle) men jeg kan ikke få det til at virke...kan bl.a. se funktionen ikke er afsluttet men jeg kan ikke rigtig overskue det.

Håber der er en der kan hjælpe

Kopieret fra http://www.eksperten.dk/spm/79436

Gør som mig, lav siden af to sider, der indeholder ALT
kald dem evt skabelon.php og index.php

Skabelon.php ser således ud:
*********************************************************

<?
function visside($indhold, $title){
?>

<title>\"titlen på din side - <? echo $title; ?></title>


<TABLE width=\'750\' BORDER=\'0\' align=\'center\' height=\'95%\'>
    <CAPTION></CAPTION>
<TR>
<TD VALIGN=\'top\' ALIGN=\'center\'>
<a href=\'index.php?side=side1\'>Side1</a><br>
<a href=\'index.php?side=side2\'>Side2</a><br>

<TD WIDTH=\'85%\' CLASS=\'knap\' VALIGN=\'top\' ALIGN=\'left\'><? echo $indhold; ?></TD>

</TR>
</TABLE>

Index.php indeholder så alt hvad der vises på siden. Det ser således ud:
************************************************************************

<?
include(\"skabelon.php\");

switch ($side)  {

    Default :
    case \"side1\" :
        $indhold = \'[Her laver du så det der skal være på side1]\';
                $titel = \'[Her skriver du så det der skal tilføjes til titlen på siden]\';
        break;
       
        case \"side2\" :
                $indhold = \'[Her laver du så det der skal være på side1]\';
                $titel = \'[Her skriver du så det der skal tilføjes til titlen på siden]\';
        break;

}
Avatar billede kdjweb Nybegynder
28. juli 2005 - 16:39 #1
start med at fjerne alle \

<?
function visside($indhold, $title){
?>

<title>"titlen på din side - <? echo $title; ?></title>


<TABLE width='750' BORDER='0' align='center' height='95%'>
    <CAPTION></CAPTION>
<TR>
<TD VALIGN='top' ALIGN='center'>
<a href='index.php?side=side1'>Side1</a><br>
<a href='index.php?side=side2'>Side2</a><br>

<TD WIDTH='85%' CLASS='knap' VALIGN='top' ALIGN='left'><? echo $indhold; ?></TD>

</TR>
</TABLE>

Index.php indeholder så alt hvad der vises på siden. Det ser således ud:
************************************************************************

<?
include("skabelon.php");

switch ($side)  {

    Default :
    case "side1" :
        $indhold = '[Her laver du så det der skal være på side1]';
                $titel = '[Her skriver du så det der skal tilføjes til titlen på siden]';
        break;
     
        case "side2" :
                $indhold = '[Her laver du så det der skal være på side1]';
                $titel = '[Her skriver du så det der skal tilføjes til titlen på siden]';
        break;

}
Avatar billede foxmulder58 Praktikant
28. juli 2005 - 16:42 #2
Nu kan jeg e på dit eksempel at der bliver hentet at filen skabelon.php bliver hentet ind via funktionen "include" , det behøver jo ikke være en PHP fil der hentes ind.

Jeg har gjort det på et tidspunkt at alt grafik (tabeller, div, flash) kodeværk er gemt i en txt fil hvor efter disse txt filer bliver hentet ind via include funktionen.


Dermed kan du jo lave en side du kalder skabelon.php inkludere de filer der skal vises, bruge denne fil hver gang du opretter en ny side og omdøbe den så den passer.



Ved ikke om du kan følge mig!



mvh
Mads
Avatar billede camban Nybegynder
28. juli 2005 - 16:42 #3
Det har jeg prøvet men det hjælper ikke. Jeg kan se funktion visside ikke er afsluttet..kan det være problemet?
Avatar billede camban Nybegynder
28. juli 2005 - 16:43 #4
Ovenstående kommentar var til kdjweb
Avatar billede camban Nybegynder
28. juli 2005 - 16:47 #5
Jeg tror jeg forstår hvad du mener, men jeg vil helst være fri for at have for mange "ens" filer liggende. Skabelon er ment i dynamisk forstand...kun en skabelon-fil der er rammen.
Avatar billede foxmulder58 Praktikant
28. juli 2005 - 16:49 #6
Jeps, kan jeg godt se det smart i. Jeg følger med fra sidelinien. For det script kunne jeg da også godt bruge! :)
Avatar billede foxmulder58 Praktikant
28. juli 2005 - 16:51 #7
PS! jeg kan se at scriptet øverst ikke er afsluttet.
Avatar billede kdjweb Nybegynder
28. juli 2005 - 16:54 #8
undskyld var lige igang med en anden :)

jeg spørger bare lige, men hvad fanden sker der lige for din function :)
Avatar billede kdjweb Nybegynder
28. juli 2005 - 16:55 #9
jeg prøver lige at rette koden til
Avatar billede camban Nybegynder
28. juli 2005 - 16:56 #10
Det er ikke min funktion - lånt fra et tidligere spørgsmål som sagt...:o)
Avatar billede kdjweb Nybegynder
28. juli 2005 - 16:58 #11
<?
function visside($indhold, $title){
return "

<title>titlen på din side - $title</title>


<TABLE width='750' BORDER='0' align='center' height='95%'>
    <CAPTION></CAPTION>
<TR>
<TD VALIGN='top' ALIGN='center'>
<a href='index.php?side=side1'>Side1</a><br>
<a href='index.php?side=side2'>Side2</a><br>

<TD WIDTH='85%' CLASS='knap' VALIGN='top' ALIGN='left'>$indhold</TD>

</TR>
</TABLE>
";
}
?>

Index.php indeholder så alt hvad der vises på siden. Det ser således ud:
************************************************************************

<?
include("skabelon.php");

switch ($side)  {

    Default :
    case "side1" :
                  $indhold = '[Her laver du så det der skal være på side1]';
                $titel = '[Her skriver du så det der skal tilføjes til titlen på siden]';
                echo Visside($indhold,$titel);
        break;
   
        case "side2" :
                $indhold = '[Her laver du så det der skal være på side1]';
                $titel = '[Her skriver du så det der skal tilføjes til titlen på siden]';
                echo Visside($indhold,$titel);
        break;

}
?>
Avatar billede kdjweb Nybegynder
28. juli 2005 - 16:59 #12
hehe beklager men vil du ikke lige rette
  case "side1" :
                  $indhold = '[Her laver du så det der skal være på side1]';
                $titel = '[Her skriver du så det der skal tilføjes til titlen på siden]';
                echo Visside($indhold,$titel);
        break;
 
        case "side2" :
                $indhold = '[Her laver du så det der skal være på side1]';
                $titel = '[Her skriver du så det der skal tilføjes til titlen på siden]';
                echo Visside($indhold,$titel);
        break;

til

  case "side1" :
                  $indhold = '[Her laver du så det der skal være på side1]';
                $titel = '[Her skriver du så det der skal tilføjes til titlen på siden]';
                echo visside($indhold,$titel);
        break;
 
        case "side2" :
                $indhold = '[Her laver du så det der skal være på side1]';
                $titel = '[Her skriver du så det der skal tilføjes til titlen på siden]';
                echo visside($indhold,$titel);
        break;
Avatar billede camban Nybegynder
28. juli 2005 - 17:04 #13
Tak skal du have - det virker jo upåklageligt...smid et svar :o)
Avatar billede mysli Nybegynder
28. juli 2005 - 17:05 #14
Lav en almindelig .html fil med de ting du skal bruge.

De steder du ønsker indeholdet skal være dynamisk indsætter du et tag, evt. <!--indhold--->

I den index.php kører du så

$fil = "skabelon.html";
           
            $fil = fopen($fil, "r");
           
            while(!feof($fil)){
                $html .= fgets($fil, 4096);
            }

Så laver du en replace på alle dine tags og indsætter de rigtige ting - som du sikkert henter fra en database.
Avatar billede kdjweb Nybegynder
28. juli 2005 - 17:05 #15
gør det? :) hvor fedt.. jeg er begyndt at skrive rent ;)

jeg takker for point
Avatar billede foxmulder58 Praktikant
28. juli 2005 - 17:07 #16
hej Kasper,
Skal man paste alt indhold på siden ind i den variabel her:

$indhold = '[Her laver du så det der skal være på side1]';


mvh
Mads
Avatar billede camban Nybegynder
28. juli 2005 - 17:13 #17
Går ud fra man kan include txt-filer eller andre php-filer i $indhold eller ?
Avatar billede camban Nybegynder
28. juli 2005 - 17:15 #18
Mysli - det lyder som det rigtige at gøre - problemet er at jeg er temmelig grøn indenfor php. Så database-sjov og det mere indviklede må vente lidt. Men tak for input.
Avatar billede kdjweb Nybegynder
28. juli 2005 - 17:17 #19
mads du kan også bare include en txt fil :) eller en php fil hvis du vil være sikker
Avatar billede foxmulder58 Praktikant
28. juli 2005 - 17:19 #20
i variablen $indhold  skriver du "Her laver du så indholder der skal være på din side"

Skal man placere hele koden for webside deri eller hvad, jeg forstår ikke det script??

mvh
Mads
Avatar billede kdjweb Nybegynder
28. juli 2005 - 17:21 #21
mads det er bare en skabelon til en side som kan bruges igen og igen.. :) jeg bruger bare $_GET til at få fat i mine sider :)
Avatar billede camban Nybegynder
28. juli 2005 - 17:27 #22
Jeg tror også jeg er lidt forvirret...Men jeg skal vel have en php-fil for hver side1, side2 osv med indhold som jeg includer i index.php og henviser til her $indhold = '[Her laver du så det der skal være på side1]'; eller skal jeg bruge $_GET ?
Avatar billede kdjweb Nybegynder
28. juli 2005 - 17:31 #23
camban, hvis du bruger get er det bare

if($_GET['area'] == forside){
// f.eks
  include("forside.php");
}

så når du går ind på www.dinside.dk/index.php?area=forside så includer den forside.php :)
Avatar billede foxmulder58 Praktikant
28. juli 2005 - 17:33 #24
kasper! Må jeg ikke se scriptet i sin helhed? :)

mvh
MAds
Avatar billede foxmulder58 Praktikant
28. juli 2005 - 17:39 #25
Kan man gøre sådan her?


case "side1" :
                  $indhold = '[<?php include("side1.htm" ?>]';
                $titel = '[min side 1]';
                echo Visside($indhold,$titel);
        break;


mvh
mads
Avatar billede mysli Nybegynder
28. juli 2005 - 17:39 #26
Det gør det så nemmere at hente indholdet fra en database - da det gør det nemmere at ændre indholdet fra selve siden, altså content management. Det giver også mindre arbejde med alle mulige filer, hvis man nu har 20 forskellige punter i ens menu, så vil det være lettere med;

$id = $_GET['id'];
if (!isset($id)){
$id = 1; //id'et på forsiden
}

$indhold = hentIndhold($id);


Men nu skal du jo lige ordenligt ind i php..

Så kan du arbejde lidt med det.
Avatar billede kdjweb Nybegynder
28. juli 2005 - 17:58 #27
mads, nejda så lukker du jo php
$indhold = 'include("side1.htm")';
Avatar billede kdjweb Nybegynder
28. juli 2005 - 17:59 #28
har du ret i mysli :) men jeg har aligevel filerne på lokalt netværk så jeg kan ikke se hvad det skulle gøre godt for ;)
Avatar billede foxmulder58 Praktikant
28. juli 2005 - 18:00 #29
nå ja det var squu da smart igen godt arbejde fra dig kasper.


Det script skal jeg sgu huske, det var da smart!

Har vildt travlt for tiden arbejder på:

http://netau.dk.linux14.wannafind.dk/


Håber snart vi ses på messenger igen!



mvh
Mads
Avatar billede kdjweb Nybegynder
28. juli 2005 - 18:06 #30
Flot, Mads! :)

jeg får også min første løn for mit første betalte job imorgen :)
Avatar billede foxmulder58 Praktikant
28. juli 2005 - 18:07 #31
cool nok! :p
Avatar billede kdjweb Nybegynder
28. juli 2005 - 18:08 #32
jep :)
Avatar billede camban Nybegynder
06. august 2005 - 22:58 #33
Hejsa igen kdjweb

Har lidt problemer med det vi snakkede om her;

I min index.php står nednestående. Problemet er at når jeg includer forside.php lægger den hele indholdet uden for tabellen. Du kan se resultatet http://daydreambeliever.dk/PHPtest/index2.php. Du snakkede tidligere om
if($_GET['area'] == forside){
// f.eks
  include("forside.php");
}

Hvor sætter jeg det ind?

<?php
include('skabelon2.php');

switch ($side)  {

    Default :
    case "forside" :
                  $indhold = include('forside.php');
                $titel = 'Byg';
                echo visside($indhold,$titel);
        break;
 
        case "profil" :
                $indhold = include('profil.php');
                $titel = '[Her skriver du så det der skal tilføjes til titlen på siden]';
                echo visside($indhold,$titel);
        break;

}
?>
Avatar billede camban Nybegynder
07. august 2005 - 19:13 #34
Her fundet en løsning
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