home *** CD-ROM | disk | FTP | other *** search
/ Internet Magazine 2003 May / INTERNET103.ISO / pc / software / windows / building / php_nuke / html / modules / reviews / index.php
Encoding:
PHP Script  |  2002-09-16  |  31.5 KB  |  875 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. /* =====================                                                */
  11. /* Base on Reviews Addon                                                */
  12. /* Copyright (c) 2000 by Jeff Lambert (jeffx@ican.net)                  */
  13. /* http://www.qchc.com                                                  */
  14. /* More scripts on http://www.jeffx.qchc.com                            */
  15. /*                                                                      */
  16. /* This program is free software. You can redistribute it and/or modify */
  17. /* it under the terms of the GNU General Public License as published by */
  18. /* the Free Software Foundation; either version 2 of the License.       */
  19. /************************************************************************/
  20.  
  21. if (!eregi("modules.php", $PHP_SELF)) {
  22.     die ("You can't access this file directly...");
  23. }
  24.  
  25. require_once("mainfile.php");
  26. $module_name = basename(dirname(__FILE__));
  27. get_lang($module_name);
  28.  
  29. function alpha() {
  30.     global $module_name;
  31.     $alphabet = array ("A","B","C","D","E","F","G","H","I","J","K","L","M",
  32.                        "N","O","P","Q","R","S","T","U","V","W","X","Y","Z","1","2","3","4","5","6","7","8","9","0");
  33.     $num = count($alphabet) - 1;
  34.     echo "<center>[ ";
  35.     $counter = 0;
  36.     while (list(, $ltr) = each($alphabet)) {
  37.         echo "<a href=\"modules.php?name=$module_name&rop=$ltr\">$ltr</a>";
  38.         if ( $counter == round($num/2) ) {
  39.             echo " ]\n<br>\n[ ";
  40.         } elseif ( $counter != $num ) {
  41.             echo " | \n";
  42.         }
  43.         $counter++;
  44.     }
  45.     echo " ]</center><br><br>\n\n\n";
  46.     echo "<center>[ <a href=\"modules.php?name=$module_name&rop=write_review\">"._WRITEREVIEW."</a> ]</center><br><br>\n\n";
  47. }
  48.  
  49. function display_score($score) {
  50.     $image = "<img src=\"images/blue.gif\" alt=\"\">";
  51.     $halfimage = "<img src=\"images/bluehalf.gif\" alt=\"\">";
  52.     $full = "<img src=\"images/star.gif\" alt=\"\">";
  53.  
  54.     if ($score == 10) {
  55.     for ($i=0; $i < 5; $i++)
  56.         echo "$full";
  57.     } else if ($score % 2) {
  58.     $score -= 1;
  59.     $score /= 2;
  60.     for ($i=0; $i < $score; $i++)
  61.         echo "$image";
  62.         echo "$halfimage";
  63.     } else {
  64.     $score /= 2;
  65.     for ($i=0; $i < $score; $i++)
  66.         echo "$image";
  67.     }
  68. }
  69.  
  70. function write_review() {
  71.     global $admin, $sitename, $user, $cookie, $prefix, $user_prefix, $currentlang, $multilingual, $dbi, $module_name;
  72.     include ('header.php');
  73.     OpenTable();
  74.     echo "
  75.     <b>"._WRITEREVIEWFOR." $sitename</b><br><br>
  76.     <i>"._ENTERINFO."</i><br><br>
  77.     <form method=\"post\" action=\"modules.php?name=$module_name\">
  78.     <b>"._PRODUCTTITLE.":</b><br>
  79.     <input type=\"text\" name=\"title\" size=\"50\" maxlength=\"150\"><br>
  80.     <i>"._NAMEPRODUCT."</i><br>";
  81.     if ($multilingual == 1) {
  82.     echo "<br><b>"._LANGUAGE.": </b>"
  83.         ."<select name=\"rlanguage\">";
  84.     $handle=opendir('language');
  85.     while ($file = readdir($handle)) {
  86.         if (preg_match("/^lang\-(.+)\.php/", $file, $matches)) {
  87.             $langFound = $matches[1];
  88.             $languageslist .= "$langFound ";
  89.         }
  90.     }
  91.     closedir($handle);
  92.     $languageslist = explode(" ", $languageslist);
  93.     for ($i=0; $i < sizeof($languageslist); $i++) {
  94.         if($languageslist[$i]!="") {
  95.         echo "<option value=\"$languageslist[$i]\" ";
  96.         if($languageslist[$i]==$currentlang) echo "selected";
  97.         echo ">$languageslist[$i]</option>\n";
  98.         }
  99.     }
  100.     echo "</select><br><br>";
  101.     } else {
  102.     echo "<input type=\"hidden\" name=\"rlanguage\" value=\"$language\"><br><br>";
  103.     }
  104.     echo "<b>"._REVIEW.":</b><br>
  105.     <textarea name=\"text\" rows=\"15\" wrap=\"virtual\" cols=\"60\"></textarea><br>";
  106.     if (is_admin($admin)) {
  107.     echo "<font class=\"content\">"._PAGEBREAK."</font><br>";
  108.     }
  109.     echo "
  110.     <i>"._CHECKREVIEW."</i><br><br>
  111.     <b>"._YOURNAME.":</b><br>";
  112.     if (is_user($user)) {
  113.         $result=sql_query("select name, email from ".$user_prefix."_users where uname='$cookie[1]'", $dbi);
  114.         list($name, $email) = sql_fetch_row($result, $dbi);
  115.     }
  116.     echo "<input type=\"text\" name=\"reviewer\" size=\"41\" maxlength=\"40\" value=\"$name\"><br>
  117.     <i>"._FULLNAMEREQ."</i><br><br>
  118.     <b>"._REMAIL.":</b><br>
  119.     <input type=\"text\" name=\"email\" size=\"40\" maxlength=\"80\" value=\"$email\"><br>
  120.     <i>"._REMAILREQ."</i><br><br>
  121.     <b>"._SCORE."</b><br>
  122.     <select name=\"score\">
  123.     <option name=\"score\" value=\"10\">10</option>
  124.     <option name=\"score\" value=\"9\">9</option>
  125.     <option name=\"score\" value=\"8\">8</option>
  126.     <option name=\"score\" value=\"7\">7</option>
  127.     <option name=\"score\" value=\"6\">6</option>
  128.     <option name=\"score\" value=\"5\">5</option>
  129.     <option name=\"score\" value=\"4\">4</option>
  130.     <option name=\"score\" value=\"3\">3</option>
  131.     <option name=\"score\" value=\"2\">2</option>
  132.     <option name=\"score\" value=\"1\">1</option>
  133.     </select>
  134.     <i>"._SELECTSCORE."</i><br><br>
  135.     <b>"._RELATEDLINK.":</b><br>
  136.     <input type=\"text\" name=\"url\" size=\"40\" maxlength=\"100\" value=\"http://\"><br>
  137.     <i>"._PRODUCTSITE."</i><br><br>
  138.     <b>"._LINKTITLE.":</b><br>
  139.     <input type=\"text\" name=\"url_title\" size=\"40\" maxlength=\"50\"><br>
  140.     <i>"._LINKTITLEREQ."</i><br><br>
  141.     ";
  142.     if(is_admin($admin)) {
  143.     echo "
  144.     <b>"._RIMAGEFILE.":</b><br>
  145.     <input type=\"text\" name=\"cover\" size=\"40\" maxlength=\"100\"><br>
  146.     <i>"._RIMAGEFILEREQ."</i><br><br>
  147.     ";
  148.     }
  149.     echo "<i>"._CHECKINFO."</i><br><br>";
  150.     echo "<input type=\"hidden\" name=\"rop\" value=\"preview_review\">
  151.     <input type=\"submit\" value=\""._PREVIEW."\"> <input type=\"button\" onClick=\"history.go(-1)\" value=\""._CANCEL."\"></form>";
  152.     CloseTable();
  153.     include ("footer.php");
  154. }
  155.  
  156. function preview_review($date, $title, $text, $reviewer, $email, $score, $cover, $url, $url_title, $hits, $id, $rlanguage) {
  157.     global $admin, $multilingual, $module_name;
  158.     if (eregi("<!--pagebreak-->", $text)) {
  159.     $text = ereg_replace("<!--pagebreak-->","<!--pagebreak-->",$text);
  160.     }
  161.     $title = stripslashes(check_html($title, "nohtml"));
  162.     $text = stripslashes(check_html($text, ""));
  163.     $reviewer = stripslashes(check_html($reviewer, "nohtml"));
  164.     $url_title = stripslashes(check_html($url_title, "nohtml"));
  165.     include ('header.php');
  166.     OpenTable();
  167.     echo "<form method=\"post\" action=\"modules.php?name=$module_name\">";
  168.  
  169.     if ($title == "") {
  170.         $error = 1;
  171.     echo ""._INVALIDTITLE."<br>";
  172.     }
  173.     if ($text == "") {
  174.         $error = 1;
  175.     echo ""._INVALIDTEXT."<br>";
  176.     }
  177.     if (($score < 1) || ($score > 10)) {
  178.     $error = 1;
  179.     echo ""._INVALIDSCORE."<br>";
  180.     }
  181.     if (($hits < 0) && ($id != 0)) {
  182.     $error = 1;
  183.     echo ""._INVALIDHITS."<br>";
  184.     }
  185.     if ($reviewer == "" || $email == "") {
  186.     $error = 1;
  187.     echo ""._CHECKNAME."<br>";
  188.     } else if ($reviewer != "" && $email != "")
  189.     if (!(eregi("^[0-9a-z]([-_.]?[0-9a-z])*@[0-9a-z]([-.]?[0-9a-z])*\\.[a-z]{2,3}$",$email))) {
  190.         $error = 1;
  191.         /* eregi checks for a valid email! works nicely for me! */
  192.         echo ""._INVALIDEMAIL."<br>";
  193.     }
  194.     if (($url_title != "" && $url =="") || ($url_title == "" && $url != "")) {
  195.         $error = 1;
  196.         echo ""._INVALIDLINK."<br>";
  197.     } else if (($url != "") && (!(eregi('(^http[s]*:[/]+)(.*)', $url))))
  198.         $url = "http://" . $url;
  199.         /* If the user ommited the http, this nifty eregi will add it */
  200.     if ($error == 1)
  201.         echo "<br>"._GOBACK."";
  202.     else
  203.     {
  204.     if ($date == "")
  205.         $date = date("Y-m-d", time());
  206.         $year2 = substr($date,0,4);
  207.         $month = substr($date,5,2);
  208.         $day = substr($date,8,2);
  209.         $fdate = date("F jS Y",mktime (0,0,0,$month,$day,$year2));
  210.             echo "<table border=\"0\" width=\"100%\"><tr><td colspan=\"2\">";
  211.         echo "<p><font class=\"title\"><i><b>$title</b></i></font><br>";
  212.         echo "<blockquote><p>";
  213.         if ($cover != "")
  214.             echo "<img src=\"images/reviews/$cover\" align=\"right\" border=\"1\" vspace=\"2\" alt=\"\">";
  215.         echo "$text<p>";
  216.         echo "<b>"._ADDED."</b> $fdate<br>";
  217.         if ($multilingual == 1) {
  218.         echo "<b>"._LANGUAGE."</b> $rlanguage<br>";
  219.         }
  220.         echo "<b>"._REVIEWER."</b> <a href=\"mailto:$email\">$reviewer</a><br>";
  221.         echo "<b>"._SCORE."</b> ";
  222.         display_score($score);
  223.         if ($url != "")
  224.         echo "<br><b>"._RELATEDLINK.":</b> <a href=\"$url\" target=\"new\">$url_title</a>";
  225.         if ($id != 0) {
  226.         echo "<br><b>"._REVIEWID.":</b> $id<br>";
  227.         echo "<b>"._HITS.":</b> $hits<br>";
  228.         }
  229.         echo "</font></blockquote>";
  230.         echo "</td></tr></table>";
  231.         $text = urlencode($text);
  232.         echo "<p><i>"._LOOKSRIGHT."</i> ";
  233.         echo "<input type=\"hidden\" name=\"id\" value=$id>
  234.           <input type=\"hidden\" name=\"hits\" value=\"$hits\">
  235.           <input type=\"hidden\" name=\"rop\" value=send_review>
  236.           <input type=\"hidden\" name=\"date\" value=\"$date\">
  237.           <input type=\"hidden\" name=\"title\" value=\"$title\">
  238.           <input type=\"hidden\" name=\"text\" value=\"$text\">
  239.           <input type=\"hidden\" name=\"reviewer\" value=\"$reviewer\">
  240.           <input type=\"hidden\" name=\"email\" value=\"$email\">
  241.           <input type=\"hidden\" name=\"score\" value=\"$score\">
  242.           <input type=\"hidden\" name=\"url\" value=\"$url\">
  243.           <input type=\"hidden\" name=\"url_title\" value=\"$url_title\">
  244.           <input type=\"hidden\" name=\"cover\" value=\"$cover\">";
  245.           echo "<input type=\"hidden\" name=\"rlanguage\" value=\"$rlanguage\">";
  246.         echo "<input type=\"submit\" name=\"rop\" value=\""._YES."\"> <input type=\"button\" onClick=\"history.go(-1)\" value=\""._NO."\">";
  247.         if($id != 0)
  248.             $word = ""._RMODIFIED."";
  249.         else
  250.             $word = ""._RADDED."";
  251.         if(is_admin($admin))
  252.             echo "<br><br><b>"._NOTE."</b> "._ADMINLOGGED." $word.";
  253.     }
  254.     CloseTable();
  255.     include ("footer.php");
  256. }
  257.  
  258. function send_review($date, $title, $text, $reviewer, $email, $score, $cover, $url, $url_title, $hits, $id, $rlanguage) {
  259.     global $admin, $EditedMessage, $prefix, $dbi, $module_name;
  260.     include ('header.php');
  261.     if (eregi("<!--pagebreak-->", $text)) {
  262.     $text = ereg_replace("<!--pagebreak-->","<!--pagebreak-->;",$text);
  263.     }
  264.     $title = stripslashes(FixQuotes(check_html($title, "nohtml")));
  265.     $text = stripslashes(Fixquotes(urldecode(check_html($text, ""))));
  266.     if (eregi("<!--pagebreak-->", $text)) {
  267.     $text = ereg_replace("<!--pagebreak-->","<!--pagebreak-->",$text);
  268.     }
  269.     OpenTable();
  270.     echo "<br><center>"._RTHANKS."";
  271.     if ($id != 0)
  272.     echo " "._MODIFICATION."";
  273.     else
  274.     echo ", $reviewer";
  275.     echo "!<br>";
  276.     if ((is_admin($admin)) && ($id == 0)) {
  277.     sql_query("INSERT INTO ".$prefix."_reviews VALUES (NULL, '$date', '$title', '$text', '$reviewer', '$email', '$score', '$cover', '$url', '$url_title', '1', '$rlanguage')", $dbi);
  278.     echo ""._ISAVAILABLE."";
  279.     } else if ((is_admin($admin)) && ($id != 0)) {
  280.     sql_query("UPDATE ".$prefix."_reviews SET date='$date', title='$title', text='$text', reviewer='$reviewer', email='$email', score='$score', cover='$cover', url='$url', url_title='$url_title', hits='$hits', rlanguage='$rlanguage' where id = $id", $dbi);
  281.     echo ""._ISAVAILABLE."";
  282.     } else {
  283.     sql_query("INSERT INTO ".$prefix."_reviews_add VALUES (NULL, '$date', '$title', '$text', '$reviewer', '$email', '$score', '$url', '$url_title', '$rlanguage')", $dbi);
  284.     echo ""._EDITORWILLLOOK."";
  285.     }
  286.     echo "<br><br>[ <a href=\"modules.php?name=$module_name\">"._RBACK."</a> ]<br></center>";
  287.     CloseTable();
  288.     include ("footer.php");
  289. }
  290.  
  291. function reviews_index() {
  292.     global $bgcolor4, $bgcolor2, $prefix, $multilingual, $currentlang, $dbi, $module_name;
  293.     include ('header.php');
  294.     if ($multilingual == 1) {
  295.     $querylang = "WHERE rlanguage='$currentlang'";
  296.     } else {
  297.     $querylang = "";
  298.     }
  299.     OpenTable();
  300.     echo "<table border=\"0\" width=\"95%\" CELLPADDING=\"2\" CELLSPACING=\"4\" align=\"center\">
  301.     <tr><td colspan=\"2\"><center><font class=\"title\">"._RWELCOME."</font></center><br><br><br>";
  302.     $result = sql_query("select title, description from ".$prefix."_reviews_main", $dbi);
  303.     list($title, $description) = sql_fetch_row($result, $dbi);
  304.     echo "<center><b>$title</b><br><br>$description</center>";
  305.     echo "<br><br><br>";
  306.     alpha();
  307.     echo "</td></tr>";
  308.     echo "<tr><td width=\"50%\" bgcolor=\"$bgcolor2\"><b>"._10MOSTPOP."</b></td>";
  309.     echo "<td width=\"50%\" bgcolor=\"$bgcolor2\"><b>"._10MOSTREC."</b></td></tr>";
  310.     $result_pop = sql_query("select id, title, hits from ".$prefix."_reviews $querylang order by hits DESC limit 10", $dbi);
  311.     $result_rec = sql_query("select id, title, date, hits from ".$prefix."_reviews $querylang order by date DESC limit 10", $dbi);
  312.     $y = 1;
  313.     for ($x = 0; $x < 10; $x++)    {
  314.     $myrow = sql_fetch_array($result_pop, $dbi);
  315.     $id = $myrow["id"];
  316.     $title = $myrow["title"];
  317.     $hits = $myrow["hits"];
  318.     echo "<tr><td width=\"50%\" bgcolor=\"$bgcolor4\">$y) <a href=\"modules.php?name=$module_name&rop=showcontent&id=$id\">$title</a></td>";
  319.     $myrow = sql_fetch_array($result_rec, $dbi);
  320.     $id = $myrow["id"];
  321.     $title = $myrow["title"];
  322.     $hits = $myrow["hits"];
  323.     echo "<td width=\"50%\" bgcolor=\"$bgcolor4\">$y) <a href=\"modules.php?name=$module_name&rop=showcontent&id=$id\">$title</a></td></tr>";
  324.     $y++;
  325.     }
  326.     echo "<tr><td colspan=\"2\"><br></td></tr>";
  327.     $result = sql_query("SELECT * FROM ".$prefix."_reviews $querylang", $dbi);
  328.     $numresults = sql_num_rows($result, $dbi);
  329.     echo "<tr><td colspan=\"2\"><br><center>"._THEREARE." $numresults "._REVIEWSINDB."</center></td></tr></table>";
  330.     CloseTable();
  331.     include ("footer.php");
  332. }
  333.  
  334. function reviews($letter, $field, $order) {
  335.     global $bgcolor4, $sitename, $prefix, $multilingual, $currentlang, $dbi, $module_name;
  336.     include ('header.php');
  337.     if ($multilingual == 1) {
  338.     $querylang = "AND rlanguage='$currentlang'";
  339.     } else {
  340.     $querylang = "";
  341.     }
  342.     OpenTable();
  343.     echo "<center><b>$sitename "._REVIEWS."</b><br>";
  344.     echo "<i>"._REVIEWSLETTER." \"$letter\"</i><br><br>";
  345.     switch ($field) {
  346.  
  347.     case "reviewer":
  348.     $result = sql_query("SELECT id, title, hits, reviewer, score FROM ".$prefix."_reviews WHERE UPPER(title) LIKE '$letter%' $querylang ORDER by reviewer $order", $dbi);
  349.     break;
  350.  
  351.     case "score":
  352.     $result = sql_query("SELECT id, title, hits, reviewer, score FROM ".$prefix."_reviews WHERE UPPER(title) LIKE '$letter%' $querylang ORDER by score $order", $dbi);
  353.     break;
  354.  
  355.     case "hits":
  356.     $result = sql_query("SELECT id, title, hits, reviewer, score FROM ".$prefix."_reviews WHERE UPPER(title) LIKE '$letter%' $querylang ORDER by hits $order", $dbi);
  357.     break;
  358.  
  359.     default:
  360.     $result = sql_query("SELECT id, title, hits, reviewer, score FROM ".$prefix."_reviews WHERE UPPER(title) LIKE '$letter%' $querylang ORDER by title $order", $dbi);
  361.     break;
  362.  
  363.     }
  364.     $numresults = sql_num_rows($result, $dbi);
  365.     if ($numresults == 0) {
  366.     echo "<i><b>"._NOREVIEWS." \"$letter\"</b></i><br><br>";
  367.     } elseif ($numresults > 0) {
  368.     echo "<TABLE BORDER=\"0\" width=\"100%\" CELLPADDING=\"2\" CELLSPACING=\"4\">
  369.         <tr>
  370.         <td width=\"50%\" bgcolor=\"$bgcolor4\">
  371.         <P ALIGN=\"LEFT\"><a href=\"modules.php?name=$module_name&rop=$letter&field=title&order=ASC\"><img src=\"images/download/up.gif\" border=\"0\" width=\"15\" height=\"9\" Alt=\""._SORTASC."\"></a><B> "._PRODUCTTITLE." </B><a href=\"modules.php?name=$module_name&rop=$letter&field=title&order=DESC\"><img src=\"images/download/down.gif\" border=\"0\" width=\"15\" height=\"9\" Alt=\""._SORTDESC."\"></a>
  372.         </td>
  373.         <td width=\"18%\" bgcolor=\"$bgcolor4\">
  374.         <P ALIGN=\"CENTER\"><a href=\"modules.php?name=$module_name&rop=$letter&field=reviewer&order=ASC\"><img src=\"images/download/up.gif\" border=\"0\" width=\"15\" height=\"9\" Alt=\""._SORTASC."\"></a><B> "._REVIEWER." </B><a href=\"modules.php?name=$module_name&rop=$letter&field=reviewer&order=desc\"><img src=\"images/download/down.gif\" border=\"0\" width=\"15\" height=\"9\" Alt=\""._SORTDESC."\"></a>
  375.         </td>
  376.         <td width=\"18%\" bgcolor=\"$bgcolor4\">
  377.         <P ALIGN=\"CENTER\"><a href=\"modules.php?name=$module_name&rop=$letter&field=score&order=ASC\"><img src=\"images/download/up.gif\" border=\"0\" width=\"15\" height=\"9\" Alt=\""._SORTASC."\"></a><B> "._SCORE." </B><a href=\"modules.php?name=$module_name&rop=$letter&field=score&order=DESC\"><img src=\"images/download/down.gif\" border=\"0\" width=\"15\" height=\"9\" Alt=\""._SORTDESC."\"></a>
  378.         </td>
  379.         <td width=\"14%\" bgcolor=\"$bgcolor4\">
  380.         <P ALIGN=\"CENTER\"><a href=\"modules.php?name=$module_name&rop=$letter&field=hits&order=ASC\"><img src=\"images/download/up.gif\" border=\"0\" width=\"15\" height=\"9\" Alt=\""._SORTASC."\"></a><B> "._HITS." </B><a href=\"modules.php?name=$module_name&rop=$letter&field=hits&order=DESC\"><img src=\"images/download/down.gif\" border=\"0\" width=\"15\" height=\"9\" Alt=\""._SORTDESC."\"></a>
  381.         </td>
  382.         </tr>";
  383.     while($myrow = sql_fetch_array($result, $dbi)) {
  384.         $title = $myrow["title"];
  385.         $id = $myrow["id"];
  386.         $reviewer = $myrow["reviewer"];
  387.         $email = $myrow["email"];
  388.         $score = $myrow["score"];
  389.         $hits = $myrow["hits"];
  390.         echo "<tr>
  391.             <td width=\"50%\" bgcolor=\"#EEEEEE\"><a href=\"modules.php?name=$module_name&rop=showcontent&id=$id\">$title</a></td>
  392.             <td width=\"18%\" bgcolor=\"#EEEEEE\">";
  393.         if ($reviewer != "")
  394.         echo "<center>$reviewer</center>";
  395.         echo "</td><td width=\"18%\" bgcolor=\"#EEEEEE\"><center>";
  396.         display_score($score);
  397.         echo "</center></td><td width=\"14%\" bgcolor=\"#EEEEEE\"><center>$hits</center></td>
  398.           </tr>";
  399.     }
  400.     echo "</TABLE>";
  401.     echo "<br>$numresults "._TOTALREVIEWS."<br><br>";
  402.     }
  403.     echo "[ <a href=\"modules.php?name=$module_name\">"._RETURN2MAIN."</a> ]";
  404.     CloseTable();
  405.     include ("footer.php");
  406. }
  407.  
  408. function postcomment($id, $title) {
  409.     global $user, $cookie, $AllowableHTML, $anonymous, $module_name;
  410.     include("header.php");
  411.     cookiedecode($user);
  412.     $title = urldecode($title);
  413.     OpenTable();
  414.     echo "<center><font class=option><b>"._REVIEWCOMMENT." $title</b><br><br></font></center>"
  415.     ."<form action=modules.php?name=$module_name method=post>";
  416.     if (!is_user($user)) {
  417.     echo "<b>"._YOURNICK."</b> $anonymous [ "._RCREATEACCOUNT." ]<br><br>";
  418.     $uname = $anonymous;
  419.     } else {
  420.     echo "<b>"._YOURNICK."</b> $cookie[1]<br>
  421.     <input type=checkbox name=xanonpost> "._POSTANON."<br><br>";
  422.     $uname = $cookie[1];
  423.     }
  424.     echo "
  425.     <input type=hidden name=uname value=$uname>
  426.     <input type=hidden name=id value=$id>
  427.     <b>"._SELECTSCORE."</b>
  428.     <select name=score>
  429.     <option name=score value=10>10</option>
  430.     <option name=score value=9>9</option>
  431.     <option name=score value=8>8</option>
  432.     <option name=score value=7>7</option>
  433.     <option name=score value=6>6</option>
  434.     <option name=score value=5>5</option>
  435.     <option name=score value=4>4</option>
  436.     <option name=score value=3>3</option>
  437.     <option name=score value=2>2</option>
  438.     <option name=score value=1>1</option>
  439.     </select><br><br>
  440.     <b>"._YOURCOMMENT."</b><br>
  441.     <textarea name=comments rows=10 cols=70></textarea><br>
  442.     "._ALLOWEDHTML."<br>";
  443.     while (list($key,)= each($AllowableHTML)) echo " <".$key.">";
  444.     echo "<br><br>
  445.     <input type=hidden name=rop value=savecomment>
  446.     <input type=submit value=Submit>
  447.     </form>
  448.     ";
  449.     CloseTable();
  450.     include("footer.php");
  451. }
  452.  
  453. function savecomment($xanonpost, $uname, $id, $score, $comments) {
  454.     global $anonymous, $user, $cookie, $prefix, $dbi, $module_name;
  455.     if ($xanonpost) {
  456.     $uname = $anonymous;
  457.     }
  458.     $comments = stripslashes(FixQuotes(check_html($comments)));
  459.     sql_query("insert into ".$prefix."_reviews_comments values (NULL, '$id', '$uname', now(), '$comments', '$score')", $dbi);
  460.     Header("Location: modules.php?name=$module_name&rop=showcontent&id=$id");
  461. }
  462.  
  463. function r_comments($id, $title) {
  464.     global $admin, $prefix, $dbi, $module_name;
  465.     $result = sql_query("select cid, userid, date, comments, score from ".$prefix."_reviews_comments where rid='$id' ORDER BY date DESC", $dbi);
  466.     while(list($cid, $uname, $date, $comments, $score) = sql_fetch_row($result, $dbi)) {
  467.     OpenTable();
  468.     $title = urldecode($title);
  469.     echo "
  470.     <b>$title</b><br>";
  471.     if ($uname == "Anonymous") {
  472.         echo ""._POSTEDBY." $uname "._ON." $date<br>";
  473.     } else {
  474.         echo ""._POSTEDBY." <a href=\"modules.php?name=Your_Account&op=userinfo&uname=$uname\">$uname</a> "._ON." $date<br>";
  475.     }
  476.     echo ""._MYSCORE." ";
  477.     display_score($score);
  478.     if (is_admin($admin)) {
  479.         echo "<br><b>"._ADMIN."</b> [ <a href=\"modules.php?name=$module_name&rop=del_comment&cid=$cid&id=$id\">"._DELETE."</a> ]</font><hr noshade size=1><br><br>";
  480.     } else {
  481.         echo "</font><hr noshade size=1><br><br>";
  482.     }
  483.     $comments = FixQuotes(nl2br(filter_text($comments)));
  484.     echo "
  485.     $comments
  486.     ";
  487.     CloseTable();
  488.     echo "<br>";
  489.     }
  490. }
  491.  
  492. function showcontent($id, $page) {
  493.     global $admin, $uimages, $prefix, $dbi, $module_name;
  494.     include ('header.php');
  495.     OpenTable();
  496.     if (($page == 1) OR ($page == "")) {
  497.     sql_query("UPDATE ".$prefix."_reviews SET hits=hits+1 WHERE id=$id", $dbi);
  498.     }
  499.     $result = sql_query("SELECT * FROM ".$prefix."_reviews WHERE id=$id", $dbi);
  500.     $myrow =  sql_fetch_array($result, $dbi);
  501.     $id =  $myrow["id"];
  502.     $date = $myrow["date"];
  503.     $year = substr($date,0,4);
  504.     $month = substr($date,5,2);
  505.     $day = substr($date,8,2);
  506.     $fdate = date("F jS Y",mktime (0,0,0,$month,$day,$year));
  507.     $title = $myrow["title"];
  508.     $text = $myrow["text"];
  509.     $cover = $myrow["cover"];
  510.     $reviewer = $myrow["reviewer"];
  511.     $email = $myrow["email"];
  512.     $hits = $myrow["hits"];
  513.     $url = $myrow["url"];
  514.     $url_title = $myrow["url_title"];
  515.     $score = $myrow["score"];
  516.     $rlanguage = $myrow["rlanguage"];
  517.     $contentpages = explode( "<!--pagebreak-->", $text );
  518.     $pageno = count($contentpages);
  519.     if ( $page=="" || $page < 1 )
  520.     $page = 1;
  521.     if ( $page > $pageno )
  522.     $page = $pageno;
  523.     $arrayelement = (int)$page;
  524.     $arrayelement --;
  525.     echo "<p><i><b><font class=\"title\">$title</b></i></font><br>";
  526.     echo "<BLOCKQUOTE><p align=justify>";
  527.     if ($cover != "")
  528.     echo "<img src=\"images/reviews/$cover\" align=right border=1 vspace=2 alt=\"\">";
  529.     echo "$contentpages[$arrayelement]
  530.     </BLOCKQUOTE><p>";
  531.     if (is_admin($admin))
  532.         echo "<b>"._ADMIN."</b> [ <a href=\"modules.php?name=$module_name&rop=mod_review&id=$id\">"._EDIT."</a> | <a href=modules.php?name=$module_name&rop=del_review&id_del=$id>"._DELETE."</a> ]<br>";
  533.     echo "<b>"._ADDED."</b> $fdate<br>";
  534.     if ($reviewer != "")
  535.     echo "<b>"._REVIEWER."</b> <a href=mailto:$email>$reviewer</a><br>";
  536.     if ($score != "")
  537.     echo "<b>"._SCORE."</b> ";
  538.     display_score($score);
  539.     if ($url != "")
  540.         echo "<br><b>"._RELATEDLINK.":</b> <a href=\"$url\" target=new>$url_title</a>";
  541.     echo "<br><b>"._HITS.":</b> $hits";
  542.     echo "<br><b>"._LANGUAGE.":</b> $rlanguage";
  543.     if ($pageno > 1) {
  544.     echo "<br><b>"._PAGE.":</b> $page/$pageno<br>";
  545.     }
  546.     echo "</font>";
  547.     echo "</CENTER>";
  548.     $title = urlencode($title);
  549.     if($page >= $pageno) {
  550.       $next_page = "";
  551.     } else {
  552.     $next_pagenumber = $page + 1;
  553.     if ($page != 1) {
  554.         $next_page .= "<img src=\"images/blackpixel.gif\" width=\"10\" height=\"2\" border=\"0\" alt=\"\">    ";
  555.     }
  556.     $next_page .= "<a href=\"modules.php?name=$module_name&rop=showcontent&id=$id&page=$next_pagenumber\">"._NEXT." ($next_pagenumber/$pageno)</a> <a href=\"modules.php?name=$module_name&rop=showcontent&id=$id&page=$next_pagenumber\"><img src=\"images/download/right.gif\" border=\"0\" alt=\""._NEXT."\"></a>";
  557.     }
  558.     if($page <= 1) {
  559.     $previous_page = "";
  560.     } else {
  561.     $previous_pagenumber = $page - 1;
  562.     $previous_page = "<a href=\"modules.php?name=$module_name&rop=showcontent&id=$id&page=$previous_pagenumber\"><img src=\"images/download/left.gif\" border=\"0\" alt=\""._PREVIOUS."\"></a> <a href=\"modules.php?name=$module_name&rop=showcontent&id=$id&page=$previous_pagenumber\">"._PREVIOUS." ($previous_pagenumber/$pageno)</a>";
  563.     }
  564.     echo "<center>"
  565.     ."$previous_page    $next_page<br><br>"
  566.     ."[ <a href=\"modules.php?name=$module_name\">"._RBACK."</a> | "
  567.     ."<a href=\"modules.php?name=$module_name&rop=postcomment&id=$id&title=$title\">"._REPLYMAIN."</a> ]";
  568.     CloseTable();
  569.     if (($page == 1) OR ($page == "")) {
  570.     echo "<br>";
  571.     r_comments($id, $title);
  572.     }
  573.     include ("footer.php");
  574. }
  575.  
  576. function mod_review($id) {
  577.     global $admin, $prefix, $dbi, $module_name;
  578.     include ('header.php');
  579.     OpenTable();
  580.     if (($id == 0) || (!is_admin($admin)))
  581.         echo "This function must be passed argument id, or you are not admin.";
  582.     else if (($id != 0) && (is_admin($admin)))
  583.     {
  584.         $result = sql_query("select * from ".$prefix."_reviews where id = $id", $dbi);
  585.         while($myrow =  sql_fetch_array($result, $dbi))
  586.         {
  587.             $id =  $myrow["id"];
  588.             $date = $myrow["date"];
  589.             $title = $myrow["title"];
  590.             $text = $myrow["text"];
  591.             $cover = $myrow["cover"];
  592.             $reviewer = $myrow["reviewer"];
  593.             $email = $myrow["email"];
  594.             $hits = $myrow["hits"];
  595.             $url = $myrow["url"];
  596.             $url_title = $myrow["url_title"];
  597.             $score = $myrow["score"];
  598.             $rlanguage = $myrow["rlanguage"];
  599.         }
  600.         echo "<center><b>"._REVIEWMOD."</b></center><br><br>";
  601.         echo "<form method=POST action=modules.php?name=$module_name&rop=preview_review><input type=hidden name=id value=$id>";
  602.         echo "<TABLE BORDER=0 width=100%>
  603.             <tr>
  604.                 <td width=12%><b>"._RDATE."</b></td>
  605.                 <td><INPUT TYPE=text NAME=date SIZE=15 VALUE=\"$date\" MAXLENGTH=10></td>
  606.             </tr>
  607.             <tr>
  608.                 <td width=12%><b>"._RTITLE."</b></td>
  609.                 <td><INPUT TYPE=text NAME=title SIZE=50 MAXLENGTH=150 value=\"$title\"></td>
  610.             </tr>
  611.             <tr>";
  612.         echo "<td width=12%><b>"._LANGUAGE."</b></td>
  613.                 <td><select name=\"rlanguage\">";
  614.                 $handle=opendir('language');
  615.                     while ($file = readdir($handle)) {
  616.                     if (preg_match("/^lang\-(.+)\.php/", $file, $matches)) {
  617.                             $langFound = $matches[1];
  618.                             $languageslist .= "$langFound ";
  619.                         }
  620.                     }
  621.                     closedir($handle);
  622.                     $languageslist = explode(" ", $languageslist);
  623.                     for ($i=0; $i < sizeof($languageslist); $i++) {
  624.                     if($languageslist[$i]!="") {
  625.                         echo "<option value=\"$languageslist[$i]\" ";
  626.                         if($languageslist[$i]==$rlanguage) echo "selected";
  627.                         echo ">$languageslist[$i]</option>\n";
  628.                     }
  629.                 }
  630.  
  631.         echo "</select></td></tr>";
  632.         echo "<tr>
  633.                 <td width=12%><b>"._RTEXT."</b></td>
  634.                 <td><TEXTAREA class=textbox name=text rows=20 wrap=virtual cols=60>$text</TEXTAREA></td>
  635.             </tr>
  636.             <tr>
  637.                 <td width=12%><b>"._REVIEWER."</b></td>
  638.                 <td><INPUT TYPE=text NAME=reviewer SIZE=41 MAXLENGTH=40 value=\"$reviewer\"></td>
  639.             </tr>
  640.             <tr>
  641.                 <td width=12%><b>"._REVEMAIL."</b></td>
  642.                 <td><INPUT TYPE=text NAME=email value=\"$email\" SIZE=30 MAXLENGTH=80></td>
  643.             </tr>
  644.             <tr>
  645.                 <td width=12%><b>"._SCORE."</b></td>
  646.                 <td><INPUT TYPE=text NAME=score value=\"$score\" size=3 maxlength=2></td>
  647.             </tr>
  648.             <tr>
  649.                 <td width=12%><b>"._RLINK."</b></td>
  650.                 <td><INPUT TYPE=text NAME=url value=\"$url\" size=30 maxlength=100></td>
  651.             </tr>
  652.             <tr>
  653.                 <td width=12%><b>"._RLINKTITLE."</b></td>
  654.                 <td><INPUT TYPE=text NAME=url_title value=\"$url_title\" size=30 maxlength=50></td>
  655.             </tr>
  656.             <tr>
  657.                 <td width=12%><b>"._COVERIMAGE."</b></td>
  658.                 <td><INPUT TYPE=text NAME=cover value=\"$cover\" size=30 maxlength=100></td>
  659.             </tr>
  660.             <tr>
  661.                 <td width=12%><b>"._HITS.":</b></td>
  662.                 <td><INPUT TYPE=text NAME=hits value=\"$hits\" size=5 maxlength=5></td>
  663.             </tr>
  664.         </TABLE>";
  665.         echo "<input type=hidden name=rop value=preview_review><input type=submit value=\""._PREMODS."\">  <input type=button onClick=history.go(-1) value="._CANCEL."></form>";
  666.     }
  667.     CloseTable();
  668.     include ("footer.php");
  669. }
  670.  
  671. function del_review($id_del) {
  672.     global $admin, $prefix, $dbi, $module_name;
  673.     if (is_admin($admin)) {
  674.         sql_query("delete from ".$prefix."_reviews where id = $id_del", $dbi);
  675.     sql_query("delete from ".$prefix."_reviews_comments where rid='$id_del'", $dbi);
  676.     Header("Location: modules.php?name=$module_name");
  677.     } else {
  678.         echo "ACCESS DENIED";
  679.     }
  680. }
  681.  
  682. function del_comment($cid, $id) {
  683.     global $admin, $prefix, $dbi, $module_name;
  684.     if (is_admin($admin)) {
  685.         sql_query("delete from ".$prefix."_reviews_comments where cid='$cid'", $dbi);
  686.         Header("Location: modules.php?name=$module_name&rop=showcontent&id=$id");
  687.     } else {
  688.         echo "ACCESS DENIED";
  689.     }
  690. }
  691.  
  692. switch($rop) {
  693.  
  694.     case "A":
  695.     reviews(A, $field, $order);
  696.     break;
  697.  
  698.     case "B":
  699.     reviews(B, $field, $order);
  700.     break;
  701.  
  702.     case "C":
  703.     reviews(C, $field, $order);
  704.     break;
  705.  
  706.     case "D":
  707.     reviews(D, $field, $order);
  708.     break;
  709.  
  710.     case "E":
  711.     reviews(E, $field, $order);
  712.     break;
  713.  
  714.     case "F":
  715.     reviews(F, $field, $order);
  716.     break;
  717.  
  718.     case "G":
  719.     reviews(G, $field, $order);
  720.     break;
  721.  
  722.     case "H":
  723.     reviews(H, $field, $order);
  724.     break;
  725.  
  726.     case "I":
  727.     reviews(I, $field, $order);
  728.     break;
  729.  
  730.     case "J":
  731.     reviews(J, $field, $order);
  732.     break;
  733.  
  734.     case "K":
  735.     reviews(K, $field, $order);
  736.     break;
  737.  
  738.     case "L":
  739.     reviews(L, $field, $order);
  740.     break;
  741.  
  742.     case "M":
  743.     reviews(M, $field, $order);
  744.     break;
  745.  
  746.     case "N":
  747.     reviews(N, $field, $order);
  748.     break;
  749.  
  750.     case "O":
  751.     reviews(O, $field, $order);
  752.     break;
  753.  
  754.     case "P":
  755.     reviews(P, $field, $order);
  756.     break;
  757.  
  758.     case "Q":
  759.     reviews(Q, $field, $order);
  760.     break;
  761.  
  762.     case "R":
  763.     reviews(R, $field, $order);
  764.     break;
  765.  
  766.     case "S":
  767.     reviews(S, $field, $order);
  768.     break;
  769.  
  770.     case "T":
  771.     reviews(T, $field, $order);
  772.     break;
  773.  
  774.     case "U":
  775.     reviews(U, $field, $order);
  776.     break;
  777.  
  778.     case "V":
  779.     reviews(V, $field, $order);
  780.     break;
  781.  
  782.     case "W":
  783.     reviews(W, $field, $order);
  784.     break;
  785.  
  786.     case "X":
  787.     reviews(X, $field, $order);
  788.     break;
  789.  
  790.     case "Y":
  791.     reviews(Y, $field, $order);
  792.     break;
  793.  
  794.     case "Z":
  795.     reviews(Z, $field, $order);
  796.     break;
  797.  
  798.     case "1":
  799.     reviews(1, $field, $order);
  800.     break;
  801.  
  802.     case "2":
  803.     reviews(2, $field, $order);
  804.     break;
  805.  
  806.     case "3":
  807.     reviews(3, $field, $order);
  808.     break;
  809.  
  810.     case "4":
  811.     reviews(4, $field, $order);
  812.     break;
  813.  
  814.     case "5":
  815.     reviews(5, $field, $order);
  816.     break;
  817.  
  818.     case "6":
  819.     reviews(6, $field, $order);
  820.     break;
  821.  
  822.     case "7":
  823.     reviews(7, $field, $order);
  824.     break;
  825.  
  826.     case "8":
  827.     reviews(8, $field, $order);
  828.     break;
  829.  
  830.     case "9":
  831.     reviews(9, $field, $order);
  832.     break;
  833.  
  834.     case "showcontent":
  835.     showcontent($id, $page);
  836.     break;
  837.  
  838.     case "write_review":
  839.     write_review();
  840.     break;
  841.  
  842.     case "preview_review":
  843.     preview_review($date, $title, $text, $reviewer, $email, $score, $cover, $url, $url_title, $hits, $id, $rlanguage);
  844.     break;
  845.  
  846.     case ""._YES."":
  847.     send_review($date, $title, $text, $reviewer, $email, $score, $cover, $url, $url_title, $hits, $id, $rlanguage);
  848.     break;
  849.  
  850.     case "del_review":
  851.     del_review($id_del);
  852.     break;
  853.  
  854.     case "mod_review":
  855.     mod_review($id);
  856.     break;
  857.  
  858.     case "postcomment":
  859.     postcomment($id, $title);
  860.     break;
  861.  
  862.     case "savecomment":
  863.     savecomment($xanonpost, $uname, $id, $score, $comments);
  864.     break;
  865.  
  866.     case "del_comment":
  867.     del_comment($cid, $id);
  868.     break;
  869.  
  870.     default:
  871.     reviews_index();
  872.     break;
  873. }
  874.  
  875. ?>