/** * Ritorna l'elenco degli oggetti da caricare * @return array */ public function loadDataSource() { echo 'ITTematicaSyncController - loadDataSource - Enter' . PHP_EOL; $_data = array(); // Lettura di ocrepository.ini $ini = eZINI::instance('ocrepository.ini'); // Elenco dei repository con sync abilitato $availableRepositories = $ini->variable('Client', 'AvailableRepositories'); // Numero di giorni da caricare (Default: 1) $days = '1'; if ($this->options->hasAttribute('Days')) { $days = $this->options->attribute('Days'); } // Verifica presenza nodo destinazione e tematiche selezionate foreach ($availableRepositories as $repository) { $client = 'Client_' . $repository; $url = $ini->variable($client, 'Url'); $tematicaSync = $ini->variable($client, 'TematicaSync'); if ($tematicaSync == 'true') { $itTematicaSync = new ITTematicaSync($repository); $nodeID = $itTematicaSync->getDefaultDestinationNodeID(); if (isset($nodeID)) { $_tags = $itTematicaSync->getTematiche(); $tags = implode($_tags, '|'); // Chiamata remota con elenco remoteid ( /itobjectsync/tematichequery/$repository/$tags/$days ) $remote_call = $url . '/itobjectsync/tematichequery/' . $repository . '/' . urlencode($tags) . '/' . $days; echo 'Remote call: ' . $remote_call . PHP_EOL; $remote_obj_json = file_get_contents($remote_call); $remote_obj = json_decode($remote_obj_json, true); $remote_data = array(); foreach ($remote_obj as $obj) { $remote_data[] = array('base_url' => $url, 'parent_node_id' => $nodeID, 'remote_node_id' => $obj); } $_data = array_merge($_data, $remote_data); } } } return $_data; }
<?php $module = $Params['Module']; $http = eZHTTPTool::instance(); $tpl = eZTemplate::factory(); $repository = $Params['repository']; try { $itTematicaSync = new ITTematicaSync($repository); $remoteTags = $itTematicaSync->fetchRemoteTags(); // Tematiche dal sito remoto if ($http->hasPostVariable('SelezionaDestinazione')) { eZContentBrowse::browse(array('action_name' => 'SelectDestinationNodeID', 'selection' => 'single', 'return_type' => 'NodeID', 'start_node' => 2, 'from_page' => '/itobjectsync/client/' . $repository, 'cancel_page' => '/itobjectsync/client/' . $repository), $module); return; } $itTematicaSync->modifySelection($http); // Eventuali modifiche alla selezione // Variabili passate al template $tpl->setVariable('remote_tags', $remoteTags); $tpl->setVariable('repository_url', $itTematicaSync->getRepositoryUrl()); $tpl->setVariable('default_dest_node_id', $itTematicaSync->getDefaultDestinationNodeID()); $tpl->setVariable('tematiche', $itTematicaSync->getTematiche()); } catch (Exception $ex) { $tpl->setVariable('exception', $ex->getMessage()); } $Result['content'] = $tpl->fetch("design:itobjectsync/client.tpl"); $Result['path'] = array(array('url' => 'content/dashboard', 'text' => 'Pannello strumenti'), array('url' => false, 'text' => 'Import automatico Tematica'));