Dynamische Websites. Week 9
|
|
|
- Barbara de Boer
- 10 jaren geleden
- Aantal bezoeken:
Transcriptie
1 Dynamische Websites Week 9
2 AGENDA Nut van een framework? Relatieve URLs Views Slicing 2 step design
3 NUT VAN EEN FRAMEWORK? Heel veel code is voor jullie al geschreven, jullie moeten deze op de juiste plaatsen kunnen gebruiken en aanroepen. System folder kan je in verschillende projecten herbruiken Application folder daar komt de specifieke functionaliteit van je project telkens in
4 AGENDA Nut van een framework? Relatieve URLs Views Slicing 2 step design
5 CATEGORY_DETAIL.PHP <!DOCTYPE html> <html lang="en"> <head> <meta charset="utf-8"> <title>dynamische Websites</title> <link href="/2013/lessons/theorie08_template/frontcontroller_uitbreiding_category/application/css/bootstrap.css" rel= <link href="/2013/lessons/theorie08_template/frontcontroller_uitbreiding_category/application/css/eigenstijl.css" rel=" <div class="navbar navbar-inverse navbar-fixed-top"> <div class="container"> <div class="navbar-header"> <button type="button" class="navbar-toggle" data-toggle="collapse" data-target=".navbar-collapse"> <span class="icon-bar"></span> <span class="icon-bar"></span> <span class="icon-bar"></span> </button> <a class="navbar-brand" href="#">vehicles example</a> </div> <div class="navbar-collapse collapse"> <ul class="nav navbar-nav"> <li class=""><a href="/2013/lessons/theorie08_template/frontcontroller_uitbreiding_category/home">hom <li class=""><a href="/2013/lessons/theorie08_template/frontcontroller_uitbreiding_category/home/display <li class=""><a href="/2013/lessons/theorie08_template/frontcontroller_uitbreiding_category/vehicle/index <li class=""><a href="/2013/lessons/theorie08_template/frontcontroller_uitbreiding_category/category/ind </ul> </div> </div> </div> </head>
6 VEHICLE_DETAIL.PHP <!DOCTYPE html> <html lang="en"> <head> <meta charset="utf-8"> <title>dynamische Websites</title> <link href="/2013/lessons/theorie08_template/frontcontroller_uitbreiding_category/application/css/bootstrap.css" rel= <link href="/2013/lessons/theorie08_template/frontcontroller_uitbreiding_category/application/css/eigenstijl.css" rel=" <div class="navbar navbar-inverse navbar-fixed-top"> <div class="container"> <div class="navbar-header"> <button type="button" class="navbar-toggle" data-toggle="collapse" data-target=".navbar-collapse"> <span class="icon-bar"></span> <span class="icon-bar"></span> <span class="icon-bar"></span> </button> <a class="navbar-brand" href="#">vehicles example</a> </div> <div class="navbar-collapse collapse"> <ul class="nav navbar-nav"> <li class=""><a href="/2013/lessons/theorie08_template/frontcontroller_uitbreiding_category/home">hom <li class=""><a href="/2013/lessons/theorie08_template/frontcontroller_uitbreiding_category/home/display <li class=""><a href="/2013/lessons/theorie08_template/frontcontroller_uitbreiding_category/vehicle/index <li class=""><a href="/2013/lessons/theorie08_template/frontcontroller_uitbreiding_category/category/ind </ul> </div> </div> </div> </head>
7 URLS Wat als het path nu verandert? Overal aanpassen???
8 CATEGORY_DETAIL.PHP <!DOCTYPE html> <html lang="en"> <head> <meta charset="utf-8"> <title>dynamische Websites</title> <link href="<?php echo baseurl('/application/css/bootstrap.css');?>" rel="stylesheet" /> <link href="<?php echo baseurl('/application/css/eigenstijl.css');?>" rel="stylesheet" /> <div class="navbar navbar-inverse navbar-fixed-top"> <div class="container"> <div class="navbar-header"> <button type="button" class="navbar-toggle" data-toggle="collapse" data-target=".navbar-collapse"> <span class="icon-bar"></span> <span class="icon-bar"></span> <span class="icon-bar"></span> </button> <a class="navbar-brand" href="#">vehicles example</a> </div> <div class="navbar-collapse collapse"> <ul class="nav navbar-nav"> <li class=""><a href="<?php echo baseurl('home');?>">home</a></li> <li class=""><a href="<?php echo baseurl('home/display/dynweb');?>">display</a></li> <li class=""><a href="<?php echo baseurl('vehicle/index');?>">vehicle</a></li> <li class=""><a href="<?php echo baseurl('category/index');?>">category</a></li> </ul> </div> </div> </div> </head>
9 VIEWHELPERS.PHP <?php function baseurl($uri = '') { return str_replace('index.php', '', $_SERVER['SCRIPT_NAME']). $uri;... $_SERVER[ SCRIPT_NAME ] = /2013/lessons/theorie08_template/frontcontroller_uitbreiding_category $uri = /application/css/bootstrap.css return geeft /2013/lessons/theorie08_template/ frontcontroller_uitbreiding_category/application/css/bootstrap.css
10 NAVBAR.PHP <div class="navbar navbar-inverse navbar-fixed-top"> <div class="container"> <div class="navbar-header"> <button type="button" class="navbar-toggle" data-toggle="collapse" data-target=".navbarcollapse"> <span class="icon-bar"></span> <span class="icon-bar"></span> <span class="icon-bar"></span> </button> <a class="navbar-brand" href="#">vehicles Example</a> </div> <div class="navbar-collapse collapse"> <ul class="nav navbar-nav"> <?php foreach ($this->menuitems as $menuitem):?> <li class="<?php echo ($menuitem['link'] == getcurrentpath())? 'active' : '';?>"><a href="<?php echo baseurl($menuitem['link']);?>"><?php echo $menuitem['description'];?></a></li> <?php endforeach;?> </ul> </div> </div> </div>
11 VIEWHELPERS.PHP <?php function getcurrentpath() { $path = substr($_server['request_uri'], strlen(dirname($_server['script_name'])) + 1); $path = trim($path, '/'); // if no scriptfile in de request_uri, we assume index.php is called $path = ($path)? $path : 'index.php'; return $path;...
12 HTML VAN NAVBAR <div class="navbar navbar-inverse navbar-fixed-top"> <div class="container"> <div class="navbar-header"> <button type="button" class="navbar-toggle" data-toggle="collapse" data-target=".navbar-collapse"> <span class="icon-bar"></span> <span class="icon-bar"></span> <span class="icon-bar"></span> </button> <a class="navbar-brand" href="#">vehicles Example</a> </div> <div class="navbar-collapse collapse"> <ul class="nav navbar-nav"> <li class="active"><a href="/2013/lessons/theorie08_template/ 2stepdesign_stap03/home">home</a></li> <li class=""><a href="/2013/lessons/theorie08_template/ 2stepdesign_stap03/home/display/dynweb">display</a></li> <li class=""><a href="/2013/lessons/theorie08_template/ 2stepdesign_stap03/vehicle">vehicles</a></li> <li class=""><a href="/2013/lessons/theorie08_template/ 2stepdesign_stap03/category">categories</a></li> </ul> </div> </div> </div>
13 RELATIEVE URLS Zie dynweb2013examples/svn/theorie09/ RelatieveURLs/ frontcontroller_uitbreiding_relatieve_urls
14 AGENDA Nut van een framework? Relatieve URLs Views Slicing 2 step design
15 VIEWS In een view staat alles header, footer,... Tot nu toe hebben we de views via require_once binnen gehaald of getoond
16 VOORBEELD Footer in Vehicles voorbeeld
17 HOME.PHP <!DOCTYPE html> <html lang="en"> <head>... </head> <body>... <footer> <p>questions? <a Steegmans</a> or <a Beheydt</a> </p> </footer> </div> </body> </html>
18 DISPLAY.PHP <!DOCTYPE html> <html lang="en"> <head>... </head> <body>... <footer> <p>questions? <a Steegmans</a> or <a Beheydt</a> </p> </footer> </div> </body> </html>
19 VEHICLE_OVERVIEW.PHP <!DOCTYPE html> <html lang="en"> <head>... </head> <body>... <footer> <p>questions? <a Steegmans</a> or <a Beheydt</a> </p> </footer> </div> </body> </html>
20 VOORBEELD Uitbreiding We zijn vergeten om mevrouw Kemme ook toe te voegen als contactpersoon Probleem In alle view files moeten we nu de footer aanpassen heel veel dubbele code
21 AGENDA Nut van een framework? Relatieve URLs Views Slicing 2 step design
22 SLICING view <html> <head>... </head> <body> <div id="menu"> </div> </body> </html> heading.php navbar.php main.php footer.php OK?
23 SIMPEL VOORBEELD Simpele home pagina met een menubar, header, footer en inhoud Zie dynweb2013examples/svn/ theorie09/2stepdesign/slicing_simple_example
24 HOME_VIEW.PHP <?php require_once('layout_header.php');?> <?php require_once('layout_navbar.php');?> <h1>sliced theme</h1> <div class="row"> <div class="span12"> <h3>welcome to this sliced example.</h3> </div> </div> <hr> <?php require_once('layout_footer.php');?>
25 LAYOUT_HEADER.PHP <!DOCTYPE html> <html lang="en"> <head> <meta charset="utf-8"> <title><?php echo $title;?></title> <link href="css/bootstrap.css" rel="stylesheet" /> <link href="css/eigenstijl.css" rel="stylesheet" /> </head> <body>
26 LAYOUT_NAVBAR.PHP <div class="navbar navbar-inverse navbar-fixed-top"> <div class="container"> <div class="navbar-header"> <button type="button" class="navbar-toggle" data-toggle="collapse" data-target=".navbar-collapse"> <span class="icon-bar"></span> <span class="icon-bar"></span> <span class="icon-bar"></span> </button> <a class="navbar-brand" href="#">slicing Example</a> </div> <div class="navbar-collapse collapse"> <ul class="nav navbar-nav"> <li class=""><a href="#">home</a></li> <li class=""><a href="#">item 1</a></li> <li class=""><a href="#">item 2</a></li> <li class=""><a href="#">item 3</a></li> </ul> </div> </div> </div> <div class="container">
27 LAYOUT_FOOTER.PHP <footer> <p>questions? <a Elke Steegmans</a> or <a Mieke Kemme</a> or <a Kurt Beheydt</a> </p> </footer> </div> </body> </html>
28 SLICING Probleem indien we de layout_navbar.php eruit laten invalid HTML-pagina pagina s op zich zijn niet herbruikbaar NOK!
29 Front controller Relatieve URLs Views Slicing 2 step design AGENDA
30 PUZZEL- FRAME 2 STEP DESIGN layout partials view PUZZEL- STUKJES default.php <html> <head>... </head> <body> header.php view navbar.php <div class="container"> footer.php view view.php view </div> </body> </html> view OK?
31 2 STEP DESIGN Stap 1 logische view opbouwen puzzelframe en alle puzzelstukjes klaar leggen Stap 2 HTML genereren op basis van de puzzel (= puzzelframe en puzzelstukjes) nu de HTML genereren
32 2 STEP DESIGN - STAP 1 SIMPEL VOORBEELD Simpele home pagina met een menubar, header, footer en inhoud Zie dynweb2013examples/svn/ theorie09/2stepdesign/ 2stepdesign_simple_example
33 DEFAULT.PHP <!DOCTYPE html> <html lang="en"> <head> <meta charset="utf-8"> <?php require_once('partial_header.php');?> <?php require_once('partial_navbar.php');?> </head> <body> <div class="container"> <?php require_once( home_view.php );?> <?php require_once('partial_footer.php');?> </div> </body> </html>
34 PARTIAL_HEADER.PHP <title><?php echo $title;?></title> <link href="css/bootstrap.css" rel="stylesheet" /> <link href="css/eigenstijl.css" rel="stylesheet" />
35 PARTIAL_NAVBAR.PHP <div class="navbar navbar-inverse navbar-fixed-top"> <div class="container"> <div class="navbar-header"> <button type="button" class="navbar-toggle" data-toggle="collapse" data-target=".navbar-collapse <span class="icon-bar"></span> <span class="icon-bar"></span> <span class="icon-bar"></span> </button> <a class="navbar-brand" href="#">slicing Example</a> </div> <div class="navbar-collapse collapse"> <ul class="nav navbar-nav"> <li class=""><a href="#">home</a></li> <li class=""><a href="#">item 1</a></li> <li class=""><a href="#">item 2</a></li> <li class=""><a href="#">item 3</a></li> </ul> </div> </div> </div>
36 HOME_VIEW.PHP <h1>two step design pattern</h1> <p>welcome to this two step design pattern example.</p>
37 PARTIAL_FOOTER.PHP <footer> <p>questions? <a Steegmans</a> or <a Kemme</a> or <a Beheydt</a> </p> </footer>
38 2 STEP DESIGN - STAP 1 SIMPEL VOORBEELD Elk stukje van de view is een op zich staand stuk code en kan herbruikt worden in andere voorbeelden probleem van Slicing is weggewerkt hierdoor OK!
39 2 STEP DESIGN - STAP 1 VEHICLE VOORBEELD Op elke pagina zijn de volgende HTML stukken niet hetzelfde het grootste gedeelte van de body de header waar de titel verschillend is de navbar waar de active URL telkens verschillend is
40 2 STEP DESIGN - STAP 1 VEHICLE VOORBEELD Voorbeeld u webontwerp.khleuven.be/ theorie09/2stepdesign/2stepdesign_stap00/ vehicle/index Zie dynweb2013examples/svn/ theorie09/2stepdesign/2stepdesign_stap00
41 INDEX.PHP <?php session_start(); define('application_path', 'application/'); define('system_path', 'system/'); require_once(application_path. 'config.php'); require_once(system_path. 'model/db.php'); require_once(system_path. 'controller/controller.php'); require_once(system_path. 'view/viewhelpers.php'); $controller = new Controller(); $controller->run(); Code Onveranderd
42 CONTROLLER.PHP <?php class Controller { private function parseuri() { $scriptprefix = str_replace(self::controller_file, '', $_SERVER['SCRIPT_NAME']); $uri = str_replace(self::controller_file, '', $_SERVER['REQUEST_URI']); $path = substr($uri, strlen($scriptprefix)); $path = preg_replace('/[^a-za-z0-9]\//', "", $path); $path = trim($path, $action, $params) = explode("/", $path, 3); if (isset($controller)) { $this->setcontroller($controller); if (isset($action)) { $this->setaction($action); if (isset($params)) { $this->setparams(explode("/", $params)); Code Onveranderd
43 CONTROLLER.PHP... public function run() { // checking the parameter count, using Reflection ( $reflector = new ReflectionClass($this->controller); $method = $reflector->getmethod($this->action); $parameters = $method->getnumberofrequiredparameters(); if (($parameters) > count($this->params)) { die("action '$this->action' in class '$this->controller' expects $parameters mandatory parameter(s), you only provided ". count($this->params). "."); // create an instance of the controller as an object $controller = new $this->controller(); // call the method based on $this->action and the params call_user_func_array(array($controller, $this->action), $this->params); Code Onveranderd
44 VEHICLECONTROLLER.PHP <?php require_once(system_path. 'view/template.php'); class VehicleController { private $_vehiclemapper; private $_template; private $_view; private $_pagetitle; private $_menuitems; private $_text; public function construct () { require_once(application_path. 'model/vehiclemapper.php'); $this->_vehiclemapper = new VehicleMapper();
45 VEHICLECONTROLLER.PHP... public function index() { $this->_view = 'vehicle_overview.php'; $this->_pagetitle = 'Vehicles'; $menumapper = new MenuMapper(); $this->_menuitems = $menumapper->getmenuitems(); $this->_object = $this->_vehiclemapper->getall(); require_once(application_path. 'view/default.php');...
46 MENUMAPPER.PHP <?php class MenuMapper { public function getmenuitems() { $menuitems = array( array( 'link' => 'home', 'description' => 'home', ), array( 'link' => 'home/display/dynweb', 'description' => 'display', ), array( 'link' => 'vehicle', 'description' => 'vehicles', ), ); return $menuitems;
47 VEHICLEMAPPER.PHP <?php require_once(system_path. 'model/db.php'); require_once(application_path. 'model/vehicle.php'); class VehicleMapper { private $_db; public function construct() { $this->_db = Db::getInstance(); public function add($object) {... public function getall() { $query = " SELECT * FROM vehicles "; return $this->_db->queryone($query, 'Vehicle'); public function get($id) {... Code Onveranderd
48 DEFAULT.PHP <!DOCTYPE html> <html lang="en"> <head> <?php require_once('headermeta.php');?> </head> <body> <?php require_once('navbar.php');?> <div class="container"> <h1><?php echo $this->_pagetitle;?></h1> <?php require_once("$this->_view");?> <hr> <?php require_once('footer.php');?> </div> </body> </html>
49 HEADERMETA.PHP <meta charset="utf-8"> <title><?php echo $this->_pagetitle;?></title> <link href="<?php echo baseurl('css/bootstrap.css');?>" rel="stylesheet"> <link href="<?php echo baseurl('css/eigenstijl.css');?>" rel="stylesheet">
50 2 STEP DESIGN - STAP 1 PUZZEL- FRAME SAMENVATTING layout partials view PUZZEL- STUKJES default.php <html> <head>... </head> <body> header.php view navbar.php <div class="container"> footer.php view view.php view </div> </body> </html> view
51 2 STEP DESIGN REFACTORING STAP 1 Probleem 1 Stel dat we de default.php file anders willen noemen => op heel veel plaatsen nu code aanpassen We willen een klasse die we in andere projecten ook kunnen gebruiken om views mee op te bouwen
52 2 STEP DESIGN REFACTORING STAP 1 Probleem 2 Eigenlijk ook geen 2 step design op dit moment je neemt je puzzel, dan begin je al HTML te maken, dan leg je het eerste puzzelstukje erin, en maak je verder HTML, en zo ga je verder voor ieder puzzelstukje
53 2 STEP DESIGN REFACTORING STAP 1 Oplossing Template klasse hier de 2 stappen in implementeren en herbruikbaarheid eerst partials en view zetten (eerst puzzelframe en puzzelstukjes maken) daarna renderen van volledige HTML (daarna HTML renderen van volledige puzzel ( = puzzelframe + puzzelstukjes))
54 2 STEP DESIGN PUZZEL- FRAME REFACTORING STAP 1 layout partials view PUZZEL- STUKJES default.php <html> <head>... </head> <body> <div class="container"> header.php view navbar.php view footer.php view.php view </div> </body> </html> view
55 2 STEP DESIGN - STAP 1+2 VEHICLE VOORBEELD Toon het overzicht van alle vehicles die tot nu toe in de DB zitten vehicle/index Zie dynweb2013examples/svn/ theorie09/2stepdesign_stap01
56 INDEX.PHP <?php session_start(); define('application_path', 'application/'); define('system_path', 'system/'); require_once(application_path. 'config.php'); require_once(system_path. 'model/db.php'); require_once(system_path. 'controller/controller.php'); require_once(system_path. 'view/viewhelpers.php'); $controller = new Controller(); $controller->run(); Code Onveranderd
57 CONTROLLER.PHP <?php class Controller { private function parseuri() { $scriptprefix = str_replace(self::controller_file, '', $_SERVER['SCRIPT_NAME']); $uri = str_replace(self::controller_file, '', $_SERVER['REQUEST_URI']); $path = substr($uri, strlen($scriptprefix)); $path = preg_replace('/[^a-za-z0-9]\//', "", $path); $path = trim($path, $action, $params) = explode("/", $path, 3); if (isset($controller)) { $this->setcontroller($controller); if (isset($action)) { $this->setaction($action); if (isset($params)) { $this->setparams(explode("/", $params)); Code Onveranderd
58 CONTROLLER.PHP... public function run() { // checking the parameter count, using Reflection ( $reflector = new ReflectionClass($this->controller); $method = $reflector->getmethod($this->action); $parameters = $method->getnumberofrequiredparameters(); if (($parameters) > count($this->params)) { die("action '$this->action' in class '$this->controller' expects $parameters mandatory parameter(s), you only provided ". count($this->params). "."); // create an instance of the controller as an object $controller = new $this->controller(); // call the method based on $this->action and the params call_user_func_array(array($controller, $this->action), $this->params); Code Onveranderd
59 VEHICLECONTROLLER.PHP <?php require_once(system_path. 'view/template.php'); require_once(application_path. 'model/menumapper.php'); class VehicleController { private $_vehiclemapper; private $_template; public function construct () { $this->_template = new Template(); $menumapper = new MenuMapper(); $this->_template->menuitems = $menumapper->getmenuitems(); $this->_template->setpartial('navbar'); $this->_template->setpartial('headermeta'); $this->_template->setpartial('footer'); require_once(application_path. 'model/vehiclemapper.php'); $this->_vehiclemapper = new VehicleMapper();
60 <?php class Template { TEMPLATE.PHP const TEMPLATE_PATH = 'application/view/'; const LAYOUT_FOLDER = 'layouts/'; const PARTIALS_FOLDER = 'partials/'; protected $data = array(); protected $content = array(); protected $partials = array(); protected $layoutfile; private $pagetitle; $this->layoutfile = application/view/layouts/default.php // on instantiation: check the layoutfile public function construct($layoutfile = 'default') { $layoutfile = self::layout_folder. $this->addextension($layoutfile); if (file_exists(self::template_path. $layoutfile)) { $this->layoutfile = self::template_path. $layoutfile; else { error_log("not found: $layoutfile"); exit;
61 VEHICLECONTROLLER.PHP <?php require_once(system_path. 'view/template.php'); require_once(application_path. 'model/menumapper.php'); class VehicleController { private $_vehiclemapper; private $_template; public function construct () { $this->_template = new Template(); $menumapper = new MenuMapper(); $this->_template->menuitems = $menumapper->getmenuitems(); $this->_template->setpartial('navbar'); $this->_template->setpartial('headermeta'); $this->_template->setpartial('footer'); require_once(application_path. 'model/vehiclemapper.php'); $this->_vehiclemapper = new VehicleMapper();
62 MENUMAPPER.PHP <?php class MenuMapper { public function getmenuitems() { $menuitems = array( array( 'link' => 'home', 'description' => 'home', ), array( 'link' => 'home/display/dynweb', 'description' => 'display', ), array( 'link' => 'vehicle', 'description' => 'vehicles', ), ); return $menuitems;
63 VEHICLECONTROLLER.PHP <?php require_once(system_path. 'view/template.php'); require_once(application_path. 'model/menumapper.php'); class VehicleController { private $_vehiclemapper; private $_template; public function construct () { $this->_template = new Template(); $menumapper = new MenuMapper(); $this->_template->menuitems = $menumapper->getmenuitems(); $this->_template->setpartial('navbar'); $this->_template->setpartial('headermeta'); $this->_template->setpartial('footer'); require_once(application_path. 'model/vehiclemapper.php'); $this->_vehiclemapper = new VehicleMapper();
64 TEMPLATE.PHP <?php class Template {... $this->data[ menuitems ] = array die getmenuitems methode van MenuMapper klasse teruggeeft // automatic getter and setter, remapping every value to the protected attribute // read more about this on public function set($name, $value) { $this->data[$name] = $value;
65 VEHICLECONTROLLER.PHP <?php require_once(system_path. 'view/template.php'); require_once(application_path. 'model/menumapper.php'); class VehicleController { private $_vehiclemapper; private $_template; public function construct () { $this->_template = new Template(); $menumapper = new MenuMapper(); $this->_template->menuitems = $menumapper->getmenuitems(); $this->_template->setpartial('navbar'); $this->_template->setpartial('headermeta') $this->_template->setpartial('footer'); require_once(application_path. 'model/vehiclemapper.php'); $this->_vehiclemapper = new VehicleMapper();
66 TEMPLATE.PHP // helper to generate a partial public function setpartial($partialname, $partialfile = '') { // if $partialfile is not set, use the partialname as filename $partialfile = ($partialfile)? $partialfile : $partialname; $partialfile = self::template_path. self::partials_folder. $this->addextension($partialfile); if (file_exists($partialfile)) { $this->partials[$partialname] = $partialfile; else { error_log("not found: $partialfile"); exit; return $this; $this->partials = array { navbar => application/view/partials/navbar.php headermeta => application/view/partials/headermeta.php footer => application/view/partials/footer.php
67 VEHICLECONTROLLER.PHP... public function index() { $this->_template->_vehicles = $this->_vehiclemapper->getall(); $this->_template->setpagetitle('vehicles'); $this->_template->render('vehicle_overview');...
68 TEMPLATE.PHP public function setpagetitle($title) { $this->pagetitle = $title; $this->pagetitle = Vehicles
69 VEHICLECONTROLLER.PHP... public function index() { $this->_template->_object = $this->_vehiclemapper->getall(); $this->_template->setpagetitle('vehicles'); $this->_template->render('vehicle_overview');...
70 TEMPLATE.PHP // render the main content of the site // while rendering the layout, render the partials as well public function render($templatefile) { $templatefile = $this->addextension($templatefile); if (file_exists(self::template_path. $templatefile)) { $this->content = $this->renderview(self::template_path. $templatefile); else { error_log("not found: $templatefile"); exit; $this->renderlayout(); $this->content = volledige HTML van vehicle_overview als een string
71 TEMPLATE.PHP private function renderview($view) { ob_start(); include($view); $data = ob_get_contents(); ob_end_clean(); return $data; deze functie maakt een buffer in waar char per char inkomt en dus waar uiteindelijk 1 grote string in zit (de view die we meegeven als parameter)
72 TEMPLATE.PHP // render the main content of the site // while rendering the layout, render the partials as well public function render($templatefile) { $templatefile = $this->addextension($templatefile); if (file_exists(self::template_path. $templatefile)) { $this->content = $this->renderview(self::template_path. $templatefile); else { error_log("not found: $templatefile"); exit; $this->renderlayout();
73 TEMPLATE.PHP public function renderlayout() { include($this->layoutfile); $this->layoutfile = application/view/layouts/default.php dit haalt default.php binnen en gaat dit lijn per lijn uitvoeren
74 DEFAULT.PHP <!DOCTYPE html> <html lang="en"> <head> <?php $this->renderpartial('headermeta');?> </head> <body> <?php $this->renderpartial('navbar');?> <div class="container"> <h1><?php echo $this->getpagetitle();?></h1> <?php $this->getcontent();?> <hr> <?php $this->renderpartial('footer');?> </div> </body> </html>
75 TEMPLATE.PHP public function renderpartial($name) { if (array_key_exists($name, $this->partials)) { echo $this->renderview($this->partials[$name]); else { error_log("partial not rendered: $name"); print de inhoud van headermeta, dan van navbar,...
76 2 STEP DESIGN - STAP 1+2 SAMENVATTING Template klasse stap 1: eerst wordt het puzzelframe en de puzzelstukjes gezet puzzelframe: default.php puzzelstukjes: header.php, navbar.php, view.php en footer.php stap 2: dan wordt de HTML pas gerenderd (dus de HTML wordt in 1 keer gerenderd als de puzzel klaar is)
77 2 STEP DESIGN - STAP 1+2 UITBREIDING Uitbreiding zorg er ook voor dat je het overzicht van alle categorieen kunt zien Zie dynweb2013examples/svn/ theorie09/2stepdesign_stap02_uitbreiding_category
78 2 STEP DESIGN - STAP 1+2 NOG VERDERE REFACTORING Probleem veel dubbele code refactoren door super klasse van Controller klassen te maken Zie dynweb2013examples/svn/ theorie09/2stepdesign_stap03
79 2 STEP DESIGN - STAP 1+2 NOG VERDERE REFACTORING Oplossing Controller klasse noemt nu FrontController klasse Superklasse van HomeController, VehicleController,... gemaakt noemt Controller klasse
80 FRONTCONTROLLER.PHP <?php class FrontController { private function parseuri() { $scriptprefix = str_replace(self::controller_file, '', $_SERVER['SCRIPT_NAME']); $uri = str_replace(self::controller_file, '', $_SERVER['REQUEST_URI']); $path = substr($uri, strlen($scriptprefix)); $path = preg_replace('/[^a-za-z0-9]\//', "", $path); $path = trim($path, $action, $params) = explode("/", $path, 3); if (isset($controller)) { $this->setcontroller($controller); if (isset($action)) { $this->setaction($action); if (isset($params)) { $this->setparams(explode("/", $params));
81 FRONTCONTROLLER.PHP... public function run() { // checking the parameter count, using Reflection ( $reflector = new ReflectionClass($this->controller); $method = $reflector->getmethod($this->action); $parameters = $method->getnumberofrequiredparameters(); if (($parameters) > count($this->params)) { die("action '$this->action' in class '$this->controller' expects $parameters mandatory parameter(s), you only provided ". count($this->params). "."); // create an instance of the controller as an object $controller = new $this->controller(); // call the method based on $this->action and the params call_user_func_array(array($controller, $this->action), $this->params);
82 CONTROLLER.PHP <?php require_once(system_path. 'view/template.php'); require_once(application_path. 'model/menumapper.php'); class Controller { protected $_template; public function construct () { $this->_template = new Template(); $menumapper = new MenuMapper(); $this->_template->menuitems = $menumapper->getmenuitems(); // method chaining in php. $this->_template->setpartial('navbar') ->setpartial('headermeta') ->setpartial('footer');
83 HOMECONTROLLER.PHP <?php require_once(system_path. 'controller/controller.php'); class HomeController extends Controller { public function construct () { parent:: construct(); public function index() { $this->_template->setpagetitle('welcome to controller home, action index'); $this->_template->render('home'); public function display($text = 'no text') { $this->_template->setpagetitle('welcome to controller home, action display'); $this->_template->text = $text; $this->_template->render('home_display');
84 AGENDA Nut van een framework? Relatieve URLs Views Slicing 2 step design?
85 LABO Kopieer de laatste versie van de system folder naar je eigen project Refactor de rest van je project (je application folder) zodat je geen dubbele code in je views hebt en werk volgens het 2 step design patroon begin met player_overview
Dynamische Websites. Week 6. vrijdag 25 oktober 13
Dynamische Websites Week 6 AGENDA Herhaling Databank SQL Injection Ontwerp OO _ indien private of protected magic zo weinig mogelijk php! View MVC home.php confirm.php vehicledetail.php Controller Model
Object Oriented Programming
Object Oriented Programming voor webapplicaties Door Edwin Vlieg Waarom OOP? Basis uitleg over OOP Design Patterns ActiveRecord Model View Controller Extra informatie Vragen OOP Object Oriented Programming
Dynamische Websites. Week 2
Dynamische Websites Week 2 AGENDA Labo 1 GET, POST Navigatie, etc Varia 1 2
MVC BASICS 2. Kevin Picalausa
MVC BASICS 2 Kevin Picalausa 1 Forms 2 Action en Method Action Vertelt de Browser naar waar de form data (informatie) door te zenden. URL kan relatief of absoluut zijn. Method De manier waarop de form
Kleine cursus PHP5. Auteur: Raymond Moesker
Kleine cursus PHP5 Auteur: Raymond Moesker Kleine cursus PHP PHP is platform en CPU onafhankelijk, open source, snel, heeft een grote userbase, het is object georiënteerd, het wordt omarmd door grote bedrijven
Drupal theming. 28 april 2014 - CVO Crescendo
Drupal theming 28 april 2014 - CVO Crescendo About-me.tpl.php Esther De Jonghe Drupal front end developer verleden: @cronos, @adforce, @puresign nu: freelance (wwwonderland) @estherdejonghe Wat is theming?
Tentamen Object Georiënteerd Programmeren TI1200 30 januari 2013, 9.00-12.00 Afdeling SCT, Faculteit EWI, TU Delft
Tentamen Object Georiënteerd Programmeren TI1200 30 januari 2013, 9.00-12.00 Afdeling SCT, Faculteit EWI, TU Delft Bij dit tentamen mag je geen gebruik maken van hulpmiddelen zoals boek of slides. Dit
Hosting. Bestelformulier en domeinnaamcontrole. Januari, 2013. WeFact B.V. Kuiper 7a 5521 DG Eersel Nederland. w: www.wefact.nl e: helpdesk@wefact.
Hosting Januari, 2013 Bestelformulier en domeinnaamcontrole WeFact B.V. Kuiper 7a 5521 DG Eersel Nederland w: www.wefact.nl e: [email protected] Introductie Algemeen In deze handleiding wordt uitgelegd
Les 12 : database koppeling, opmaken van template, webstructuur en afdrukken van gegevens. (deel2).
Les 12 : database koppeling, opmaken van template, webstructuur en afdrukken van gegevens. (deel2). In de volgende reeks lessen zal alle vorige leerstof uitgebreid aan het bod komen. Zie ook de vorige
Extra voorbeelden. 1 Objectenhierarchie. 2 Kalender
Extra voorbeelden 1 Objectenhierarchie 2 Kalender PHP EN MYSQL de basis 1.1 Uitgebreid voorbeeld van een objectenhierarchie We zullen een aantal kenmerken van objectgeoriënteerd programmeren toelichten
Les 15 : updaten van gegevens in de database (deel2).
Les 15 : updaten van gegevens in de database (deel2). In de volgende reeks lessen zal alle vorige leerstof uitgebreid aan het bod komen. Zie ook de vorige lessen en documenten om informatie op te zoeken
Een website maken met databasetoegang.
Hoofdstuk 5 Een website maken met databasetoegang. In dit hoofdstuk gaan we het weblog dat je in hoofdstuk 4 hebt gemaakt verder uitbreiden. Een belangrijk onderdeel wordt toegevoegd aan de applicatie,
IMP Uitwerking week 13
IMP Uitwerking week 13 Opgave 1 Nee. Anders moet bijvoorbeeld een venster applicatie een subklasse zijn van zowel Frame en WindowListener. Als de applicatie ook een button of een menu heeft, dan moet het
Handleiding Authenticatie
Handleiding Authenticatie Versie: 06-05-2019 Historie 06-05-2019 Optional rollsenginelicensekey parameter toegevoegd (deze vervangt optional parameter rollsenginelicenseid). 11-09-2017 Hoofdstuk Uniek
Testondersteuning in frameworks voor webapplicaties
Testondersteuningin frameworksvoorwebapplicaties MirkovanEde(9902236) NijmeegsInstituutvoorInformaticaenInformatiekunde RadboudUniversiteitNijmegen Versie:1.1,11februari2009 Omvang:3ects Samenvatting Frameworkszijneenveelgebruiktebasisvoorhetbouwenvaneenwebapplicatie.
Een sjabloon (in PHP template genaamd) bevat de volledige
Html-sjablonen in PHP 12 Een sjabloon (in PHP template genaamd) bevat de volledige opmaak van een (html-)pagina. Code en opmaak zijn hierbij gescheiden. Terwijl veel startende programmeurs code en opmaak
Datatypes Een datatype is de sort van van een waarde van een variabele, veel gebruikte datatypes zijn: String, int, Bool, char en double.
Algemeen C# Variabele Een variabele is een willekeurige waarde die word opgeslagen. Een variabele heeft altijd een datetype ( De soort waarde die een variabele bevat). Datatypes Een datatype is de sort
! GeoNetwork INSPIRE Atom!
GeoNetwork INSPIRE Atom GeoNetwork INSPIRE Atom 1 Configuration 2 Metadata editor 3 Services 3 Page 1 of 7 Configuration To configure the INSPIRE Atom go to Administration > System configuration and enable
ContentSearch. Deep dive
ContentSearch Deep dive 2 Waarvoor in te zetten? Alternatief voor database queries Waar performance een issue kan zijn Daadwerkelijk frontend Site Search Mogelijk niet de beste optie maar wel goedkoop
HTML in Outlook 2007. Hoe zorgt u ervoor dat uw email goed in beeld komt?
HTML in Outlook 2007 Hoe zorgt u ervoor dat uw email goed in beeld komt? HTML in Outlook 2007 Inleiding Emark Mail biedt u de mogelijkheid om kant en klare HTML nieuwsbrieven in te laden en te versturen.
Handleiding Woonz.nl iframe
Handleiding Woonz.nl iframe Woonz.nl biedt de mogelijkheid om uw actuele woningaanbod op Woonz.nl op uw website te tonen. Hiervoor dient u eerst een API-key te ontvangen van Woonz.nl, dit is een sleutel
Hoe maak je een nieuwbrief template met MailChimp? In dit document leg ik je stap voor stap uit hoe je met het drag and drop systeem van MailChimp jouw eigen layout bij elkaar sleept. Je geeft jouw template
Formulier maken en opvangen met php
Welkom bij mijn PHP tutorial (Deel 2) Ik ga in deze delen PHP uitleggen, dit doe ik in het programma notepad++ (gratis) deze kunt u downloaden van www.richard3332.nl/downloads.php Als u beschikt over dreamweaver
Uitwerkingen derde deeltentamen Gameprogrammeren Vrijdag 6 november 2015, uur
Uitwerkingen derde deeltentamen Gameprogrammeren Vrijdag 6 november 2015, 11.00-13.00 uur 1. Deze opgave bestaat uit een aantal deelvragen. Houd het antwoord kort: één of twee zinnen per onderdeel kan
Zonnepanelen Hoe krijg je de data op je website?
Zonnepanelen Hoe krijg je de data op je website? Beste website-bezoeker, Omdat ik al heel wat vragen kreeg over het gedeelte zonne-energie op mijn website, heb ik besloten om de werkwijze die ik gevolgd
Project Embedded Linux Domaza. Elektronica-ICT. Dimitri Kozakiewiez Jonas Govaerts. Academiejaar 2014-2015
Project Embedded Linux Domaza Elektronica-ICT Dimitri Kozakiewiez Jonas Govaerts Academiejaar 2014-2015 Campus Geel, Kleinhoefstraat 4, BE-2440 Geel 5 2 INHOUDSTAFEL INHOUDSTAFEL... 2 1 DOMAZA... 3 1.1
Formulieren en waarden posten naar een view
Hoofdstuk 4 Formulieren en waarden posten naar een view Waarden posten naar een view in een Zend-project gaat heel anders dan dat je gewend bent. Om dit mechanisme te leren, kunnen we het beste een eenvoudige
Formulieren maken met Dreamweaver CS 4/CS 5
Formulieren maken met Dreamweaver CS 4/CS 5 In deze handleiding leer je om een formulier en elementen die je binnen een formulier kunt gebruiken, te ontwerpen met Dreamweaver. Het uitgangspunt is dat dit
Verder zijn er de nodige websites waarbij voorbeelden van objectgeoriënteerd PHP (of Objec Oriented PHP, OO PHP) te vinden zijn.
Objectgeoriënteerd PHP (versie 5) Kennisvereisten: Ervaring met programmeren in PHP met MySQL Je weet wat een class of klasse is Je weet wat een instantie van een klasse (een object) is Je weet wat een
Externe pagina s integreren in InSite en OutSite
Externe pagina s integreren in InSite en OutSite Document-versie: 1.1 Datum: 04-10-2013 2013 AFAS Software Leusden Niets uit deze uitgave mag verveelvoudigd worden en/of openbaar gemaakt worden door middel
Inhoud. Pagina 2 van 13
Code Conventie Inhoud PHP algemeen... 3 Namen van variabelen... 3 Enkele of dubbele aanhalingstekens... 3 Globale variabelen... 3 Namen van functies... 3 Argumenten van functies... 3 Formattering... 4
Een unit test is geen integratie test. Niet het hele systeem, maar onderdelen van een systeem worden getest.
WAT IS EEN UNIT TEST? Een unit test is een test om de functionaliteit van stukken code te controleren. Een goede unit test waarborgt een consistente werking van een klein onderdeel (een unit ) van de broncode.
Maak een pivot uit een Generic.List
Maak een pivot uit een Generic.List Introductie in extensions, reflection en code generation Nivo: 400 Introductie In bepaalde gevallen komt het voor dat je een Generic.List van een specifieke class hebt,
Inleiding Software Engineering! Unit Testing, Contracten, Debugger! 13 Februari 2014!
Inleiding Software Engineering Unit Testing, Contracten, Debugger 13 Februari 2014 Beknopte info over Unit Testing en Contracten kan je vinden op het einde van dit document. Eclipse beschikt over een handige
TaskCentre Web Service Connector: Creëren van requests in Synergy Enterprise
TaskCentre Web Service Connector: Creëren van requests in Synergy Enterprise Inhoudsopgave 1. Voorbereiding... 4 2. Web Service Connector tool configuratie... 5 3. TaskCentre taak voor het aanmaken van
Datastructuren Werkcollege Intro
Bart Hijmans, Universiteit Leiden. Universiteit Leiden The Netherlands Focus 1 19 ˆ Ervaring in gebruik en implementatie van datastructuren ˆ Kennis van mogelijkheden ˆ Programmeren voor andere programmeurs
AJAX (XMLHttpRequest)
AJAX (XMLHttpRequest) Ajax is hot. De meesten die met webdesign bezig zijn hebben er wel al van gehoord, veronderstel ik. Voor diegenen die er nog niet van hoorden, of nog niet mee werkten volgt hier een
Handleiding RS Form! 1.0.4
Handleiding RS Form! 1.0.4 Inhoud 1. Controlepaneel... 3 2. Forms Manager... 4 2.1 Nieuwe form aanmaken... 4 2.2 Nieuwe fields toevoegen... 7 2.3 Wijzigen/verwijderen bestaande Forms, Fields... 10 Versie
What is the advantage of using expression language instead of JSP scriptlets and JSP expressions?
Web 3: Theorievragen No Scriptlets What is the advantage of using expression language instead of JSP scriptlets and JSP expressions? Geen javacode tussen de html. What is the difference between the. operator
Universiteit van Amsterdam FNWI. Voorbeeld van tussentoets Inleiding programmeren
Universiteit van Amsterdam FNWI Voorbeeld van tussentoets Inleiding programmeren Opgave 1: Wat is de uitvoer van dit programma? public class Opgave { static int i = 0 ; static int j = 1 ; int i = 1 ; int
Websitecursus deel 1 HTML
Websitecursus deel 1 HTML WebCie A Eskwadraat [email protected] 8 april 2015 Inleiding Website cursus in drie delen: HTML CSS Javascript We gaan uit van geen voorkennis. Als je vragen hebt, stel ze!
Vakgroep CW KAHO Sint-Lieven
Vakgroep CW KAHO Sint-Lieven Objecten Programmeren voor de Sport: Een inleiding tot JAVA objecten Wetenschapsweek 20 November 2012 Tony Wauters en Tim Vermeulen [email protected] en [email protected]
Hoofdstuk 1: Inleiding. Hoofdstuk 2: Klassen en objecten Datahiding: afschermen van implementatiedetails. Naar de buitenwereld toe enkel interfaces.
Hoofdstuk 1: Inleiding Objectoriëntatie: 1. Objecten & klassen: samenwerking van componenten om bepaald doel te bereiken; herbruikbaarheid. 2. Encapsulation: afschermen gedragingen en kenmerken van de
Javascript oefenblad 1
Leer de basis van Javascript. Javascript oefenblad 1 Niels van Velzen Javascript oefenblad 1 Pagina 2 Inleiding Javascript is niet altijd even makkelijk. Vooral aan het begin is het even wennen hoe de
MARTINA. Wist je dat..? Truckjes en weetjes in Drupal 7. 6. Artikels, lengte en aantal op frontpagina (en welkomtekst zonder lees meer )
MARTINA Wist je dat..? Truckjes en weetjes in Drupal 7 Inhoud: 1. Inlogknop 2. Aangepast beheerdermenu 3. Actieve pagina in de broodkruimel 4. Afbeelding op zoekknop (en geen tekst) [CSS] 5. Logo met link
Zo kan je linken maken tussen je verschillende groepen van gegevens.
1 1. Entity Reference Entity Reference zal ook een onderdeel zijn van Drupal 8. Het is een module van het type veld. Het is een heel krachtige module die toelaat om referenties te maken tussen verschillende
Uitwerking Aanvullend tentamen Imperatief programmeren Woensdag 24 december 2014, 13.30 15.30 uur
Uitwerking Aanvullend tentamen Imperatief programmeren Woensdag 24 december 2014, 13.30 15.30 uur 1. deze opgave telt voor 30% van het totaal. Schrijf een compleet programma, dat door de gebruiker vanaf
SEO plan. Bart Janssen Semester 4 Fontys ICT & Media Design
SEO plan Bart Janssen Semester 4 Fontys ICT & Media Design Inleiding Mijn adviesplan heb ik geschreven voor mijn persoonlijke leerportfolio. Het leerportfolio staat online op http://www.bartjanssen.eu.
Formulieren maken met Dreamweaver CS 4
Formulieren maken met Dreamweaver CS 4 In deze handleiding leer je om een formulier en elementen die je binnen een formulier kunt gebruiken, te ontwerpen met Dreamweaver. Het uitgangspunt is dat dit zoveel
ASP.NET Test 2009-2010. Jan Van Ryckeghem
ASP.NET Test 2009-2010 Jan Van Ryckeghem Inhoud Exceptionhandling H4... 3 Try Catch slide 25... 3 Error pagina slide 29... 3 Error.aspx... 3 Error.aspx.cs... 4 Web.config... 4 Logbestand aanmaken... 4
Introductie en even voorstellen
Introductie en even voorstellen Onlangs is PHP5 uitgekomen. PHP5 is een grote stap voorwaards voor iedereen die met deze populaire programmeertaal werkt. In deze presentatie bekijken we de belangrijkste
APPLICATIEBOUW 3E COLLEGE: OBJECT GEORIËNTEERD PROGRAMMEREN, METHODEN, PARAMETERS, SCOPE VAN VARIABELEN. Onderdeel van SmartProducts
APPLICATIEBOUW 3E COLLEGE: OBJECT GEORIËNTEERD PROGRAMMEREN, METHODEN, PARAMETERS, SCOPE VAN VARIABELEN Onderdeel van SmartProducts INHOUD COLLEGE 3 Scope van variabelen {3.9} Class ontwerpen en maken,
Programmeren voor het web met PHP
Programmeren voor het web met PHP De meestgebruikte programmeertaal voor websites is PHP. Het is een heel handige taal waarmee je een eigen slimme website kunt bouwen. Je gaat nu leren hoe PHP werkt, en
HTML. inhoud structuur semantiek. HTML5 & semantiek of betekenis. semantisch coderen. Semantisch coderen: waarom? 3/09/2016
HTML 3/09/2016 STUDIEPUNTEN theoretisch luik SEMANTIEK en META-ELEMENTEN 1. Recap (Structuur) 2. Semantiek en semantisch coderen 3. Metadata 4. Attributen van HTML elementen 5. Optimaliseren basis HTML5
Overerving & Polymorfisme
Overerving & Polymorfisme Overerving Sommige klassen zijn speciaal geval van andere klasse Docent is een speciaal geval van werknemer, dwz. elke docent is ook werknemer Functionaliteit van docent = functionaliteit
Template maken voor Webshops van FreeWebShop
Template maken voor Webshops van FreeWebShop Versie 1 Peter Jan van Tuil Maart 2011 [email protected] De uitdaging. Een kennis die een site wil hebben, een webshop. Het grafisch ontwerp is er al. Voor
Contactformulier...74 Gebruikers...77 Login...78 Registratie...79 Gebruikersnaam vergeten en wachtwoord vergeten...81 Module stijlen bepalen en
Inhoud Inhoud...1 De Basis Template bestanden...3 Basis Template Joomla 3 bestanden...4 templatedetails.xml...6 index.php...8 ...11 Wat te wijzigen?...14 Melding maken voor IE6 en IE7...14 Lettertype,
Zelftest Programmeren in Java
Zelftest Programmeren in Java Document: n0883test.fm 22/01/2013 ABIS Training & Consulting P.O. Box 220 B-3000 Leuven Belgium TRAINING & CONSULTING INLEIDING BIJ DE ZELFTEST PROGRAMMEREN IN JAVA Deze test
et Zend Framework bestaat volledig uit objectgeoriënteerde
et Zend Framework bestaat volledig uit objectgeoriënteerde PHP-code. Om het Zend Framework goed te kunnen begrijpen en te kunnen gebruiken, moet u minimaal de basis van objectgeoriënteerd programmeren
SQL INJECTIE Door Eoghain Verdonckt Beveiliging december 2013
SQL INJECTIE Door Eoghain Verdonckt Beveiliging december 2013 Voor mijn werkje voor beveiliging ga ik een tutorial maken voor SQL injectie. En hoe we deze kunnen voorkomen. Allereerst heb ik een tabel
http://www.liacs.nl/home/kosters/java/
sheets Programmeren 1 Java college 2, Walter Kosters De sheets zijn gebaseerd op de hoofdstukken 2 tot en met 6 van: D. Bell en M. Parr, Java voor studenten, Prentice Hall, 2002 http://www.liacs.nl/home/kosters/java/
Nieuws & RSS in DotNetNuke
Nieuws & RSS in DotNetNuke Intro terminologie DNN content modules Feed modules Voorbeelden Nieuws op je website Doelen Publiceren unieke eigen content (bijv. overheid) Agregatie van nieuws rondom een thema
INFITT01 - Internettechnologie WEEK 8
INFITT01 - Internettechnologie WEEK 8 Programma Databases (JDBC, JNDI, ORM, JPA) MVC & Spring/Struts EJB Databases Veel web applicaties moeten informatie over langere tijd op kunnen slaan. Een voor de
Tentamen Object Georiënteerd Programmeren TI1206 29 oktober 2014, 9.00-11.00 Afdeling SCT, Faculteit EWI, TU Delft
Tentamen Object Georiënteerd Programmeren TI1206 29 oktober 2014, 9.00-11.00 Afdeling SCT, Faculteit EWI, TU Delft Bij dit tentamen mag je geen gebruik maken van hulpmiddelen zoals boek of slides. Digitale
CBSOData Documentation
CBSOData Documentation Release 1.0 Jonathan de Bruin Dec 02, 2018 Contents 1 Statistics Netherlands opendata API client for Python 3 1.1 Installation................................................ 3
Hoofdstuk 1 Inleiding PHP 7 of ouder Hoe dit boek werkt 2
Inhoud Hoofdstuk 1 Inleiding 1 1.1 PHP 7 of ouder 2 1.2 Hoe dit boek werkt 2 Hoofdstuk 2 De programmeeromgeving 5 2.1 In dit hoofdstuk 5 2.2 Editor 5 2.3 Webserver op Linux, Mac of PC 5 2.4 De webmap 6
Programmeren in C# Interfaces. Hoofdstuk 23
Programmeren in C# Interfaces Hoofdstuk 23 Programmeren in C# 2 Gradaties overerving Klassieke overerving Iets functioneels uitbreiden Code duplicatie Niet teveel aanpassingen aan bestaande code Objecten
Hoe bouw ik een component? Drs. Arjan Burger
Hoe bouw ik een component? Drs. Arjan Burger Zelf bouwen in Joomla! Veel standaard componenten aanwezig Zelf bouwen: meer mogelijkheden Maatwerk (redelijke tot grondige) PHP kennis vereist Meeliften op
Agenda. Wat is HTML? Meer over HTML... Waarom HTML leren? Aniel Bhulai. Inleiding Computergebruik - HTML 1. Waarin maak je een HTML-bestand?
Agenda HTML algemeen Wat is HTML? Korte historie Opbouw HTML document Aantal tags + voorbeelden Vragen 2 3 Opmaaktaal Letter Kleur Plaatjes Tabellen Formulieren Links Wat is HTML? Waarin maak je een HTML-bestand?
2.ouderbeleid.3.plaatsingsprocedure werk admini Pagina 1 van 14
2.ouderbeleid.3.plaatsingsprocedure werk admini Pagina 1 van 14 In deze werkinstructies kan alles vinden wat te maken heeft met het onderhoud van het kdadmin programma. Je kunt deze onderdelen vinden in
Inleiding C++ Coding Conventions
Inleiding C++ Coding Conventions Opleiding Bachelor of Science in Informatica, van de Faculteit Wetenschappen, Universiteit Antwerpen. Nota s bij de cursus voor academiejaar 2012-2013. Ruben Van den Bossche,
Programmeermethoden. Recursie. week 11: november kosterswa/pm/
Programmeermethoden Recursie week 11: 21 25 november 2016 www.liacs.leidenuniv.nl/ kosterswa/pm/ 1 Pointers Derde programmeeropgave 1 Het spel Gomoku programmeren we als volgt: week 1: pointerpracticum,
Excel Controller. Handleiding Excel Controller Wizard
Excel Controller Handleiding Excel Controller Wizard 1 Inhoud Inleiding... 3 Eigen SQL... 3 Stap 1 Eigen SQL... 3 Stap 2 Testen SQL... 8 Stap 3 Wizard... 11 Stap 4 Parameters... 13 Voorbeeld Eigen Parameter...
General info on using shopping carts with Ingenico epayments
Inhoudsopgave 1. Disclaimer 2. What is a PSPID? 3. What is an API user? How is it different from other users? 4. What is an operation code? And should I choose "Authorisation" or "Sale"? 5. What is an
HTML5 overzicht Tag Uitleg Versie Attributen
HTML5 overzicht Tag Uitleg Versie Attributen Commentaarregel toevoegen 4 en 5 Geen Document 4 en 5 Geen Hyperlink 4 en 5 href ping Samenvoeging van een woord 4 en
Modelleren en Programmeren
Modelleren en Programmeren Jeroen Bransen 6 december 2013 Terugblik Programma en geheugen Opdrachten Variabelen Methoden Objecten Klasse Programma en geheugen Opdrachten Variabelen zijn gegroepeerd in
Joomla! Modules. Iedereen kan ze maken!
Joomla! Modules Iedereen kan ze maken! Even voorstellen... Niels van der Veer (n9iels) Tweede jaars student informatica aan de Hogeschool Rotterdam Werkzaam bij Perfect Web Team als developer Lid van de
Website beoordeling facebook.com
Website beoordeling facebook.com Gegenereerd op Januari 14 2019 10:26 AM De score is 44/100 SEO Content Title Facebook - Log In or Sign Up Lengte : 28 Perfect, uw title tag bevat tussen de 10 en 70 karakters.
Programmeren in C# Samenvatting van C#
Programmeren in C# Samenvatting van C# Proceduraal Programmeren Functies (O: void + return, I: referentie of value) Arrays, Lijsten Lussen (for, while, do while) Condities, if-else, switch Variabelen,
Examen Programmeren 2e Bachelor Elektrotechniek en Computerwetenschappen Faculteit Ingenieurswetenschappen Academiejaar juni, 2010
Examen Programmeren 2e Bachelor Elektrotechniek en Computerwetenschappen Faculteit Ingenieurswetenschappen Academiejaar 2009-2010 16 juni, 2010 **BELANGRIJK** 1. Schrijf je naam onderaan op elk blad. 2.
www.ikdoeict.be DATA BINDING Hans Gruyaert en Rogier van der Linde 2009-2010
www.ikdoeict.be DATA BINDING Hans Gruyaert en Rogier van der Linde 2009-2010 Inleiding Data Binding Koppelen van data uit een databron aan webcontrols Webcontrols: DropDownList, RadioButtonList, GridView,
Programmeermethoden. Pointers. Walter Kosters. week 10: november kosterswa/pm/
Programmeermethoden Pointers Walter Kosters week 10: 13 17 november 2017 www.liacs.leidenuniv.nl/ kosterswa/pm/ 1 Pointers Introductie Een pointer is in feite gewoon een geheugenadres. Het geheugen kun
