本文整理汇总了PHP中Shop::addTableAssociation方法的典型用法代码示例。如果您正苦于以下问题:PHP Shop::addTableAssociation方法的具体用法?PHP Shop::addTableAssociation怎么用?PHP Shop::addTableAssociation使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类Shop
的用法示例。
在下文中一共展示了Shop::addTableAssociation方法的15个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的PHP代码示例。
示例1: __construct
public function __construct()
{
$this->table = 'smart_blog_comment';
$this->className = 'Blogcomment';
$this->module = 'smartblog';
$this->context = Context::getContext();
$this->bootstrap = true;
if (Shop::isFeatureActive()) {
Shop::addTableAssociation($this->table, array('type' => 'shop'));
}
parent::__construct();
$this->fields_list = array('id_smart_blog_comment' => array('title' => $this->l('Id'), 'width' => 50, 'type' => 'text'), 'email' => array('title' => $this->l('Email'), 'width' => 50, 'type' => 'text', 'lang' => true), 'meta_title' => array('title' => $this->l('Post Title'), 'filter_key' => 'smp!meta_title', 'align' => 'center'), 'name' => array('title' => $this->l('Name'), 'width' => 150, 'type' => 'text'), 'content' => array('title' => $this->l('Comment'), 'width' => 200, 'type' => 'text', 'callback' => 'getCommentClean'), 'created' => array('title' => $this->l('Date'), 'width' => 60, 'type' => 'text', 'lang' => true), 'active' => array('title' => $this->l('Status'), 'width' => '70', 'align' => 'center', 'active' => 'status', 'type' => 'bool', 'orderby' => false));
$this->bulk_actions = array('delete' => array('text' => $this->l('Delete selected'), 'icon' => 'icon-trash', 'confirm' => $this->l('Delete selected items?')));
$this->_join = ' LEFT JOIN ' . _DB_PREFIX_ . 'smart_blog_comment_shop sbs ON a.id_smart_blog_comment=sbs.id_smart_blog_comment && sbs.id_shop IN(' . implode(',', Shop::getContextListShopID()) . ')';
$this->_join .= ' LEFT JOIN ' . _DB_PREFIX_ . 'smart_blog_post_lang smp ON a.id_post=smp.id_smart_blog_post and smp.id_lang = ' . (int) Context::getContext()->language->id;
$this->_select = 'sbs.id_shop';
$this->_defaultOrderBy = 'a.id_smart_blog_comment';
$this->_defaultOrderWay = 'DESC';
$this->_select = 'smp.meta_title';
//$this->_defaultOrderBy = 'a.id_smart_blog_comment';
if (Shop::isFeatureActive() && Shop::getContext() != Shop::CONTEXT_SHOP) {
$this->_group = 'GROUP BY a.id_smart_blog_comment';
}
parent::__construct();
}
示例2: __construct
public function __construct()
{
$this->name = 'magicredirect';
$this->tab = 'seo';
$this->version = '1.1.4';
$this->author = 'AgenceMalttt';
$this->secure_key = Tools::encrypt($this->name);
$this->need_instance = 0;
$this->bootstrap = true;
$this->module_key = 'a3e63c648fcae16db808f68e1eb18448';
$this->ps_versions_compliancy = array('min' => '1.6.0.0', 'max' => _PS_VERSION_);
$this->tabs_form = array('general' => $this->l('General Settings'), 'cache' => $this->l('Cache Settings'));
$models = glob(_PS_MODULE_DIR_ . $this->name . '/models/*.php');
if (!empty($models)) {
foreach ($models as $file) {
if (!strpos($file, 'index.php')) {
require_once $file;
}
}
}
if (Shop::isFeatureActive()) {
Shop::addTableAssociation('redirect', array('type' => 'shop'));
}
$this->fields_form = array(array('name' => 'MGRT_AUTOCATCH', 'type' => 'radio', 'desc' => $this->l('Catch all 404 Url\'s and log them for future redirections'), 'label' => $this->l('Catch 404 and log them'), 'default' => '1', 'tab' => 'general', 'values' => array(array('id' => 'type_4_0', 'value' => 0, 'label' => $this->l('No')), array('id' => 'type_4_1', 'value' => 1, 'label' => $this->l('Yes')))), array('name' => 'MGRT_AUTOACTIVE', 'type' => 'radio', 'desc' => $this->l('Activate all generated rules by automatic catcher'), 'label' => $this->l('Activate all generated rules'), 'default' => '0', 'tab' => 'general', 'values' => array(array('id' => 'type_5_0', 'value' => 0, 'label' => $this->l('No')), array('id' => 'type_5_1', 'value' => 1, 'label' => $this->l('Yes')))), array('name' => 'MGRT_DELPARENTREDIR', 'type' => 'radio', 'desc' => $this->l('Redirect dead object (product, category, manufacturer, supplier, cms page, cms category) to their natural parent.'), 'label' => $this->l('Redirect to parent if deleted.'), 'default' => '1', 'tab' => 'general', 'values' => array(array('id' => 'type_6_0', 'value' => 0, 'label' => $this->l('No')), array('id' => 'type_6_1', 'value' => 1, 'label' => $this->l('Yes')))), array('name' => 'MGRT_AUTOPARENTREDIR', 'type' => 'radio', 'desc' => $this->l('Redirect disabled object (product, category, cms page, cms category, supplier, manufacturer) to their natural parent.'), 'label' => $this->l('Redirect to parent if disabled'), 'default' => '1', 'tab' => 'general', 'values' => array(array('id' => 'type_707_0', 'value' => 0, 'label' => $this->l('No')), array('id' => 'type_707_1', 'value' => 1, 'label' => $this->l('Yes')))), array('name' => 'MGRT_HOOKDISP', 'type' => 'radio', 'desc' => $this->l('Display an remember on admin dashboard when there is new 404 to take a look.'), 'label' => $this->l('Display new 404 alert on Admin Dashboard'), 'default' => '1', 'tab' => 'general', 'values' => array(array('id' => 'type_d_0', 'value' => 0, 'label' => $this->l('No')), array('id' => 'type_d_1', 'value' => 1, 'label' => $this->l('Yes')))), array('name' => 'MGRT_URLCACHE', 'type' => 'radio', 'desc' => $this->l('Enable cache for URL rules'), 'label' => $this->l('Faster redirects with cache'), 'default' => '1', 'tab' => 'cache', 'values' => array(array('id' => 'type_4_0', 'value' => 0, 'label' => $this->l('No')), array('id' => 'type_4_1', 'value' => 1, 'label' => $this->l('Yes')))), array('name' => 'MGRT_CACHETIME', 'type' => 'text', 'desc' => $this->l('Cache time (in minutes)'), 'label' => $this->l('Cache time (in minutes)'), 'default' => '60', 'validate' => 'isInt', 'tab' => 'cache'));
$this->hooks = array('header', 'dashboardZoneOne', 'actionObjectUpdateAfter', 'actionObjectDeleteBefore');
$this->cache_folder = _PS_CACHE_DIR_ . $this->name . '/cache/';
$this->secure_key = Tools::encrypt($this->name);
parent::__construct();
$this->displayName = $this->l('Magic Redirect');
$this->description = $this->l('Predictive and easy redirect tools (Multishop/Multilang)');
}
示例3: __construct
public function __construct()
{
$this->name = 'ph_simpleblog';
$this->tab = 'front_office_features';
$this->version = '1.4.0';
$this->author = 'www.PrestaHome.com';
$this->need_instance = 1;
$this->is_configurable = 1;
$this->ps_versions_compliancy['min'] = '1.6';
$this->ps_versions_compliancy['max'] = _PS_VERSION_;
$this->secure_key = Tools::encrypt($this->name);
$this->is_16 = version_compare(_PS_VERSION_, '1.6.0', '>=') === true ? true : false;
$this->controllers = array('single', 'list', 'category');
$this->bootstrap = true;
if (Shop::isFeatureActive()) {
Shop::addTableAssociation('simpleblog_category', array('type' => 'shop'));
Shop::addTableAssociation('simpleblog_post', array('type' => 'shop'));
}
parent::__construct();
$this->displayName = $this->l('Blog for PrestaShop');
$this->description = $this->l('Adds a blog to your PrestaShop store');
$this->confirmUninstall = $this->l('Are you sure you want to delete this module ?');
if ($this->id && !$this->isRegisteredInHook('moduleRoutes')) {
$this->registerHook('moduleRoutes');
}
if ($this->id && !$this->isRegisteredInHook('displayPrestaHomeBlogAfterPostContent')) {
$this->registerHook('displayPrestaHomeBlogAfterPostContent');
}
}
示例4: init
public function init()
{
parent::init();
Shop::addTableAssociation($this->table, array('type' => 'shop'));
if (Shop::getContext() == Shop::CONTEXT_SHOP) {
$this->_join .= ' LEFT JOIN `' . _DB_PREFIX_ . $this->table . '_shop` sa ON (a.`id_' . $this->table . '` = sa.`id_' . $this->table . '` AND sa.id_shop = ' . (int) $this->context->shop->id . ') ';
}
if (Shop::getContext() == Shop::CONTEXT_SHOP && Shop::isFeatureActive()) {
$this->_where = ' AND sa.`id_shop` = ' . (int) Context::getContext()->shop->id;
}
}
示例5: __construct
/**
* CTTopMenu constructor.
*/
public function __construct()
{
$this->name = 'cttopmenu';
$this->tab = 'front_office_features';
$this->version = '1.1.0';
$this->author = 'PrestaShop Community';
parent::__construct();
$this->displayName = $this->l('Community Theme Top Menu');
$this->description = $this->l('Adds a new horizontal menu to the top of your e-commerce website.');
$this->ps_versions_compliancy = array('min' => '1.6.0.3', 'max' => _PS_VERSION_);
$this->bootstrap = true;
Shop::addTableAssociation('ct_top_menu_item', array('type' => 'shop'));
}
示例6: __construct
public function __construct()
{
$this->table = 'pos_logo';
$this->className = 'Logo';
//$this->lang = true;
$this->bootstrap = true;
$this->deleted = false;
$this->colorOnBackground = false;
$this->bulk_actions = array('delete' => array('text' => $this->l('Delete selected'), 'confirm' => $this->l('Delete selected items?')));
Shop::addTableAssociation($this->table, array('type' => 'shop'));
$this->context = Context::getContext();
$this->fieldImageSettings = array('name' => 'image', 'dir' => 'blocklogo');
$this->imageType = "jpg";
parent::__construct();
}
示例7: init
public function init()
{
parent::init();
Shop::addTableAssociation($this->table, array('type' => 'shop'));
if (Shop::getContext() == Shop::CONTEXT_SHOP) {
$this->_join .= ' LEFT JOIN `' . _DB_PREFIX_ . 'simpleblog_category_shop` sa ON (a.`id_simpleblog_category` = sa.`id_simpleblog_category` AND sa.id_shop = ' . (int) $this->context->shop->id . ') ';
}
// else
// $this->_join .= ' LEFT JOIN `'._DB_PREFIX_.'simpleblog_category_shop` sa ON (a.`simpleblog_category` = sa.`simpleblog_category` AND sa.id_shop = a.id_shop_default) ';
if (Shop::getContext() == Shop::CONTEXT_SHOP && Shop::isFeatureActive()) {
$this->_where = ' AND sa.`id_shop` = ' . (int) Context::getContext()->shop->id;
}
if (Shop::isFeatureActive() && Shop::getContext() != Shop::CONTEXT_SHOP) {
unset($this->fields_list['position']);
}
}
示例8: __construct
/**
* AdminCTTopMenuItemController constructor.
*/
public function __construct()
{
Shop::addTableAssociation('ct_top_menu_item', array('type' => 'shop'));
parent::__construct();
$this->className = 'CTTopMenuItem';
$this->table = 'ct_top_menu_item';
$this->identifier = 'id_ct_top_menu_item';
$this->position_identifier = 'id_ct_top_menu_item';
$this->lang = true;
$this->bootstrap = true;
$this->_defaultOrderBy = 'id_ct_top_menu_item';
$this->_defaultOrderWay = 'asc';
$this->menuItemTypes = array(CTTopMenuItem::TYPE_CUSTOM_LINK => array('name' => $this->l('Custom Link')), CTTopMenuItem::TYPE_PRODUCT => array('name' => $this->l('Product Link'), 'entity_name' => $this->l('Product'), 'fields' => array('entity_id' => true)), CTTopMenuItem::TYPE_CATEGORY => array('name' => $this->l('Category Link'), 'entity_name' => $this->l('Category'), 'fields' => array('entity_id' => true)), CTTopMenuItem::TYPE_CATEGORY_TREE => array('name' => $this->l('Category Tree'), 'entity_name' => $this->l('Category'), 'fields' => array('entity_id' => true, 'tree_max_depth' => true)), CTTopMenuItem::TYPE_CATEGORY_FLAT_TREE => array('name' => $this->l('Category Flat Tree'), 'entity_name' => $this->l('Category'), 'fields' => array('entity_id' => true, 'tree_max_depth' => true)), CTTopMenuItem::TYPE_CMS => array('name' => $this->l('CMS Link'), 'entity_name' => $this->l('CMS'), 'fields' => array('entity_id' => true)), CTTopMenuItem::TYPE_CMS_CATEGORY => array('name' => $this->l('CMS Category Link'), 'entity_name' => $this->l('CMS Category'), 'fields' => array('entity_id' => true)), CTTopMenuItem::TYPE_CMS_CATEGORY_TREE => array('name' => $this->l('CMS Category Tree'), 'entity_name' => $this->l('CMS Category'), 'fields' => array('entity_id' => true, 'tree_max_depth' => true)), CTTopMenuItem::TYPE_MANUFACTURER => array('name' => $this->l('Manufacturer Link'), 'entity_name' => $this->l('Manufacturer'), 'fields' => array('entity_id' => true)), CTTopMenuItem::TYPE_MANUFACTURER_LIST => array('name' => $this->l('Manufacturer List')), CTTopMenuItem::TYPE_SUPPLIER => array('name' => $this->l('Supplier Link'), 'entity_name' => $this->l('Supplier'), 'fields' => array('entity_id' => true)), CTTopMenuItem::TYPE_SUPPLIER_LIST => array('name' => $this->l('Supplier list')));
// Write ID column so we can use this array as option list in fields form
foreach ($this->menuItemTypes as $menuItemTypeKey => &$menuItemType) {
$menuItemType['id'] = $menuItemTypeKey;
}
}
示例9: __construct
public function __construct()
{
$this->name = 'ph_simpleblog';
$this->tab = 'front_office_features';
$this->version = '1.2.0.9';
$this->author = 'www.PrestaHome.com';
$this->need_instance = 0;
$this->is_configurable = 1;
$this->ps_versions_compliancy['min'] = '1.5.3.1';
$this->ps_versions_compliancy['max'] = '1.6.1.0';
$this->secure_key = Tools::encrypt($this->name);
if (Shop::isFeatureActive()) {
Shop::addTableAssociation('simpleblog_category', array('type' => 'shop'));
Shop::addTableAssociation('simpleblog_post', array('type' => 'shop'));
}
parent::__construct();
$this->displayName = $this->l('Simple Blog');
$this->description = $this->l('Adds a blog to your prestashop store');
$this->confirmUninstall = $this->l('Are you sure you want to delete this module ?');
}
示例10: __construct
public function __construct()
{
$this->table = 'smart_blog_comment';
$this->className = 'Blogcomment';
$this->module = 'smartblog';
$this->context = Context::getContext();
$this->bootstrap = true;
if (Shop::isFeatureActive()) {
Shop::addTableAssociation($this->table, array('type' => 'shop'));
}
parent::__construct();
$this->fields_list = array('id_smart_blog_comment' => array('title' => $this->l('Id'), 'width' => 100, 'type' => 'text'), 'name' => array('title' => $this->l('Name'), 'width' => 150, 'type' => 'text'), 'content' => array('title' => $this->l('Comment'), 'width' => 340, 'type' => 'text'), 'created' => array('title' => $this->l('Date'), 'width' => 60, 'type' => 'text', 'lang' => true), 'active' => array('title' => $this->l('Status'), 'width' => '70', 'align' => 'center', 'active' => 'status', 'type' => 'bool', 'orderby' => false));
$this->_join = 'LEFT JOIN ' . _DB_PREFIX_ . 'smart_blog_comment_shop sbs ON a.id_smart_blog_comment=sbs.id_smart_blog_comment && sbs.id_shop IN(' . implode(',', Shop::getContextListShopID()) . ')';
$this->_select = 'sbs.id_shop';
$this->_defaultOrderBy = 'a.id_smart_blog_comment';
$this->_defaultOrderWay = 'DESC';
if (Shop::isFeatureActive() && Shop::getContext() != Shop::CONTEXT_SHOP) {
$this->_group = 'GROUP BY a.id_smart_blog_comment';
}
parent::__construct();
}
示例11: __construct
public function __construct($id_menu = NULL, $id_lang = NULL, $id_shop = null)
{
if (version_compare(_PS_VERSION_, '1.3.0.0', '<')) {
$this->fieldsValidateLang['value_over'] = 'isCleanHTML';
$this->fieldsValidateLang['value_under'] = 'isCleanHTML';
} else {
$this->fieldsValidateLang['value_over'] = 'isString';
$this->fieldsValidateLang['value_under'] = 'isString';
}
//Compatibility 1.5
if (version_compare(_PS_VERSION_, '1.5.0.0', '>=')) {
if (version_compare(_PS_VERSION_, '1.5', '>=') && version_compare(_PS_VERSION_, '1.5.2.0', '<=') && class_exists("ShopPrestaModule")) {
ShopPrestaModule::PrestaModule_setAssoTable(self::$definition['table']);
} else {
Shop::addTableAssociation(self::$definition['table'], array('type' => 'shop'));
}
parent::__construct($id_menu, $id_lang, $id_shop);
} else {
parent::__construct($id_menu, $id_lang);
}
}
示例12: __construct
public function __construct()
{
$this->table = 'campaign';
$this->className = 'Campaign';
$this->module = 'superabandonedcart';
$this->lang = false;
$this->context = Context::getContext();
$this->_defaultOrderBy = 'created';
$this->_defaultorderWay = 'DESC';
$this->bootstrap = true;
$this->bulk_actions = array('delete' => array('text' => $this->l('Delete selected'), 'icon' => 'icon-trash', 'confirm' => $this->l('Delete selected items?')));
if (Shop::isFeatureActive()) {
Shop::addTableAssociation($this->table, array('type' => 'shop'));
}
parent::__construct();
$this->fields_list = array('id_campaign' => array('title' => $this->l('Campaign #'), 'width' => 10, 'type' => 'text', 'orderby' => false, 'filter' => false, 'search' => false), 'name' => array('title' => $this->l('Name'), 'width' => 100, 'type' => 'text', 'orderby' => false, 'filter' => false, 'search' => false), 'execution_time_day' => array('title' => $this->l('Execution schedule day'), 'width' => 10, 'type' => 'text', 'orderby' => false, 'filter' => false, 'search' => false, 'callback' => 'execution_time_day'), 'execution_time_hour' => array('title' => $this->l('Execution schedule hour'), 'width' => 10, 'type' => 'text', 'orderby' => false, 'filter' => false, 'search' => false, 'callback' => 'execution_time_hour'), 'active' => array('title' => $this->l('Status'), 'width' => '70', 'align' => 'center', 'active' => 'status', 'type' => 'bool', 'orderby' => false, 'filter' => false, 'search' => false));
$this->_defaultOrderBy = 'a.id_campaign';
$this->_defaultOrderWay = 'DESC';
if (Shop::isFeatureActive() && Shop::getContext() != Shop::CONTEXT_SHOP) {
$this->_group = 'GROUP BY a.id_campaign';
}
parent::__construct();
}
示例13: __construct
public function __construct()
{
$this->table = 'smart_blog_category';
$this->className = 'BlogCategory';
$this->module = 'smartblog';
$this->lang = true;
$this->image_dir = '../modules/smartblog/images/category';
$this->bootstrap = true;
$this->bulk_actions = array('delete' => array('text' => $this->l('Delete selected'), 'confirm' => $this->l('Delete selected items?'), 'icon' => 'icon-trash'));
$this->tpl_list_vars['icon'] = 'icon-folder-close';
$this->tpl_list_vars['title'] = $this->l('Categories');
$this->fields_list = array('id_smart_blog_category' => array('title' => $this->l('ID'), 'align' => 'center', 'class' => 'fixed-width-xs'), 'name' => array('title' => $this->l('Name'), 'width' => 'auto'), 'description' => array('title' => $this->l('Description'), 'maxlength' => 90, 'orderby' => false), 'position' => array('title' => $this->l('Position'), 'filter_key' => 'position', 'align' => 'center', 'class' => 'fixed-width-sm', 'position' => 'position'), 'active' => array('title' => $this->l('Displayed'), 'class' => 'fixed-width-sm', 'active' => 'status', 'align' => 'center', 'type' => 'bool', 'orderby' => false));
/* $id_smart_blog_category = (int)Tools::getValue('id_smart_blog_category', Tools::getValue('id_smart_blog_category', 1));
$this->smart_blog_category = new BlogCategory($id_smart_blog_category);
$this->context = Context::getContext();
$this->_where = ' AND `id_parent` = '.(int)$this->smart_blog_category->id;
*/
$this->_select = 'position ';
$this->_orderBy = 'position';
if (Shop::isFeatureActive()) {
Shop::addTableAssociation($this->table, array('type' => 'shop'));
}
$this->_join = 'LEFT JOIN ' . _DB_PREFIX_ . 'smart_blog_category_shop sbs ON a.id_smart_blog_category=sbs.id_smart_blog_category && sbs.id_shop IN(' . implode(',', Shop::getContextListShopID()) . ')';
$this->_select = 'sbs.id_shop';
$this->_defaultOrderBy = 'a.id_smart_blog_category';
$this->_defaultOrderWay = 'DESC';
if (Shop::isFeatureActive() && Shop::getContext() != Shop::CONTEXT_SHOP) {
$this->_group = 'GROUP BY a.id_smart_blog_category';
}
parent::__construct();
}
示例14: __construct
public function __construct($id_search = NULL, $id_lang = NULL, $id_shop = null)
{
if (version_compare(_PS_VERSION_, '1.5.0.0', '>=')) {
if (version_compare(_PS_VERSION_, '1.5', '>=') && version_compare(_PS_VERSION_, '1.5.2.0', '<=') && class_exists("ShopPrestaModule")) {
ShopPrestaModule::PrestaModule_setAssoTable(self::$definition['table']);
} else {
Shop::addTableAssociation(self::$definition['table'], array('type' => 'shop'));
}
parent::__construct($id_search, $id_lang, $id_shop);
} else {
parent::__construct($id_search, $id_lang);
}
}
示例15: init
/**
* Initialize an array with all the multistore associations in the database
*/
protected static function init()
{
Shop::$id_shop_default_tables = array('product', 'category');
$asso_tables = array('carrier' => array('type' => 'shop'), 'carrier_lang' => array('type' => 'fk_shop'), 'category' => array('type' => 'shop'), 'category_lang' => array('type' => 'fk_shop'), 'cms' => array('type' => 'shop'), 'contact' => array('type' => 'shop'), 'country' => array('type' => 'shop'), 'currency' => array('type' => 'shop'), 'employee' => array('type' => 'shop'), 'hook_module' => array('type' => 'fk_shop'), 'hook_module_exceptions' => array('type' => 'fk_shop', 'primary' => 'id_hook_module_exceptions'), 'image' => array('type' => 'shop'), 'lang' => array('type' => 'shop'), 'meta_lang' => array('type' => 'fk_shop'), 'module' => array('type' => 'shop'), 'module_currency' => array('type' => 'fk_shop'), 'module_country' => array('type' => 'fk_shop'), 'module_group' => array('type' => 'fk_shop'), 'product' => array('type' => 'shop'), 'product_attribute' => array('type' => 'shop'), 'product_lang' => array('type' => 'fk_shop'), 'referrer' => array('type' => 'shop'), 'scene' => array('type' => 'shop'), 'store' => array('type' => 'shop'), 'webservice_account' => array('type' => 'shop'), 'warehouse' => array('type' => 'shop'), 'stock_available' => array('type' => 'fk_shop'), 'carrier_tax_rules_group_shop' => array('type' => 'fk_shop'), 'attribute' => array('type' => 'shop'), 'feature' => array('type' => 'shop'), 'group' => array('type' => 'shop'), 'attribute_group' => array('type' => 'shop'), 'tax_rules_group' => array('type' => 'shop'), 'zone' => array('type' => 'shop'), 'manufacturer' => array('type' => 'shop'), 'supplier' => array('type' => 'shop'));
foreach ($asso_tables as $table_name => $table_details) {
Shop::addTableAssociation($table_name, $table_details);
}
Shop::$initialized = true;
}