Beispiel #1
0
 function renderOutput($context = array())
 {
     if (!$this->getOption('service') || !$this->getOption('template')) {
         return false;
     }
     require_once 'lib/webservicelib.php';
     if (!($webservice = Tiki_Webservice::getService($this->getOption('service'))) || !($template = $webservice->getTemplate($this->getOption('template')))) {
         return false;
     }
     $oldValue = $this->getValue();
     if (is_string($oldValue)) {
         $oldData = json_decode($oldValue, true);
     } else {
         $oldData = [];
     }
     $cacheSeconds = $this->getOption('cacheSeconds');
     $lastRefreshed = empty($oldData) ? 0 : strtotime($oldData['tiki_updated']);
     if (!$cacheSeconds || TikiLib::lib('tiki')->now > $lastRefreshed + $cacheSeconds) {
         $ws_params = array();
         $definition = $this->getTrackerDefinition();
         if ($this->getOption('params')) {
             parse_str($this->getOption('params'), $ws_params);
             foreach ($ws_params as $ws_param_name => &$ws_param_value) {
                 if (preg_match('/(.*)%(.*)%(.*)/', $ws_param_value, $matches)) {
                     $ws_param_field_name = $matches[2];
                     $field = $definition->getField($ws_param_field_name);
                     if (!$field) {
                         $field = $definition->getFieldFromName($ws_param_field_name);
                     }
                     if ($field) {
                         $itemData = $this->getItemData();
                         if (isset($itemData[$field['fieldId']])) {
                             $value = TikiLib::lib('trk')->get_field_value($field, $itemData);
                         } else {
                             $itemUser = '';
                             $value = TikiLib::lib('trk')->get_item_fields($definition->getConfiguration('trackerId'), $itemData['itemId'], [$field], $itemUser);
                             $value = isset($value[0]['value']) ? $value[0]['value'] : '';
                         }
                         $ws_params[$ws_param_name] = preg_replace('/%' . $ws_param_field_name . '%/', $value, $ws_param_value);
                     }
                 }
             }
         }
         $response = $webservice->performRequest($ws_params);
         $response->data['tiki_updated'] = gmdate('c');
         if (empty($context['search_render']) || $context['search_render'] !== 'y') {
             $thisField = $definition->getField($this->getConfiguration('fieldId'));
             $thisField['value'] = json_encode($response->data);
             $itemId = TikiLib::lib('trk')->replace_item($definition->getConfiguration('trackerId'), $this->getItemId(), ['data' => [$thisField]]);
             if (!$itemId) {
                 TikiLib::lib('errorreport')->report(tr('Error updating Webservice field %0', $this->getConfiguration('permName')));
                 // try and restore previous data
                 $response->data = json_decode($this->getValue());
             }
         }
     } else {
         $response = OIntegrate_Response::create($oldData, false);
         unlink($template->getTemplateFile());
         $template = $webservice->getTemplate($this->getOption('template'));
     }
     $output = $template->render($response, 'html');
     return $output;
 }
Beispiel #2
0
 /**
  * @param OIntegrate_Response $response
  * @param $outputContext
  * @return mixed|string
  */
 function render(OIntegrate_Response $response, $outputContext)
 {
     return $response->render($this->engine, $this->output, $outputContext, $this->getTemplateFile());
 }
Beispiel #3
0
    }
    if ($access->is_serializable_request()) {
        if (isset($_REQUEST['listonly']) && ($prefs['feature_jquery'] == 'y' && $prefs['feature_jquery_autocomplete'] == 'y')) {
            $pages = array();
            foreach ($listpages['data'] as $page) {
                $pages[] = $page['pageName'];
            }
            $access->output_serialized($pages);
        } else {
            $pages = array();
            require_once 'lib/wiki/wikilib.php';
            foreach ($listpages['data'] as $page) {
                $pages[] = array('page_id' => $page['page_id'], 'page_name' => $page['pageName'], 'url' => $wikilib->sefurl($page['pageName']), 'version' => $page['version'], 'description' => $page['description'], 'last_modif' => date('Y-m-d H:i:s', $page['lastModif']), 'last_author' => $page['user'], 'creator' => $page['creator'], 'creation_date' => date('Y-m-d H:i:s', $page['created']), 'lang' => $page['lang']);
            }
            require_once 'lib/ointegratelib.php';
            $response = OIntegrate_Response::create(array('list' => $pages), '1.0');
            $response->addTemplate('smarty', 'tikiwiki', 'files/templates/listpages/smarty-tikiwiki-1.0-shortlist.txt');
            $response->schemaDocumentation = 'http://dev.tiki.org/WebserviceListpages';
            $response->send();
        }
    } else {
        // Display the template
        $smarty->assign('mid', $listpages_orphans ? 'tiki-orphan_pages.tpl' : 'tiki-listpages.tpl');
        $smarty->display('tiki.tpl');
    }
}
/**
 * @param $filter
 * @return mixed
 */
function setLangFilter($filter)