* @copyright 2007-2019 PrestaShop SA and Contributors * @license https://opensource.org/licenses/OSL-3.0 Open Software License (OSL 3.0) * International Registered Trademark & Property of PrestaShop SA */ /** * Class ContactCore. */ class ContactCore extends ObjectModel { public $id; /** @var string Name */ public $name; /** @var string e-mail */ public $email; /** @var string Detailed description */ public $description; public $customer_service; /** * @see ObjectModel::$definition */ public static $definition = array( 'table' => 'contact', 'primary' => 'id_contact', 'multilang' => true, 'fields' => array( 'email' => array( 'type' => self::TYPE_STRING, 'validate' => 'isEmail', 'size' => 255, ), 'customer_service' => array( 'type' => self::TYPE_BOOL, 'validate' => 'isBool', ), /* Lang fields */ 'name' => array( 'type' => self::TYPE_STRING, 'lang' => true, 'validate' => 'isGenericName', 'required' => true, 'size' => 255, ), 'description' => array( 'type' => self::TYPE_STRING, 'lang' => true, 'validate' => 'isCleanHtml', ), ), ); /** * Return available contacts. * * @param int $idLang Language ID * * @return array Contacts */ public static function getContacts($idLang) { $shopIds = Shop::getContextListShopID(); $sql = 'SELECT * FROM `' . _DB_PREFIX_ . 'contact` c ' . Shop::addSqlAssociation('contact', 'c', false) . ' LEFT JOIN `' . _DB_PREFIX_ . 'contact_lang` cl ON (c.`id_contact` = cl.`id_contact`) WHERE cl.`id_lang` = ' . (int) $idLang . ' AND contact_shop.`id_shop` IN (' . implode(', ', array_map('intval', $shopIds)) . ') GROUP BY c.`id_contact` ORDER BY `name` ASC'; return Db::getInstance(_PS_USE_SQL_SLAVE_)->executeS($sql); } /** * Return available categories contacts. * * @return array Contacts */ public static function getCategoriesContacts() { $shopIds = Shop::getContextListShopID(); return Db::getInstance()->executeS(' SELECT cl.* FROM ' . _DB_PREFIX_ . 'contact ct ' . Shop::addSqlAssociation('contact', 'ct', false) . ' LEFT JOIN ' . _DB_PREFIX_ . 'contact_lang cl ON (cl.id_contact = ct.id_contact AND cl.id_lang = ' . (int) Context::getContext()->language->id . ') WHERE ct.customer_service = 1 AND contact_shop.`id_shop` IN (' . implode(', ', array_map('intval', $shopIds)) . ') GROUP BY ct.`id_contact` '); } }