/** * Returns a ShopCategory selected by its ID from the database. * * Returns null if the Category does not exist. * @static * @param integer $category_id The Shop Category ID * @return ShopCategory The Shop Category object on success, * false on failure, or null otherwise. * @global ADONewConnection $objDatabase Database connection object * @author Reto Kohli <*****@*****.**> */ static function getById($category_id) { global $objDatabase; $category_id = intval($category_id); if ($category_id <= 0) { return null; } $arrSql = \Text::getSqlSnippets('`category`.`id`', FRONTEND_LANG_ID, 'Shop', array('name' => self::TEXT_NAME, 'description' => self::TEXT_DESCRIPTION)); $query = "\n SELECT `category`.`id`,\n `category`.`parent_id`,\n `category`.`active`,\n `category`.`ord`,\n `category`.`picture`,\n `category`.`flags`, " . $arrSql['field'] . "\n FROM `" . DBPREFIX . "module_shop" . MODULE_INDEX . "_categories` AS `category`" . $arrSql['join'] . "\n WHERE `category`.`id`={$category_id}"; $objResult = $objDatabase->Execute($query); if (!$objResult) { return self::errorHandler(); } if ($objResult->EOF) { return null; } $id = $objResult->fields['id']; $strName = $objResult->fields['name']; if ($strName === null) { $objText = \Text::getById($id, 'Shop', self::TEXT_NAME); if ($objText) { $strName = $objText->content(); } } $strDescription = $objResult->fields['description']; if ($strDescription === null) { $objText = \Text::getById($id, 'Shop', self::TEXT_DESCRIPTION); if ($objText) { $strDescription = $objText->content(); } } //DBG::log("ShopCategory::getById($category_id): Loaded '$strName' / '$strDescription'"); $objCategory = new ShopCategory($strName, $strDescription, $objResult->fields['parent_id'], $objResult->fields['active'], $objResult->fields['ord'], $category_id); $objCategory->picture($objResult->fields['picture']); $objCategory->flags($objResult->fields['flags']); return $objCategory; }