Source for file rate.php

Documentation is available at rate.php

  1. <?php
  2. ////////////////////////////////////////////////////////////////////////////////
  3. // Copyright (C) ReloadCMS Development Team //
  4. // http://reloadcms.sf.net //
  5. // //
  6. // This program is distributed in the hope that it will be useful, //
  7. // but WITHOUT ANY WARRANTY, without even the implied warranty of //
  8. // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. //
  9. // //
  10. // This product released under GNU General Public License v2 //
  11. ////////////////////////////////////////////////////////////////////////////////
  12.  
  13. $writed = false;
  14.  
  15. function show_rate($for) {
  16. $arr=array();
  17. if (file_exists(RATE_PATH.$for)) {
  18. $arr = unserialize(file_get_contents(RATE_PATH.$for));
  19. }
  20. $cou=count($arr);
  21. $sum=0;
  22. foreach ($arr as $ip => $rate) {
  23. $sum.=$rate;
  24. }
  25. $res=0;
  26. $ret='<table width=100% cellspacing="0" cellpadding="0"><tr width=100%>';
  27. if ($cou != 0) $res = bcdiv($sum,$cou);
  28. $desc = __('Poor');
  29. if ($res == '1') $desc = __('Poor');
  30. if ($res == '2') $desc = __('Fair');
  31. if ($res == '3') $desc = __('Average');
  32. if ($res == '4') $desc = __('Very Good');
  33. if ($res == '5') $desc = __('Excelent');
  34. $txt='&nbsp;'.__('Rate').'('.$cou.'): '.$desc;
  35. for ($i=0;$i<5;$i++) {
  36. if ($i < $res) {
  37. $ret.= '<td class="rate-fill">'.$txt.'</td>';
  38. } else {
  39. $ret.= '<td class="rate-empty">'.$txt.'</td>';
  40. }
  41. $txt='&nbsp;';
  42. }
  43. $ret.='</tr></table>';
  44. return $ret;
  45. }
  46.  
  47. function show_rate_rbox($for) {
  48. return '<center><form method="POST" name="'.$for.'"><input type="hidden" name="for" value="'.$for.'">'.__('Rate').':&nbsp;&nbsp;&nbsp;'.
  49. '<input type="radio" class = "rate-radio" name="val" value="1">'.__('Poor').'&nbsp;&nbsp;&nbsp;'.
  50. '<input type="radio" class = "rate-radio" name="val" value="2">'.__('Fair').'&nbsp;&nbsp;&nbsp;'.
  51. '<input type="radio" class = "rate-radio" name="val" value="3">'.__('Average').'&nbsp;&nbsp;&nbsp;'.
  52. '<input type="radio" class = "rate-radio" name="val" value="4">'.__('Very Good').'&nbsp;&nbsp;&nbsp;'.
  53. '<input type="radio" class = "rate-radio" name="val" value="5" checked>'.__('Excelent').'&nbsp;&nbsp;&nbsp;'.
  54. '<input type="submit" value="'.__('Submit').'"></form></center>';
  55. }
  56.  
  57. function write_rate($for,$val,$ip) {
  58. global $write;
  59. if (!$write) {
  60. $arr=array();
  61. if (file_exists(RATE_PATH.$for)) {
  62. $arr = unserialize(file_get_contents(RATE_PATH.$for));
  63. }
  64. $arr[$ip] = $val;
  65. file_write_contents(RATE_PATH.$for, serialize($arr));
  66. }
  67. }
  68.  
  69. function check_ip ($for,$ip) {
  70. if (file_exists(RATE_PATH.$for)) {
  71. $arr = unserialize(file_get_contents(RATE_PATH.$for));
  72. }
  73. return isset($arr[$ip]);
  74. }
  75.  
  76. function get_rate($for){
  77. $valid_post=false;
  78. $b_start='<div class="rate"> ';
  79. $b_end=' </div>';
  80. if (trim(rcms_parse_text($for)) != '') {
  81. $valid_post = true;
  82. $for = md5(trim(rcms_parse_text($for)));
  83. }
  84. $post_for = 0;
  85. if (isset($_POST['for'])) {
  86. $post_for = $_POST['for'];
  87. }
  88. $valid_val = 0;
  89. if (isset($_POST['val'])) {
  90. if (($_POST['val'] == '5') or ($_POST['val'] == '4') or ($_POST['val'] == '3') or ($_POST['val'] == '2') or ($_POST['val'] == '1')) {
  91. $valid_val = $_POST['val'];
  92. }
  93. }
  94.  
  95. if (!$valid_post) {
  96. return $b_start.__('Rate').': '.__('Only for registered users').$b_end;
  97. }
  98. if (!LOGGED_IN) {
  99. return $b_start.show_rate($for).$b_end;;
  100. }
  101.  
  102. if ($post_for == $for and $valid_val == 0 and $valid_post and !check_ip($for,$_SERVER['REMOTE_ADDR'])) {
  103. return $b_start.show_rate_rbox($for).$b_end;
  104. }
  105.  
  106. if ($post_for == $for and $valid_val == 0 and check_ip($for,$_SERVER['REMOTE_ADDR'])) {
  107. return $b_start.show_rate($for).$b_end;
  108. }
  109. if ($post_for == $for and $valid_val !== 0 and $valid_post and !check_ip($for,$_SERVER['REMOTE_ADDR'])) {
  110. write_rate($for,$valid_val,$_SERVER['REMOTE_ADDR']);
  111. return $b_start.show_rate($for).$b_end;
  112. }
  113. if ($post_for !== $for and $valid_post and !check_ip($for,$_SERVER['REMOTE_ADDR'])) {
  114. return $b_start.show_rate_rbox($for).$b_end;
  115. }
  116.  
  117. if ($post_for !== $for and $valid_post and check_ip($for,$_SERVER['REMOTE_ADDR'])) {
  118. return $b_start.show_rate($for).$b_end;
  119. }
  120. return $b_start.__('Rate').': '.__('Data not valid').$b_end;
  121. }
  122.  
  123. ?>

Documentation generated on Fri, 08 Jun 2007 12:21:27 +0300 by phpDocumentor 1.3.0RC3