public static function tryToReply($_query, $_parameters = array()) { $_parameters['dictation'] = $_query; if (isset($_parameters['profile'])) { $_parameters['profile'] = strtolower($_parameters['profile']); } $reply = ''; $interactQuery = interactQuery::recognize($_query); if (is_object($interactQuery)) { $reply = $interactQuery->executeAndReply($_parameters); } if (trim($reply) == '' && config::byKey('interact::noResponseIfEmpty', 'core', 0) == 0 && (!isset($_parameters['emptyReply']) || $_parameters['emptyReply'] == 0)) { $reply = self::dontUnderstand($_parameters); } if (is_object($interactQuery)) { log::add('interact', 'debug', 'J\'ai reçu : ' . $_query . "\nJ'ai compris : " . $interactQuery->getQuery() . "\nJ'ai répondu : " . $reply); } else { log::add('interact', 'debug', 'J\'ai reçu : ' . $_query . "\nJe n'ai rien compris\nJ'ai répondu : " . $reply); } return ucfirst($reply); }
if (init('action') == 'changeAllState') { $interactQueries = interactQuery::byInteractDefId(init('id')); if (is_array($interactQueries)) { foreach ($interactQueries as $interactQuery) { $interactQuery->setEnable(init('enable')); $interactQuery->save(); } } ajax::success(); } if (init('action') == 'execute') { ajax::success(interactQuery::tryToReply(init('query'))); } if (init('action') == 'test') { $return = array(); $interactQuery = interactQuery::recognize(init('query')); if ($interactQuery == null) { ajax::success(array('interactQuery' => null)); } $interactDef = interactDef::byId($interactQuery->getInteractDef_id()); $return['interactQuery'] = utils::o2a($interactQuery); if ($interactQuery->getLink_type() == 'cmd') { $return['cmd'] = ''; foreach (explode('&&', $interactQuery->getLink_id()) as $cmd_id) { $cmd = cmd::byId($cmd_id); if (is_object($cmd)) { $return['cmd'] .= '#' . $cmd->getHumanName() . '# && '; } } $return['cmd'] = trim($return['cmd'], '&& '); $reply = $interactDef->selectReply();