Subversion-Projekte lars-tiefland.ci

Revision

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

<?php

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

/**
 * Category_model
 * 
 * Liest alle Infos für Kategorien
 * 
 * @package WebanOS CI
 * @author Lars Tiefland
 * @copyright 2016
 * @version $Id: Category_model.php 607 2016-09-17 17:50:49Z lars $
 * @access public
 */
class Category_model extends CI_Model
{
        /**
         * Category_model::__construct()
         * 
         * @return
         */
        public function __construct()
        {
                parent::__construct();
                $this->load->model('artikel_model', 'artikel');
                $this->load->model('alias_model', 'alias');
                $this->load->model('preise_model', 'preise');
        }

        /**
         * Category_model::get_dir_items()
         * 
         * alle Artikel einer Kategorie
         * 
         * @param mixed $father
         * @return
         */
        public function get_dir_items($father, $start = 0, $limit = null)
        {
                if (is_numeric($father) && $father > 0)
                {
                        $link = $this->get_link($father);
                        header("Location: ".$link);
                }
                elseif (!is_numeric($father))
                {
                        $query = $this->db->get_where('alias', array(
                                "alias" => $father.'.html',
                                "type_id" => 2,
                                ));
                        $row = $query->row_array();
                        $father = $row["id"];
                }
                $d_res = $this->db->get_where('directory', array(
                        'id' => $father,
                        'language' => 'DE',
                        'status' => 0,
                        ));
                $dir_info = $d_res->row_array();
                $this->db->select('templateValue');
                $this->db->join('templates t', 'td.templates_id=t.id');
                $res = $this->db->get_where('templates_to_directory td', array(
                        'directory_id' => $father,
                        'shops_id' => $GLOBALS['INI']['shops_ID'],
                        'typ' => 'directory',
                        ));
                $t_row = $res->row_array();
                $folder = substr($t_row['templateValue'], 7);
                $dir_info['template_folder'] = $folder;
                $dir_info['KategoriebildTag'] = $dir_info['Name'];
                $dir_info["shopPosition"] = $this->shop_position->get_position($father);
                $items = $this->artikel->list_artikel($father, false, $start, $limit);
                $dir_info['items'] = $items['artikel'];
                $dir_info['item_anz'] = $items['total'];
                $dir_info['subdirs'] = $this->list_directory($father);
                $dir_info['medien'] = $this->medien->get_category_medien($father);
                $dir_info['artstaemmeItems'] = $this->get_artstaemme_items($father);
                $config{'base_url'} = $this->config->item('base_url').'/'.$this->get_link($father);
                $config['total_rows'] = $items['count'];
                $config['per_page'] = $limit;
                $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());
                $medien = $dir_info['medien'];
                if (count($medien) > 1)
                {
                        $dir_info['Kategoriebild'] = $medien[1]['bild_url_ba'];
                        if ($medien[1]["beschreibung"] != '')
                        {
                                $dir_info['KategoriebildTag'] = $medien[1]['beschreibung'];
                        }
                }
                elseif (count($medien))
                {
                        $dir_info['Kategoriebild'] = $medien[0]['bild_url_ba'];
                        if ($medien[0]["beschreibung"] != '')
                        {
                                $dir_info['KategoriebildTag'] = $medien[0]['beschreibung'];
                        }
                }
                return $dir_info;
        }

        /**
         * Category_model::list_directory()
         * 
         * Unterkategorien
         * 
         * @param mixed $father
         * @param integer $artikelstamm
         * @return
         */
        public function list_directory($father, $artikelstamm = 0)
        {
                $subdirs = array();
                $this->db->order_by('kennung', 'ASC');
                $query = $this->db->get_where('directory', array(
                        "father" => $father,
                        "language" => "DE",
                        "status" => 0,
                        'Artikelstamm' => $artikelstamm,
                        ));
                while ($row = $query->unbuffered_row('array'))
                {
                        $row["dirLink"] = $this->get_link($row["ID"]);
                        $row["medien"] = $this->medien->get_category_medien($row["ID"]);
                        $subdirs[] = $row;
                }
                return $subdirs;
        }
        /**
         * Category_model::get_dir()
         * 
         * Infos zu einer Kategorie
         * 
         * @param mixed $id
         * @return
         */
        public function get_dir($id)
        {
                if (is_numeric($id))
                {
                        $link = $this->get_link($id);
                        header("Location: ".$link);
                }
                else
                {
                        $query = $this->db->get_where('alias', array(
                                "alias" => $id.'.html',
                                "type_id" => 2,
                                ));
                        $row = $query->row_array();
                        $id = $row["id"];
                        $query = $this->db->get_where('directory', array(
                                'id' => $id,
                                "language" => "DE",
                                ));
                        $row = $query->row_array();
                        return $row;
                }
        }

        /**
         * Category_model::get_link()
         * 
         * Link
         * 
         * @param mixed $id
         * @return
         */
        public function get_link($id)
        {
                $link = $this->alias->get_link($id, 2);
                return "/".$link;
        }

        /**
         * Category_model::get_artstaemme_items()
         * 
         * Artikel innerhalb von Artikelstämmen
         * 
         * @param mixed $id
         * @return
         */
        private function get_artstaemme_items($id)
        {
                $artikelstaemme = $this->list_directory($id, 1);
                foreach ($artikelstaemme as $as_id => $artikelstamm)
                {
                        $artikelstaemme[$as_id]['items'] = $this->artikel->list_artikel($artikelstamm['ID'], true);
                }
                return $artikelstaemme;
        }
}

?>