1 | <?php |
||
2 | /** |
||
3 | * Description: demonstrates a decorator used to "attach a payload" to a selection |
||
4 | * to make it available when iterating over calendar children |
||
5 | */ |
||
6 | if ( !@include 'Calendar/Calendar.php' ) { |
||
7 | define('CALENDAR_ROOT','../../'); |
||
8 | } |
||
9 | require_once CALENDAR_ROOT.'Day.php'; |
||
10 | require_once CALENDAR_ROOT.'Hour.php'; |
||
11 | require_once CALENDAR_ROOT.'Decorator.php'; |
||
12 | |||
13 | // Decorator to "attach" functionality to selected hours |
||
14 | class DiaryEvent extends Calendar_Decorator { |
||
0 ignored issues
–
show
|
|||
15 | var $entry; |
||
16 | function DiaryEvent($calendar) { |
||
0 ignored issues
–
show
|
|||
17 | Calendar_Decorator::Calendar_Decorator($calendar); |
||
18 | } |
||
19 | function setEntry($entry) { |
||
0 ignored issues
–
show
|
|||
20 | $this->entry = $entry; |
||
21 | } |
||
22 | function getEntry() { |
||
0 ignored issues
–
show
|
|||
23 | return $this->entry; |
||
24 | } |
||
25 | } |
||
26 | |||
27 | // Create a day to view the hours for |
||
28 | $Day = & new Calendar_Day(2003,10,24); |
||
0 ignored issues
–
show
The type
Calendar_Day was not found. Maybe you did not declare it correctly or list all dependencies?
The issue could also be caused by a filter entry in the build configuration.
If the path has been excluded in your configuration, e.g. filter:
dependency_paths: ["lib/*"]
For further information see https://scrutinizer-ci.com/docs/tools/php/php-scrutinizer/#list-dependency-paths ![]() |
|||
29 | |||
30 | // A sample query to get the data for today (NOT ACTUALLY USED HERE) |
||
31 | $sql = " |
||
32 | SELECT |
||
33 | * |
||
34 | FROM |
||
35 | diary |
||
36 | WHERE |
||
37 | eventtime >= '".$Day->thisDay(TRUE)."' |
||
38 | AND |
||
39 | eventtime < '".$Day->nextDay(TRUE)."';"; |
||
40 | |||
41 | // An array simulating data from a database |
||
42 | $result = array ( |
||
43 | array('eventtime'=>mktime(9,0,0,10,24,2003),'entry'=>'Meeting with sales team'), |
||
44 | array('eventtime'=>mktime(11,0,0,10,24,2003),'entry'=>'Conference call with Widget Inc.'), |
||
45 | array('eventtime'=>mktime(15,0,0,10,24,2003),'entry'=>'Presentation to board of directors') |
||
46 | ); |
||
47 | |||
48 | // An array to place selected hours in |
||
49 | $selection = array(); |
||
50 | |||
51 | // Loop through the "database result" |
||
52 | foreach ( $result as $row ) { |
||
53 | $Hour = new Calendar_Hour(2000,1,1,1); // Create Hour with dummy values |
||
0 ignored issues
–
show
The type
Calendar_Hour was not found. Maybe you did not declare it correctly or list all dependencies?
The issue could also be caused by a filter entry in the build configuration.
If the path has been excluded in your configuration, e.g. filter:
dependency_paths: ["lib/*"]
For further information see https://scrutinizer-ci.com/docs/tools/php/php-scrutinizer/#list-dependency-paths ![]() |
|||
54 | $Hour->setTimeStamp($row['eventtime']); // Set the real time with setTimeStamp |
||
55 | |||
56 | // Create the decorator, passing it the Hour |
||
57 | $DiaryEvent = new DiaryEvent($Hour); |
||
58 | |||
59 | // Attach the payload |
||
60 | $DiaryEvent->setEntry($row['entry']); |
||
61 | |||
62 | // Add the decorator to the selection |
||
63 | $selection[] = $DiaryEvent; |
||
64 | } |
||
65 | |||
66 | // Build the hours in that day, passing the selection |
||
67 | $Day->build($selection); |
||
68 | ?> |
||
69 | <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN"> |
||
70 | <html> |
||
71 | <head> |
||
72 | <title> Passing a Selection Payload with a Decorator </title> |
||
73 | </head> |
||
74 | <body> |
||
75 | <h1>Passing a Selection "Payload" using a Decorator</h1> |
||
76 | <table> |
||
77 | <caption><b>Your Schedule for <?php echo ( date('D nS F Y',$Day->thisDay(TRUE)) ); ?></b></caption> |
||
78 | <tr> |
||
79 | <th width="5%">Time</th> |
||
80 | <th>Entry</th> |
||
81 | </tr> |
||
82 | <?php |
||
83 | while ( $Hour = & $Day->fetch() ) { |
||
84 | |||
85 | $hour = $Hour->thisHour(); |
||
86 | $minute = $Hour->thisMinute(); |
||
87 | |||
88 | // Office hours only... |
||
89 | if ( $hour >= 8 && $hour <= 18 ) { |
||
90 | echo ( "<tr>\n" ); |
||
91 | echo ( "<td>$hour:$minute</td>\n" ); |
||
92 | |||
93 | // If the hour is selected, call the decorator method... |
||
94 | if ( $Hour->isSelected() ) { |
||
95 | echo ( "<td bgcolor=\"silver\">".$Hour->getEntry()."</td>\n" ); |
||
96 | } else { |
||
97 | echo ( "<td> </td>\n" ); |
||
98 | } |
||
99 | echo ( "</tr>\n" ); |
||
100 | } |
||
101 | } |
||
102 | ?> |
||
103 | </table> |
||
104 | <p>The query to fetch this data, with help from PEAR::Calendar, might be;</p> |
||
105 | <pre> |
||
106 | <?php echo ( $sql ); ?> |
||
107 | </pre> |
||
108 | </body> |
||
109 | </html> |
The issue could also be caused by a filter entry in the build configuration. If the path has been excluded in your configuration, e.g.
excluded_paths: ["lib/*"]
, you can move it to the dependency path list as follows:For further information see https://scrutinizer-ci.com/docs/tools/php/php-scrutinizer/#list-dependency-paths