/** * do the plug-in action * @param object parameters * @param object table model * @param array custom options */ function process(&$params, &$model, $opts = array()) { JLoader::import('webservice', JPATH_SITE . '/components/com_fabrik/models/'); $params = $this->getParams(); $fk = $params->get('webservice_foreign_key'); $formModel = $model->getFormModel(); $fk = $formModel->getElement($fk, true)->getElement()->name; $credentials = $this->getCredentials(); $driver = $params->get('webservice_driver'); $opts = array('driver' => $driver, 'endpoint' => $params->get('webservice_url'), 'credentials' => $credentials); $service = FabrikWebService::getInstance($opts); if (JError::isError($service)) { echo $service->getMessage(); JError::raiseError(500, $service->getMessage()); jexit(); } $filters = $this->getServiceFilters($service); $service->setMap($this->getMap($formModel)); $filters = array_merge($opts['credentials'], $filters); $method = $params->get('webservice_get_method'); $startPoint = $params->get('webservice_start_point'); $serviceData = $service->get($method, $filters, $startPoint, null); $update = (bool) $params->get('webservice_update_existing', false); $service->storeLocally($model, $serviceData, $fk, $update); $this->msg = JText::sprintf($params->get('webservice_msg'), $service->addedCount, $service->updateCount); return true; }
$modelpaths = JModel::addIncludePath(JPATH_SITE . '/plugins/fabrik_' . $type . '/' . $name . '/models'); } $app = JFactory::getApplication(); $package = JRequest::getVar('package', 'fabrik'); $app->setUserState('com_fabrik.package', $package); // Web service testing JLoader::import('webservice', JPATH_SITE . '/components/com_fabrik/models/'); if (JRequest::getVar('soap') == 1) { $opts = array('driver' => 'soap', 'endpoint' => 'http://webservices.activetickets.com/members/ActiveTicketsMembersServices.asmx?WSDL', 'credentials' => array('Clientname' => "SPLFenix", 'LanguageCode' => "nl")); $service = FabrikWebService::getInstance($opts); $params = $opts['credentials']; $params['From'] = JFactory::getDate()->toISO8601(); $params['To'] = JFactory::getDate('next year')->toISO8601(); $params['IncludePrices'] = true; $params['MemberId'] = 14; $method = JRequest::getVar($method, 'GetProgramList'); $program = $service->get($method, $params, '//ProgramList/Program', null); $listModel = JModel::getInstance('List', 'FabrikFEModel'); $listModel->setId(7); $service->storeLocally($listModel, $program); } if (JRequest::getVar('yql') == 1) { $opts = array('driver' => 'yql', 'endpoint' => 'https://query.yahooapis.com/v1/public/yql'); $service = FabrikWebService::getInstance($opts); $query = "select * from upcoming.events where location='London'"; $program = $service->get($query, array(), 'event', null); } // End web service testing $controller->execute($task); // Redirect if set by the controller $controller->redirect();
/** * Do the plug-in action * * @param array $opts Custom options * * @return bool */ public function process($opts = array()) { JLoader::import('webservice', JPATH_SITE . '/components/com_fabrik/models/'); $params = $this->getParams(); $fk = $params->get('webservice_foreign_key'); $model = $this->getModel(); $formModel = $model->getFormModel(); $foriegnKeyElement = $formModel->getElement($fk, true); if (!$foriegnKeyElement) { throw new UnexpectedValueException('Webservice list plugin requires a foriegn key element to be selected'); } $fk = $foriegnKeyElement->getElement()->name; $credentials = $this->getCredentials(); $driver = $params->get('webservice_driver'); $opts = array('driver' => $driver, 'endpoint' => $params->get('webservice_url'), 'credentials' => $credentials); $service = FabrikWebService::getInstance($opts); $filters = $this->getServiceFilters($service); $service->setMap($this->getMap($formModel)); $filters = array_merge($opts['credentials'], $filters); $method = $params->get('webservice_get_method'); $startPoint = $params->get('webservice_start_point'); $serviceData = $service->get($method, $filters, $startPoint, null); $update = (bool) $params->get('webservice_update_existing', false); $service->storeLocally($model, $serviceData, $fk, $update); $this->msg = JText::sprintf($params->get('webservice_msg'), $service->addedCount, $service->updateCount); return true; }