Subversion-Projekte lars-tiefland.ci

Revision

Revision 1896 | Revision 1900 | 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 1897 2016-12-24 23:35:19Z 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
 
48
		$this->sql["medien"]["artikel"] = "SELECT
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
		";
98
	}
99
 
100
	/**
101
	 * Medien_model::get_artikel_medien()
102
	 *
103
	 * Liest alle Medien für einen Artikel aus und erzeugt alle konfigurierten URLs (relativ und absolut)
104
	 *
105
	 * @param mixed $artikel_id
106
	 * @param integer $typ
107
	 * @return
108
	 */
109
	public function get_artikel_medien($artikel_id, $typ = 1)
110
	{
111
		$medien = array();
112
		$am_res = $this->db->query($this->sql["medien"]["artikel"], array(
113
			$artikel_id,
114
			$typ,
115
			));
1897 lars 116
		$basis = $GLOBALS["webs"]["verzeichnis"]."/images/upload/";
1887 lars 117
		if ($am_res->num_rows())
118
		{
119
			while ($row = $am_res->unbuffered_row('array'))
120
			{
121
				$url = '/images/upload/';
122
				$folder = '';
123
				if ($row['folder'])
124
				{
125
					$folder = $row['folder'];
126
					$ende = substr($folder, -1);
127
					if ($ende != '/')
128
					{
129
						$folder .= '/';
130
					}
131
				}
132
				$url .= $folder;
133
				$b_name = $row['name'];
134
				foreach ($this->formate as $format => $dir)
135
				{
136
					$row['bild_url'.$format] = $url.$dir.$b_name;
137
					$row["abs_bild_url".$format] = $this->basis.$row["bild_url".$format];
138
				}
1897 lars 139
				$row["path"] = $basis.$row["folder"]."/".$row["name"];
1896 lars 140
				$row["size"] = filesize($row["path"]);
141
				$row["img_size"] = GetImageSize($row["path"]);
1887 lars 142
				$medien[] = $row;
143
			}
144
		}
145
		else
146
		{
147
			$url = "/images/webelemente/";
148
			$b_name = basename($GLOBALS["INI"]["itemKorrektur"]["noImage"]);
149
			$row["name"] = $b_name;
150
			$row["beschreibung"] = "";
151
			$row["folder"] = "";
1893 lars 152
			$row["typ"] = 1;
153
			$rot["typ_name"] = "Bild";
1897 lars 154
			$row["path"] = $basis.$row["folder"]."/".$row["name"];
1896 lars 155
			$row["size"] = filesize($row["path"]);
156
			$row["img_size"] = GetImageSize($row["path"]);
1887 lars 157
			foreach ($this->formate as $format => $dir)
158
			{
159
				$row["bild_url".$format] = $url.$b_name;
160
				$row["abs_bild_url".$format] = $this->basis.$row["bild_url".$format];
161
			}
162
			$medien[] = $row;
163
		}
164
		return $medien;
165
	}
166
 
167
	/**
168
	 * Medien_model::get_category_medien()
169
	 *
170
	 * Liest alle Medien für eine Kategorie aus und erzeugt alle konfigurierten URLs (relativ und absolut)
171
	 *
172
	 * @param mixed $category_id
173
	 * @param integer $typ
174
	 * @return
175
	 */
176
	public function get_category_medien($category_id, $typ = 1)
177
	{
1897 lars 178
		$basis = $GLOBALS["webs"]["verzeichnis"]."/images/upload/";
1887 lars 179
		$medien = array();
180
		$am_res = $this->db->query($this->sql["medien"]["category"], array(
181
			$category_id,
182
			$typ,
183
			));
184
		if ($am_res->num_rows())
185
		{
186
			while ($row = $am_res->unbuffered_row('array'))
187
			{
188
				$url = '/images/upload/';
189
				$folder = '';
190
				if ($row['folder'])
191
				{
192
					$folder = $row['folder'];
193
					$ende = substr($folder, -1);
194
					if ($ende != '/')
195
					{
196
						$folder .= '/';
197
					}
198
				}
199
				$url .= $folder;
200
				$b_name = $row['name'];
201
				foreach ($this->formate as $format => $dir)
202
				{
203
					$row['bild_url'.$format] = $url.$dir.$b_name;
204
					$row["abs_bild_url".$format] = $this->basis.$row["bild_url".$format];
205
				}
1897 lars 206
				$row["path"] = $basis.$row["folder"]."/".$row["name"];
1896 lars 207
				$row["size"] = filesize($row["path"]);
208
				$row["img_size"] = GetImageSize($row["path"]);
1887 lars 209
				$medien[] = $row;
210
			}
211
		}
212
		else
213
		{
214
			$url = "/images/webelemente/";
215
			$b_name = basename($GLOBALS["INI"]["itemKorrektur"]["noImage"]);
216
			$row["name"] = $b_name;
217
			$row["beschreibung"] = "";
218
			$row["folder"] = "";
1893 lars 219
			$row["typ"] = 1;
220
			$rot["typ_name"] = "Bild";
1897 lars 221
			$row["path"] = $basis.$row["folder"]."/".$row["name"];
1896 lars 222
			$row["size"] = filesize($row["path"]);
223
			$row["img_size"] = GetImageSize($row["path"]);
1887 lars 224
			foreach ($this->formate as $format => $dir)
225
			{
226
				$row["bild_url".$format] = $url.$b_name;
227
				$row["abs_bild_url".$format] = $this->basis.$row["bild_url".$format];
228
			}
229
			$medien[] = $row;
230
		}
231
		return $medien;
232
	}
233
}
234
 
235
?>