get('synchronisationCode'); if ( false==$myUser && !$commandLine && !(isset($_['code']) && $configurationManager->get('synchronisationCode')!=null && $_['code']==$configurationManager->get('synchronisationCode') ) ) { die(_t('YOU_MUST_BE_CONNECTED_ACTION')); } Functions::triggerDirectOutput(); if (!$commandLine) echo '
{$syncTypeStr} {$currentDate}
\n"; echo "'._t('SYNCHRONIZE_COFFEE_TIME').'
'; }else{ echo _t('YOU_MUST_BE_CONNECTED_ACTION'); } break; case 'changeFolderState': if($myUser==false) exit(_t('YOU_MUST_BE_CONNECTED_ACTION')); $folderManager->change(array('isopen'=>$_['isopen']),array('id'=>$_['id'])); break; case 'importFeed': // On ne devrait pas mettre de style ici. echo " \n"; if($myUser==false) exit(_t('YOU_MUST_BE_CONNECTED_ACTION')); if(!isset($_POST['importButton'])) break; $opml = new Opml(); echo ""._t('PENDING')."
\n"; try { $errorOutput = $opml->import($_FILES['newImport']['tmp_name']); } catch (Exception $e) { $errorOutput = array($e->getMessage()); } if (empty($errorOutput)) { echo ""._t('IMPORT_NO_PROBLEM')."
\n"; } else { echo "$line
\n"; } echo ""; echo "" ."↺"; echo ""._t('CLIC_HERE_SYNC_IMPORT').""; echo "
\n"; break; case 'addFeed': if($myUser==false) exit(_t('YOU_MUST_BE_CONNECTED_ACTION')); require_once("SimplePie.class.php"); if(!isset($_['newUrl'])) break; $newFeed = new Feed(); $newFeed->setUrl(Functions::clean_url($_['newUrl'])); if ($newFeed->notRegistered()) { ///@TODO: avertir l'utilisateur du doublon non ajouté $newFeed->getInfos(); $newFeed->setFolder( (isset($_['newUrlCategory'])?$_['newUrlCategory']:1) ); $newFeed->save(); $enableCache = ($configurationManager->get('synchronisationEnableCache')=='')?0:$configurationManager->get('synchronisationEnableCache'); $forceFeed = ($configurationManager->get('synchronisationForceFeed')=='')?0:$configurationManager->get('synchronisationForceFeed'); $newFeed->parse(time(), $_, $enableCache, $forceFeed); } header('location: ./settings.php#manageBloc'); break; case 'changeFeedFolder': if($myUser==false) exit(_t('YOU_MUST_BE_CONNECTED_ACTION')); if(isset($_['feed'])){ $feedManager->change(array('folder'=>$_['folder']),array('id'=>$_['feed'])); } header('location: ./settings.php'); break; case 'removeFeed': if($myUser==false) exit(_t('YOU_MUST_BE_CONNECTED_ACTION')); if(isset($_GET['id'])){ $feedManager->delete(array('id'=>$_['id'])); $eventManager->delete(array('feed'=>$_['id'])); } header('location: ./settings.php'); break; case 'addFolder': if($myUser==false) exit(_t('YOU_MUST_BE_CONNECTED_ACTION')); if(isset($_['newFolder'])){ $folder = new Folder(); if($folder->rowCount(array('name'=>$_['newFolder']))==0){ $folder->setParent(-1); $folder->setIsopen(0); $folder->setName($_['newFolder']); $folder->save(); } } header('location: ./settings.php'); break; case 'renameFolder': if($myUser==false) exit(_t('YOU_MUST_BE_CONNECTED_ACTION')); if(isset($_['id'])){ $folderManager->change(array('name'=>$_['name']),array('id'=>$_['id'])); } break; case 'renameFeed': if($myUser==false) exit(_t('YOU_MUST_BE_CONNECTED_ACTION')); if(isset($_['id'])){ $feedManager->change(array('name'=>$_['name'],'url'=>Functions::clean_url($_['url'])),array('id'=>$_['id'])); } break; case 'removeFolder': if($myUser==false) exit(_t('YOU_MUST_BE_CONNECTED_ACTION')); if(isset($_['id']) && is_numeric($_['id']) && $_['id']>0){ $eventManager->customExecute('DELETE FROM '.MYSQL_PREFIX.'event WHERE '.MYSQL_PREFIX.'event.feed in (SELECT '.MYSQL_PREFIX.'feed.id FROM '.MYSQL_PREFIX.'feed WHERE '.MYSQL_PREFIX.'feed.folder =\''.intval($_['id']).'\') ;'); $feedManager->delete(array('folder'=>$_['id'])); $folderManager->delete(array('id'=>$_['id'])); } header('location: ./settings.php'); break; case 'readContent': if($myUser==false) { $response_array['status'] = 'noconnect'; $response_array['texte'] = _t('YOU_MUST_BE_CONNECTED_ACTION'); header('Content-type: application/json'); echo json_encode($response_array); exit(); } if(isset($_['id'])){ $event = $eventManager->load(array('id'=>$_['id'])); $eventManager->change(array('unread'=>'0'),array('id'=>$_['id'])); } break; case 'unreadContent': if($myUser==false) { $response_array['status'] = 'noconnect'; $response_array['texte'] = _t('YOU_MUST_BE_CONNECTED_ACTION'); header('Content-type: application/json'); echo json_encode($response_array); exit(); } if(isset($_['id'])){ $event = $eventManager->load(array('id'=>$_['id'])); $eventManager->change(array('unread'=>'1'),array('id'=>$_['id'])); } break; case 'addFavorite': if($myUser==false) { $response_array['status'] = 'noconnect'; $response_array['texte'] = _t('YOU_MUST_BE_CONNECTED_ACTION'); header('Content-type: application/json'); echo json_encode($response_array); exit(); } $eventManager->change(array('favorite'=>'1'),array('id'=>$_['id'])); break; case 'removeFavorite': if($myUser==false) { $response_array['status'] = 'noconnect'; $response_array['texte'] = _t('YOU_MUST_BE_CONNECTED_ACTION'); header('Content-type: application/json'); echo json_encode($response_array); exit(); } $eventManager->change(array('favorite'=>'0'),array('id'=>$_['id'])); break; case 'login': define('RESET_PASSWORD_FILE', 'resetPassword'); if (file_exists(RESET_PASSWORD_FILE)) { /* Pour réinitialiser le mot de passe : * créer le fichier RESET_PASSWORD_FILE vide. * Le nouveau mot de passe sera celui fourni à la connexion. */ @unlink(RESET_PASSWORD_FILE); if (file_exists(RESET_PASSWORD_FILE)) { $message = 'Unable to remove "'.RESET_PASSWORD_FILE.'"!'; /* Pas supprimable ==> on ne remet pas à zéro */ } else { $resetPassword = $_['password']; assert('!empty($resetPassword)'); $tmpUser = User::get($_['login']); if (false===$tmpUser) { $message = "Unknown user '{$_['login']}'! No password reset."; } else { $id = $tmpUser->getId(); $salt = $configurationManager->get('cryptographicSalt'); $userManager->change( array('password'=>User::encrypt($resetPassword, $salt)), array('id'=>$id) ); $message = "User '{$_['login']}' (id=$id) Password reset to '$resetPassword'."; } } error_log($message); } if(isset($_['usr'])){ $user = User::existAuthToken($_['usr']); if($user==false){ exit("erreur identification : le compte est inexistant"); }else{ $_SESSION['currentUser'] = serialize($user); header('location: ./action.php?action=addFeed&newUrl='.$_['newUrl']); } }else{ $salt = $configurationManager->get('cryptographicSalt'); if (empty($salt)) $salt = ''; $user = $userManager->exist($_['login'],$_['password'],$salt); if($user==false){ exit("erreur identification : le compte est inexistant"); }else{ $_SESSION['currentUser'] = serialize($user); if (isset($_['rememberMe'])) $user->setStayConnected(); } header('location: ./index.php'); } break; case 'changePluginState': if($myUser==false) exit(_t('YOU_MUST_BE_CONNECTED_ACTION')); if($_['state']=='0'){ Plugin::enabled($_['plugin']); }else{ Plugin::disabled($_['plugin']); } header('location: ./settings.php#pluginBloc'); break; case 'logout': User::delStayConnected(); $_SESSION = array(); session_unset(); session_destroy(); header('location: ./index.php'); break; case 'displayOnlyUnreadFeedFolder': if($myUser==false) { $response_array['status'] = 'noconnect'; $response_array['texte'] = _t('YOU_MUST_BE_CONNECTED_ACTION'); header('Content-type: application/json'); echo json_encode($response_array); exit(); } $configurationManager->put('displayOnlyUnreadFeedFolder',$_['displayOnlyUnreadFeedFolder']); break; case 'displayFeedIsVerbose': if($myUser==false) { $response_array['status'] = 'noconnect'; $response_array['texte'] = _t('YOU_MUST_BE_CONNECTED_ACTION'); header('Content-type: application/json'); echo json_encode($response_array); exit(); } // changement du statut isverbose du feed $feed = new Feed(); $feed = $feed->getById($_['idFeed']); $feed->setIsverbose(($_['displayFeedIsVerbose']=="0"?1:0)); $feed->save(); break; case 'optionFeedIsVerbose': if($myUser==false) { $response_array['status'] = 'noconnect'; $response_array['texte'] = _t('YOU_MUST_BE_CONNECTED_ACTION'); header('Content-type: application/json'); echo json_encode($response_array); exit(); } // changement du statut de l'option $configurationManager = new Configuration(); $conf = $configurationManager->getAll(); $configurationManager->put('optionFeedIsVerbose',($_['optionFeedIsVerbose']=="0"?0:1)); break; default: require_once("SimplePie.class.php"); Plugin::callHook("action_post_case", array(&$_,$myUser)); //exit('0'); break; } ?>