private function installExtension()

in 2.3.x-and-above/upload/catalog/model/extension/module/facebook_business.php [218:268]


    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` = 'facebook_business', `trigger` = 'admin/view/common/dashboard/after', `action` = 'extension/module/facebook_business/eventPostViewCommonDashboard', `status` = '1', `date_added` = now()");
        $this->db->query("INSERT INTO `" . DB_PREFIX . "event` SET `code` = 'facebook_business', `trigger` = 'admin/view/common/column_left/before', `action` = 'extension/module/facebook_business/eventPreViewCommonColumnLeft', `status` = '1', `date_added` = now()");
        $this->db->query("INSERT INTO `" . DB_PREFIX . "event` SET `code` = 'facebook_business', `trigger` = 'admin/view/catalog/product_form/before', `action` = 'extension/module/facebook_business/eventPreViewCatalogProductForm', `status` = '1', `date_added` = now()");
        $this->db->query("INSERT INTO `" . DB_PREFIX . "event` SET `code` = 'facebook_business', `trigger` = 'admin/view/catalog/product_form/after', `action` = 'extension/module/facebook_business/eventPostViewCatalogProductForm', `status` = '1', `date_added` = now()");
        $this->db->query("INSERT INTO `" . DB_PREFIX . "event` SET `code` = 'facebook_business', `trigger` = 'admin/model/catalog/product/addProduct/after', `action` = 'extension/module/facebook_business/eventPostModelAddProduct', `status` = '1', `date_added` = now()");
        $this->db->query("INSERT INTO `" . DB_PREFIX . "event` SET `code` = 'facebook_business', `trigger` = 'admin/model/catalog/product/editProduct/after', `action` = 'extension/module/facebook_business/eventPostModelEditProduct', `status` = '1', `date_added` = now()");
        $this->db->query("INSERT INTO `" . DB_PREFIX . "event` SET `code` = 'facebook_business', `trigger` = 'admin/model/catalog/product/copyProduct/after', `action` = 'extension/module/facebook_business/eventPostModelCopyProduct', `status` = '1', `date_added` = now()");
        $this->db->query("INSERT INTO `" . DB_PREFIX . "event` SET `code` = 'facebook_business', `trigger` = 'admin/model/catalog/product/deleteProduct/after', `action` = 'extension/module/facebook_business/eventPostModelDeleteProduct', `status` = '1', `date_added` = now()");
        $this->db->query("INSERT INTO `" . DB_PREFIX . "event` SET `code` = 'facebook_business', `trigger` = 'catalog/view/common/header/before', `action` = 'extension/module/facebook_business/eventPreViewCommonHeader', `status` = '1', `date_added` = now()");
        $this->db->query("INSERT INTO `" . DB_PREFIX . "event` SET `code` = 'facebook_business', `trigger` = 'catalog/view/*/common/header/after', `action` = 'extension/module/facebook_business/eventPostViewCommonHeader', `status` = '1', `date_added` = now()");
        $this->db->query("INSERT INTO `" . DB_PREFIX . "event` SET `code` = 'facebook_business', `trigger` = 'catalog/controller/checkout/success/before', `action` = 'extension/module/facebook_business/eventPreControllerCheckoutSuccess', `status` = '1', `date_added` = now()");
        
        // 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 . "'");
        }
    }