Subversion-Projekte lars-tiefland.ci

Revision

Revision 2104 | Revision 2159 | Zur aktuellen Revision | Blame | Vergleich mit vorheriger | Letzte Änderung | Log anzeigen | RSS feed

<?php

class Bildverwaltung extends CI_Controller
{
        public function __construct()
        {
                parent::__construct();
        }
        public function index()
        {
                $ret = array();
                $bilder = array();
                $zusatz = "";
                $posLinks = array();
                define("ITEMS_PER_PAGE", 36);
                $pagination_id = "medienverwaltung";
                $search = $this->input->get('search');
                $folder = $this->input->get('folder');
                $folder = urldecode($folder);
                $start_folder = $GLOBALS["webs"]["verzeichnis"]."/images/upload/";
                $real_folder = $start_folder;
                if ($folder)
                {
                        $folder .= "/";
                        $real_folder .= $folder;
                }
                $Imagedaten = array_chunk(explode(";", $GLOBALS["web_rechte"]["admin"]["toolbox"]["bildverwaltung"]),
                        4);
                $img_folders = array(
                        ".",
                        "..",
                        ".svn",
                        "kl",
                        "mini",
                        "gr",
                        "br",
                        "ba",
                        "orig",
                        "sl",
                        "nav",
                        "start",
                        );
                $dh = opendir($real_folder);
                while ($entry = readdir($dh))
                {
                        if (!is_dir($real_folder.$entry) || in_array($entry, $img_folders))
                        {
                                continue;
                        }
                        elseif ($folder)
                        {
                                $f = $folder.$entry;
                        }
                        else
                        {
                                $f = $entry;
                        }
                        $ret[] = $f;
                }
                if (is_array($ret))
                {
                        asort($ret);
                        sort($ret);
                }
                $posArr = explode("/", $folder);
                $fullName = "";
                foreach ($posArr as $pos)
                {
                        if ($pos)
                        {
                                $fullName .= urlencode($pos)."/";
                                $posLinks[] = array(
                                        "name" => $pos,
                                        "fullName" => $fullName,
                                        );
                        }
                }
                $start = 0;
                if ($this->input->get('per_page'))
                {
                        $start = $this->input->get('per_page');
                }
                $limit = ITEMS_PER_PAGE;
                $filter["start"] = $start;

                $limit = "
                        LIMIT
                                ".$start.", ".$limit."
                ";
                if ($search)
                {
                        $zusatz = "AND m.name LIKE '%".$search."%'";
                }
                $folder2 = trim($folder, "/");
                $sql = "SELECT
                                SQL_CALC_FOUND_ROWS
                                m.*,
                                mt.name as typ
                        FROM
                                medien m
                        JOIN
                                content_management.medien_typ mt
                        ON
                                mt.id=m.typ
                        WHERE
                        (
                                (folder='".$folder."')
                                OR
                                (folder='".$folder2."')
                        )
                        ".$zusatz."
                        ORDER BY
                                id
                        ".$limit."
                ";
                $res = $this->db->query($sql);
                $sqlAnz = "SELECT
                        FOUND_ROWS() AS anz
                ";
                $resAnz = $this->db->query($sqlAnz);
                $rowAnz = $resAnz->row_array();
                $anz = $rowAnz["anz"];
                $templateFolder = "common/";
                while ($row = $res->unbuffered_row('array'))
                {
                        $sql_z = "SELECT
                                        count(*) AS anz
                                FROM
                                        artikel_medien
                                WHERE
                                        medien_id = ".$row["id"]."
                        ";
                        $res_z = $this->db->query($sql_z);
                        $row_z = $res_z->row_array();
                        $row["anz"]["artikel"] = $row_z["anz"];
                        $sql_z = "SELECT
                                        count(*) AS anz
                                FROM
                                        directory_medien
                                WHERE
                                        medien_id = ".$row["id"]."
                        ";
                        $res_z = $this->db->query($sql_z);
                        $row_z = $res_z->row_array();
                        $row["anz"]["directory"] = $row_z["anz"];
                        $bilder[] = $row;
                }
                $sql = "SELECT
                                id,
                                name
                        FROM
                                medien_typ
                ";
                $res = $GLOBALS["db_red"]->query($sql);
                while ($row = $res->unbuffered_row('array'))
                {
                        $typen[$row['id']] = $row['name'];
                }
                $config['total_rows'] = $anz;
                $config{'base_url'} = $this->config->item('base_url').'/bildverwaltung/index/';
                $qs = array();
                if ($this->input->get('search'))
                {
                        $qs[] = "search=".$this->input->get('search');
                }
                if ($this->input->get('folder'))
                {
                        $qs[] = "folder=".$this->input->get('folder');
                }
                if ($qs)
                {
                        $config['base_url'] .= "?".implode("&", $qs);
                }
                $config['per_page'] = ITEMS_PER_PAGE;
                $config['page_query_string'] = true;
                //$config['use_page_numbers'] = true;
                $config['cur_tag_open'] = '&nbsp;[&nbsp;<b>';
                $config['cur_tag_close'] = '</b>&nbsp;]';
                $config['num_tag_open'] = '&nbsp;[&nbsp;';
                $config['num_tag_close'] = '&nbsp;]';
                $config['first_tag_open'] = '&nbsp;[&nbsp;';
                $config['first_tag_close'] = '&nbsp;]';
                $config['last_tag_open'] = '&nbsp;[&nbsp;';
                $config['last_tag_close'] = '&nbsp;]';
                $config['next_tag_open'] = '&nbsp;[&nbsp;';
                $config['next_tag_close'] = '&nbsp;]';
                $config['prev_tag_open'] = '&nbsp;[&nbsp;';
                $config['prev_tag_close'] = '&nbsp;]';
                $this->pagination->initialize($config);
                $this->smarty->assign('pagination', $this->pagination->create_links());
                $data = array(
                        "typen" => $typen,
                        "folder" => $folder2,
                        "folders" => $ret,
                        "real_folder" => $real_folder,
                        "pos" => $posLinks,
                        "search" => $search,
                        "pagination_id" => $pagination_id,
                        "medien" => $bilder,
                        );
                $this->smarty->view('medienverwaltung.tpl', $data);
        }
}