/** * Method to assign payment/shipping methods to the geozones */ function selectplugins() { $type = JRequest::getVar('type'); Tienda::load("TiendaHelperPlugin", 'helpers.plugin'); $suffix = TiendaHelperPlugin::getSuffix($type); $state = parent::_setModelState(); $app = JFactory::getApplication(); $model = $this->getModel($suffix); $ns = $app->getName() . '::' . 'com.tienda.model.' . $model->getTable()->get('_suffix'); $id = JRequest::getVar('id', JRequest::getVar('id', '0', 'post', 'int'), 'get', 'int'); $row = $model->getTable('geozones'); $row->load($id); $state['filter_enabled'] = '1'; $state['filter_name'] = $app->getUserStateFromRequest($ns . 'name', 'filter_name', '', ''); $state['order'] = $app->getUserStateFromRequest($ns . '.filter_order', 'filter_order', 'tbl.name', 'cmd'); foreach (@$state as $key => $value) { $model->setState($key, $value); } $view = $this->getView('geozones', 'html'); $view->set('_controller', 'geozones'); $view->set('_view', 'geozones'); $view->set('leftMenu', false); $view->set('_action', "index.php?option=com_tienda&controller=geozones&task=selectplugins&type={$type}&tmpl=component&id=" . $model->getId()); $view->setModel($model, true); $items = $model->getList(); foreach ($items as $item) { $params = new DSCParameter($item->params); $item->geozones = explode(',', $params->get('geozones')); } $view->assign('suffix', $suffix); $view->assign('state', $model->getState()); $view->assign('row', $row); $view->setLayout('selectplugins'); $view->setTask(true); $view->display(); }
/** * Method to count the number of plugin assigned to a geozone * @param obj $geozone * @return int */ public static function countPlgtoGeozone($geozone) { $count = 0; if (!is_object($geozone)) { return $count; } static $plugins; static $geozones; if (empty($plugins[$geozone->geozonetype_id])) { $suffix = TiendaHelperPlugin::getSuffix($geozone->geozonetype_id); JModel::addIncludePath(JPATH_ADMINISTRATOR . '/components/com_tienda/models'); $model = JModel::getInstance($suffix, 'TiendaModel'); $model->setState('filter_enabled', '1'); $plugins[$geozone->geozonetype_id] = $model->getList(); } foreach ($plugins[$geozone->geozonetype_id] as $plugin) { if (isset($plugin->params)) { if (empty($geozones[$plugin->id])) { $params = new DSCParameter($plugin->params); $geozones[$plugin->id] = explode(',', $params->get('geozones')); } if (in_array($geozone->geozone_id, $geozones[$plugin->id])) { $count++; } } } return $count; }