Gå til innhold

[Løst]Hvordan lage template system?


Anbefalte innlegg

Skrevet

Hei..

 

Gjør forsøk på å lage mitt eget templatesystem, har sett litt på Wordpress ( Hvordan de har gjort det), Smarty og Zend Framework.

Jeg slet med å forstå 2 siste, så de tror jeg i dropper.

 

 

Tenkte at jeg kunne ha no sånn:

- Root

-- theme

-- Plugin

-- index.php

-- config.php

 

No àla det.

Noen som har noen bra tutorialer? Bra bøker å anbefalle?

 

Takk!

Videoannonse
Annonse
Skrevet
Om jeg hadde satt meg inn i Smarty, hadde jeg nok fått det til. men jeg har lysdt til å lage noe eget!

 

Da gjør du det. Noen vil komme inn hit å si at du finner på hjulet på nytt! Men ikke bry deg om dem, det er som regel drit late mennesker.. Dessuten er dette PHP.

Skrevet (endret)

Er enig med theseaswillrun red på begge punkter. Bruk PHP som template språk og kos deg med det. Fordelen med PHP som templatespråk: raskt, enkelt, konsist og ingen sære tager som man har i f.eks Smarty. Kodemessig er WordPress mildt sagt elendig (spaghetti deluxe) og du vil ikke tilegne deg gode vaner av å se på koden til det faenskapet. Hvis du skal se bra kode, bør du generelt sett holde deg unna de mest populære cms-løsningene og heller titte på noen PHP5-biblioteker (Zend, et par Horde-pakker, Maintainable Framework f.eks.). Et template-system du kan ta en titt på er Savant3

Endret av Josh Homme
Skrevet

Har ikke giddet å gjort noe, Før idag, Har tenkt litt på at man legger alle i en array,

Og bytter dem ut når man includer. Hva blir best da? Har sette enkelte steder har gjort sånnt;

 

	<title>{$title}</title>

?

 

Og hvordan gjør man det med plugins? Henter ut filer fra akkuratt den folder? må man når man lager templates da skrive full sti, eller burde jeg gjøre det i index.php?

Skrevet (endret)

Templates er ikke noe stort og magisk. Kan gjøres veldig enkelt. Og det er ikke spesielt mye å finne opp på nytt med mindre du vil lage din egen syntaks.

 

<?php
class Presenter {
	private $data;
	public function template ( $path ) {
		$this -> data['template'] = $path;
	}
	public function set ( $var, $val ) {
		$this -> data[$var] = $val;
	}
	public function display () {
		extract ( $this -> data );
		require ( 'templates/page.php' );
	}
}
?>

templates/page.php kan f.eks. se slik ut.

 

<!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" xml:lang="en" lang="en">

<head>

	<title>Din tittel</title>
	<meta http-equiv="Content-Type" content="text/html;charset=iso-8859-1" />

<body>

	<?php require_once ( $template ); ?>

</body>

</html>

Og du bruker den på følgende måte.

 

Business:

 

<?php

$presenter = new Presenter ();
$presenter -> template ( 'templates/members-list.php' );
$presenter -> set ( 'users', array (
	array (
		'id' => 1,
		'username' => 'Ola Nordmann'
	),
	array (
		'id' => 2,
		'username' => 'Kari Nordmann'
	)
) );

$presenter -> display ();

?>

Presentasjon:

 

<ul>
<?php foreach ( $users as $user ): ?>
	<li><?= $user['id']; ?>: <?= $user['username']; ?></li>
<?php endforeach; ?>
</ul>

Endret av Jonas

Opprett en konto eller logg inn for å kommentere

Du må være et medlem for å kunne skrive en kommentar

Opprett konto

Det er enkelt å melde seg inn for å starte en ny konto!

Start en konto

Logg inn

Har du allerede en konto? Logg inn her.

Logg inn nå
  • Hvem er aktive   0 medlemmer

    • Ingen innloggede medlemmer aktive
×
×
  • Opprett ny...