Subversion-Projekte lars-tiefland.ci

Revision

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

<?php

/**
 * @author Lars Tiefland
 * @copyright 2016
 */

/**
 * Medien_model
 * 
 * Liest die Bilder von Artikeln oder Kategorien aus
 * 
 * @package WebanOS CI
 * @author Lars Tiefland
 * @copyright 2016
 * @version $Id: Medien_model.php 528 2016-09-15 11:20:18Z lars $
 * @access public
 */
class Medien_model extends CI_Model
{
        private $sql;
        private $formate;
        private $basis;
        /**
         * Medien_model::__construct()
         *
         * stellt alle nötigen SQL-Abfragen und Formate für die Medien bereit
         *  
         * @return
         */
        public function __construct()
        {
                parent::__construct();
                $this->basis = $this->config->item('base_url');
                $this->formate = array(
                        "" => "",
                        "_klein" => "kl/",
                        "_mini" => "mini/",
                        "_gr" => "gr/",
                        "_br" => "br/",
                        "_ba" => "ba/",
                        "_nav" => "nav/",
                        "_sl" => "sl/",
                        "_start" => "start/",
                        "_icon" => "icon/",
                        );

                $this->sql["medien"]["artikel"] = "SELECT
                                m.name,
                                m.folder,
                                m.beschreibung,
                                m.typ,
                                am.rang,
                                am.aehnlich
                        FROM
                                medien m
                        JOIN
                                artikel_medien am
                        WHERE
                                am.medien_id=m.id
                        AND
                                artikel_id=?
                        AND
                                typ=?
                        ORDER BY
                                rang
                ";
                $this->sql["medien"]["category"] = "SELECT
                                m.name,
                                m.folder,
                                m.beschreibung,
                                dm.rang,
                                dm.aehnlich
                        FROM
                                medien m
                        JOIN
                                directory_medien dm
                        WHERE
                                dm.medien_id=m.id
                        AND
                                directory_id=?
                        AND
                                typ=?
                        ORDER BY
                                rang
                ";
        }

        /**
         * Medien_model::get_artikel_medien()
         * 
         * Liest alle Medien für einen Artikel aus und erzeugt alle konfigurierten URLs (relativ und absolut)
         * 
         * @param mixed $artikel_id
         * @param integer $typ
         * @return
         */
        public function get_artikel_medien($artikel_id, $typ = 1)
        {
                $medien = array();
                $am_res = $this->db->query($this->sql["medien"]["artikel"], array(
                        $artikel_id,
                        $typ,
                        ));
                if ($am_res->num_rows())
                {
                        while ($row = $am_res->unbuffered_row('array'))
                        {
                                $url = '/images/upload/';
                                $folder = '';
                                if ($row['folder'])
                                {
                                        $folder = $row['folder'];
                                        $ende = substr($folder, -1);
                                        if ($ende != '/')
                                        {
                                                $folder .= '/';
                                        }
                                }
                                $url .= $folder;
                                $b_name = $row['name'];
                                foreach ($this->formate as $format => $dir)
                                {
                                        $row['bild_url'.$format] = $url.$dir.$b_name;
                                        $row["abs_bild_url".$format] = $this->basis.$row["bild_url".$format];
                                }
                                $medien[] = $row;
                        }
                }
                else
                {
                        $url = "/images/webelemente/";
                        $b_name = basename($GLOBALS["INI"]["itemKorrektur"]["noImage"]);
                        $row["name"] = $b_name;
                        $row["beschreibung"] = "";
                        $row["folder"] = "";
                        $row["typ"] = "Bild";
                        foreach ($this->formate as $format => $dir)
                        {
                                $row["bild_url".$format] = $url.$b_name;
                                $row["abs_bild_url".$format] = $this->basis.$row["bild_url".$format];
                        }
                        $medien[] = $row;
                }
                return $medien;
        }

        /**
         * Medien_model::get_category_medien()
         * 
         * Liest alle Medien für eine Kategorie aus und erzeugt alle konfigurierten URLs (relativ und absolut)
         * 
         * @param mixed $category_id
         * @param integer $typ
         * @return
         */
        public function get_category_medien($category_id, $typ = 1)
        {
                $medien = array();
                $am_res = $this->db->query($this->sql["medien"]["category"], array(
                        $category_id,
                        $typ,
                        ));
                if ($am_res->num_rows())
                {
                        while ($row = $am_res->unbuffered_row('array'))
                        {
                                $url = '/images/upload/';
                                $folder = '';
                                if ($row['folder'])
                                {
                                        $folder = $row['folder'];
                                        $ende = substr($folder, -1);
                                        if ($ende != '/')
                                        {
                                                $folder .= '/';
                                        }
                                }
                                $url .= $folder;
                                $b_name = $row['name'];
                                foreach ($this->formate as $format => $dir)
                                {
                                        $row['bild_url'.$format] = $url.$dir.$b_name;
                                        $row["abs_bild_url".$format] = $this->basis.$row["bild_url".$format];
                                }
                                $medien[] = $row;
                        }
                }
                else
                {
                        $url = "/images/webelemente/";
                        $b_name = basename($GLOBALS["INI"]["itemKorrektur"]["noImage"]);
                        $row["name"] = $b_name;
                        $row["beschreibung"] = "";
                        $row["folder"] = "";
                        $row["typ"] = "Bild";
                        foreach ($this->formate as $format => $dir)
                        {
                                $row["bild_url".$format] = $url.$b_name;
                                $row["abs_bild_url".$format] = $this->basis.$row["bild_url".$format];
                        }
                        $medien[] = $row;
                }
                return $medien;
        }
}

?>