Subversion-Projekte lars-tiefland.ci

Revision

Revision 1892 | Zur aktuellen Revision | Details | 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 1887 2016-12-24 22:40:57Z 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,
54
				am.aehnlich
55
			FROM
56
				medien m
57
			JOIN
58
				artikel_medien am
59
			WHERE
60
				am.medien_id=m.id
61
			AND
62
				artikel_id=?
63
			AND
64
				typ=?
65
			ORDER BY
66
				rang
67
		";
68
		$this->sql["medien"]["category"] = "SELECT
69
				m.name,
70
				m.folder,
71
				m.beschreibung,
72
				dm.rang,
73
				dm.aehnlich
74
			FROM
75
				medien m
76
			JOIN
77
				directory_medien dm
78
			WHERE
79
				dm.medien_id=m.id
80
			AND
81
				directory_id=?
82
			AND
83
				typ=?
84
			ORDER BY
85
				rang
86
		";
87
	}
88
 
89
	/**
90
	 * Medien_model::get_artikel_medien()
91
	 *
92
	 * Liest alle Medien für einen Artikel aus und erzeugt alle konfigurierten URLs (relativ und absolut)
93
	 *
94
	 * @param mixed $artikel_id
95
	 * @param integer $typ
96
	 * @return
97
	 */
98
	public function get_artikel_medien($artikel_id, $typ = 1)
99
	{
100
		$medien = array();
101
		$am_res = $this->db->query($this->sql["medien"]["artikel"], array(
102
			$artikel_id,
103
			$typ,
104
			));
105
		if ($am_res->num_rows())
106
		{
107
			while ($row = $am_res->unbuffered_row('array'))
108
			{
109
				$url = '/images/upload/';
110
				$folder = '';
111
				if ($row['folder'])
112
				{
113
					$folder = $row['folder'];
114
					$ende = substr($folder, -1);
115
					if ($ende != '/')
116
					{
117
						$folder .= '/';
118
					}
119
				}
120
				$url .= $folder;
121
				$b_name = $row['name'];
122
				foreach ($this->formate as $format => $dir)
123
				{
124
					$row['bild_url'.$format] = $url.$dir.$b_name;
125
					$row["abs_bild_url".$format] = $this->basis.$row["bild_url".$format];
126
				}
127
				$medien[] = $row;
128
			}
129
		}
130
		else
131
		{
132
			$url = "/images/webelemente/";
133
			$b_name = basename($GLOBALS["INI"]["itemKorrektur"]["noImage"]);
134
			$row["name"] = $b_name;
135
			$row["beschreibung"] = "";
136
			$row["folder"] = "";
137
			$row["typ"] = "Bild";
138
			foreach ($this->formate as $format => $dir)
139
			{
140
				$row["bild_url".$format] = $url.$b_name;
141
				$row["abs_bild_url".$format] = $this->basis.$row["bild_url".$format];
142
			}
143
			$medien[] = $row;
144
		}
145
		return $medien;
146
	}
147
 
148
	/**
149
	 * Medien_model::get_category_medien()
150
	 *
151
	 * Liest alle Medien für eine Kategorie aus und erzeugt alle konfigurierten URLs (relativ und absolut)
152
	 *
153
	 * @param mixed $category_id
154
	 * @param integer $typ
155
	 * @return
156
	 */
157
	public function get_category_medien($category_id, $typ = 1)
158
	{
159
		$medien = array();
160
		$am_res = $this->db->query($this->sql["medien"]["category"], array(
161
			$category_id,
162
			$typ,
163
			));
164
		if ($am_res->num_rows())
165
		{
166
			while ($row = $am_res->unbuffered_row('array'))
167
			{
168
				$url = '/images/upload/';
169
				$folder = '';
170
				if ($row['folder'])
171
				{
172
					$folder = $row['folder'];
173
					$ende = substr($folder, -1);
174
					if ($ende != '/')
175
					{
176
						$folder .= '/';
177
					}
178
				}
179
				$url .= $folder;
180
				$b_name = $row['name'];
181
				foreach ($this->formate as $format => $dir)
182
				{
183
					$row['bild_url'.$format] = $url.$dir.$b_name;
184
					$row["abs_bild_url".$format] = $this->basis.$row["bild_url".$format];
185
				}
186
				$medien[] = $row;
187
			}
188
		}
189
		else
190
		{
191
			$url = "/images/webelemente/";
192
			$b_name = basename($GLOBALS["INI"]["itemKorrektur"]["noImage"]);
193
			$row["name"] = $b_name;
194
			$row["beschreibung"] = "";
195
			$row["folder"] = "";
196
			$row["typ"] = "Bild";
197
			foreach ($this->formate as $format => $dir)
198
			{
199
				$row["bild_url".$format] = $url.$b_name;
200
				$row["abs_bild_url".$format] = $this->basis.$row["bild_url".$format];
201
			}
202
			$medien[] = $row;
203
		}
204
		return $medien;
205
	}
206
}
207
 
208
?>