Subversion-Projekte lars-tiefland.ci

Revision

Revision 1892 | Revision 1894 | 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 1893 2016-12-24 23:07:02Z 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,
77
				dm.rang,
1892 lars 78
				dm.aehnlich,
1893 lars 79
				mt.name AS typ_name
1887 lars 80
			FROM
81
				medien m
82
			JOIN
83
				directory_medien dm
1892 lars 84
			JOIN
85
				content_management.medien_typ mt
86
			ON
87
				mt.id=m.typ
1887 lars 88
			WHERE
89
				dm.medien_id=m.id
90
			AND
91
				directory_id=?
92
			AND
93
				typ=?
94
			ORDER BY
95
				rang
96
		";
97
	}
98
 
99
	/**
100
	 * Medien_model::get_artikel_medien()
101
	 *
102
	 * Liest alle Medien für einen Artikel aus und erzeugt alle konfigurierten URLs (relativ und absolut)
103
	 *
104
	 * @param mixed $artikel_id
105
	 * @param integer $typ
106
	 * @return
107
	 */
108
	public function get_artikel_medien($artikel_id, $typ = 1)
109
	{
110
		$medien = array();
111
		$am_res = $this->db->query($this->sql["medien"]["artikel"], array(
112
			$artikel_id,
113
			$typ,
114
			));
115
		if ($am_res->num_rows())
116
		{
117
			while ($row = $am_res->unbuffered_row('array'))
118
			{
119
				$url = '/images/upload/';
120
				$folder = '';
121
				if ($row['folder'])
122
				{
123
					$folder = $row['folder'];
124
					$ende = substr($folder, -1);
125
					if ($ende != '/')
126
					{
127
						$folder .= '/';
128
					}
129
				}
130
				$url .= $folder;
131
				$b_name = $row['name'];
132
				foreach ($this->formate as $format => $dir)
133
				{
134
					$row['bild_url'.$format] = $url.$dir.$b_name;
135
					$row["abs_bild_url".$format] = $this->basis.$row["bild_url".$format];
136
				}
137
				$medien[] = $row;
138
			}
139
		}
140
		else
141
		{
142
			$url = "/images/webelemente/";
143
			$b_name = basename($GLOBALS["INI"]["itemKorrektur"]["noImage"]);
144
			$row["name"] = $b_name;
145
			$row["beschreibung"] = "";
146
			$row["folder"] = "";
1893 lars 147
			$row["typ"] = 1;
148
			$rot["typ_name"] = "Bild";
1887 lars 149
			foreach ($this->formate as $format => $dir)
150
			{
151
				$row["bild_url".$format] = $url.$b_name;
152
				$row["abs_bild_url".$format] = $this->basis.$row["bild_url".$format];
153
			}
154
			$medien[] = $row;
155
		}
156
		return $medien;
157
	}
158
 
159
	/**
160
	 * Medien_model::get_category_medien()
161
	 *
162
	 * Liest alle Medien für eine Kategorie aus und erzeugt alle konfigurierten URLs (relativ und absolut)
163
	 *
164
	 * @param mixed $category_id
165
	 * @param integer $typ
166
	 * @return
167
	 */
168
	public function get_category_medien($category_id, $typ = 1)
169
	{
170
		$medien = array();
171
		$am_res = $this->db->query($this->sql["medien"]["category"], array(
172
			$category_id,
173
			$typ,
174
			));
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
				}
197
				$medien[] = $row;
198
			}
199
		}
200
		else
201
		{
202
			$url = "/images/webelemente/";
203
			$b_name = basename($GLOBALS["INI"]["itemKorrektur"]["noImage"]);
204
			$row["name"] = $b_name;
205
			$row["beschreibung"] = "";
206
			$row["folder"] = "";
1893 lars 207
			$row["typ"] = 1;
208
			$rot["typ_name"] = "Bild";
1887 lars 209
			foreach ($this->formate as $format => $dir)
210
			{
211
				$row["bild_url".$format] = $url.$b_name;
212
				$row["abs_bild_url".$format] = $this->basis.$row["bild_url".$format];
213
			}
214
			$medien[] = $row;
215
		}
216
		return $medien;
217
	}
218
}
219
 
220
?>