home *** CD-ROM | disk | FTP | other *** search
/ PC World 2005 April / PCWorld_2005-04_cd.bin / akce / web / phpnuke / PHP-Nuke-7.5.exe / html / modules / Surveys / comments.php next >
PHP Script  |  2004-08-23  |  36KB  |  775 lines

  1. <?php
  2.  
  3. /************************************************************************/
  4. /* PHP-NUKE: Web Portal System                                          */
  5. /* ===========================                                          */
  6. /*                                                                      */
  7. /* Copyright (c) 2002 by Francisco Burzi                                */
  8. /* http://phpnuke.org                                                   */
  9. /*                                                                      */
  10. /* This program is free software. You can redistribute it and/or modify */
  11. /* it under the terms of the GNU General Public License as published by */
  12. /* the Free Software Foundation; either version 2 of the License.       */
  13. /************************************************************************/
  14. /*         Additional security & Abstraction layer conversion           */
  15. /*                           2003 chatserv                              */
  16. /*      http://www.nukefixes.com -- http://www.nukeresources.com        */
  17. /************************************************************************/
  18.  
  19. if (!eregi("modules.php", $_SERVER['PHP_SELF'])) {
  20.     die ("You can't access this file directly...");
  21. }
  22. require_once("mainfile.php");
  23. $module_name = basename(dirname(__FILE__));
  24. get_lang($module_name);
  25. $pagetitle = "- "._SURVEYS."";
  26.  
  27. function format_url($comment) {
  28.     global $nukeurl;
  29.     unset($location);
  30.     $comment = $comment;
  31.     $links = array();
  32.     $hrefs = array();
  33.     $pos = 0;
  34.     while (!(($pos = strpos($comment,"<",$pos)) === false)) {
  35.     $pos++;
  36.     $endpos = strpos($comment,">",$pos);
  37.     $tag = substr($comment,$pos,$endpos-$pos);
  38.     $tag = trim($tag);
  39.     if (isset($location)) {
  40.             if (!strcasecmp(strtok($tag," "),"/A")) {
  41.             $link = substr($comment,$linkpos,$pos-1-$linkpos);
  42.             $links[] = $link;
  43.             $hrefs[] = $location;
  44.             unset($location);
  45.             }
  46.         $pos = $endpos+1;
  47.     } else {
  48.         if (!strcasecmp(strtok($tag," "),"A")) {
  49.         if (eregi("HREF[ \t\n\r\v]*=[ \t\n\r\v]*\"([^\"]*)\"",$tag,$regs));
  50.         else if (eregi("HREF[ \t\n\r\v]*=[ \t\n\r\v]*([^ \t\n\r\v]*)",$tag,$regs));
  51.         else $regs[1] = "";
  52.         if ($regs[1]) {
  53.                 $location = $regs[1];
  54.         }
  55.         $pos = $endpos+1;
  56.         $linkpos = $pos;
  57.         } else {
  58.         $pos = $endpos+1;
  59.         }
  60.     }
  61.     }
  62.     for ($i=0; $i<sizeof($links); $i++) {
  63.     if (!eregi("://", $hrefs[$i])) {
  64.         $hrefs[$i] = $nukeurl;
  65.     } elseif (!eregi("mailto://", $hrefs[$i])) {
  66.         $href = explode("/",$hrefs[$i]);
  67.         $href = " [$href[2]]";
  68.         $comment = ereg_replace(">$links[$i]</a>", "title='$hrefs[$i]'> $links[$i]</a>$href", $comment);
  69.     }
  70.     }
  71.     return($comment);
  72. }
  73.  
  74. function modone() {
  75.     global $admin, $moderate, $module_name;
  76.     if(((isset($admin)) && ($moderate == 1)) || ($moderate==2)) echo "<form action=\"modules.php?name=$module_name&file=comments\" method=\"post\">";
  77. }
  78.  
  79. function modtwo($tid, $score, $reason) {
  80.     global $admin, $user, $moderate, $reasons;
  81.     if((((isset($admin)) && ($moderate == 1)) || ($moderate == 2)) && ($user)) {
  82.         echo " | <select name=dkn$tid>";
  83.         for($i=0; $i<sizeof($reasons); $i++) {
  84.             echo "<option value=\"$score:$i\">$reasons[$i]</option>\n";
  85.         }
  86.         echo "</select>";
  87.     }
  88. }
  89.  
  90. function modthree($pollID, $mode, $order, $thold=0) {
  91.     global $admin, $user, $moderate;
  92.     if((((isset($admin)) && ($moderate == 1)) || ($moderate==2)) && ($user)) echo "<center><input type=hidden name=pollID value=$pollID><input type=hidden name=mode value=$mode><input type=hidden name=order value=$order><input type=hidden name=thold value=$thold>
  93.     <input type=hidden name=op value=moderate>
  94.     <input type=image src=images/menu/moderate.gif border=0></form></center>";
  95. }
  96.  
  97. function navbar($pollID, $title, $thold, $mode, $order) {
  98.     global $user, $bgcolor1, $bgcolor2, $textcolor1, $textcolor2, $anonpost, $pollcomm, $prefix, $db, $module_name;
  99.     OpenTable();
  100.     $pollID = intval($pollID);
  101.     $query = $db->sql_query("SELECT pollID FROM ".$prefix."_pollcomments where pollID='$pollID'");
  102.     if(!$query) $count = 0; else $count = $db->sql_numrows($query);
  103.     $row = $db->sql_fetchrow($db->sql_query("SELECT pollTitle from ".$prefix."_poll_desc where pollID='$pollID'"));
  104.     $title = $row['pollTitle'];
  105.     if(!isset($thold)) $thold=0;
  106.     echo "\n\n<!-- COMMENTS NAVIGATION BAR START -->\n\n";
  107.     echo "<table width=\"99%\" border=\"0\" cellspacing=\"1\" cellpadding=\"2\">\n";
  108.     if($title) {
  109.     echo "<tr><td bgcolor=\"$bgcolor2\" align=\"center\"><font class=\"content\" color=\"$textcolor1\">\"$title\" | ";
  110.         if(is_user($user)) {
  111.         echo "<a href=\"modules.php?name=Your_Account&op=editcomm\"><font color=\"$textcolor1\">"._CONFIGURE."</font></a>";
  112.         } else {
  113.         echo "<a href=\"modules.php?name=Your_Account\"><font color=\"$textcolor1\">"._LOGINCREATE."</font></a>";
  114.         }
  115.         if(($count==1)) {
  116.             echo " | <B>$count</B> "._COMMENT."</font></td></tr>\n";
  117.         } else {
  118.             echo " | <B>$count</B> "._COMMENTS."</font></td></tr>\n";
  119.         }
  120.     }
  121.     echo "<tr><td bgcolor=\"$bgcolor1\" align=\"center\" width=\"100%\">\n";
  122.     cookiedecode($user);
  123.     if (($pollcomm) AND ($mode != "nocomments")) {
  124.     if ($anonpost==1 OR is_admin($admin) OR is_user($user)) {
  125.         echo "<form action=\"modules.php?name=$module_name&file=comments\" method=\"post\">"
  126.         ."<input type=\"hidden\" name=\"pid\" value=\"$pid\">"
  127.         ."<input type=\"hidden\" name=\"pollID\" value=\"$pollID\">"
  128.         ."<input type=\"hidden\" name=\"op\" value=\"Reply\">"
  129.         ."<input type=\"submit\" value=\""._REPLYMAIN."\"></td></form></tr>";
  130.     }
  131.     }
  132.     echo "<tr><td bgcolor=\"$bgcolor2\" align=\"center\"><font class=\"tiny\">"._COMMENTSWARNING."</font></td></tr>\n"
  133.       ."</table>"
  134.       ."\n\n<!-- COMMENTS NAVIGATION BAR END -->\n\n";
  135.     CloseTable();
  136.     if ($anonpost == 0 AND !is_user($user)) {
  137.         echo "<br>";
  138.       OpenTable();
  139.       echo "<center>"._NOANONCOMMENTS."</center>";
  140.       CloseTable();
  141.     }
  142. }
  143.  
  144. function DisplayKids ($tid, $mode, $order=0, $thold=0, $level=0, $dummy=0, $tblwidth=99) {
  145.     global $datetime, $user, $cookie, $bgcolor1, $reasons, $anonymous, $anonpost, $commentlimit, $prefix, $module_name, $db;
  146.     $comments = 0;
  147.     cookiedecode($user);
  148.         $tid = intval($tid);
  149.     $result = $db->sql_query("SELECT tid, pid, pollID, date, name, email, host_name, subject, comment, score, reason from ".$prefix."_pollcomments where pid = '$tid' order by date, tid");
  150.     if ($mode == 'nested') {
  151.         /* without the tblwidth variable, the tables run off the screen with netscape
  152.            in nested mode in long threads so the text can't be read. */
  153.     while($row = $db->sql_fetchrow($result)) {
  154.                         $r_tid = intval($row['tid']);
  155.                         $r_pid = intval($row['pid']);
  156.                         $r_pollID = intval($row['pollID']);
  157.                         $r_date = $row['date'];
  158.                         $r_name = stripslashes($row['name']);
  159.                         $r_email = stripslashes($row['email']);
  160.                         $r_host_name = $row['host_name'];
  161.                         $r_subject = stripslashes(check_html($row['subject'], "nohtml"));
  162.                         $r_comment = stripslashes($row['comment']);
  163.                         $r_score = intval($row['score']);
  164.                         $r_reason = intval($row['reason']);
  165.             if($r_score >= $thold) {
  166.                 if (!isset($level)) {
  167.                 } else {
  168.                     if (!$comments) {
  169.                         echo "<ul>";
  170.                         $tblwidth -= 5;
  171.                     }
  172.                 }
  173.                 $comments++;
  174.                 if (!eregi("[a-z0-9]",$r_name)) $r_name = $anonymous;
  175.                 if (!eregi("[a-z0-9]",$r_subject)) $r_subject = "["._NOSUBJECT."]";
  176.             // enter hex color between first two appostrophe for second alt bgcolor
  177.                 $r_bgcolor = ($dummy%2)?"":"#E6E6D2";
  178.                 echo "<a name=\"$r_tid\">";
  179.                 echo "<table width=90% border=0><tr bgcolor=\"$r_bgcolor\"><td>";
  180.                 formatTimestamp($r_date);
  181.                 if ($r_email) {
  182.                     echo "<p><b>$r_subject</b> <font class=content>";
  183.                     if(!$cookie[7]) {
  184.                         echo "("._SCORE." $r_score";
  185.                         if($r_reason>0) echo ", $reasons[$r_reason]";
  186.                         echo ")";
  187.                     }
  188.                     echo "<br>"._BY." <a href=\"mailto:$r_email\">$r_name</a> <font class=content><b>($r_email)</b></font> "._ON." $datetime";
  189.                 } else {
  190.                     echo "<p><b>$r_subject</b> <font class=content>";
  191.                     if(!$cookie[7]) {
  192.                         echo "("._SCORE." $r_score";
  193.                         if($r_reason>0) echo ", $reasons[$r_reason]";
  194.                         echo ")";
  195.                     }
  196.                     echo "<br>"._BY." $r_name "._ON." $datetime";
  197.                 }            
  198.                 if ($r_name != $anonymous) {
  199.                     $row2 = $db->sql_fetchrow($db->sql_query("SELECT user_id FROM ".$prefix."_users WHERE username='$r_name'"));
  200.                     $r_uid = intval($row2['user_id']);
  201.                     echo "<BR>(<a href=\"modules.php?name=Your_Account&op=userinfo&username=$r_name\">"._USERINFO."</a> | <a href=\"modules.php?name=Private_Messages&mode=post&u=$r_uid\">"._SENDAMSG."</a>) ";
  202.                 }
  203.                 $row_url = $db->sql_fetchrow($db->sql_query("SELECT user_website FROM ".$prefix."_users WHERE username='$r_name'"));
  204.                 $url = stripslashes($row_url['user_website']);
  205.                 if ($url != "http://" AND $url != "" AND eregi("http://", $url)) { echo "<a href=\"$url\" target=\"new\">$url</a> "; }
  206.                 echo "</font></td></tr><tr><td>";
  207.                 if(($cookie[10]) && (strlen($r_comment) > $cookie[10])) echo substr("$r_comment", 0, $cookie[10])."<br><br><b><a href=\"modules.php?name=$module_name&file=comments&pollID=$r_pollID&tid=$r_tid&mode=$mode&order=$order&thold=$thold\">"._READREST."</a></b>";
  208.                 elseif(strlen($r_comment) > $commentlimit) echo substr("$r_comment", 0, $commentlimit)."<br><br><b><a href=\"modules.php?name=$module_name&file=comments&pollID=$r_pollID&tid=$r_tid&mode=$mode&order=$order&thold=$thold\">"._READREST."</a></b>";
  209.                 else echo $r_comment;
  210.                 echo "</td></tr></table><br><p>";
  211.                 if ($anonpost==1 OR is_admin($admin) OR is_user($user)) {
  212.                     echo "<font class=content color=\"$bgcolor2\"> [ <a href=\"modules.php?name=$module_name&file=comments&op=Reply&pid=$r_tid&pollID=$r_pollID&mode=$mode&order=$order&thold=$thold\">"._REPLY."</a>";
  213.                 }
  214.                 modtwo($r_tid, $r_score, $r_reason);
  215.                 echo " ]</font><p>";
  216.                 DisplayKids($r_tid, $mode, $order, $thold, $level+1, $dummy+1, $tblwidth);
  217.             }
  218.         }
  219.     } elseif ($mode == 'flat') {
  220.     while($row = $db->sql_fetchrow($result)) {
  221.                         $r_tid = intval($row['tid']);
  222.                         $r_pid = intval($row['pid']);
  223.                         $r_pollID = intval($row['pollID']);
  224.                         $r_date = $row['date'];
  225.                         $r_name = stripslashes($row['name']);
  226.                         $r_email = stripslashes($row['email']);
  227.                         $r_host_name = $row['host_name'];
  228.                         $r_subject = stripslashes(check_html($row['subject'], "nohtml"));
  229.                         $r_comment = stripslashes($row['comment']);
  230.                         $r_score = intval($row['score']);
  231.                         $r_reason = intval($row['reason']);
  232.             if($r_score >= $thold) {
  233.                 if (!eregi("[a-z0-9]",$r_name)) $r_name = $anonymous;
  234.                 if (!eregi("[a-z0-9]",$r_subject)) $r_subject = "["._NOSUBJECT."]";
  235.                 echo "<a name=\"$r_tid\">";
  236.                 echo "<hr><table width=99% border=0><tr bgcolor=\"$bgcolor1\"><td>";
  237.                 formatTimestamp($r_date);
  238.                 if ($r_email) {
  239.                     echo "<p><b>$r_subject</b> <font class=content>";
  240.                     if(!$cookie[7]) {
  241.                         echo "("._SCORE." $r_score";
  242.                         if($r_reason>0) echo ", $reasons[$r_reason]";
  243.                         echo ")";
  244.                     }
  245.                     echo "<br>"._BY." <a href=\"mailto:$r_email\">$r_name</a> <font class=content><b>($r_email)</b></font> "._ON." $datetime";
  246.                  } else {
  247.                     echo "<p><b>$r_subject</b> <font class=content>";
  248.                     if(!$cookie[7]) {
  249.                         echo "("._SCORE." $r_score";
  250.                         if($r_reason>0) echo ", $reasons[$r_reason]";
  251.                         echo ")";
  252.                     }
  253.                     echo "<br>"._BY." $r_name "._ON." $datetime";
  254.                 }            
  255.                 if ($r_name != $anonymous) {
  256.                     $row3 = $db->sql_fetchrow($db->sql_query("SELECT user_id FROM ".$prefix."_users WHERE username='$r_name'"));
  257.                     $ruid = intval($row3['user_id']);
  258.                     echo "<BR>(<a href=\"modules.php?name=Your_Account&op=userinfo&username=$r_name\">"._USERINFO."</a> | <a href=\"modules.php?name=Private_Messages&mode=post&u=$ruid\">"._SENDAMSG."</a>) ";
  259.                 }
  260.                 $row_url2 = $db->sql_fetchrow($db->sql_query("SELECT user_website FROM ".$prefix."_users WHERE username='$r_name'"));
  261.                 $url = $row_url2['user_website'];
  262.                 if ($url != "http://" AND $url != "" AND eregi("http://", $url)) { echo "<a href=\"$url\" target=\"new\">$url</a> "; }
  263.                 echo "</font></td></tr><tr><td>";
  264.                 if(($cookie[10]) && (strlen($r_comment) > $cookie[10])) echo substr("$r_comment", 0, $cookie[10])."<br><br><b><a href=\"modules.php?name=$module_name&file=comments&pollID=$r_pollID&tid=$r_tid&mode=$mode&order=$order&thold=$thold\">"._READREST."</a></b>";
  265.                 elseif(strlen($r_comment) > $commentlimit) echo substr("$r_comment", 0, $commentlimit)."<br><br><b><a href=\"modules.php?name=$module_name&file=comments&pollID=$r_pollID&tid=$r_tid&mode=$mode&order=$order&thold=$thold\">"._READREST."</a></b>";
  266.                 else echo $r_comment;
  267.                 echo "</td></tr></table><br><p><font class=content color=\"$bgcolor2\"> [ <a href=\"modules.php?name=$module_name&file=comments&op=Reply&pid=$r_tid&pollID=$r_pollID&mode=$mode&order=$order&thold=$thold\">"._REPLY."</a>";
  268.                 modtwo($r_tid, $r_score, $r_reason);
  269.                 echo " ]</font><p>";
  270.                 DisplayKids($r_tid, $mode, $order, $thold);
  271.             }
  272.         }
  273.     } else {
  274.     while($row = $db->sql_fetchrow($result)) {
  275.                         $r_tid = intval($row['tid']);
  276.                         $r_pid = intval($row['pid']);
  277.                         $r_pollID = intval($row['pollID']);
  278.                         $r_date = $row['date'];
  279.                         $r_name = stripslashes($row['name']);
  280.                         $r_email = stripslashes($row['email']);
  281.                         $r_host_name = $row['host_name'];
  282.                         $r_subject = stripslashes(check_html($row['subject'], "nohtml"));
  283.                         $r_comment = stripslashes($row['comment']);
  284.                         $r_score = intval($row['score']);
  285.                         $r_reason = intval($row['reason']);
  286.             if($r_score >= $thold) {
  287.                 if (!isset($level)) {
  288.                 } else {
  289.                     if (!$comments) {
  290.                         echo "<ul>";
  291.                     }
  292.                 }
  293.                 $comments++;
  294.                 if (!eregi("[a-z0-9]",$r_name)) $r_name = $anonymous;
  295.                 if (!eregi("[a-z0-9]",$r_subject)) $r_subject = "["._NOSUBJECT."]";
  296.                 formatTimestamp($r_date);
  297.                 echo "<li><font class=\"content\"><a href=\"modules.php?name=$module_name&file=comments&op=showreply&tid=$r_tid&pollID=$r_pollID&pid=$r_pid&mode=$mode&order=$order&thold=$thold#$r_tid\">$r_subject</a> "._BY." $r_name "._ON." $datetime</font><br>";
  298.                 DisplayKids($r_tid, $mode, $order, $thold, $level+1, $dummy+1);
  299.             } 
  300.         }
  301.     }
  302.     if ($level && $comments) {
  303.         echo "</ul>";
  304.     }
  305.  
  306. }
  307.  
  308. function DisplayBabies ($tid, $level=0, $dummy=0) {
  309.     global $datetime, $anonymous, $prefix, $db, $module_name;
  310.     $comments = 0;
  311.         $tid = intval($tid);
  312.     $result = $db->sql_query("SELECT tid, pid, pollID, date, name, email, host_name, subject, comment, score, reason from ".$prefix."_pollcomments where pid = '$tid' order by date, tid");
  313.     while($row = $db->sql_fetchrow($result)) {
  314.                         $r_tid = intval($row['tid']);
  315.                         $r_pid = intval($row['pid']);
  316.                         $r_pollID = intval($row['pollID']);
  317.                         $r_date = $row['date'];
  318.                         $r_name = stripslashes($row['name']);
  319.                         $r_email = stripslashes($row['email']);
  320.                         $r_host_name = $row['host_name'];
  321.                         $r_subject = stripslashes(check_html($row['subject'], "nohtml"));
  322.                         $r_comment = stripslashes($row['comment']);
  323.                         $r_score = intval($row['score']);
  324.                         $r_reason = intval($row['reason']);
  325.         if (!isset($level)) {
  326.         } else {
  327.             if (!$comments) {
  328.                 echo "<ul>";
  329.             }
  330.         }
  331.         $comments++;
  332.         if (!eregi("[a-z0-9]",$r_name)) { $r_name = $anonymous; }
  333.         if (!eregi("[a-z0-9]",$r_subject)) { $r_subject = "["._NOSUBJECT."]"; }
  334.         formatTimestamp($r_date);
  335.         echo "<a href=\"modules.php?name=$module_name&file=comments&op=showreply&tid=$r_tid&mode=$mode&order=$order&thold=$thold\">$r_subject</a><font class=\"content\"> "._BY." $r_name "._ON." $datetime<br>";
  336.         DisplayBabies($r_tid, $level+1, $dummy+1);
  337.     } 
  338.     if ($level && $comments) {
  339.         echo "</ul>";
  340.     }
  341. }
  342.  
  343. function DisplayTopic ($pollID, $pid=0, $tid=0, $mode="thread", $order=0, $thold=0, $level=0, $nokids=0) {
  344.     global $hr, $user, $datetime, $cookie, $mainfile, $admin, $commentlimit, $anonymous, $reasons, $anonpost, $foot1, $foot2, $foot3, $foot4, $prefix, $module_name, $db;
  345.     if($mainfile) {
  346.         global $title, $bgcolor1, $bgcolor2, $bgcolor3;
  347.     } else {
  348.         global $title, $bgcolor1, $bgcolor2, $bgcolor3;
  349.         include("mainfile.php");
  350.         include("header.php");
  351.     }
  352.     if ($pid!=0) {
  353.         include("header.php");
  354.     }
  355.     $count_times = 0;
  356.     cookiedecode($user);
  357.     $q = "select tid, pid, pollID, date, name, email, host_name, subject, comment, score, reason from ".$prefix."_pollcomments where pollID='$pollID' and pid='$pid'";
  358.     if($thold != "") {
  359.         $q .= " and score>='$thold'";
  360.     } else {
  361.         $q .= " and score>='0'";
  362.     }
  363.     if ($order==1) $q .= " order by date desc";
  364.     if ($order==2) $q .= " order by score desc";
  365.     $something = $db->sql_query($q);
  366.     $num_tid = $db->sql_numrows($something);
  367.     navbar($pollID, $title, $thold, $mode, $order);
  368.     modone();
  369.     while ($count_times < $num_tid) {
  370.         echo "<br>";
  371.         OpenTable();
  372.         $row_q = $db->sql_fetchrow($something);
  373.         $tid = intval($row_q['tid']);
  374.         $pid = intval($row_q['pid']);
  375.         $pollID = intval($row_q['pollID']);
  376.         $date = $row_q['date'];
  377.         $c_name = stripslashes($row_q['name']);
  378.         $email = stripslashes($row_q['email']);
  379.         $host_name = $row_q['host_name'];
  380.         $subject = stripslashes(check_html($row_q['subject'], "nohtml"));
  381.         $comment = stripslashes($row_q['comment']);
  382.         $score = intval($row_q['score']);
  383.         $reason = intval($row_q['reason']);
  384.         if ($c_name == "") { $c_name = $anonymous; }
  385.         if ($subject == "") { $subject = "["._NOSUBJECT."]"; }    
  386.         echo "<a name=\"$tid\">";
  387.         echo "<table width=99% border=0><tr bgcolor=\"$bgcolor1\"><td width=500>";
  388.         formatTimestamp($date);
  389.         if ($email) {
  390.             echo "<p><b>$subject</b> <font class=content>";
  391.             if(!$cookie[7]) {
  392.                 echo "("._SCORE." $score";
  393.                 if($reason>0) echo ", $reasons[$reason]";
  394.                 echo ")";
  395.             }
  396.             echo "<br>"._BY." <a href=\"mailto:$email\">$c_name</a> <b>($email)</b> "._ON." $datetime"; 
  397.         } else {
  398.             echo "<p><b>$subject</b> <font class=content>";
  399.             if(!$cookie[7]) {
  400.                 echo "("._SCORE." $score";
  401.                 if($reason>0) echo ", $reasons[$reason]";
  402.                 echo ")";
  403.             }
  404.             echo "<br>"._BY." $c_name "._ON." $datetime";
  405.         }            
  406.         
  407.     // If you are admin you can see the Poster IP address (you have this right, no?)
  408.     // with this you can see who is flaming you... ha-ha-ha
  409.  
  410.     if (is_active("Journal")) {
  411.         $row = $db->sql_fetchrow($db->sql_query("SELECT jid from ".$prefix."_journal where aid='$c_name' AND status='yes' order by pdate,jid DESC limit 0,1"));
  412.         $jid = intval($row['jid']);
  413.         if ($jid != "" AND isset($jid)) {
  414.         $journal = " | <a href=\"modules.php?name=Journal&file=display&jid=$jid\">"._JOURNAL."</a>";
  415.         } else {
  416.         $journal = "";
  417.         }
  418.     }
  419.         if ($c_name != $anonymous) {
  420.             $row2 = $db->sql_fetchrow($db->sql_query("SELECT user_id FROM ".$prefix."_users WHERE username='$c_name'"));
  421.             $r_uid = intval($row2['user_id']);
  422.             echo "<br>(<a href=\"modules.php?name=Your_Account&op=userinfo&username=$c_name\">"._USERINFO."</a> | <a href=\"modules.php?name=Private_Messages&mode=post&u=$r_uid\">"._SENDAMSG."</a>$journal) ";
  423.         }
  424.         $row_url = $db->sql_fetchrow($db->sql_query("SELECT user_website FROM ".$prefix."_users WHERE username='$c_name'"));
  425.         $url = stripslashes($row_url['user_website']);
  426.         if ($url != "http://" AND $url != "" AND eregi("http://", $url)) { echo "<a href=\"$url\" target=\"new\">$url</a> "; }
  427.         
  428.         if(is_admin($admin)) {
  429.             $row3 = $db->sql_fetchrow($db->sql_query("SELECT host_name from ".$prefix."_pollcomments where tid='$tid'"));
  430.             $host_name = $row3['host_name'];
  431.             echo "<br><b>(IP: $host_name)</b>";
  432.         }
  433.         
  434.         echo "</font></td></tr><tr><td>";
  435.         if(($cookie[10]) && (strlen($comment) > $cookie[10])) echo substr("$comment", 0, $cookie[10])."<br><br><b><a href=\"modules.php?name=$module_name&file=comments&pollID=$pollID&tid=$tid&mode=$mode&order=$order&thold=$thold\">"._READREST."</a></b>";
  436.         elseif(strlen($comment) > $commentlimit) echo substr("$comment", 0, $commentlimit)."<br><br><b><a href=\"modules.php?name=$module_name&file=comments&pollID=$pollID&tid=$tid&mode=$mode&order=$order&thold=$thold\">"._READREST."</a></b>";
  437.         else echo $comment;
  438.         echo "</td></tr></table><br><p>";
  439.         if ($anonpost==1 OR is_admin($admin) OR is_user($user)) {
  440.             echo "<font class=\"content\"> [ <a href=\"modules.php?name=$module_name&file=comments&op=Reply&pid=$tid&pollID=$pollID&mode=$mode&order=$order&thold=$thold\">"._REPLY."</a>";
  441.         }
  442.         if ($pid != 0) {
  443.             $row4 = $db->sql_fetchrow($db->sql_query("SELECT pid from ".$prefix."_pollcomments where tid='$pid'"));
  444.             $erin = intval($row4['pid']);
  445.             echo "| <a href=\"modules.php?name=$module_name&file=comments&pollID=$pollID&pid=$erin&mode=$mode&order=$order&thold=$thold\">"._PARENT."</a>";
  446.         }
  447.         modtwo($tid, $score, $reason);
  448.         
  449.         if(is_admin($admin)) {
  450.             echo " | <a href=\"admin.php?op=RemovePollComment&tid=$tid&pollID=$pollID\">"._DELETE."</a> ]</font><p>";
  451.         } elseif ($anonpost != 0 OR is_admin($admin) OR is_user($user)) {
  452.             echo " ]</font><p>";
  453.         }
  454.         
  455.         DisplayKids($tid, $mode, $order, $thold, $level);
  456.         echo "</ul>";
  457.         if($hr) echo "<hr noshade size=1>";
  458.         echo "</p>";
  459.         $count_times += 1;
  460.         CloseTable();
  461.     }
  462.     modthree($pollID, $mode, $order, $thold);
  463.     if($pid==0) return array($pollID, $pid, $subject);
  464.     else include("footer.php");
  465. }
  466.  
  467. function singlecomment($tid, $pollID, $mode, $order, $thold) {
  468.     include("header.php");
  469.     global $user, $cookie, $datetime, $bgcolor1, $bgcolor2, $bgcolor3, $anonpost, $admin, $anonymous, $prefix, $db, $module_name;
  470.         $tid = intval($tid);
  471.         $pollID = intval($pollID);
  472.     $row = $db->sql_fetchrow($db->sql_query("SELECT date, name, email, subject, comment, score, reason from ".$prefix."_pollcomments where tid='$tid' and pollID='$pollID'"));
  473.     $date = $row['date'];
  474.     $name = stripslashes($row['name']);
  475.     $email = stripslashes($row['email']);
  476.     $subject = stripslashes(check_html($row['subject'], "nohtml"));
  477.     $comment = stripslashes($row['comment']);
  478.     $score = intval($row['score']);
  479.     $reason = intval($row['reason']);
  480.     $titlebar = "<b>$subject</b>";
  481.     if($name == "") $name = $anonymous;
  482.     if($subject == "") $subject = "["._NOSUBJECT."]";
  483.     modone();
  484.     echo "<table width=99% border=0><tr bgcolor=\"$bgcolor1\"><td width=500>";
  485.     formatTimestamp($date);
  486.     if($email) echo "<p><b>$subject</b> <font class=content>("._SCORE." $score)<br>"._BY." <a href=\"mailto:$email\"><font color=\"$bgcolor2\">$name</font></a> <font class=content><b>($email)</b></font> "._ON." $datetime";
  487.     else echo "<p><b>$subject</b> <font class=content>("._SCORE." $score)<br>"._BY." $name "._ON." $datetime";
  488.     echo "</td></tr><tr><td>$comment</td></tr></table><br><p><font class=content color=\"$bgcolor2\"> [ <a href=\"modules.php?name=$module_name&file=comments&op=Reply&pid=$tid&pollID=$pollID&mode=$mode&order=$order&thold=$thold\">"._REPLY."</a> | <a href=\"modules.php?name=$module_name&pollID=$pollID\">"._ROOT."</a>";
  489.     modtwo($tid, $score, $reason);
  490.     echo " ]";
  491.     modthree($pollID, $mode, $order, $thold);
  492.     include("footer.php");
  493. }
  494.  
  495. function reply ($pid, $pollID, $mode, $order, $thold) {
  496.     include("header.php");
  497.     global $user, $cookie, $datetime, $bgcolor1, $bgcolor2, $bgcolor3, $AllowableHTML, $anonymous, $prefix, $anonpost, $dbi, $module_name, $db;
  498.     $pid = intval($pid);
  499.     $pollID = intval($pollID);
  500.     $order = htmlentities($order);
  501.     $thold = htmlentities($thold);
  502.     $mode = htmlentities($mode);
  503.     if ($anonpost == 0 AND !is_user($user)) {
  504.     OpenTable();
  505.     echo "<center><font class=title><b>"._SURVEYCOM."</b></font></center>";
  506.     CloseTable();
  507.     echo "<br>";
  508.     OpenTable();
  509.     echo "<center>"._NOANONCOMMENTS."<br><br>"._GOBACK."</center>";
  510.     CloseTable();
  511.     } else {
  512.     if($pid!=0) {
  513.         list($date, $name, $email, $subject, $comment, $score) = $db->sql_fetchrow($db->sql_query("select date, name, email, subject, comment, score from ".$prefix."_pollcomments where tid='$pid'"));
  514.                 $score = intval($score);
  515.     } else {
  516.         list($subject) = $db->sql_fetchrow($db->sql_query("select pollTitle FROM ".$prefix."_poll_desc where pollID='$pollID'"));
  517.     }
  518.     if($comment == "") {
  519.         $comment = $temp_comment;
  520.     }
  521.     $titlebar = "<b>$subject</b>";
  522.     if($name == "") $name = $anonymous;
  523.     if($subject == "") $subject = "["._NOSUBJECT."]";
  524.     formatTimestamp($date);
  525.     OpenTable();
  526.     echo "<center><font class=\"title\"><b>"._SURVEYCOM."</b></font></center>";
  527.     CloseTable();
  528.     echo "<br>";
  529.     OpenTable();
  530.     echo "<center><font class=\"content\"><b>$subject</b></center><br>";
  531.     if ($comment == "") {
  532.         echo "<center><i>"._DIRECTCOM."</i></font></center><br>";
  533.     } else {
  534.         echo "<br>$comment</font>";
  535.     }
  536.     CloseTable();
  537.     if(!isset($pid) || !isset($pollID)) { echo "Something is not right. This message is just to keep things from messing up down the road"; exit(); }
  538.     if($pid == 0) {
  539.         list($subject) = $db->sql_fetchrow($db->sql_query("select pollTitle from ".$prefix."_poll_desc where pollID='$pollID'"));
  540.     } else {
  541.         list($subject) = $db->sql_fetchrow($db->sql_query("select subject from ".$prefix."_pollcomments where tid='$pid'"));
  542.     }
  543.     echo "<br>";
  544.     OpenTable();
  545.     echo "<form action=\"modules.php?name=$module_name&file=comments\" method=\"post\">";
  546.     echo "<font class=\"content\"><b>"._YOURNAME.":</b></font> ";
  547.     if (is_user($user)) {
  548.         cookiedecode($user);
  549.         echo "<font class=\"content\"><a href=\"modules.php?name=Your_Account\">$cookie[1]</a> [ <a href=\"modules.php?name=Your_Account&op=logout\">"._LOGOUT."</a> ]</font>";
  550.     } else {
  551.         echo "<font class=\"content\">$anonymous</font>";
  552.         $xanonpost=1;
  553.     }
  554.     echo "<br><br><font class=\"content\"><B>"._SUBJECT.":</B></FONT><BR>";
  555.     if (!eregi("Re:",$subject)) $subject = "Re: ".substr($subject,0,81)."";
  556.     echo "<INPUT TYPE=\"text\" NAME=\"subject\" SIZE=50 maxlength=85 value=\"$subject\"><BR>";
  557.     echo "<br><br><font class=\"content\"><B>"._UCOMMENT.":</B></FONT><BR>"
  558.         ."<TEXTAREA wrap=virtual cols=50 rows=10 name=comment></TEXTAREA><br>
  559.         <font class=\"content\">"._ALLOWEDHTML."<br>";
  560.         while (list($key,)= each($AllowableHTML)) echo " <".$key.">";
  561.         echo "<br>";
  562.     if (is_user($user) AND ($anonpost == 1)) { echo "<INPUT type=checkbox name=xanonpost> "._POSTANON."<br>"; }
  563.     echo "<INPUT type=\"hidden\" name=\"pid\" value=\"$pid\">"
  564.         ."<INPUT type=\"hidden\" name=\"pollID\" value=\"$pollID\">"
  565.         ."<INPUT type=\"hidden\" name=\"mode\" value=\"$mode\">"
  566.         ."<INPUT type=\"hidden\" name=\"order\" value=\"$order\">"
  567.         ."<INPUT type=\"hidden\" name=\"thold\" value=\"$thold\">"
  568.         ."<br><INPUT type=submit name=op value=\""._PREVIEW."\"> "
  569.         ."<INPUT type=submit name=op value=\""._OK."\"> "
  570.         ."<SELECT name=\"posttype\">"
  571.         ."<OPTION value=\"exttrans\">"._EXTRANS."</option>"
  572.         ."<OPTION value=\"html\" >"._HTMLFORMATED."</option>"
  573.         ."<OPTION value=\"plaintext\" SELECTED>"._PLAINTEXT."</option>"
  574.         ."</SELECT>"
  575.         ."</FORM>";
  576.     CloseTable();
  577.     }
  578.     include("footer.php");
  579. }
  580.  
  581. function replyPreview ($pid, $pollID, $subject, $comment, $xanonpost, $mode, $order, $thold, $posttype) {
  582.     include("header.php");
  583.     global $user, $cookie, $AllowableHTML, $anonymous, $module_name;
  584.     cookiedecode($user);
  585.     $subject = stripslashes(check_html($subject, "nohtml"));
  586.     $comment = stripslashes($comment);
  587.         $pid = intval($pid);
  588.         $pollID = intval($pollID);
  589.     if (!isset($pid) || !isset($pollID)) {
  590.         echo ""._NOTRIGHT."";
  591.         exit();
  592.     }
  593.     OpenTable();
  594.     echo "<center><font class=\"title\"><b>"._SURVEYCOMPRE."</b></font></center>";
  595.     CloseTable();
  596.     echo "<br>";
  597.     OpenTable();
  598.     echo "<b>$subject</b><br>";
  599.     echo "<font class=content>"._BY." ";
  600.     if (is_user($user)) {
  601.         echo "$cookie[1]";
  602.     } else {
  603.         echo "$anonymous ";
  604.     }
  605.     echo ""._ONN."</font><br><br>";
  606.     if ($posttype=="exttrans") {
  607.         echo nl2br(htmlspecialchars($comment));
  608.     } elseif ($posttype=="plaintext") {
  609.         echo nl2br($comment);
  610.     } else {
  611.         echo $comment;
  612.     }
  613.     CloseTable();
  614.     echo "<br>";
  615.     OpenTable();
  616.     echo "<form action=\"modules.php?name=$module_name&file=comments\" method=\"post\">"
  617.         ."<font class=\"content\"><B>"._YOURNAME.":</B></FONT> ";
  618.     if (is_user($user)) {
  619.         echo "<font class=\"content\"><a href=\"modules.php?name=Your_Account\">$cookie[1]</a> <font class=\"content\">[ <a href=\"modules.php?name=Your_Account&op=logout\">"._LOGOUT."</a> ]</font>";
  620.     } else {
  621.         echo "<font class=\"content\">$anonymous</font>";
  622.     }
  623.     echo "<br><br><font class=\"content\"><B>"._SUBJECT.":</B></FONT><BR>"
  624.         ."<INPUT TYPE=\"text\" name=\"subject\" size=\"50\" maxlength=\"85\" value=\"$subject\"><br><br>"
  625.         ."<P><font class=\"content\"><B>"._UCOMMENT.":</B></FONT><BR>"
  626.         ."<TEXTAREA wrap=\"virtual\" cols=\"50\" rows=\"10\" name=\"comment\">$comment</TEXTAREA><br>";
  627.         echo"<font class=\"content\">"._ALLOWEDHTML."<br>";
  628.         while (list($key,)= each($AllowableHTML)) echo " <".$key.">";
  629.         echo "<br>";        
  630.     if (($xanonpost) AND ($anonpost == 1)) { 
  631.         echo "<INPUT type=\"checkbox\" name=\"xanonpost\" checked> "._POSTANON."<br>"; 
  632.     } elseif ((is_user($user)) AND ($anonpost == 1)) {
  633.         echo "<INPUT type=\"checkbox\" name=\"xanonpost\"> "._POSTANON."<br>";
  634.     }
  635.     echo "<INPUT type=\"hidden\" name=\"pid\" value=\"$pid\">"
  636.         ."<INPUT type=\"hidden\" name=\"pollID\" value=\"$pollID\"><INPUT type=\"hidden\" name=\"mode\" value=\"$mode\">"
  637.         ."<INPUT type=\"hidden\" name=\"order\" value=\"$order\"><INPUT type=\"hidden\" name=\"thold\" value=\"$thold\">"
  638.         ."<br><INPUT type=submit name=op value=\""._PREVIEW."\"> "
  639.         ."<INPUT type=submit name=op value=\""._OK."\"> <SELECT name=\"posttype\"><OPTION value=\"exttrans\"";
  640.         if($posttype=="exttrans") echo" SELECTED";
  641.         echo  ">"._EXTRANS."<OPTION value=\"html\"";;
  642.         if($posttype=="html") echo" SELECTED";
  643.         echo ">"._HTMLFORMATED."<OPTION value=\"plaintext\"";
  644.         if(($posttype!="exttrans") && ($posttype!="html")) echo" SELECTED";
  645.         echo ">"._PLAINTEXT."</SELECT></FORM>";
  646.     CloseTable();
  647.     include("footer.php");
  648. }
  649.  
  650. function CreateTopic ($xanonpost, $subject, $comment, $pid, $pollID, $host_name, $mode, $order, $thold, $posttype) {
  651.     global $user, $userinfo, $EditedMessage, $cookie, $prefix, $pollcomm, $anonpost, $db, $module_name;
  652.     $author = FixQuotes($author);
  653.     $subject = FixQuotes(filter_text($subject, "nohtml"));
  654.     $comment = format_url($comment);
  655.     if ($posttype=="exttrans") {
  656.         $comment = FixQuotes(nl2br(htmlspecialchars(check_words($comment))));
  657.     } elseif ($posttype=="plaintext") {
  658.         $comment = FixQuotes(nl2br(filter_text($comment)));
  659.     } else {
  660.         $comment = FixQuotes(filter_text($comment));
  661.     }
  662.     if(is_user($user)) {
  663.     getusrinfo($user);
  664.     }
  665.     if ((is_user($user)) && (!$xanonpost)) {
  666.         getusrinfo($user);
  667.     $name = $userinfo[username];
  668.     $email = $userinfo[femail];
  669.     $url = $userinfo[user_website];
  670.     $score = 1;
  671.     } else {
  672.     $name = "";
  673.     $email = "";
  674.     $url = "";
  675.     $score = 0;
  676.     }
  677.     $ip = $_SERVER["REMOTE_HOST"];
  678.     if (empty($ip)) {
  679.         $ip = $_SERVER["REMOTE_ADDR"];
  680.     }
  681.     $pollID = intval($pollID);
  682.     $result = $db->sql_query("select count(*) from ".$prefix."_poll_desc where pollID='$pollID'");
  683.     $fake = $db->sql_numrows($result);
  684.     if ($fake == 1) {
  685.     if ((($anonpost == 0) AND (is_user($user))) OR ($anonpost == 1)) {
  686.         $db->sql_query("insert into ".$prefix."_pollcomments values (NULL, '$pid', '$pollID', now(), '$name', '$email', '$url', '$ip', '$subject', '$comment', '$score', '0')");
  687.         update_points(9);
  688.     } else {
  689.         echo "Nice try...";
  690.         die();
  691.     }
  692.     } else {
  693.     include("header.php");
  694.     echo "According to my records, the topic you are trying "
  695.         ."to reply to does not exist. If you're just trying to be "
  696.         ."annoying, well then too bad.";
  697.     include("footer.php");
  698.     die();
  699.     }
  700.     if ($pollcomm == 1) {
  701.     if (isset($cookie[4])) { $options .= "&mode=$cookie[4]"; } else { $options .= "&mode=thread"; }
  702.     if (isset($cookie[5])) { $options .= "&order=$cookie[5]"; } else { $options .= "&order=0"; }
  703.     if (isset($cookie[6])) { $options .= "&thold=$cookie[6]"; } else { $options .= "&thold=0"; }
  704.     } else {
  705.     $options = "";
  706.     }
  707.     Header("Location: modules.php?name=$module_name&op=results&pollID=$pollID$options");
  708. }
  709.  
  710. switch($op) {
  711.  
  712.     case "Reply":
  713.         reply($pid, $pollID, $mode, $order, $thold);
  714.         break;
  715.  
  716.     case ""._PREVIEW."":
  717.         replyPreview ($pid, $pollID, $subject, $comment, $xanonpost, $mode, $order, $thold, $posttype);
  718.         break;
  719.  
  720.     case ""._OK."":
  721.         CreateTopic($xanonpost, $subject, $comment, $pid, $pollID, $host_name, $mode, $order, $thold, $posttype);
  722.         break;
  723.  
  724.     case "moderate":
  725.         global $module_name;
  726.         if(isset($admin)) {
  727.             include("auth.php");
  728.         } else {
  729.             include("mainfile.php");    
  730.         }
  731.         if(($admintest==1) || ($moderate==2)) {
  732.             while(list($tdw, $emp) = each($HTTP_POST_VARS)) {
  733.                                 $tdw = intval($tdw);
  734.                 if (eregi("dkn",$tdw)) {
  735.                     $emp = explode(":", $emp);
  736.                     if($emp[1] != 0) {
  737.                         $tdw = ereg_replace("dkn", "", $tdw);
  738.                         $q = "UPDATE ".$prefix."_pollcomments SET";
  739.                         if(($emp[1] == 9) && ($emp[0]>=0)) { # Overrated
  740.                             $q .= " score=score-1 where tid='$tdw'";
  741.                         } elseif (($emp[1] == 10) && ($emp[0]<=4)) { # Underrated
  742.                             $q .= " score=score+1 where tid='$tdw'";
  743.                         } elseif (($emp[1] > 4) && ($emp[0]<=4)) {
  744.                             $q .= " score='score+1', reason='$emp[1]' where tid='$tdw'";
  745.                         } elseif (($emp[1] < 5) && ($emp[0] > -1)) {
  746.                             $q .= " score='score-1', reason='$emp[1]' where tid='$tdw'";
  747.                         } elseif (($emp[0] == -1) || ($emp[0] == 5)) {
  748.                             $q .= " reason='$emp[1]' where tid='$tdw'";
  749.                         }
  750.                         if(strlen($q) > 20) $db->sql_query($q);
  751.                     }
  752.                 }
  753.             }
  754.         }
  755.         Header("Location: modules.php?name=$module_name&op=results&pollID=$pollID");
  756.         break;
  757.  
  758.     case "showreply":
  759.         DisplayTopic($pollID, $pid, $tid, $mode, $order, $thold);
  760.         break;
  761.  
  762.     default:
  763.         global $module_name;
  764.         if ((isset($tid)) && (!isset($pid))) {
  765.             singlecomment($tid, $pollID, $mode, $order, $thold);
  766.         } elseif (($mainfile) xor (($pid==0) AND (!isset($pid)))) {
  767.             Header("Location: modules.php?name=$module_name&op=results&pollID=$pollID&mode=$mode&order=$order&thold=$thold");
  768.         } else {
  769.             if(!isset($pid)) $pid=0;
  770.             DisplayTopic($pollID, $pid, $tid, $mode, $order, $thold);
  771.         }
  772.         break;
  773. }
  774.  
  775. ?>