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