Subversion-Projekte lars-tiefland.ci

Revision

Revision 1901 | Revision 1927 | Zur aktuellen Revision | Details | Vergleich mit vorheriger | Letzte Änderung | Log anzeigen | RSS feed

Revision Autor Zeilennr. Zeile
1887 lars 1
<?php
2
 
3
/**
4
 * @author Lars Tiefland
5
 * @copyright 2016
6
 */
7
 
8
/**
9
 * Medien_model
10
 *
11
 * Liest die Bilder von Artikeln oder Kategorien aus
12
 *
13
 * @package WebanOS CI
14
 * @author Lars Tiefland
15
 * @copyright 2016
16
 * @version $Id: Medien_model.php 1925 2016-12-26 13:49:37Z lars $
17
 * @access public
18
 */
19
class Medien_model extends CI_Model
20
{
21
	private $sql;
22
	private $formate;
23
	private $basis;
24
	/**
25
	 * Medien_model::__construct()
26
	 *
27
	 * stellt alle nötigen SQL-Abfragen und Formate für die Medien bereit
28
	 *
29
	 * @return
30
	 */
31
	public function __construct()
32
	{
33
		parent::__construct();
34
		$this->basis = $this->config->item('base_url');
35
		$this->formate = array(
36
			"" => "",
37
			"_klein" => "kl/",
38
			"_mini" => "mini/",
39
			"_gr" => "gr/",
40
			"_br" => "br/",
41
			"_ba" => "ba/",
42
			"_nav" => "nav/",
43
			"_sl" => "sl/",
44
			"_start" => "start/",
45
			"_icon" => "icon/",
46
			);
47
 
1901 lars 48
		$this->sql["medien"]["artikel"] = "SELECT
1887 lars 49
				m.name,
50
				m.folder,
51
				m.beschreibung,
52
				m.typ,
53
				am.rang,
1892 lars 54
				am.aehnlich,
55
				mt.name AS typ_name
1887 lars 56
			FROM
57
				medien m
58
			JOIN
59
				artikel_medien am
1892 lars 60
			JOIN
61
				content_management.medien_typ mt
62
			ON
63
				mt.id=m.typ
1887 lars 64
			WHERE
65
				am.medien_id=m.id
66
			AND
67
				artikel_id=?
68
			AND
69
				typ=?
70
			ORDER BY
71
				rang
72
		";
73
		$this->sql["medien"]["category"] = "SELECT
74
				m.name,
75
				m.folder,
76
				m.beschreibung,
1894 lars 77
				m.typ,
1887 lars 78
				dm.rang,
1892 lars 79
				dm.aehnlich,
1893 lars 80
				mt.name AS typ_name
1887 lars 81
			FROM
82
				medien m
83
			JOIN
84
				directory_medien dm
1892 lars 85
			JOIN
86
				content_management.medien_typ mt
87
			ON
88
				mt.id=m.typ
1887 lars 89
			WHERE
90
				dm.medien_id=m.id
91
			AND
92
				directory_id=?
93
			AND
94
				typ=?
95
			ORDER BY
96
				rang
97
		";
1901 lars 98
		$this->sql["medien"]["artikel_all"] = "SELECT
1900 lars 99
				m.name,
100
				m.folder,
101
				m.beschreibung,
102
				m.typ,
103
				am.rang,
104
				am.aehnlich,
105
				mt.name AS typ_name
106
			FROM
107
				medien m
108
			JOIN
109
				artikel_medien am
110
			JOIN
111
				content_management.medien_typ mt
112
			ON
113
				mt.id=m.typ
114
			WHERE
115
				am.medien_id=m.id
116
			AND
117
				artikel_id=?
118
			ORDER BY
119
				rang
120
		";
121
		$this->sql["medien"]["category_all"] = "SELECT
122
				m.name,
123
				m.folder,
124
				m.beschreibung,
125
				m.typ,
126
				dm.rang,
127
				dm.aehnlich,
128
				mt.name AS typ_name
129
			FROM
130
				medien m
131
			JOIN
132
				directory_medien dm
133
			JOIN
134
				content_management.medien_typ mt
135
			ON
136
				mt.id=m.typ
137
			WHERE
138
				dm.medien_id=m.id
139
			AND
140
				directory_id=?
141
			ORDER BY
142
				rang
143
		";
1925 lars 144
		$aehnlich = array(
145
			"nein",
146
			"ja",
147
			);
148
		$this->smarty->assign("typen", $typen);
1887 lars 149
	}
150
 
151
	/**
152
	 * Medien_model::get_artikel_medien()
153
	 *
154
	 * Liest alle Medien für einen Artikel aus und erzeugt alle konfigurierten URLs (relativ und absolut)
155
	 *
156
	 * @param mixed $artikel_id
157
	 * @param integer $typ
158
	 * @return
159
	 */
1900 lars 160
	public function get_artikel_medien($artikel_id, $typ = null)
1887 lars 161
	{
162
		$medien = array();
1900 lars 163
		if (is_null($typ))
164
		{
165
			$am_res = $this->db->query($this->sql["medien"]["artikel_all"], array($artikel_id, ));
166
		}
167
		else
168
		{
169
			$am_res = $this->db->query($this->sql["medien"]["artikel"], array(
170
				$artikel_id,
171
				$typ,
172
				));
173
		}
1897 lars 174
		$basis = $GLOBALS["webs"]["verzeichnis"]."/images/upload/";
1887 lars 175
		if ($am_res->num_rows())
176
		{
177
			while ($row = $am_res->unbuffered_row('array'))
178
			{
179
				$url = '/images/upload/';
180
				$folder = '';
181
				if ($row['folder'])
182
				{
183
					$folder = $row['folder'];
184
					$ende = substr($folder, -1);
185
					if ($ende != '/')
186
					{
187
						$folder .= '/';
188
					}
189
				}
190
				$url .= $folder;
191
				$b_name = $row['name'];
192
				foreach ($this->formate as $format => $dir)
193
				{
194
					$row['bild_url'.$format] = $url.$dir.$b_name;
195
					$row["abs_bild_url".$format] = $this->basis.$row["bild_url".$format];
196
				}
1897 lars 197
				$row["path"] = $basis.$row["folder"]."/".$row["name"];
1896 lars 198
				$row["size"] = filesize($row["path"]);
199
				$row["img_size"] = GetImageSize($row["path"]);
1887 lars 200
				$medien[] = $row;
201
			}
202
		}
203
		else
204
		{
205
			$url = "/images/webelemente/";
206
			$b_name = basename($GLOBALS["INI"]["itemKorrektur"]["noImage"]);
207
			$row["name"] = $b_name;
208
			$row["beschreibung"] = "";
209
			$row["folder"] = "";
1893 lars 210
			$row["typ"] = 1;
211
			$rot["typ_name"] = "Bild";
1897 lars 212
			$row["path"] = $basis.$row["folder"]."/".$row["name"];
1896 lars 213
			$row["size"] = filesize($row["path"]);
214
			$row["img_size"] = GetImageSize($row["path"]);
1887 lars 215
			foreach ($this->formate as $format => $dir)
216
			{
217
				$row["bild_url".$format] = $url.$b_name;
218
				$row["abs_bild_url".$format] = $this->basis.$row["bild_url".$format];
219
			}
220
			$medien[] = $row;
221
		}
222
		return $medien;
223
	}
224
 
225
	/**
226
	 * Medien_model::get_category_medien()
227
	 *
228
	 * Liest alle Medien für eine Kategorie aus und erzeugt alle konfigurierten URLs (relativ und absolut)
229
	 *
230
	 * @param mixed $category_id
231
	 * @param integer $typ
232
	 * @return
233
	 */
1900 lars 234
	public function get_category_medien($category_id, $typ = null)
1887 lars 235
	{
1897 lars 236
		$basis = $GLOBALS["webs"]["verzeichnis"]."/images/upload/";
1887 lars 237
		$medien = array();
1900 lars 238
		if (is_null($typ))
239
		{
240
			$am_res = $this->db->query($this->sql["medien"]["category_all"], array($category_id, ));
241
		}
242
		else
243
		{
244
			$am_res = $this->db->query($this->sql["medien"]["category"], array(
245
				$category_id,
246
				$typ,
247
				));
248
		}
1887 lars 249
		if ($am_res->num_rows())
250
		{
251
			while ($row = $am_res->unbuffered_row('array'))
252
			{
253
				$url = '/images/upload/';
254
				$folder = '';
255
				if ($row['folder'])
256
				{
257
					$folder = $row['folder'];
258
					$ende = substr($folder, -1);
259
					if ($ende != '/')
260
					{
261
						$folder .= '/';
262
					}
263
				}
264
				$url .= $folder;
265
				$b_name = $row['name'];
266
				foreach ($this->formate as $format => $dir)
267
				{
268
					$row['bild_url'.$format] = $url.$dir.$b_name;
269
					$row["abs_bild_url".$format] = $this->basis.$row["bild_url".$format];
270
				}
1897 lars 271
				$row["path"] = $basis.$row["folder"]."/".$row["name"];
1896 lars 272
				$row["size"] = filesize($row["path"]);
273
				$row["img_size"] = GetImageSize($row["path"]);
1887 lars 274
				$medien[] = $row;
275
			}
276
		}
277
		else
278
		{
279
			$url = "/images/webelemente/";
280
			$b_name = basename($GLOBALS["INI"]["itemKorrektur"]["noImage"]);
281
			$row["name"] = $b_name;
282
			$row["beschreibung"] = "";
283
			$row["folder"] = "";
1893 lars 284
			$row["typ"] = 1;
285
			$rot["typ_name"] = "Bild";
1897 lars 286
			$row["path"] = $basis.$row["folder"]."/".$row["name"];
1896 lars 287
			$row["size"] = filesize($row["path"]);
288
			$row["img_size"] = GetImageSize($row["path"]);
1887 lars 289
			foreach ($this->formate as $format => $dir)
290
			{
291
				$row["bild_url".$format] = $url.$b_name;
292
				$row["abs_bild_url".$format] = $this->basis.$row["bild_url".$format];
293
			}
294
			$medien[] = $row;
295
		}
296
		return $medien;
297
	}
298
}
299
 
300
?>