-
Notifications
You must be signed in to change notification settings - Fork 0
/
_BlockTemplate.php
107 lines (97 loc) · 3.05 KB
/
_BlockTemplate.php
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
<?php
/**
* Class BlockTemplate for the exercises of the EWA lecture in SS09
* Demonstrates use of PHP including class and OO.
* Implements Zend coding standards.
* Generate documentation with Doxygen or phpdoc
*
* PHP Version 5
*
* @category File
* @package Pizzaservice
* @author Bernhard Kreling, <b.kreling@fbi.h-da.de>
* @author Ralf Hahn, <ralf.hahn@h-da.de>
* @license http://www.h-da.de none
* @Release 1.1
* @link http://www.fbi.h-da.de
*/
/**
* This is a template for classes, which represent div-blocks
* within a web page. Instances of these classes are used as members
* of top level classes.
* The order of methods might correspond to the order of thinking
* during implementation.
* @author Bernhard Kreling, <b.kreling@fbi.h-da.de>
* @author Ralf Hahn, <ralf.hahn@h-da.de>
*/
class BlockTemplate // to do: change name of class
{
// --- ATTRIBUTES ---
/**
* Reference to the MySQLi-Database that is
* accessed by all operations of the class.
*/
protected $_database = null;
// to do: declare reference variables for members
// representing substructures/blocks
// --- OPERATIONS ---
/**
* Gets the reference to the DB from the calling page template.
* Stores the connection in member $_database.
*
* @param $database $database is the reference to the DB to be used
*
* @return none
*/
public function __construct($database)
{
$this->_database = $database;
// to do: instantiate members representing substructures/blocks
}
/**
* Fetch all data that is necessary for later output.
* Data is stored in an easily accessible way e.g. as associative array.
*
* @return none
*/
protected function getViewData()
{
// to do: fetch data for this view from the database
}
/**
* Generates an HTML block embraced by a div-tag with the submitted id.
* If the block contains other blocks this is done recursively.
*
* @param $id $id is the unique (!!) id to be used as id in the div-tag
*
* @return none
*/
public function generateView($id = "")
{
$this->getViewData();
if ($id) {
$id = "id=\"$id\"";
}
echo "<div $id>\n";
// to do: call generateView() for all members
echo "</div>\n";
}
/**
* Processes the data that comes via GET or POST i.e. CGI.
* If this block is supposed to do something with submitted
* data do it here.
* If the block contains other blocks do it recursively.
*
* @return none
*/
public function processReceivedData()
{
// to do: call processData() for all members
}
}
// Zend standard does not like closing php-tag!
// PHP doesn't require the closing tag (it is assumed when the file ends).
// Not specifying the closing ? > helps to prevent accidents
// like additional whitespace which will cause session
// initialization to fail ("headers already sent").
//? >