Subversion-Projekte lars-tiefland.ci

Revision

Revision 918 | Revision 925 | Zur aktuellen Revision | Details | Vergleich mit vorheriger | Letzte Änderung | Log anzeigen | RSS feed

Revision Autor Zeilennr. Zeile
869 lars 1
<?php
2
 
3
class Scheduler extends CI_Controller
4
{
5
	public function __construct()
6
	{
7
		parent::__construct();
8
	}
9
	public function index()
10
	{
873 lars 11
		$tasks = array();
12
		$sql = "SELECT
13
				id,
14
				name,
15
				art,
16
				skript,
17
				parameter,
18
				intervall,
19
				user
20
			FROM
21
				schnittstellen
22
			WHERE
23
				nutzungsart IN ('dual','automatisch')
24
			AND
25
				user!=''
26
			ORDER BY
27
				user
28
		";
29
		$res = $this->db->query($sql);
30
		while ($row = $res->unbuffered_row('array'))
31
		{
32
			$tasks[] = $row;
33
		}
34
		$this->smarty->assign("tasks", $tasks);
869 lars 35
		$this->smarty->view('scheduler.tpl');
36
	}
912 lars 37
 
38
	public function edit($id = null)
910 lars 39
	{
916 lars 40
		if ($id)
41
		{
42
			$task = $this->get_task($id);
43
		}
44
		else
45
		{
46
			unset($out);
47
			if ($site != $site_full)
48
			{
49
				$out = substr($site, 0, 16);
50
			}
51
			elseif ($site_full == "weban.de")
52
			{
53
				$out = "www-data";
54
			}
55
			else
56
			{
57
				$cmd = "cat /etc/passwd | grep ".__SITE__." | cut -d \":\" -f1";
58
				exec($cmd, $out);
59
				$out = $out[0];
60
			}
61
			$task["user"] = $out;
62
		}
63
		$rep_hours[0] = "exakt";
64
		$rep_hours[1] = "jede Stunde";
65
		$hours[0] = 0;
66
		$hours[1] = 1;
67
		for ($i = 2; $i <= 23; $i++)
68
		{
69
			$hours[$i] = $i;
70
			$rep_hours[$i] = "Alle ".$i." Stunden";
71
		}
72
		$rep_min[0] = "exakt";
73
		$rep_min[1] = "jede Minute";
74
		for ($i = 2; $i <= 30; $i++)
75
		{
76
			$rep_min[$i] = "Alle ".$i." Minuten";
77
		}
78
		for ($i = 0; $i <= 59; $i++)
79
		{
80
			$minutes[$i] = $i;
81
		}
82
		$nutzungsarten = array(
83
			"" => "",
84
			"dual" => "dual",
85
			"automatisch" => "automatisch",
86
			);
87
		$tage = array(
88
			"Sonntag",
89
			"Montag",
90
			"Dienstag",
91
			"Mittwoch",
92
			"Donnerstag",
93
			"Freitag",
94
			"Samstag",
95
			);
96
		for ($i = 1; $i <= 12; $i++)
97
		{
98
			$mon = sprintf("%02d", $i);
99
			$datum = "01.".$mon.".".date("Y");
100
			$monate[$i] = strftime("%B", strtotime($datum));
101
		}
102
		$dom = array();
103
		for ($i = 1; $i <= 31; $i++)
104
		{
105
			$day = sprintf("%02d", $i);
106
			$dom[$i] = $i;
107
		}
108
		$this->smarty->assign("task", $task);
109
		$this->smarty->assign("monate", $monate);
110
		$this->smarty->assign("tage", $tage);
111
		$this->smarty->assign("dom", $dom);
112
		$this->smarty->assign("nutzungsarten", $nutzungsarten);
113
		$this->smarty->assign("minutes", $minutes);
114
		$this->smarty->assign("rep_min", $rep_min);
115
		$this->smarty->assign("rep_hours", $rep_hours);
116
		$this->smarty->assign("hours", $hours);
914 lars 117
		$this->smarty->view('scheduler_edit.tpl');
910 lars 118
	}
916 lars 119
 
120
	private function get_task($id)
121
	{
122
		$sql = "SELECT
123
				*
124
			FROM
125
				schnittstellen
126
			WHERE
127
				id=".$id."
128
		";
917 lars 129
		$res = $this->db->query($sql);
130
		$task = $res->row_array();
916 lars 131
		$intervall = $this->parse_intervall($task["intervall"]);
132
		$task["intervallParsed"] = $intervall;
133
		$zeit = $intervall["hour"].":".$intervall["min"].":00";
134
		$task["zeit"] = ($zeit);
135
		return $task;
136
	}
137
 
917 lars 138
	private function parse_intervall($intervall)
916 lars 139
	{
140
		list($minute, $hour, $dom, $mon, $dow) = explode(" ", $intervall);
141
		$pos = strpos($minute, "/");
142
		if ($pos !== false)
143
		{
918 lars 144
			$intervallArr["min"] = null;
916 lars 145
			$intervallArr["rep_min"] = substr($minute, $pos + 1);
146
		}
147
		elseif ($minute == "*")
148
		{
918 lars 149
			$intervallArr["min"] = null;
916 lars 150
			$intervallArr["rep_min"] = 1;
151
		}
152
		else
153
		{
154
			$intervallArr["min"] = $minute;
155
			$intervallArr["rep_min"] = 0;
156
		}
157
		$pos = strpos($hour, "/");
158
		if ($pos !== false)
159
		{
919 lars 160
			$intervallArr["hour"] = null;
916 lars 161
			$intervallArr["rep_hour"] = substr($hour, $pos + 1);
162
		}
163
		elseif ($hour == "*")
164
		{
919 lars 165
			$intervallArr["hour"] = null;
916 lars 166
			$intervallArr["rep_hour"] = 1;
167
		}
168
		else
169
		{
170
			$intervallArr["hour"] = explode(",", $hour);
171
			$intervallArr["rep_hour"] = 0;
172
		}
173
		if ($mon == "*")
174
		{
175
			$intervallArr["mon"] = array(
176
				1,
177
				2,
178
				3,
179
				4,
180
				5,
181
				6,
182
				7,
183
				8,
184
				9,
185
				10,
186
				11,
187
				12,
188
				);
189
		}
190
		else
191
		{
192
			$intervallArr["mon"] = explode(",", $mon);
193
		}
194
		if ($dow == "*")
195
		{
196
			$intervallArr["dow"] = array(
197
				0,
198
				1,
199
				2,
200
				3,
201
				4,
202
				5,
203
				6,
204
				);
205
		}
206
		else
207
		{
208
			$intervallArr["dow"] = explode(",", $dow);
209
		}
210
		if ($dom == "*")
211
		{
212
			for ($i = 1; $i <= 31; $i++)
213
			{
214
				$intervallArr["dom"][] = $i;
215
			}
216
		}
217
		else
218
		{
219
			$intervallArr["dom"] = explode(",", $dom);
220
		}
221
		return $intervallArr;
222
	}
223
 
917 lars 224
	function create_intervall()
916 lars 225
	{
226
		if ($_POST["rep_hour"] != 0)
227
		{
228
			$hour = "*";
229
			if ($_POST["rep_hour"] != 1)
230
			{
231
				$hour .= "/".$_POST["rep_hour"];
232
			}
233
		}
234
		elseif (count($_POST["Time_Hour"]) == 24)
235
		{
236
			$hour = "*";
237
		}
238
		else
239
		{
240
			$hour = implode(",", $_POST["Time_Hour"]);
241
		}
242
		if ($_POST["rep_min"] != 0)
243
		{
244
			$min = "*";
245
			if ($_POST["rep_min"] != 1)
246
			{
247
				$min .= "/".$_POST["rep_min"];
248
			}
249
		}
250
		elseif (count($_POST["Time_Minute"]) == 60)
251
		{
252
			$min = "*";
253
		}
254
		else
255
		{
256
			$min = implode(",", $_POST["Time_Minute"]);
257
		}
258
		if (count($_POST["dow"]) == 7)
259
		{
260
			$dow = "*";
261
		}
262
		else
263
		{
264
			$dow = implode(",", $_POST["dow"]);
265
		}
266
 
267
		if (count($_POST["dom"]) == 31)
268
		{
269
			$dom = "*";
270
		}
271
		else
272
		{
273
			$dom = implode(",", $_POST["dom"]);
274
		}
275
 
276
		if (count($_POST["mon"]) == 12)
277
		{
278
			$mon = "*";
279
		}
280
		else
281
		{
282
			$mon = implode(",", $_POST["mon"]);
283
		}
284
 
285
		$intervall = $min." ".$hour." ".$dom." ".$mon." ".$dow;
286
		$intervall = trim($intervall, "#");
287
		return $intervall;
288
	}
869 lars 289
}