/** * 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 = CitruscartHelperPlugin::getSuffix($geozone->geozonetype_id); JModelLegacy::addIncludePath(JPATH_ADMINISTRATOR . '/components/com_citruscart/models'); $model = JModelLegacy::getInstance($suffix, 'CitruscartModel'); $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; }
/** * Method to assign payment/shipping methods to the geozones */ function selectplugins() { $app = JFactory::getApplication(); $type = $app->input->get('type'); Citruscart::load("CitruscartHelperPlugin", 'helpers.plugin'); $suffix = CitruscartHelperPlugin::getSuffix($type); $state = parent::_setModelState(); $app = JFactory::getApplication(); $model = $this->getModel($suffix); $ns = $app->getName() . '::' . 'com.citruscart.model.' . $model->getTable()->get('_suffix'); $id = $app->input->get('id', 0); $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_citruscart&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(); }