Index du Forum » » Version future

Auteur

une fonction pour le forum
gilbau
486      

  Posté : 08-10-2012 09:57

Je dois etre 2 versions en arriere sur le dernier npds . La raison principale est que justement il manque en natif sur npds la fonction voir les derniers messages postés sur le forum concernant tous les sujets de toutes les catégories comme j'ai à http://www.vivrenu.com/modules.php?ModPath=CentralBoard_forums_tous&ModStart=CentralBoard

Sur mon site et depuis des années c'est LA principale page que consultent tous mes membres (+ 30.000) et les anonymes

Je vous joint le code bidouillé de l'ancien module centralboard et qui ne fonctionne pas sur les nouveaux npds



<?PHP
/************************************************************************/
/* NPDS : Nuke Permanent Double-Side Web P ortal System   CentralBoard   */
/* ===========================                     & nbsp;            &n bsp;        */
/* From CentralBoard version 1.0 pour myPHPNuke  1.8           &nbs p;         */
/* Copyright © 2001, Hervé LAINE   &n bsp;            &nb sp;            &nbs p;          */
/* webmaster@clubados.com - http://www.clubados.com                     */
/*            &nb sp;            &nbs p;              ;                           & nbsp;    */
/* Original Copyright (c) 2001 by Francisco&nbs p;Burzi (fburzi@ncc.org.ve)   */
/* http://phpnuke.org                                                   */
/*            &nb sp;            &nbs p;              ;                           & nbsp;    */
/* This version name NPDS Copyright (c) 20 01 by Philippe Brunier         */
/*            &nb sp;            &nbs p;              ;                           & nbsp;    */
/* This program is free software. You can& nbsp;redistribute it and/or modify */
/* it under the terms of the GNU Gene ral Public License as published by */
/* the Free Software Foundation; either version  2 of the License.        ;*/
/************************************************************************/
if(!IsSet($mainfile)) { !include! ("mainfile.php& quot;); }

// !include! cache manager classe
!include!_once('cache.class.php');
// P. Brunier Permanent double-side theme
global $pdsts;
$pdst="1";

!include! ("modules/$ModPath/CentralBoard.conf.php");
!include! ("modules/$ModPath/CentralBoard.lang.php");
!include! ("modules/$ModPath/cache.timings.php");


function writeblock($title, $go, $corps, $foot, $sta tik){

global $site_font,$bgcolor2,$textcolor1, $bgcolorblock,$textcolorro uge ;

// Ajout gilles pub perso
//!include! ("static/facebook_jaime_compte_vivrenu_ferme.html&a mp;quot;);
//!include! ("static/facebook_jaime.html");




  echo "<table width=100% align=left  valign=top  border=0 cellpading=0 cellsapcing=5  bgcolor=$bgcolorblock><tr><td align=left&g t;";
  echo "<font size=2 face=\&quot ;tahoma,$site_font\" color=$textcolor1>$title</font ></td>";
  echo "<td align=right><fo nt size=2 face=\"tahoma,$site_font\" color=$te xtcolor1>$go</font></td></tr>& amp;quot;;
  echo "<tr><td colspan=2&a mp;gt; ";
    echo "<table align=center&n bsp;border=0 bgcolor=$bgcolor2 cellpadding=1 cellspacing=0  Width=100%><tr><td>";
    echo "<table align=center&n bsp;border=0 bgcolor=$bgcolorblock cellpadding=5 cellspacing=0&n bsp;Width=100%>";
    echo "<tr><td& gt;";
    echo "<font size=2 fac e=\"tahoma,$site_font\" color=$textcolor1> & amp;quot; ;
    
        
    if ($statik){
         !include!($corps);
    } else{
       echo $corps ;
    }
    echo "</font></td& amp;gt;</tr></table>";
    echo "</td></tr&am p;gt;</table>";
    echo "</td></tr&am p;gt;";
    echo "<tr><td  ;colspan=2> " ;
    echo "<font size=2 fac e=\"tahoma,$site_font\" color=$textcolor1>$foot&a mp;lt;/td></tr></table> "  ;;

}


function LastTopicsForum(){

global $bgcolorblock,$bgcolor4, $bgcolor3, $bgcolor2, $bg color1;
global $maxcount, $textcolor1 ;
global $user ;

$foot = "<a href=\"forum.php\&quo t;>[Voir tous les forums Thématiques]</a& gt;";

  $go="";
// recherche du numéro user ($userdata[0]) et&n bsp;du code user ($userdata[1]).
  $userX=base_64_decode($user);
  $userdata=explode(":",$userX);

//rajouté par gilles (modele marc)
  $corps = "";
  searchblockcorps();
  // fin ajout
  
  // affichage du code user ($userdata[1]) .
  $corps .= "<table width=\&quot ;100%\" border=0 bordercolor=$bgcolor4 cellpadding=2&nb sp;cellspacing=0 bgcolor=$bgcolorblock>";
  $corps .= "<tr align=center b gcolor=$bgcolor2>";
  $corps .= "<td width=3%>&am p;amp;nbsp;</td>";
  $corps .= "<td width=64%>&a mp;lt;font size=2><b>Sujet</b></ font></td>";
  $corps .= "<td width=5%>&am p;lt;font size=2><b>Rép.</b></fo nt></td>";
  $corps .= "<td width=15%>&a mp;lt;font size=2><b>Dernier message</b&a mp;gt;</font></td></tr>";
   
  $groupes="'Z'";
  // Controle du User pour voir s'il& nbsp;appartient au Groupe 7 (membres confirmés)
  $affichgroup7=false;
  $tab_groupe=valid_group($user);
  for ($i=0; $i<=9; $i++) {
      $groupes .=",'$tab_groupe[$ i]'";
      if ($tab_groupe[$i]==7) {
          $affichgroup7=tru e;
      }
  }

    // Controle du User pour voi r s'il appartient au Groupe 35 (membres insc rits)
  $affichgroup35=false;
  $tab_groupe=valid_group($user);
  for ($i=0; $i<=40; $i++) {
      $groupes .=",'$tab_groupe[$ i]'";
      if ($tab_groupe[$i]==35) {
          $affichgroup7=tru e;
      }
  }
  
    // Controle du User pour voi r s'il appartient au Groupe 6 (redacteur/moderate ur/admin)
  $affichgroup6=false;
  $tab_groupe=valid_group($user);
  for ($i=0; $i<=9; $i++) {
      if ($tab_groupe[$i]==6) {
          $affichgroup6=tru e;
          break;
      }
  }
      // Controle du User p our voir s'il appartient au Groupe 12 (Club& nbsp;ANO d'EURONAT)
  $affichgroup12=false;
  $tab_groupe=valid_group($user);
  for ($i=0; $i<=9; $i++) {
      if ($tab_groupe[$i]==12) {
          $affichgroup12=tr ue;
          break;
      }
  }
  
  // Début des modifications Grunt 1.03
  if ($affichgroup7) // Groupe des confirm és
  {
    // Afficher les forums Type  Public ou (Type 9 et forum 23) ou (Type  7 et (Groupes))
     $conditions_acces =" (f.foru m_type = 0) ";
     $conditions_acces .=" or&nbs p;(f.forum_type=9 and (f.forum_id = '23'))";
     $conditions_acces .=" or&nbs p;(f.forum_type=7 and (f.forum_pass in ($groupes)))&quo t;;
  }
  else
  {
     $conditions_acces =" (f.foru m_type='0' and forum_access<'2') ";
  }

    $query ="select t.topic_id, t .topic_title, t.forum_id, t.topic_poster, t.topic_time, f.f orum_type, f.forum_name";
    $query .=" from forumtopics&n bsp;t, forums f";
    $query .=" where (t.forum_id= f.forum_id)";
    $query .=" and ( &qu ot;;
    $query .= $conditions_acces;
    $query .=" )";

    $query .=" order by topi c_time desc limit $maxcount";
    // Fin des modifications Grunt&nb sp;1.03


    $result = mysql_query($query);

    if (!$count) {
       $count=mysql_num_rows($result);
    }

  if ($count>$maxcount){$count=$maxcount;}

  $ibid=0;
  $forum_limit=0;

// --- Début Ajout Grunt 1/3: pour correct ion dernières contributions. ---
// Déclarations récupérées de viewtopic.php   < br /> settype($start,&quot;integer&quot;);
 settype($posts_per_page,&quot;integer&quot;);

// $posts_per_page est une constante pré-établie,&nb sp;je suppose: elle doit venir d'un !include!.&nb sp;Sinon:
$posts_per_page=30;
echo(&quot;&lt;!-- Marquage: Cette version du&nbs p;site a été modifiée par Grunt. 1.02 --& ;gt;&quot;);
// --- Fin Ajout Grunt 1/3: pour correctio n dernières contributions. ---  
  
  
  while ($forum_limit&lt;$count){
        list($topic_id, $topic_t itle, $forum_id, $poster_id, $topic_time, $forum_type,  ;$forum_name) = mysql_fetch_row($result);
        $topic_title=stripslashes($to pic_title);
        $forum_limit++;  &n bsp;           // t opic_title
        $query =&quot;select  post_time, poster_id, post_aff from posts where& nbsp;topic_id='$topic_id' order by post_id desc limit& nbsp;0,1&quot;;
        $result_P = mysql_q uery($query);
        list($post_time, $poster _id, $post_aff) = mysql_fetch_row($result_P);
        $post_time_mmjjhh=substr($pos t_time,5,11);
        // Auteur
        if ($poster_id!=0)  {
            list( $uname) = mysql_fetch_row(mysql_query(&quot;select uname&nbs p;from users where uid=$poster_id&quot;));
        }
        if ($ibid==0) {
           $ibid=1;
           $bcolor=$bg color1;
        } else {
           $ibid=0;
           $bcolor=$bg color3;
        }

        $corps .= &quot ;&lt;tr align=center bgcolor=$bcolor&gt;&quot; ;
//   if ($ibid=theme_image(&quot;forum/icons/hot_red_ folder.gif&quot;)) {$imgtmpHR=$ibid;} else {$imgtmpHR=&q uot;images/forum/icons/hot_red_folder.gif&quot;;}
        $imgtmpHR=&quot;images/fo rum/icons/hot_red_folder.gif&quot;;
//   if ($ibid=theme_image(&quot;forum/icons/hot_fold er.gif&quot;)) {$imgtmpH=$ibid;} else {$imgtmpH=&quot;im ages/forum/icons/hot_folder.gif&quot;;}
        $imgtmpH=&quot;images/for um/icons/hot_folder.gif&quot;;
//   if ($ibid=theme_image(&quot;forum/icons/red_fold er.gif&quot;)) {$imgtmpR=$ibid;} else {$imgtmpR=&quot;im ages/forum/icons/red_folder.gif&quot;;}
        $imgtmpR=&quot;images/for um/icons/red_folder.gif&quot;;
//   if ($ibid=theme_image(&quot;forum/icons/folder.g if&quot;)) {$imgtmpF=$ibid;} else {$imgtmpF=&quot;images /forum/icons/folder.gif&quot;;}
        $imgtmpF=&quot;images/for um/icons/folder.gif&quot;;
//   if ($ibid=theme_image(&quot;forum/icons/lock.gif &quot;)) {$imgtmpL=$ibid;} else {$imgtmpL=&quot;images/f orum/icons/lock.gif&quot;;}
        $imgtmpL=&quot;images/for um/icons/lock.gif&quot;;
//   if ($ibid=theme_image(&quot;forum/icons/lock.gif &quot;)) {$imgtmpL=$ibid;} else {$imgtmpL=&quot;images/f orum/icons/lock.gif&quot;;}
        $imgtmpRi=&quot;images/do wnload/right.gif&quot;;

//   if ($ibid=theme_image(&quot;forum/icons/posticon .gif&quot;)) {$imgtmpP=$ibid;} else {$imgtmpP=&quot;imag es/forum/icons/posticon.gif&quot;;}
//   if ($ibid=theme_image(&quot;box/right.gif&qu ot;)) {$imgtmpRi=$ibid;} else {$imgtmpRi=&quot;images/downlo ad/right.gif&quot;;}
//         $replys = g et_total_posts($forum_id, $myrow[$topic_id], &quot;topic&quot ;, $Mmod);
         $replys = get _total_posts($forum_id, $topic_id, &quot;topic&quot;, $M mod);
         $replys--;
            $sqlR  = &quot;select rid from forum_read where&nbs p;forum_id='$forum_id' and uid='$userdata[0]' and topicid=' $topic_id' and status!='0'&quot;;
            $hot_ threshold=20;
            if&nb sp;($replys &gt;= $hot_threshold) {
              ;  if (mysql_num_rows(mysql_query($sqlR))==0)
              ;    $image = $imgtmpHR;
              ;  else
              ;    $image = $imgtmpH;
            }&nbs p;else {
              ;   if (mysql_num_rows(mysql_query($sqlR))==0)
              ;      $image = $imgtmpR;
              ;  else
              ;     $image = $imgtmpF;
            }

            if&nb sp;($myrow[topic_status] == 1)
              ;  $image = $imgtmpL;
    
    $textcolor_aff = $textcolor1;
        if ($post_aff==0) {
            $text color_aff = &quot;0000FF#&quot;;
        }
    if ($post_aff==1) {
        $post_aff = &qu ot; &quot;;
    }
    
    // --- Début Ajout Grunt 2/3 : pour correction dernières contributions. ---
    // Nous faisons le calcul sa uvage d'un start avec les moyens du bord.
    //   ($replys / $posts_per_p age) fait une division au résulat entier et& nbsp;perd le reste.
    //   en remultipliant par&nb sp;$posts_per_page, on attend un multiple de $pos ts_per_page: 0,20,40,60... 
    $start=$replys / $posts_per_page;
   settype($start,&quot;integer&quot;);
    $start=$start * $posts_per_page;
    // --- Fin Ajout Grunt 2/3:& nbsp;pour correction dernières contributions. ---
    
        $corps .= &quot ;&lt;td align=center&gt;&lt;img src=$image&gt;&lt ;/td&gt;&quot;;
        $corps .= &quot ;&lt;td align=left&gt;&lt;font size=2  face=\&a mp;quot;tahoma,$site_font\&quot; color=$textcolor_aff&gt;$post_aff &amp;nbsp;&lt;a href=\&quot;viewtopic.php?topic=$topic_id& amp;forum=$forum_id\&quot;&gt;&lt;b&gt;$topic_title&lt;/b&a mp;gt;&lt;/a&gt;&lt;/font&gt;&quot;;
        $corps .= &quot ;&lt;font size=1 face=\&quot;tahoma,$site_font\&quot;&nbs p;color=$textcolor1&gt;&amp;nbsp;[&lt;a href=\&quot;viewfo rum.php?forum=$forum_id\&quot;&gt;$forum_name&lt;/a&gt;]&lt ;/font&gt;&lt;/td&gt;&quot;;

    // --- Début Modification Grunt&n bsp;3/3: pour correction dernières contributions. ---
       $corps .= &quot;& lt;td align=right&gt;&lt;font size=1 face=\&quot;tah oma,$site_font\&quot; color=$textcolor1&gt;&lt;a href=\&a mp;quot;viewtopic.php?topic=$topic_id&amp;forum=$forum_id\&quot; & nbsp;title=\&quot;Premières contributions\&quot; &gt;$rep lys&lt;/a&gt;&lt;/font&gt;&amp;nbsp;&lt;a href=\&a mp;quot;viewtopic.php?topic=$topic_id&amp;start=$start&amp;forum=$forum _id#last-post\&quot; &gt;&lt;img src=\&quot;$imgtmpRi \&quot; border=\&quot;0\&quot; align=\&quot;middle\&a mp;quot; alt=\&quot;&quot;.translate(&quot;Last Posts& ;quot;).&quot;\&quot; /&gt;&lt;/a&gt;&amp;nbsp;&am p;lt;/td&gt; &quot; ;
       // $corps .= &qu ot;&lt;td align=right&gt;&lt;font size=1 face=\& quot;tahoma,$site_font\&quot; color=$textcolor1&gt;&lt;a  href=\&quot;viewtopic.php?topic=$topic_id&amp;forum=$forum_id\&quot ;  title=\&quot;Premières contributions\&quot; & ;gt;$replys&lt;/a&gt;&lt;/font&gt;&amp;nbsp;&lt;a  href=\&quot;viewtopic.php?topic=$topic_id&amp;forum=$forum_id#last-post \&quot; &gt;&lt;img src=\&quot;$imgtmpRi\&quot;&n bsp;border=\&quot;0\&quot; align=\&quot;middle\&quot;  ;alt=\&quot;&quot;.translate(&quot;Last Posts&quot;).& quot;\&quot; /&gt;&lt;/a&gt;&amp;nbsp;&lt;/td& gt; &quot;;
    // --- Fin Modification Grunt&nbs p;3/3: pour correction dernières contributions. ---

        $corps .= &quot ;&lt;td align=center&gt;&lt;font size=1 face=\&q uot;tahoma,$site_font\&quot; color=$textcolor1&gt;$post_time_mmjjh h &lt;a href=\&quot;user.php?op=userinfo&amp;uname=$uname \&quot;&gt;$uname&lt;/a&gt;&lt;/font&gt;&lt;/td& ;gt;&lt;/tr&gt;&quot;;
   }
        $corps .=&quot;& lt;/table&gt;&quot;;

//ajout marc
          searchblock();
//fin ajout marc

   WriteBlock($title,$go,$corps,$foot,false);

}


function main($op){

global $catid_b1,$catid_b5;




// bloc N°4 -  Le forums

echo &quot;&lt;table width=100% border=0 cellspac ing=5 cellpading=0&gt;&lt;tr&gt;&lt;td&gt;&quot;;
LastTopicsForum();
echo &quot;&lt;/td&gt;&lt;/tr&gt;&lt;/table& gt;&quot;;






!include!(&quot;footer.php&quot;);


}

//ajouté par marc
function searchblock(){
   echo &quot;&lt;table width=\&quot;100 %\&quot; cellspacing=\&quot;0\&quot; cellpadding=\&qu ot;4\&quot; border=\&quot;0\&quot;&gt;
   &lt;form action=\&quot;searchbb.php\&quot;  method=\&quot;post\&quot;&gt;&lt;tr&gt;&lt;td&nbs p;nowrap class=\&quot;HEADER\&quot;&gt;
   &lt;input type=\&quot;hidden\&quot; n ame=\&quot;addterm\&quot; value=\&quot;any\&quot;&gt;
   &lt;input type=\&quot;hidden\&quot; n ame=\&quot;sortby\&quot; value=\&quot;p.post_id\&quot;& ;gt;&quot;;

  
//ajouté par gilles 
echo &quot;&lt;center&gt;&lt;b&gt;
&lt;a href=\&quot;viewtopic.php?topic=2132&amp;forum=10\& ;quot;&gt;[Centres naturistes à 100% ]&lt;/a&gt ;&amp;nbsp;
&lt;a href=\&quot;forum.php\&quot;&gt;[Tous les&nbs p;Forums ]&lt;/a&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;& ;quot;.translate('Search').&quot;&lt;/b&gt;&amp;nbsp;&amp;n bsp;&lt;input class=\&quot;TEXTBOX_STANDARD\&quot; type=\ &quot;text\&quot; name=\&quot;term\&quot; size=\& quot;10\&quot;&gt;&amp;nbsp;&amp;nbsp;&lt;input class= \&quot;BOUTON_STANDARD\&quot; type=\&quot;submit\&quot;&nb sp;name=\&quot;submit\&quot; Value=\&quot;&quot;.translate (&quot;Submit&quot;).&quot;\&quot;&gt;&lt;/center&g t;&quot;;
   echo &quot;&lt;/td&gt;&lt;/tr&gt;& amp;lt;/form&gt;&lt;/table&gt;&quot;;
}

function searchblockcorps(){
   $corps .= &quot;&lt;br /&gt;& ;lt;table width=\&quot;100%\&quot; cellspacing=\&quot;0\& amp;quot; cellpadding=\&quot;4\&quot; border=\&quot;0\&am p;quot;&gt;&quot;;
   $corps .= &quot;&lt;form action=\&am p;quot;searchbb.php\&quot; method=\&quot;post\&quot;&gt;&a mp;lt;tr&gt;&lt;td nowrap class=\&quot;HEADER\&quot;& amp;gt;&quot;;
   $corps .= &quot;&lt;input type=\& ;quot;hidden\&quot; name=\&quot;addterm\&quot; value=\&am p;quot;any\&quot;&gt;&quot;;
   $corps .= &quot;&lt;input type=\& ;quot;hidden\&quot; name=\&quot;sortby\&quot; value=\& ;quot;p.post_id\&quot;&gt;&quot;;
   $corps .= &quot;&lt;center&gt;&lt ;b&gt;&quot;.translate('Search').&quot;&lt;/b&gt;&amp;n bsp;&amp;nbsp;&lt;input class=\&quot;TEXTBOX_STANDARD\&quo t; type=\&quot;text\&quot; name=\&quot;term\&quot;&nb sp;size=\&quot;50\&quot;&gt;&amp;nbsp;&amp;nbsp;&lt;inp ut class=\&quot;BOUTON_STANDARD\&quot; type=\&quot;submit \&quot; name=\&quot;submit\&quot; Value=\&quot;&q uot;.translate(&quot;Submit&quot;).&quot;\&quot;&gt;&lt ;/center&gt;&quot;;
   $corps .= &quot;&lt;/td&gt;&lt;/t r&gt;&lt;/form&gt;&lt;/table&gt;&lt;br /&gt;&a mp;quot;;
}


  //    !include!('functions.php');
  function get_total_posts($fid, $tid, $type, $ Mmod) {
   if ($Mmod) {
      $post_aff=&quot;&quot;;
   } else {
      $post_aff=&quot; and post_a ff='1'&quot;;
   }
   switch($type) {
      case 'forum':
           $sql =  &quot;SELECT count(*) AS total FROM posts&nb sp;WHERE forum_id='$fid'$post_aff&quot;;
           break;

      case 'topic':
           $sql =  &quot;SELECT count(*) AS total FROM posts&nb sp;WHERE topic_id='$tid'$post_aff&quot;;
           break;

      case 'user':
           forumerror( 0031);
   }

   if (!$result = mysql_query($sql))
      return(&quot;ERROR&quot;);
   if (!$myrow = mysql_fetch_array($result))
      return(&quot;0&quot;);

   mysql_free_result($result);
   return($myrow[total]);
}

// fin ajout marc


// début programme principal

!include!(&quot;header.php&quot;);

switch ($op) {

   case &quot;edito&quot;:
      write_edito($txtname);
      main($op);
      break;


    default:
      main($op);
      break;
}


?&gt;





Cet article provient de NPDS

http://www.npds.org/viewtopic.php?topic=25274&forum=4