Guide informatique hardware En1heure.com
Articles phares : Quelle alimentation PC | Choisir son ecran LCD PC

Chercher un sujet :

[MOD] news sans base de donnée

Itseasy est un petit projet Open Source de CMS sans base de données. Son but est d'être accessible et rapide.
Participez au développement et / ou suivez son cours à travers cette section ;o)
Site officiel : Itseasy | Démonstration en ligne

Messages: 16
Inscription: Jeu Oct 26, 2006 7:01 am
[MOD] news sans base de donnéeMessagePosté: Jeu Oct 26, 2006 8:15 am

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/
Dernière édition par Fightsoul le Sam Déc 02, 2006 4:11 pm, édité 2 fois.
Avatar de l’utilisateur
Messages: 131
Inscription: Mer Aoû 18, 2004 8:52 am
Localisation: V7.9
[MOD] news sans base de donnéeMessagePosté: Jeu Oct 26, 2006 1:33 pm

Merci , cela peut être utile
Avatar de l’utilisateur
Messages: 133
Inscription: Sam Déc 04, 2004 2:22 am
Localisation: Clermont-Ferrand
[MOD] news sans base de donnéeMessagePosté: Jeu Oct 26, 2006 5:31 pm

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

Messages: 20
Inscription: Mer Oct 04, 2006 1:50 pm
[MOD] news sans base de donnéeMessagePosté: Dim Oct 29, 2006 6:16 pm

excelent vais pouvoir me faire les dents dessus merci bien celui la j'arrive a le faire fonctionner :mrgreen:

Messages: 16
Inscription: Jeu Oct 26, 2006 7:01 am
[MOD] news sans base de donnéeMessagePosté: Lun Oct 30, 2006 2:09 pm

J'vais essayer de voir ce que je peut faire pour intégrer cutenews, mais ca m'as l'air plus complexe :?

Messages: 20
Inscription: Mer Oct 04, 2006 1:50 pm
[MOD] news sans base de donnéeMessagePosté: Lun Oct 30, 2006 2:17 pm

hmm il a pas l'air gratuit cutenews
http://cutephp.com/cutenews/register/

Messages: 16
Inscription: Jeu Oct 26, 2006 7:01 am
[MOD] news sans base de donnéeMessagePosté: Lun Oct 30, 2006 5:13 pm

je sais pas si tu a bien lu mais c'est pour enlever la ligne "Powered by CuteNews..." en bas des news.

Messages: 20
Inscription: Mer Oct 04, 2006 1:50 pm
[MOD] news sans base de donnéeMessagePosté: Lun Oct 30, 2006 5:21 pm

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:

Messages: 11
Inscription: Jeu Mar 31, 2005 2:39 am
[MOD] news sans base de donnéeMessagePosté: 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().'&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.

Retourner vers Développement technique d'Itseasy



Chercher un sujet :


cron