<?php namespace models; class ProductCategory extends \ArrayObject { static public function add($params) { global $db; mysqli_query($db, "INSERT INTO products_categories (". "lang,". "slug,". "title,". "image_list,". "image_cover,". "description,". "published,". "published_datetime,". "published_datetime2,". "seo_title,". "seo_image,". "seo_description,". "seo_keywords,". "created_at". ") VALUES (". _text(_a($params, 'lang')) . ", ". _text(_a($params, 'slug')) . ", ". _text(_a($params, 'title')) . ", ". _text(_a(_a($params, 'image_list'), 'asset')) . ", ". _text(_a(_a($params, 'image_cover'), 'asset')) . ", ". _text(_a($params, 'description')) . ", ". _integer(_a($params, 'published')) . ", ". _datetime(_a($params, 'published_datetime')) . ", ". _datetime(_a($params, 'published_datetime2')) . ", ". _text(_a($params, 'seo_title')) . ", ". _text(_a(_a($params, 'seo_image'), 'asset')) . ", ". _text(_a($params, 'seo_description')) . ", ". _text(_a($params, 'seo_keywords')) . ", ". "NOW()". ");") or die("query error in ProductCategory::add: " . mysqli_error($db)); } static public function get_by_id($id) { global $db; $rs = mysqli_query($db, "SELECT * FROM products_categories WHERE id = " . _integer($id) . ";") or die("query error in ProductCategory::get_by_id: " . mysqli_error($db)); $r = mysqli_fetch_assoc($rs); if ($r) { return new ProductCategory($r); } return null; } static public function get_by_slug($slug) { global $db; $rs = mysqli_query($db, "SELECT * FROM products_categories ". "WHERE slug = " . _text($slug) . " ". "AND deleted_at IS NULL ". "ORDER BY id DESC LIMIT 1;") or die("query error in ProductCategory::get_by_slug: " . mysqli_error($db)); $r = mysqli_fetch_assoc($rs); if ($r) { return new ProductCategory($r); } return null; } static public function get($params=array(), $offset=0, $limit=25) { global $db; $where = ProductCategory::get_where($params); $rs = mysqli_query($db, "SELECT * ". "FROM products_categories ". "WHERE deleted_at IS NULL $where ". "ORDER BY title ". "LIMIT " . _integer($limit) . " OFFSET " . _integer($offset) . ";") or die("query error in ProductCategory::get: " . mysqli_error($db)); $results = array(); while ($r = mysqli_fetch_assoc($rs)) { array_push($results, new ProductCategory($r)); } return $results; } static public function get_count($params=array()) { global $db; $where = ProductCategory::get_where($params); $rs = mysqli_query($db, "SELECT COUNT(*) AS count ". "FROM products_categories ". "WHERE deleted_at IS NULL $where;") or die("query error in ProductCategory::get_count: " . mysqli_error($db)); $r = mysqli_fetch_assoc($rs); return $r['count']; } static public function get_where($params=array()) { $where = ""; if (isset($params['q']) && $params['q']) { $where .= "AND (lower(title) like " . _text('%' . mb_strtolower($params['q']) . '%') . ") "; } if (isset($params['published']) && $params['published']) { $where .= "AND published = 1 ". "AND (published_datetime IS NULL or published_datetime <= NOW()) ". "AND (published_datetime2 IS NULL or published_datetime2 > NOW()) "; } return $where; } static public function get_vocabulary($params=array()) { global $BLOG_CATEGORIES; $result = array(); foreach (ProductCategory::get($params, 0, 100) as $category) { $result[$category['id']] = mb_strtoupper($category['lang']) . ": " . $category['title']; } return $result; } public function delete() { global $db; mysqli_query($db, "UPDATE products_categories SET ". "deleted_at = NOW() ". "WHERE id = " . _integer($this['id']) . ";") or die("query error in ProductCategory::delete: " . mysqli_error($db)); } public function get_product() { // mod return Product::get(array("category_id" => $this['id'], "published" => 1 ), 0, 64); // mod } public function update($params) { global $db; mysqli_query($db, "UPDATE products_categories SET ". "lang = " . _text(_a($params, 'lang')) . ", ". "slug = " . _text(_a($params, 'slug')) . ", ". "title = " . _text(_a($params, 'title')) . ", ". "image_list = " . _text(_a(_a($params, 'image_list'), 'asset')) . ", ". "image_cover = " . _text(_a(_a($params, 'image_cover'), 'asset')) . ", ". "description = " . _text(_a($params, 'description')) . ", ". "published = " . _integer(_a($params, 'published')) . ", ". "published_datetime = " . _datetime(_a($params, 'published_datetime')) . ", ". "published_datetime2 = " . _datetime(_a($params, 'published_datetime2')) . ", ". "seo_title = " . _text(_a($params, 'seo_title')) . ", ". "seo_image = " . _text(_a(_a($params, 'seo_image'), 'asset')) . ", ". "seo_description = " . _text(_a($params, 'seo_description')) . ", ". "seo_keywords = " . _text(_a($params, 'seo_keywords')) . ", ". "updated_at = NOW() ". "WHERE id = " . _integer($this['id']) . ";") or die("query error in ProductCategory::update: " . mysqli_error($db)); } public function json() { return array( "id" => (int)$this['id'], "title" => $this['title'], ); } function __construct($value) { parent::__construct($value); } } ?>