Subversion-Projekte lars-tiefland.ci

Revision

Revision 2102 | Revision 2104 | Zur aktuellen Revision | Details | Vergleich mit vorheriger | Letzte Änderung | Log anzeigen | RSS feed

Revision Autor Zeilennr. Zeile
859 lars 1
<?php
2
 
860 lars 3
class Bildverwaltung extends CI_Controller
859 lars 4
{
5
	public function __construct()
6
	{
7
		parent::__construct();
8
	}
9
	public function index()
10
	{
2103 lars 11
		$ret = array();
884 lars 12
		$bilder = array();
885 lars 13
		$zusatz = "";
14
		$posLinks = array();
881 lars 15
		define("ITEMS_PER_PAGE", 36);
16
		$pagination_id = "medienverwaltung";
17
		$search = $this->input->get('search');
18
		$folder = $this->input->get('folder');
19
		$folder = urldecode($folder);
20
		$start_folder = $GLOBALS["webs"]["verzeichnis"]."/images/upload/";
21
		$real_folder = $start_folder;
22
		if ($folder)
23
		{
24
			$folder .= "/";
25
			$real_folder .= $folder;
26
		}
27
		$Imagedaten = array_chunk(explode(";", $GLOBALS["web_rechte"]["admin"]["toolbox"]["bildverwaltung"]),
28
			4);
29
		$img_folders = array(
30
			".",
31
			"..",
32
			".svn",
33
			"kl",
34
			"mini",
35
			"gr",
36
			"br",
37
			"ba",
38
			"orig",
39
			"sl",
40
			"nav",
41
			"start",
42
			);
43
		$dh = opendir($real_folder);
44
		while ($entry = readdir($dh))
45
		{
46
			if (!is_dir($real_folder.$entry) || in_array($entry, $img_folders))
47
			{
48
				continue;
49
			}
50
			elseif ($folder)
51
			{
52
				$f = $folder.$entry;
53
			}
54
			else
55
			{
56
				$f = $entry;
57
			}
58
			$ret[] = $f;
59
		}
60
		if (is_array($ret))
61
		{
62
			asort($ret);
63
			sort($ret);
64
		}
65
		$posArr = explode("/", $folder);
66
		$fullName = "";
67
		foreach ($posArr as $pos)
68
		{
69
			if ($pos)
70
			{
71
				$fullName .= urlencode($pos)."/";
72
				$posLinks[] = array(
73
					"name" => $pos,
74
					"fullName" => $fullName,
75
					);
76
			}
77
		}
882 lars 78
		$start = 0;
2101 lars 79
		if($this->input->get('per_page'))
80
		{
81
			$start = $this->input->get('per_page');
82
		}
882 lars 83
		$limit = ITEMS_PER_PAGE;
881 lars 84
		$filter["start"] = $start;
85
 
86
		$limit = "
87
			LIMIT
88
				".$start.", ".$limit."
89
		";
90
		if ($search)
91
		{
92
			$zusatz = "AND m.name LIKE '%".$search."%'";
93
		}
94
		$folder2 = trim($folder, "/");
95
		$sql = "SELECT
96
				SQL_CALC_FOUND_ROWS
97
				m.*,
98
				mt.name as typ
99
			FROM
100
				medien m
101
			JOIN
102
				content_management.medien_typ mt
103
			ON
104
				mt.id=m.typ
105
			WHERE
106
			(
107
				(folder='".$folder."')
108
				OR
109
				(folder='".$folder2."')
110
			)
111
			".$zusatz."
112
			ORDER BY
113
				id
114
			".$limit."
115
		";
116
		$res = $this->db->query($sql);
117
		$sqlAnz = "SELECT
118
			FOUND_ROWS() AS anz
119
		";
884 lars 120
		$resAnz = $this->db->query($sqlAnz);
121
		$rowAnz = $resAnz->row_array();
881 lars 122
		$anz = $rowAnz["anz"];
123
		$templateFolder = "common/";
884 lars 124
		while ($row = $res->unbuffered_row('array'))
881 lars 125
		{
126
			$sql_z = "SELECT
127
					count(*) AS anz
128
				FROM
129
					artikel_medien
130
				WHERE
131
					medien_id = ".$row["id"]."
132
			";
133
			$res_z = $this->db->query($sql_z);
134
			$row_z = $res_z->row_array();
135
			$row["anz"]["artikel"] = $row_z["anz"];
136
			$sql_z = "SELECT
137
					count(*) AS anz
138
				FROM
139
					directory_medien
140
				WHERE
141
					medien_id = ".$row["id"]."
142
			";
143
			$res_z = $this->db->query($sql_z);
144
			$row_z = $res_z->row_array();
145
			$row["anz"]["directory"] = $row_z["anz"];
146
			$bilder[] = $row;
147
		}
148
		$sql = "SELECT
149
				id,
150
				name
151
			FROM
152
				medien_typ
153
		";
154
		$res = $GLOBALS["db_red"]->query($sql);
155
		while ($row = $res->unbuffered_row('array'))
156
		{
157
			$typen[$row['id']] = $row['name'];
158
		}
2098 lars 159
		$config['total_rows'] = $anz;
2102 lars 160
		$config{'base_url'} = $this->config->item('base_url').'/bildverwaltung/index/';
2098 lars 161
		$config['per_page'] = ITEMS_PER_PAGE;
162
		$config['page_query_string'] = true;
163
		//$config['use_page_numbers'] = true;
164
		$config['cur_tag_open'] = '&nbsp;[&nbsp;<b>';
165
		$config['cur_tag_close'] = '</b>&nbsp;]';
166
		$config['num_tag_open'] = '&nbsp;[&nbsp;';
167
		$config['num_tag_close'] = '&nbsp;]';
168
		$config['first_tag_open'] = '&nbsp;[&nbsp;';
169
		$config['first_tag_close'] = '&nbsp;]';
170
		$config['last_tag_open'] = '&nbsp;[&nbsp;';
171
		$config['last_tag_close'] = '&nbsp;]';
172
		$config['next_tag_open'] = '&nbsp;[&nbsp;';
173
		$config['next_tag_close'] = '&nbsp;]';
174
		$config['prev_tag_open'] = '&nbsp;[&nbsp;';
175
		$config['prev_tag_close'] = '&nbsp;]';
176
		$this->pagination->initialize($config);
177
		$this->smarty->assign('pagination', $this->pagination->create_links());
881 lars 178
		$data = array(
179
			"typen" => $typen,
180
			"folder" => $folder2,
181
			"folders" => $ret,
182
			"real_folder" => $real_folder,
183
			"pos" => $posLinks,
184
			"search" => $search,
185
			"pagination_id" => $pagination_id,
2097 lars 186
			"medien" => $bilder,
881 lars 187
			);
2091 lars 188
		$this->smarty->view('medienverwaltung.tpl', $data);
859 lars 189
	}
190
}