Page 1 sur 1

[MOD] news sans base de donnée

MessagePosté: Jeu Oct 26, 2006 8:15 am
de Fightsoul
Bonjour, voilà je vient de créer un p'tit système de news basique sans base de donnée, enfin c'est plutôt une adaptation d'un code que j'ai trouvé sur le net.
le système est totalement intégrer a itseasy et est tés facile d'utilisation, par contre il n'y a pas la possibilité de laissé des commentaires.

Voici un lien pour voir à quoi ça ressemble :
http://testlaboratory.funpic.org/

et si vous voulez le télécharger c'est ici :
http://testlaboratory.te.funpic.org/fic ... D_news.zip

Et voici l'intégration que j'ai faite pour mon site :
http://lasvegasserie.free.fr/

MessagePosté: Jeu Oct 26, 2006 1:33 pm
de Blink
Merci , cela peut être utile

MessagePosté: Jeu Oct 26, 2006 5:31 pm
de renaud_63
Trés chouette...

Le module simplenews que j'avais ecrit fait la même chose...
Comme cela les personnes pourront choisir...

C'est bien
:wink: Renaud

MessagePosté: Dim Oct 29, 2006 6:16 pm
de tsu
excelent vais pouvoir me faire les dents dessus merci bien celui la j'arrive a le faire fonctionner :mrgreen:

MessagePosté: Lun Oct 30, 2006 2:09 pm
de Fightsoul
J'vais essayer de voir ce que je peut faire pour intégrer cutenews, mais ca m'as l'air plus complexe :?

MessagePosté: Lun Oct 30, 2006 2:17 pm
de tsu
hmm il a pas l'air gratuit cutenews
http://cutephp.com/cutenews/register/

MessagePosté: Lun Oct 30, 2006 5:13 pm
de Fightsoul
je sais pas si tu a bien lu mais c'est pour enlever la ligne "Powered by CuteNews..." en bas des news.

MessagePosté: Lun Oct 30, 2006 5:21 pm
de tsu
ah dans ce cas la rien dit et je vais meme le tester en plus :mrgreen:
j'en est trouvé un pas mal du tout c'est sznews a voir si celui la est mieu

edit: apres test avec easyphp et bien impressionnant y a du boulot c'est sur mais un peu trop usine a gaz pour quelqu'un qui souhaite juste ajouter de simple news. Rein avoir avec celui que j'ai trouvé il est bien plus complet cute :wink:

MessagePosté: Dim Mar 11, 2007 8:11 am
de Fil1958
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().'&amp;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().'&amp;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().'&amp;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.