public static function getInfo($_logicalId, $_version = 'stable') { $returns = array(); if (is_array($_logicalId) && is_array($_version) && count($_logicalId) == count($_version)) { if (is_array(reset($_logicalId))) { $markets = market::byLogicalIdAndType($_logicalId); } else { $markets = market::byLogicalId($_logicalId); } $returns = array(); for ($i = 0; $i < count($_logicalId); $i++) { if (is_array($_logicalId[$i])) { $logicalId = $_logicalId[$i]['type'] . $_logicalId[$i]['logicalId']; } else { $logicalId = $_logicalId[$i]; } $return['datetime'] = '0000-01-01 00:00:00'; if ($logicalId == '' || config::byKey('market::address') == '') { $return['market'] = 0; $return['market_owner'] = 0; $return['status'] = 'ok'; return $return; } if (config::byKey('market::username') != '' && config::byKey('market::password') != '') { $return['market_owner'] = 1; } else { $return['market_owner'] = 0; } $return['market'] = 0; try { if (isset($markets[$logicalId])) { $market = $markets[$logicalId]; if (!is_object($market)) { $return['status'] = 'ok'; } else { $return['datetime'] = $market->getDatetime($_version[$i]); $return['market'] = 1; $return['market_owner'] = $market->getIsAuthor(); $update = update::byTypeAndLogicalId($market->getType(), $market->getLogicalId()); $updateDateTime = '0000-01-01 00:00:00'; if (is_object($update)) { $updateDateTime = $update->getLocalVersion(); } if ($updateDateTime < $market->getDatetime($_version[$i], $updateDateTime)) { $return['status'] = 'update'; } else { $return['status'] = 'ok'; } } } else { $return['status'] = 'ok'; } } catch (Exception $e) { log::add('market', 'debug', __('Erreur market::getinfo : ', __FILE__) . $e->getMessage()); $return['status'] = 'ok'; } $returns[$logicalId] = $return; } return $returns; } $return = array(); $return['datetime'] = '0000-01-01 00:00:00'; if (config::byKey('market::address') == '') { $return['market'] = 0; $return['market_owner'] = 0; $return['status'] = 'ok'; return $return; } if (config::byKey('market::username') != '' && config::byKey('market::password') != '') { $return['market_owner'] = 1; } else { $return['market_owner'] = 0; } $return['market'] = 0; try { if (is_array($_logicalId)) { $market = market::byLogicalIdAndType($_logicalId['logicalId'], $_logicalId['type']); } else { $market = market::byLogicalId($_logicalId); } if (!is_object($market)) { $return['status'] = 'depreciated'; } else { $return['datetime'] = $market->getDatetime($_version); $return['market'] = 1; $return['market_owner'] = $market->getIsAuthor(); $update = update::byTypeAndLogicalId($market->getType(), $market->getLogicalId()); $updateDateTime = '0000-01-01 00:00:00'; if (is_object($update)) { $updateDateTime = $update->getLocalVersion(); } if ($updateDateTime < $market->getDatetime($_version, $updateDateTime)) { $return['status'] = 'update'; } else { $return['status'] = 'ok'; } } } catch (Exception $e) { log::add('market', 'debug', __('Erreur market::getinfo : ', __FILE__) . $e->getMessage()); $return['status'] = 'ok'; } return $return; }
/* * ************************Interact*************************** */ if ($jsonrpc->getMethod() == 'interact::tryToReply') { $jsonrpc->makeSuccess(interactQuery::tryToReply($params['query'])); } /* * ************************USB mapping*************************** */ if ($jsonrpc->getMethod() == 'jeedom::getUsbMapping') { $name = isset($params['name']) ? $params['name'] : ''; $gpio = isset($params['gpio']) ? $params['gpio'] : false; $jsonrpc->makeSuccess(jeedom::getUsbMapping($name, $gpio)); } /* * ************************Plugin*************************** */ if ($jsonrpc->getMethod() == 'plugin::install') { try { $market = market::byId($params['plugin_id']); } catch (Exception $e) { $market = market::byLogicalId($params['plugin_id']); } if (!is_object($market)) { throw new Exception(__('Impossible de trouver l\'objet associé : ', __FILE__) . $params['plugin_id']); } if (!isset($params['version'])) { $params['version'] = 'stable'; } $market->install($params['version']); $jsonrpc->makeSuccess('ok'); } if ($jsonrpc->getMethod() == 'plugin::remove') { $market = market::byId($params['plugin_id']); if (!is_object($market)) { throw new Exception(__('Impossible de trouver l\'objet associé : ', __FILE__) . $params['plugin_id']); }