/[drupal]/contributions/modules/signup/includes/scheduler.inc
ViewVC logotype

Contents of /contributions/modules/signup/includes/scheduler.inc

Parent Directory Parent Directory | Revision Log Revision Log | View Revision Graph Revision Graph


Revision 1.4 - (show annotations) (download) (as text)
Thu Nov 6 10:20:48 2008 UTC (12 months, 2 weeks ago) by dww
Branch: MAIN
CVS Tags: DRUPAL-6--1-0-RC2, DRUPAL-6--1-0-RC3, DRUPAL-6--1-0-RC4, DRUPAL-6--1-0-RC5, DRUPAL-6--1-0-RC6, DRUPAL-6--1-0-RC1, DRUPAL-6--1-0-BETA1, HEAD
Branch point for: DRUPAL-6--1
Changes since 1.3: +5 -14 lines
File MIME type: text/x-php
#222217 by dww, deadwood.module and coder.module: Initial port to D6.
Date, Event, Token, Views, and Panel integration are all untested.
There are a few other known bugs, but the bulk of the code now works.
1 <?php
2 // $Id: scheduler.inc,v 1.3 2008/11/05 09:24:01 dww Exp $
3
4
5 /**
6 * @file
7 * Code necessary to determine which scheduler backend(s) to use.
8 */
9
10 /**
11 * Load relevant scheduler backend include file(s).
12 *
13 * Decides which include files are needed based on which modules
14 * exist and which versions are loaded.
15 */
16 function _signup_load_scheduler_includes() {
17 if (module_exists('event')) {
18 module_load_include('inc', 'signup', 'includes/event.6x-2');
19 }
20 if (module_exists('date')) {
21 module_load_include('inc', 'signup', 'includes/date');
22 }
23 }
24
25 /**
26 * Does this site have any date-enabled content?
27 */
28 function signup_site_has_dates() {
29 return (module_exists('event') || module_exists('date'));
30 }
31
32 /**
33 * Determine which scheduler backend to use for the given node.
34 *
35 * @param $node
36 * Fully loaded node object to test.
37 *
38 * @return
39 * 'event' to use the event.module, 'date' for the date.module, or 'none' if
40 * the node is untimed.
41 *
42 * @see _signup_get_node_scheduler()
43 * @see _signup_event_get_node_scheduler()
44 * @see _signup_date_get_node_scheduler()
45 */
46 function _signup_get_node_scheduler($node) {
47 switch (_signup_get_node_type_scheduler($node->type)) {
48 case 'event':
49 return _signup_event_get_node_scheduler($node);
50
51 case 'date':
52 return _signup_date_get_node_scheduler($node);
53
54 default:
55 return 'none';
56 }
57 }
58
59 /**
60 * Determine which scheduler backend to use for the given node type.
61 *
62 * @param $type
63 * Machine-readable name of the node type to test.
64 *
65 * @return
66 * 'event' to use the event.module, 'date' for the date.module, or 'none' if
67 * the node type is untimed.
68 */
69 function _signup_get_node_type_scheduler($type) {
70 if (module_exists('event') && variable_get('event_nodeapi_'. $type, 'never') != 'never') {
71 return 'event';
72 }
73 if (module_exists('date')) {
74 $date_field = variable_get('signup_date_field_'. $type, 0);
75 if (!empty($date_field) && $date_field != 'none') {
76 return 'date';
77 }
78 }
79 return 'none';
80 }
81
82 /**
83 * Determine if the given node has date/time data and if it already started.
84 */
85 function _signup_node_completed($node) {
86 if (is_numeric($node)) {
87 $node = node_load($node);
88 }
89 switch (_signup_get_node_scheduler($node)) {
90 case 'event':
91 return _signup_event_node_completed($node);
92
93 case 'date':
94 return _signup_date_node_completed($node);
95
96 default:
97 return FALSE;
98 }
99 }
100
101 function signup_format_date($node) {
102 switch (_signup_get_node_scheduler($node)) {
103 case 'event':
104 return _signup_event_format_date($node);
105
106 case 'date':
107 return _signup_date_format_date($node);
108
109 default:
110 return t('[Untimed]');
111 }
112 }
113
114 function signup_reminder_sql($node_type) {
115 switch (_signup_get_node_type_scheduler($node_type)) {
116 case 'event':
117 return _signup_event_reminder_sql($node_type);
118
119 case 'date':
120 return _signup_date_reminder_sql($node_type);
121
122 default:
123 return array();
124 }
125 }
126
127 function signup_autoclose_sql($node_type) {
128 switch (_signup_get_node_type_scheduler($node_type)) {
129 case 'event':
130 return _signup_event_autoclose_sql($node_type);
131
132 case 'date':
133 return _signup_date_autoclose_sql($node_type);
134
135 default:
136 return array();
137 }
138 }
139
140 function signup_admin_sql($node_type) {
141 switch (_signup_get_node_type_scheduler($node_type)) {
142 case 'event':
143 return _signup_event_admin_sql($node_type);
144
145 case 'date':
146 return _signup_date_admin_sql($node_type);
147
148 default:
149 return array();
150 }
151 }
152

  ViewVC Help
Powered by ViewVC 1.1.2