Subversion-Projekte lars-tiefland.ci

Revision

Revision 528 | Details | Vergleich mit vorheriger | Letzte Änderung | Log anzeigen | RSS feed

Revision Autor Zeilennr. Zeile
95 lars 1
<?php
2
 
3
/**
4
 * @author Lars Tiefland
5
 * @copyright 2016
6
 */
7
 
519 lars 8
/**
9
 * Medien_model
10
 *
11
 * Liest die Bilder von Artikeln oder Kategorien aus
12
 *
527 lars 13
 * @package WebanOS CI
14
 * @author Lars Tiefland
15
 * @copyright 2016
16
 * @version $Id: Medien_model.php 528 2016-09-15 11:20:18Z lars $
519 lars 17
 * @access public
18
 */
95 lars 19
class Medien_model extends CI_Model
20
{
96 lars 21
	private $sql;
103 lars 22
	private $formate;
289 lars 23
	private $basis;
519 lars 24
	/**
25
	 * Medien_model::__construct()
26
	 *
27
	 * stellt alle nötigen SQL-Abfragen und Formate für die Medien bereit
28
	 *
29
	 * @return
30
	 */
95 lars 31
	public function __construct()
32
	{
33
		parent::__construct();
289 lars 34
		$this->basis = $this->config->item('base_url');
103 lars 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
 
95 lars 48
		$this->sql["medien"]["artikel"] = "SELECT
49
				m.name,
50
				m.folder,
51
				m.beschreibung,
245 lars 52
				m.typ,
95 lars 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
101 lars 62
				artikel_id=?
95 lars 63
			AND
101 lars 64
				typ=?
95 lars 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
101 lars 81
				directory_id=?
95 lars 82
			AND
101 lars 83
				typ=?
95 lars 84
			ORDER BY
85
				rang
86
		";
87
	}
88
 
519 lars 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
	 */
100 lars 98
	public function get_artikel_medien($artikel_id, $typ = 1)
95 lars 99
	{
116 lars 100
		$medien = array();
100 lars 101
		$am_res = $this->db->query($this->sql["medien"]["artikel"], array(
101 lars 102
			$artikel_id,
103
			$typ,
100 lars 104
			));
289 lars 105
		if ($am_res->num_rows())
102 lars 106
		{
289 lars 107
			while ($row = $am_res->unbuffered_row('array'))
105 lars 108
			{
289 lars 109
				$url = '/images/upload/';
110
				$folder = '';
111
				if ($row['folder'])
105 lars 112
				{
289 lars 113
					$folder = $row['folder'];
114
					$ende = substr($folder, -1);
115
					if ($ende != '/')
116
					{
117
						$folder .= '/';
118
					}
105 lars 119
				}
289 lars 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;
105 lars 128
			}
289 lars 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";
291 lars 138
			foreach ($this->formate as $format => $dir)
103 lars 139
			{
289 lars 140
				$row["bild_url".$format] = $url.$b_name;
141
				$row["abs_bild_url".$format] = $this->basis.$row["bild_url".$format];
103 lars 142
			}
143
			$medien[] = $row;
105 lars 144
		}
102 lars 145
		return $medien;
95 lars 146
	}
147
 
519 lars 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
	 */
114 lars 157
	public function get_category_medien($category_id, $typ = 1)
158
	{
116 lars 159
		$medien = array();
114 lars 160
		$am_res = $this->db->query($this->sql["medien"]["category"], array(
161
			$category_id,
162
			$typ,
163
			));
287 lars 164
		if ($am_res->num_rows())
114 lars 165
		{
287 lars 166
			while ($row = $am_res->unbuffered_row('array'))
114 lars 167
			{
287 lars 168
				$url = '/images/upload/';
169
				$folder = '';
170
				if ($row['folder'])
114 lars 171
				{
287 lars 172
					$folder = $row['folder'];
173
					$ende = substr($folder, -1);
174
					if ($ende != '/')
175
					{
176
						$folder .= '/';
177
					}
114 lars 178
				}
287 lars 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;
289 lars 184
					$row["abs_bild_url".$format] = $this->basis.$row["bild_url".$format];
287 lars 185
				}
186
				$medien[] = $row;
114 lars 187
			}
287 lars 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";
291 lars 197
			foreach ($this->formate as $format => $dir)
114 lars 198
			{
287 lars 199
				$row["bild_url".$format] = $url.$b_name;
289 lars 200
				$row["abs_bild_url".$format] = $this->basis.$row["bild_url".$format];
114 lars 201
			}
202
			$medien[] = $row;
203
		}
204
		return $medien;
205
	}
95 lars 206
}
207
 
208
?>