Пример #1
0
 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);
 }
Пример #2
0
 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();