-
Messages: 11 Inscription: Jeu Mar 31, 2005 2:39 am
|
[MOD] news sans base de donnée  Posté: Dim Mar 11, 2007 8:11 am
Salut
Je me suis permis de modifier un peu cette Mod News.
J'ai conservé le dossier "news" pour y stocker les fichiers des news et j'ai rajouté un dossier "dtb" dans ce même dossier "news". (news/dtb/)
Dans ce dossier "dtb" (database) sera créé un fichier "news.dtb" (./news/dtb/news.dtb) qui contiendra les infos sur les news créées.
Le fichier "0admin_creer_news.php"
- Code: Tout sélectionner
<?php
$page_edition_html = "1"; $titre_page = "Ajouter une news"; require("./0admin_header.php");
?>
<h1>Création d'une news</h1> <form action="./0admin_creer_news_engine.php?sid=<?php echo session_id() ?>" method="POST" name="post" onsubmit="return checkForm(this)"> <input type="hidden" name="action" value="news" /> <p>Titre : <br /> <input type="text" size="50" class="bb_area" maxlength="70" name="ti"> <br /> Auteur : <br /> <input type="text" size="60" class="bb_area" name="auteur" class="boite"> <br /> Contenu : <br /> <input type="button" name="addbbcode6" value="H1" onclick="bbstyle(6)" onmouseover="helpline('h1')" /> <input type="button" name="addbbcode8" value="§" onclick="bbstyle(8)" onmouseover="helpline('paragraphe')" /> <input type="button" name="addbbcode0" value="Gras" style="font-weight:bold;" onclick="bbstyle(0)" onmouseover="helpline('gras')" /> <input type="button" name="addbbcode2" value="Italique" style="font-style:italic;" onclick="bbstyle(2)" onmouseover="helpline('italique')" /> <input type="button" name="addbbcode4" value="Quote" style="text-decoration:underline;" onclick="bbstyle(4)" onmouseover="helpline('souligne')" /> <input type="button" name="addbbcode14" value="Image" onclick="bbstyle(14)" onmouseover="helpline('image')" /> <input type="button" name="addbbcode10" value="Liste" onclick="bbstyle(10)" onmouseover="helpline('liste')" /> <input type="button" name="addbbcode12" value="Li" onclick="bbstyle(12)" onmouseover="helpline('li')" /> <br /> <input type="button" name="addbbcode20" value="Table" onclick="bbstyle(20)" onmouseover="helpline('table')" /> <input type="button" name="addbbcode22" value="tr" onclick="bbstyle(22)" onmouseover="helpline('tr')" /> <input type="button" name="addbbcode24" value="th" onclick="bbstyle(24)" onmouseover="helpline('th')" /> <input type="button" name="addbbcode26" value="td" onclick="bbstyle(26)" onmouseover="helpline('td')" /> <input type="button" name="addbbcode18" value="<?php echo $nom_du_site ?>" onclick="bbstyle(18)" onmouseover="helpline('nom_site')" /> <br /> <input type="button" name="addbbcode16" value="Lien" onclick="bbstyle(16)" onmouseover="helpline('lien')" /> <input type="button" name="addbbcode28" value="Interne" onclick="bbstyle(28)" onmouseover="helpline('lien_interne')" /> <input type="button" name="addbbcode30" value="Sortant" onclick="bbstyle(30)" onmouseover="helpline('lien_sortant')" /> <input type="button" name="addbbcode32" value="Téléchargement" onclick="bbstyle(32)" onmouseover="helpline('lien_telechargement')" /> <input type="button" name="addbbcode34" value="Anglophone" onclick="bbstyle(34)" onmouseover="helpline('lien_anglophone')" /> <br /> <input type="text" name="helpbox" size="50" maxlength="100" class="bb_area" readonly="readonly" /> <br /> <textarea name="message" rows="20" cols="35" class="bb_area" tabindex="3" class="post" onselect="storeCaret(this);" onclick="storeCaret(this);" onkeyup="storeCaret(this);"></textarea> <br /> <a href="javascript:bbstyle(-1)">Fermer les balises</a> <br /> <input type="submit" value="Envoyer" name="confirm" /> <br /> <input type="reset" value="Tout effacer" /></p> </form>
<?php
require("./0admin_footer.php"); ?>
Le fichier "0admin_creer_news_engine.php" - Code: Tout sélectionner
<?php $titre_page = "Génération de votre news"; require("./0admin_header.php");
if ($action == 'news' && ($message != '' && $ti != '' && $auteur != '')) {
if (file_exists('./news/dtb/news.dtb')) $news_list = file_get_contents('./news/dtb/news.dtb'); $news_list = (!empty($news_list)) ? unserialize($news_list) : array(); $nb_news = count($news_list); // Parametrer les variables $date = date("d/m/Y"); $heure = date("H:i"); $nb_news++; $message = nl2br($message);
$src ='<?php'."\n".'$news_id = '.$nb_news.';'."\n".'$ntitre = \''.$ti.'\';'."\n".'$ndate = \''.$date.' @ '.$heure.'\';'."\n".'$nauteur = \''.$auteur.'\';'."\n".'$ntexte = \''.$message.'\';'."\n"; if (empty($error)) { // Enregistrer la newz. if ($nfichier = fopen('./news/mess'.$nb_news.'.php', 'w+')) { fwrite($nfichier, $src); fclose($nfichier);
if ($dtb = fopen('./news/dtb/news.dtb', 'w+')) { $news_list[$nb_news] = 'mess'.$nb_news.'.php'; $news_list = (!empty($news_list)) ? serialize($news_list) : '';
fwrite($dtb, $news_list); fclose($dtb); } else $error = '<h1>Impossible de créer le fichier ./news/dtb/news.dtb.</h1>'; } else $error = '<h1>Impossible de créer le fichier ./news/mess'.$nb_news.'.php.</h1>'; }
} else $error = '<h1>Vous devez renseigner tous les champs!</h1>';
$output = (empty($error)) ? '<h1>La news '.$ti.' a bien été créée.</h1>' : $error.'<a href="javascript:history.go(-1)">Retour</a>';
echo $output;
require("./0admin_footer.php"); ?>
Le fichier "0admin_modifier_news.php" - Code: Tout sélectionner
<?php $page_edition_html = "1"; $titre_page = "Modifier une news"; require("./0admin_header.php");
include($_GET['file']); $ntexte = str_replace('<br />', '', $ntexte);
?>
<h1>Edition d'une news</h1> <form action="./0admin_modifier_news_engine.php?sid=<?php echo session_id() ?>" method="POST" name="post" onsubmit="return checkForm(this)"> <input type="hidden" name="action" value="edit" /> <input type="hidden" name="news_id" value="<?php echo $news_id ?>" /> <input type="hidden" name="ndate" value="<?php echo $ndate ?>" /> <input type="hidden" name="nfichier" value="<?php echo $_GET['file'] ?>" /> <p>Titre : <br /> <input type="text" size="50" class="bb_area" maxlength="70" name="ti" value="<?php echo $ntitre ?>" /> <br /> Auteur : <br /> <input type="text" size="60" class="bb_area" name="auteur" class="boite" value="<?php echo $nauteur ?>" /> <br /> Contenu : <br /> <input type="button" name="addbbcode6" value="H1" onclick="bbstyle(6)" onmouseover="helpline('h1')" /> <input type="button" name="addbbcode8" value="§" onclick="bbstyle(8)" onmouseover="helpline('paragraphe')" /> <input type="button" name="addbbcode0" value="Gras" style="font-weight:bold;" onclick="bbstyle(0)" onmouseover="helpline('gras')" /> <input type="button" name="addbbcode2" value="Italique" style="font-style:italic;" onclick="bbstyle(2)" onmouseover="helpline('italique')" /> <input type="button" name="addbbcode4" value="Quote" style="text-decoration:underline;" onclick="bbstyle(4)" onmouseover="helpline('souligne')" /> <input type="button" name="addbbcode14" value="Image" onclick="bbstyle(14)" onmouseover="helpline('image')" /> <input type="button" name="addbbcode10" value="Liste" onclick="bbstyle(10)" onmouseover="helpline('liste')" /> <input type="button" name="addbbcode12" value="Li" onclick="bbstyle(12)" onmouseover="helpline('li')" /> <br /> <input type="button" name="addbbcode20" value="Table" onclick="bbstyle(20)" onmouseover="helpline('table')" /> <input type="button" name="addbbcode22" value="tr" onclick="bbstyle(22)" onmouseover="helpline('tr')" /> <input type="button" name="addbbcode24" value="th" onclick="bbstyle(24)" onmouseover="helpline('th')" /> <input type="button" name="addbbcode26" value="td" onclick="bbstyle(26)" onmouseover="helpline('td')" /> <input type="button" name="addbbcode18" value="<?php echo $nom_du_site ?>" onclick="bbstyle(18)" onmouseover="helpline('nom_site')" /> <br /> <input type="button" name="addbbcode16" value="Lien" onclick="bbstyle(16)" onmouseover="helpline('lien')" /> <input type="button" name="addbbcode28" value="Interne" onclick="bbstyle(28)" onmouseover="helpline('lien_interne')" /> <input type="button" name="addbbcode30" value="Sortant" onclick="bbstyle(30)" onmouseover="helpline('lien_sortant')" /> <input type="button" name="addbbcode32" value="Téléchargement" onclick="bbstyle(32)" onmouseover="helpline('lien_telechargement')" /> <input type="button" name="addbbcode34" value="Anglophone" onclick="bbstyle(34)" onmouseover="helpline('lien_anglophone')" /> <br /> <input type="text" name="helpbox" size="50" maxlength="100" class="bb_area" readonly="readonly" /> <br /> <textarea name="message" rows="20" cols="35" class="bb_area" tabindex="3" class="post" onselect="storeCaret(this);" onclick="storeCaret(this);" onkeyup="storeCaret(this);"><?php echo $ntexte ?></textarea> <br /> <a href="javascript:bbstyle(-1)">Fermer les balises</a> <br /> <input type="submit" value="Envoyer" name="confirm" /> <br /> </p> </form>
<?php
require("./0admin_footer.php"); ?>
Le fichier "0admin_modifier_news_engine.php" - Code: Tout sélectionner
<?php $titre_page = "Edition de votre news"; require("./0admin_header.php");
if ($action == 'edit' && ($message != '' && $ti != '' && $auteur != '')) { // Parametrer les variables $news_id = $_POST['news_id']; $ndate = $_POST['ndate'];
$message = nl2br($message);
$src ='<?php'."\n".'$news_id = '.$news_id.';'."\n".'$ntitre = \''.$ti.'\';'."\n".'$ndate = \''.$ndate.'\';'."\n".'$nauteur = \''.$auteur.'\';'."\n".'$ntexte = \''.$message.'\';'."\n"; if (empty($error)) { // Enregistrer la newz. if ($nfichier = fopen($_POST['nfichier'], 'w+')) { fwrite($nfichier, $src); fclose($nfichier); } else $error = '<h1>Impossible de créer le fichier '.$_POST['nfichier'].'.</h1>'; }
}
$output = (empty($error)) ? '<h1>La news '.$ti.' a bien été modifiée.</h1>' : $error.'<a href="javascript:history.go(-1)">Retour</a>';
echo $output;
require("./0admin_footer.php"); ?>
Le fichier "0admin_gestion_news.php" - Code: Tout sélectionner
<?php $titre_page = "Gestion des news"; require("./0admin_header.php");
if (file_exists('./news/dtb/news.dtb')) { $news_list = file_get_contents('./news/dtb/news.dtb'); $news_list = (!empty($news_list)) ? unserialize($news_list) : array(); $nb_news = count($news_list); if ($nb_news < 1) $error = '<p>Il n\'y a aucune news actuellement.</p>'; } else $error = '<p>Il n\'y a aucune news actuellement.</p>';
?>
<h1>Gestion des news</h1> <table>
<?php
if (empty($error) && $nb_news > 0) { ?> <tr> <th> Titre </th> <th colspan="3">Action</th> </tr> <?php
while ($nb_news > 0) { if (file_exists('./news/'.$news_list[$nb_news])) { $class = ""; include('./news/'.$news_list[$nb_news]); ?>
<tr> <td class="<?php echo $class ?>"><?php echo $ntitre ?></td> <td><a href="<?php echo './0admin_informations_sur_un_fichier.php?sid='.session_id().'&file=./news/'.$news_list[$nb_news] ?>"><img src="<?php echo $chemin_du_theme ?>/images/infos.png" alt="Informations de <?php echo $ntitre ?>" title="Informations de <?php echo $ntitre ?>" /></a></td> <td><a href="<?php echo './0admin_modifier_news.php?sid='.session_id().'&file=./news/'.$news_list[$nb_news] ?>"><img src="<?php echo $chemin_du_theme ?>/images/modifier.png" alt="Modifier <?php echo $ntitre ?>" title="Modifier <?php echo $ntitre ?>" /></a></td> <td><a href="<?php echo './0admin_supprimer_un_fichier.php?sid='.session_id().'&file=./news/'.$news_list[$nb_news] ?>"><img src="<?php echo $chemin_du_theme ?>/images/effacer.png" alt="Supprimer <?php echo $ntitre ?>" title="Supprimer <?php echo $ntitre ?>" /></a></td> </tr>
<?php } else { unset($news_list[$nb_news]); } $nb_news = $nb_news - 1; }
$news_list = (!empty($news_list)) ? serialize($news_list) : ''; $dtb = fopen('./news/dtb/news.dtb', 'w+'); fwrite($dtb, $news_list); fclose($dtb); } else echo $error;
echo '</table>';
require("./0admin_footer.php"); ?>
Et en fin le fichier "news.php" qui va afficher les news - Code: Tout sélectionner
<?php $titre_page = "News"; require("./header.php");
//*****
$maxnews = 5; // Nombre de news max dans la page
$smiley_text = array(':)', '=)', ':|', '=|', ':(', '=(', ':D', '=D', ':o', ':O', ';)', ':/', ':P', ':p', ':lol:', ':mad:', ':rolleyes:', ':cool:'); $smiley_img = array('smile.png', 'smile.png', 'neutral.png', 'neutral.png', 'sad.png', 'sad.png', 'big_smile.png', 'big_smile.png', 'yikes.png', 'yikes.png', 'wink.png', 'hmm.png', 'tongue.png', 'tongue.png', 'lol.png', 'mad.png', 'roll.png', 'cool.png');
function do_smilies($text) { global $smiley_text, $smiley_img;
$text = ' '.$text.' ';
$num_smilies = count($smiley_text); for ($i = 0; $i < $num_smilies; ++$i) $text = preg_replace("#(?<=.\W|\W.|^\W)".preg_quote($smiley_text[$i], '#')."(?=.\W|\W.|\W$)#m", '$1<img src="smilies/'.$smiley_img[$i].'" width="15" height="15" alt="'.substr($smiley_img[$i], 0, strrpos($smiley_img[$i], '.')).'" />$2', $text);
return substr($text, 1, -1); }
if (file_exists('./news/dtb/news.dtb')) { $news_list = file_get_contents('./news/dtb/news.dtb'); $news_list = (!empty($news_list)) ? unserialize($news_list) : array(); $nb_news = count($news_list); } else $error = '<p>Il n\'y a aucune news actuellement.</p>';
if (empty($error) && $nb_news > 0) { while ($nb_news > 0) { if (file_exists('./news/'.$news_list[$nb_news])) { include('./news/'.$news_list[$nb_news]);
$ntexte = preg_replace('#\[email\]([^\[]*?)\[/email\]#', '<a href="mailto:$1">$1</a>', $ntexte); $ntexte = preg_replace('#\[email=([^\[]*?)\](.*?)\[/email\]#', '<a href="mailto:$1">$2</a>', $ntexte); $ntexte = do_smilies($ntexte); $output .= '<p><strong>'.stripSlashes($ntitre).'</strong></p><p>'.stripSlashes($ntexte).'</p><p><sub>Ecrit par <i>'.stripSlashes($nauteur).'</i> le '.stripSlashes($ndate).'</sub></p><hr/>'; } $nb_news = $nb_news - 1; } }
$output = (!empty($output)) ? $output : '<p>Il n\'y a aucune news actuellement.</p>'; $output = (!empty($error)) ? $error : $output;
echo $output;
//*****
require("./footer.php"); ?>
Ce dernier fichier va être améliorer, notamment avec un système de pages pour afficher x news par page (x défini par $maxnews). Vous remarquerez le système de smileys. - Code: Tout sélectionner
$smiley_text = array(':)', '=)', ':|', '=|', ':(', '=(', ':D', '=D', ':o', ':O', ';)', ':/', ':P', ':p', ':lol:', ':mad:', ':rolleyes:', ':cool:'); $smiley_img = array('smile.png', 'smile.png', 'neutral.png', 'neutral.png', 'sad.png', 'sad.png', 'big_smile.png', 'big_smile.png', 'yikes.png', 'yikes.png', 'wink.png', 'hmm.png', 'tongue.png', 'tongue.png', 'lol.png', 'mad.png', 'roll.png', 'cool.png');
function do_smilies($text) { global $smiley_text, $smiley_img;
$text = ' '.$text.' ';
$num_smilies = count($smiley_text); for ($i = 0; $i < $num_smilies; ++$i) $text = preg_replace("#(?<=.\W|\W.|^\W)".preg_quote($smiley_text[$i], '#')."(?=.\W|\W.|\W$)#m", '$1<img src="smilies/'.$smiley_img[$i].'" alt="'.substr($smiley_img[$i], 0, strrpos($smiley_img[$i], '.')).'" />$2', $text);
return substr($text, 1, -1); }
Vous devez avoir un dossier "smilies" contenant les images des smileys à la racine de votre site. Les codes dans $smiley_text seront remplacés dans le texte par les images correspondantes dans $smiley_img grâce à cette ligne... - Code: Tout sélectionner
$ntexte = do_smilies($ntexte);
Ces 2 lignes... - Code: Tout sélectionner
$ntexte = preg_replace('#\[email\]([^\[]*?)\[/email\]#', '<a href="mailto:$1">$1</a>', $ntexte); $ntexte = preg_replace('#\[email=([^\[]*?)\](.*?)\[/email\]#', '<a href="mailto:$1">$2</a>', $ntexte);
... remplaceront des adresses Emails par des liens cliquables. Synthaxe: - Code: Tout sélectionner
[email]adresse_e-mail[/email]
ou - Code: Tout sélectionner
[email=adresse_e-mail]Fil1958[/email]
Voilà , j'attends vos commentaires et suggestions
En attendant je prépare un système pour gérer des membres et un forum sans bdd.
|