/** * Mettre à jour le fichier RSS d'un prof avec une demande d'évaluation d'élève. * * @param string $fichier_chemin * @param string $titre * @param string $texte * @param string $guid * @return void */ public static function modifier_fichier_prof($prof_id, $titre, $texte, $guid) { $fichier_nom = RSS::nom_fichier_prof($prof_id); $fichier_chemin = CHEMIN_DOSSIER_RSS . $_SESSION['BASE'] . DS . $fichier_nom; $fichier_url = URL_DIR_RSS . $_SESSION['BASE'] . '/' . $fichier_nom; // S'il n'existe pas, en créer un vierge. if (!file_exists($fichier_chemin)) { RSS::creer_fichier($fichier_chemin, $fichier_url); } // Ajouter l'article $date = date('r', $_SERVER['REQUEST_TIME']); $fichier_contenu = file_get_contents($fichier_chemin); $article = ' <item>' . "\r\n"; $article .= ' <title>' . html($titre) . '</title>' . "\r\n"; $article .= ' <link>' . URL_INSTALL_SACOCHE . '</link>' . "\r\n"; $article .= ' <description>' . html($texte) . '</description>' . "\r\n"; $article .= ' <pubDate>' . $date . '</pubDate>' . "\r\n"; $article .= ' <guid isPermaLink="false">' . $guid . '</guid>' . "\r\n"; $article .= ' </item>' . "\r\n\r\n"; $bad = ' </image>' . "\r\n\r\n"; $bon = ' </image>' . "\r\n\r\n" . $article; $fichier_contenu = str_replace($bad, $bon, $fichier_contenu); // Mettre à jour la date de reconstruction $pbad = '#<lastBuildDate>(.*?)</lastBuildDate>#'; $pbon = '<lastBuildDate>' . $date . '</lastBuildDate>'; $fichier_contenu = preg_replace($pbad, $pbon, $fichier_contenu); // Couper si le fichier est long (on le ramène à 100Ko) ; ça laisse encore environ 250 entrées dans le flux. if (mb_strlen($fichier_contenu) > 120000) { $pos = mb_strpos($fichier_contenu, '</item>', 100000); $fichier_contenu = mb_substr($fichier_contenu, 0, $pos) . '</item>' . "\r\n\r\n" . '</channel>' . "\r\n" . '</rss>' . "\r\n"; } // Enregistrer FileSystem::ecrire_fichier($fichier_chemin, $fichier_contenu); }