in 3.0.x-and-above/upload/catalog/model/extension/module/facebook_business.php [218:272]
private function installExtension($user_group_id = 0) {
// Install extension
$extension_query = $this->db->query("SELECT * FROM `" . DB_PREFIX . "extension` WHERE `type` = 'module' AND `code` = 'facebook_business'");
if (!$extension_query->num_rows) {
$this->db->query("INSERT INTO `" . DB_PREFIX . "extension` SET `type` = 'module', `code` = 'facebook_business'");
}
// Add custom table
$this->db->query("
CREATE TABLE IF NOT EXISTS `" . DB_PREFIX . "product_to_facebook` (
`product_to_facebook_id` INT(11) NOT NULL AUTO_INCREMENT,
`product_id` INT(11) NOT NULL,
`google_product_category` int(16) NOT NULL DEFAULT 0,
`condition` varchar(20) NOT NULL,
`age_group` varchar(50) NOT NULL,
`color` varchar(255) NOT NULL,
`gender` varchar(20) NOT NULL,
`material` varchar(255) NOT NULL,
`pattern` varchar(255) NOT NULL,
PRIMARY KEY (`product_to_facebook_id`)
) ENGINE=MyISAM DEFAULT COLLATE=utf8_general_ci;");
// Delete any existing events first
$this->db->query("DELETE FROM `" . DB_PREFIX . "event` WHERE `code` = 'facebook_business'");
// Install events
$this->db->query("INSERT INTO `" . DB_PREFIX . "event` SET `code` = 'module_facebook_business', `trigger` = 'admin/view/common/dashboard/after', `action` = 'extension/module/facebook_business/eventPostViewCommonDashboard', `sort_order` = '0', `status` = '1'");
$this->db->query("INSERT INTO `" . DB_PREFIX . "event` SET `code` = 'module_facebook_business', `trigger` = 'admin/view/common/column_left/before', `action` = 'extension/module/facebook_business/eventPreViewCommonColumnLeft', `sort_order` = '0', `status` = '1'");
$this->db->query("INSERT INTO `" . DB_PREFIX . "event` SET `code` = 'module_facebook_business', `trigger` = 'admin/view/catalog/product_form/before', `action` = 'extension/module/facebook_business/eventPreViewCatalogProductForm', `sort_order` = '0', `status` = '1'");
$this->db->query("INSERT INTO `" . DB_PREFIX . "event` SET `code` = 'module_facebook_business', `trigger` = 'admin/view/catalog/product_form/after', `action` = 'extension/module/facebook_business/eventPostViewCatalogProductForm', `sort_order` = '0', `status` = '1'");
$this->db->query("INSERT INTO `" . DB_PREFIX . "event` SET `code` = 'module_facebook_business', `trigger` = 'admin/model/catalog/product/addProduct/after', `action` = 'extension/module/facebook_business/eventPostModelAddProduct', `sort_order` = '0', `status` = '1'");
$this->db->query("INSERT INTO `" . DB_PREFIX . "event` SET `code` = 'module_facebook_business', `trigger` = 'admin/model/catalog/product/editProduct/after', `action` = 'extension/module/facebook_business/eventPostModelEditProduct', `sort_order` = '0', `status` = '1'");
$this->db->query("INSERT INTO `" . DB_PREFIX . "event` SET `code` = 'module_facebook_business', `trigger` = 'admin/model/catalog/product/copyProduct/after', `action` = 'extension/module/facebook_business/eventPostModelCopyProduct', `sort_order` = '0', `status` = '1'");
$this->db->query("INSERT INTO `" . DB_PREFIX . "event` SET `code` = 'module_facebook_business', `trigger` = 'admin/model/catalog/product/deleteProduct/after', `action` = 'extension/module/facebook_business/eventPostModelDeleteProduct', `sort_order` = '0', `status` = '1'");
$this->db->query("INSERT INTO `" . DB_PREFIX . "event` SET `code` = 'module_facebook_business', `trigger` = 'catalog/view/common/header/before', `action` = 'extension/module/facebook_business/eventPreViewCommonHeader', `sort_order` = '0', `status` = '1'");
$this->db->query("INSERT INTO `" . DB_PREFIX . "event` SET `code` = 'module_facebook_business', `trigger` = 'catalog/view/common/header/after', `action` = 'extension/module/facebook_business/eventPostViewCommonHeader', `sort_order` = '0', `status` = '1'");
$this->db->query("INSERT INTO `" . DB_PREFIX . "event` SET `code` = 'module_facebook_business', `trigger` = 'catalog/controller/checkout/success/before', `action` = 'extension/module/facebook_business/eventPreControllerCheckoutSuccess', `sort_order` = '0', `status` = '1'");
// Enabling status
$this->db->query("DELETE FROM `" . DB_PREFIX . "setting` WHERE store_id = '0' AND `code` = 'module_facebook_business'");
$this->db->query("INSERT INTO `" . DB_PREFIX . "setting` SET store_id = '0', `code` = 'module_facebook_business', `key` = 'module_facebook_business_status', `value` = '1'");
// Adding permissions for user group
$user_group_query = $this->db->query("SELECT DISTINCT * FROM " . DB_PREFIX . "user_group WHERE user_group_id = '" . (int)$user_group_id . "'");
if ($user_group_query->num_rows) {
$data = json_decode($user_group_query->row['permission'], true);
$data['access'][] = 'extension/module/facebook_business';
$data['modify'][] = 'extension/module/facebook_business';
$this->db->query("UPDATE " . DB_PREFIX . "user_group SET permission = '" . $this->db->escape(json_encode($data)) . "' WHERE user_group_id = '" . (int)$user_group_id . "'");
}
}