[News\Resume] Couper le texte sur un espace + Présentation

Salut,

Encore une modification, a vous de prendre ou pas si ça vous plait

Voila ce que j'ai changé :
- Ne coupe pas le texte sur un espace, il faut la fonction ici
http://www.kwsphp.org/index.php?mod=forum&ac=voir&id=9631
- Affiche "Poster un commentaire" au lieu de 0 commentaire
- Meilleur gestion du lien "Lire la suite" (pas de doublons dans les liens)
- Masque l'image de la news si on n'affiche pas le texte de la news

Bon courage, les développeurs :yes:


Code PHP :
Pour copier le contenu exact du code,
Veuillez citer le message
  1. <?php
  2.  
  3. // ---------------------------------------------------------------
  4. // KwsPHP kOoGar Web System
  5. // $Id: resume.php 900 2010-04-12 21:03:22Z mike007.devpwsphp $
  6. // ---------------------------------------------------------------
  7. // Mise a jour : 30/10/06 par Jack
  8. // ---------------------------------------------------------------
  9.  
  10. if (!(defined('__KWS__'))) {die ('Erreur d\'appel de fichier.');}
  11.  
  12. if (get_grade() >= GRD_VISIT and is_module('news'))
  13. {
  14.     $texte = '';
  15.  
  16.     $req_news = reqmysql('
  17.         SELECT    `news`.`id`, `news`.`date`, `news`.`nbr_comment`, `news`.`auteur`, `news`.`type`,
  18.                 `news`.`contenu`, `news`.`smiley`, `news`.`hit`, `news`.`ref`, `news`.`titre`,
  19.                 `news`.`edit`, `news`.`validation`, `news`.`envoi_mail`,
  20.                 `rubriques`.`image`, `rubriques`.`titre` AS cat_titre,
  21.                 `users`.`id` AS usr_id, `users`.`grade` AS usr_grade, `users`.`avatar`
  22.         FROM `news`
  23.         JOIN `rubriques`
  24.             ON    `news`.`ref` = `rubriques`.`id`
  25.         LEFT JOIN `users`
  26.             ON    `users`.`pseudo` = `news`.`auteur`
  27.         WHERE    `news`.`validation` < 1
  28.             AND    `news`.`date` <= '.time().'
  29.             AND    `news`.`ref` IN '.$K_user->rubrique[0].'
  30.         ORDER BY `news`.`date` DESC
  31.         LIMIT 0 , '.(!empty($resume->parametre2) ? $resume->parametre2 : 5)
  32.     );
  33.  
  34.     // Au moins une news existe
  35.     if (mysql_num_rows($req_news) != 0)
  36.     {
  37.         $resume3 = explode('-', $resume->parametre3);
  38.         $j=0;
  39.  
  40.         //Debut boucle de listing des news
  41.         while ($news = mysql_fetch_object($req_news))
  42.         {
  43.             // "validation" des news post-datées. Nécessaire pour l'envoi des mails annonçant la news.
  44.             if ($news->validation == -1)
  45.             {
  46.                 define('NEWS_VALIDATION', 1);
  47.                 @include './modules/news/validation.php';
  48.             }
  49.  
  50.             $new  = ((time()-$news->date) < ($resume->parametre4*24*3600) ? '<img src="themes/'.$K_theme.'/images/resume/new.png" alt="new" style="border:none;" />' : '' );
  51.             //Debut boucle de listing des articles
  52.             //Contenu du resume et mise en forme du titre
  53.             $titre = '
  54.             <a href="'.(url_rw('./index.php?mod=news&amp;ac=commentaires&amp;id='.$news->id,array($news->titre))).'" title="Lire la news: &laquo;'.ax($news->titre).'&raquo;">
  55.             <span style="font-weight:bold; font-size:1.1em; font-family:Comic">'.($resume_colonne==2 ? wordwrap(ax($news->titre),(preg_match('#img#i',$new) ? '35':'40'),'<br />',1):ax($news->titre)).'</span>
  56.             </a>&nbsp;'.$new;
  57.             $texte .='<fieldset class="fieldset_resume"><legend>'.$titre.'</legend>';
  58.             list($image_width, $image_height, $image_type, $image_attr) = @getimagesize($news->image);
  59.             //Modif LSI : Image réduite à 64px au lieu de 50px et afficher que si on affiche le texte de la news
  60.             f ($j<$resume3[0])
  61.             {
  62.                 $texte .='
  63.                 <a href="./index.php?mod=news&amp;ref='.$news->ref.'">
  64.                 <img src="'.$news->image.'" alt="Image" style="border:none;'.($image_width>64 ? 'width:64px;' : '').'float:right;padding:5px" />
  65.                 </a>';
  66.             }
  67.             //Modification LSI : Suppression d'un BR avant "dans la catégorie"
  68.             $texte .= '
  69.             <em>News Post&eacute;e par <a href="'.(url_rw('./index.php?mod=espace_membre&amp;ac=profil&amp;id='.$news->usr_id,array($news->auteur))).'">'.get_grd_symbol($news->usr_grade).ax($news->auteur).' </a>
  70.             <br />le '.kws_date('l jS F Y \&\a\g\r\a\v\e\; H:i',$news->date).'
  71.             <br />dans la cat&eacute;gorie <a href="./index.php?mod=news&amp;ref='.$news->ref.'"><strong>"'.ax($news->cat_titre).'"</strong></a></em>
  72.             <br style="clear:both"/>';
  73.             if ($j<$resume3[0])
  74.             {
  75.                 //Correction LSI : Ne pas couper au milieu d'un mot mais sur un espace
  76.                 $coupe = 0;
  77.                 if (!empty($resume3[1]) and strlen($news->contenu) > $resume3[1])
  78.                 {
  79.                     $news->contenu = df_coupe($news->contenu,0,$resume3[1]);
  80.                     $coupe = 1;
  81.                 }
  82.                 if($news->type==1) //BBCode
  83.                 {
  84.                     $texte .= '<hr />'.bbcode($news->contenu,$news->smiley,1);
  85.                 }
  86.                 else  // HTML
  87.                 {
  88.                     $texte .= '<hr />'.bbcode($news->contenu,0,0,1,1);
  89.                 }
  90.                 if (strpos($texte,'|{}|')!=FALSE) // Coupure de page
  91.                 {
  92.                     $texte = substr($texte,0,strpos($texte,'|{}|')).' [...]';
  93.                     $coupe = 1;
  94.                 }
  95.             }
  96.             //Modif LSI : texte des commentaires plus sympa, supression des width dans les style des div
  97.             //Modif LSI : Si pas de commentaire, on affiche "poster un commentaire" et pas "0 commentaire"
  98.             $texte .= '<hr />
  99.             '.( $news->edit != '' ? '<div style="float:left;font-style:italic;">&Eacute;dit&eacute; le : '.ax($news->edit).'</div>':'').'
  100.             <div style="float:right;font-style:italic;text-align:right">
  101.             <a href="'.(url_rw('./index.php?mod=news&amp;ac=commentaires&amp;id='.$news->id,array($news->titre))).'">
  102.             '.($j>=$resume3[0] ? 'Lire cette news<br />' : ($coupe==1? 'Lire la suite<br />' : ''))
  103.             .($news->nbr_comment>0 ? $news->nbr_comment.' commentaire'.($news->nbr_comment>1 ? 's':''):'Poster un commentaire')
  104.             .' (Lu '.$news->hit.' fois)</a>
  105.             </div>
  106.             </fieldset>';
  107.             $j++;
  108.         }
  109.         $texte .= '<br /><div style="text-align:right"><a href="'.(url_rw('index.php?mod=news')).'">Toutes les news</a></div>';
  110.     }
  111.     //Pas de news
  112.     else
  113.     {
  114.         $texte = '<div style="font-style:italic; text-align:center;"><h5>Aucune news n&rsquo;a encore &eacute;t&eacute; post&eacute;e</h5></div>';
  115.     }
  116.  
  117.     bloc_head('<a href="'.(url_rw('./index.php?mod='.$resume->module)).'"><strong>'.$resume->parametre1.'</strong></a>');
  118.     echo $texte;
  119.     close_table();
  120. }
  121. ?>
  122.  


Sujet écrit par LSI le mercredi 26 mai 2010 à 19:08

[ Imprimer ] - [ Fermer la fenêtre ]