Sk!ppy Skrevet 20. juli 2010 Del Skrevet 20. juli 2010 (endret) Hei, Jeg har sett litt på forskjellige rammeverk, og sliter med å forstå hele opplegget der. Og jeg lærer best ved å gjøre - så hvorfor ikke? Jeg har til nå fått til en mappestruktur - admin - classes - modules - skins - default - - css - - images - - js - - templates .htaccess config.php index.php Alle filene er tomme, borsett fra index.php: <?php /** **mittetternavn* Framework * * @version 0.1 * @author Eivind *mittetternavn* */ session_start(); error_reporting(E_ALL); // Skrudd på under utvikling define( "APP_PATH", dirname( __FILE__ ) ."/" ); define( "*mittetternavn*", true ); date_default_timezone_set("Europe/Oslo"); function __autoload( $class_name ) { require_once('classes/' . $class_name . '.class.php' ); } $template = new template; $template->show('default'); exit(); ?> Har og template.class.php <?php // prevent this file being called directly if ( ! defined( '*mittetternavn*' ) ) { echo 'This file can only be called via the main index.php file, and not directly'; exit(); } class template { private $vars = array(); public function __construct() { } public function __set($index, $value) { $this->vars[$index] = $value; } public function show($name) { $path = APP_PATH.'/skins/'.$name.'/templates/main.tpl.php'; if(file_exists($path) == false) { echo 'Template '.$name.' not found'; return false; } foreach($this->vars as $key => $value) { $key = $value; } include($path); } } ?> Så ble jeg litt usikker, jeg vil egentlig ha header.tpl, main.tpl og footer.tpl, men ble litt usikker hvordan jeg skulle gjøre det. Så lagde kun main.tpl for nå. Jeg vil også kunne skrive {innhold}, og bruke $template->write('innhold') = 'innholdet'; Det må jo selvfølgelig gjøres med preg_replace, men hvordan skal jeg få gjort dette før filen vises? Med file_get_contents? Og der stoppet det. Jeg har skjønt såpass at jeg må ha en class for modules, en for template og en for databasen og sånt. Men hva skal disse inneholde, og hva gjør de? Edit: Har kommet litt lenger på dette rammeverket, har oppdatert. Endret 20. juli 2010 av Sk!ppy Lenke til kommentar
greygenic Skrevet 21. juli 2010 Del Skrevet 21. juli 2010 Til å være såpass ung er du jammen på god veg, Sk!ppy. Alt jeg klarte å tenke på i din alder var jenter.. Lenke til kommentar
Sk!ppy Skrevet 21. juli 2010 Forfatter Del Skrevet 21. juli 2010 Personlig gjør jeg en kombinasjon. Får jeg penger? Lenke til kommentar
Jonas Skrevet 22. juli 2010 Del Skrevet 22. juli 2010 [..] sliter med å forstå hele opplegget der. Og jeg lærer best ved å gjøre - så hvorfor ikke? Vel, uten å vite helt hva du skal lage eller hvorfor du egentlig skal lage det, så vil jeg påstå at du har et helt forferdelig dårlig utgangspunkt. Vil heller anbefale deg å prøve å benytte deg av et par rammeverk før du begir deg ut på å lage et nytt et. Du må i det minste sette deg inn i MVC skikkelig, før du lager et MVC-rammeverk. http://en.wikipedia.org/wiki/Model–view–controller http://oreilly.com/php/archive/mvc-intro.html Jeg vil også kunne skrive {innhold}, og bruke $template->write('innhold') = 'innholdet'; Hvis du absolutt har lyst til å skrive templates i et annet språk, så gjør deg selv en tjeneste og bruk allerede eksisterende kode. Det du beskriver er karakteristisk for bl.a. Smarty. Det skal samtidig nevnes at du er litt ute på bærtur ved å i det hele tatt tenke på å bruke noe sånt, med mindre du har noe meget spesifikt du ønsker å oppnå. Alt Smarty gjør er å oversette til PHP. Det vil si at du ikke får noen andre features enn hva du ville fått med PHP alene. Faktisk motsatt, du blir begrenset og kan ikke gjøre like mye. Titt heller på PHPs alternative syntax. Med dette kan man lage ganske lekre templates. <?php if ( $error ) : ?> <p class="error"><?= $error ?></p> <?php elseif ( $success ) : ?> <p class="success"><?= $success ?></p> <?php elseif ( $notice ) : ?> <p class="notice"><?= $notice ?></p> <?php endif; ?> <form method="get" action="index.php" class="frame_form"> <p class="input"> <label for="check_ticket">BillettID</label> <input type="text" name="ticketId" id="check_ticket"> </p> <p class="submit"> <input type="submit" name="submit" class="submit" value="Sjekk inn" /> <input type="submit" name="cancel" class="cancel" value="Avbryt" /> </p> <input type="hidden" name="canvas" value="admin" /> <input type="hidden" name="event" value="check" /> <input type="hidden" name="session" value="<?= htmlentities ( $_GET['session'] ) ?>" /> </form> <script type="text/javascript"> $(function(){ $('#check_ticket').focus(); }); </script> <table> <tr> <th>Id</th> <th>Navn</th> <th>Brukernavn</th> <th>E-mail</th> <th>Innsjekk</th> </tr> <?php if ( is_array ( $participants ) && count ( $participants ) > 0 ) : ?> <?php foreach ( $participants as $participant ) : ?> <tr> <td><?= $participant['ticketId']; ?></td> <td><?= $participant['realname']; ?></td> <td><?= $participant['username']; ?></td> <td><?= $participant['email']; ?></td> <td>[ <a href="index.php?canvas=admin&event=check&ticketId=<?= $participant['ticketId']; ?>&session=<?= htmlentities ( $_GET['session'] ) ?>"><?= ( $ticketstatus[$participant['ticketId']] ? '<img src="/system/images/icons/tick.png" /> Sjekket inn' : '<img src="/system/images/icons/cross.png" /> <strong>Ikke</strong> sjekket inn' ) ?></a> ]</td> </tr> <?php endforeach; ?> <?php else : ?> <tr> <td colspan="4" class="msg">Det finnes ingen deltakere til dette arrangementet.</td> </tr> <?php endif; ?> </table> 1 Lenke til kommentar
Anbefalte innlegg
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 kontoLogg inn
Har du allerede en konto? Logg inn her.
Logg inn nå