Revision 732 | Revision 1994 | Zur aktuellen Revision | Blame | Vergleich mit vorheriger | Letzte Änderung | Log anzeigen | RSS feed
<?php/*** @author Lars Tiefland* @copyright 2016*//*** Artikel_model** Liest alle Daten für Artikel** @package WebanOS CI* @author Lars Tiefland* @copyright 2016* @version $Id: Artikel_model.php 732 2016-09-30 22:57:30Z lars $* @access public*/class Artikel_model extends CI_Model{/*** Artikel_model::__construct()** @return*/public function __construct(){parent::__construct();$this->load->model('alias_model', 'alias');$this->load->model('preise_model', 'preise');$this->load->model('medien_model', 'medien');$this->load->model('shop_position_model', 'shop_position');}/*** Artikel_model::list_artikel()** Artikelübersicht** @param mixed $father* @param bool $return_zero_price* @return*/public function list_artikel($father, $return_zero_price = false, $start = 0, $limit = null){$artikel = array();/*$this->db->select('ID');//$this->db->order_by('Lieferstatus', 'ASC');//$this->db->order_by('Rang', 'DESC');if (!is_null($limit)){$this->db->limit($limit, $start);}$query = $this->db->get_where('artikel', array("father" => $father,"language" => "DE","status" => 0,));*/$sql = 'SELECTSQL_CALC_FOUND_ROWSIDFROMartikelWHEREfather = '.$father.'ANDlanguage = "DE"ANDstatus = 0';if (!is_null($limit)){$sql .= 'LIMIT'.$start.','.$limit.'';}$query = $this->db->query($sql);$sql = "SELECT FOUND_ROWS() AS total";$ret = $this->db->query($sql);$erg = $ret->row_array();$count = $erg['total'];while ($row = $query->unbuffered_row('array')){$item = $this->get_item_info($row["ID"], $return_zero_price);if (is_array($item)){$artikel[] = $item;}}$ret = array('artikel' => $artikel,'count' => $count,);return $ret;}/*** Artikel_model::get_artikel()** einzelner Artikel** @param mixed $id* @param bool $return* @return*/public function get_artikel($id, $return = false){if (is_numeric($id)){if ($return === false){$link = $this->get_link($id, 1);header("Location: ".$link);}else{$row = $this->get_item_info($id);return $row;}}else{$query = $this->db->get_where('alias', array("alias" => $id.'.html',"type_id" => 1,));$row = $query->row_array();$id = $row["id"];$row = $this->get_item_info($id);return $row;}}/*** Artikel_model::get_link()** erzeuge Link für Artikel** @param mixed $id* @return*/private function get_link($id){$link = $this->alias->get_link($id, 1);return "/".$link;}/*** Artikel_model::get_item_info()** alle Infos für Artikel inkl. Prüfung auf Sperrkriterien** @param mixed $id* @param bool $return_zero_price* @return*/private function get_item_info($id, $return_zero_price = false){$query = $this->db->get_where('artikel', array('id' => $id,"language" => "DE",));$row = $query->row_array();$row['itemLink'] = $this->get_link($row["ID"]);$preise = $this->preise->get_prices($row["ID"]);if (count($preise)){if ((float)$preise["preis1"] > 0 || $return_zero_price === true){$row['grundpreis'] = "";if (isset($row['gebinde_menge']) && $row["gebinde_menge"] > 0 && isset($row['gebinde_einheit']) &&$row["gebinde_einheit"]){$row["grundpreis"] = $row["preis1"] / $row["gebinde_menge"];}$path = getPath($row['Father']);if (is_array($path)){$row['path'] = $path;$row = array_merge($row, $preise);$row["shopPosition"] = $this->shop_position->get_position($row['Father']);$row["shopPosition"][] = array('Name' => $row['kurzbezeichnung'],'link' => $row['itemLink'],);$medien = $this->medien->get_artikel_medien($row["ID"]);$row["medien"] = $medien;$row["preis"] = $row["preis1"];return $row;}}}}/*** Artikel_model::serie()** @param mixed $serien_id* @return*/public function serie($serien_id){$items = array();// ME: erstmal gucken, ob es eine Serie zu einem Ordner ist$sql = "SELECT DISTINCTa.ID as aIDFROMshop_link_table slt,directory dJOINartikel aONa.Father = d.idWHEREslt.Father = ".$serien_id."ANDd.id = slt.idANDverwendung = 'd2s'";$q = $this->db->query($sql);if ($q){while ($r = $q->unbuffered_row('array')){// alle Artikel zum Ordner holen$item = $this->get_item_info($r['aID'], true);if (is_array($item)){$items[] = $item;}}}$sql = "SELECT DISTINCTidFROMshop_link_tableWHEREFather = ".$serien_id."ANDverwendung = 'a2s'";$q = $this->db->query($sql);if ($q){while ($r = $q->unbuffered_row('array')){$item = $this->get_item_info($r['id'], true);if (is_array($item) && !in_array($item, $items)){$items[] = $item;}}}return $items;}}?>