legal.lib.php 6.2 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180
  1. <?php // $Id: usermanager.lib.php 21700 2009-07-01 19:05:11Z aportugal $
  2. /*
  3. ==============================================================================
  4. */
  5. class LegalManager
  6. {
  7. private function __construct() {
  8. //void
  9. }
  10. function add($language, $content, $type, $changes) {
  11. $legal_table = Database::get_main_table(TABLE_MAIN_LEGAL);
  12. $last = self::get_last_condition($language);
  13. $language = Database::escape_string($language);
  14. $content = Database::escape_string($content);
  15. $type = intval($type);
  16. $changes = Database::escape_string($changes);
  17. $time = time();
  18. if ($last['content'] != $content) {
  19. $version = intval(Legalmanager::get_last_condition_version($language));
  20. $version++;
  21. $sql = "INSERT INTO $legal_table
  22. SET language_id = '".Database::escape_string($language)."',
  23. content = '".Database::escape_string($content)."',
  24. changes= '".Database::escape_string($changes)."',
  25. type = '".Database::escape_string($type)."',
  26. version = '".Database::escape_string($version)."',
  27. date = '".$time."'";
  28. $result = Database::query($sql, __FILE__, __LINE__);
  29. return true;
  30. } elseif($last['type'] != $type && $language==$last['language_id']) {
  31. //update
  32. $id = $last['legal_id'];
  33. $sql = "UPDATE $legal_table
  34. SET changes= '".Database::escape_string($changes)."',
  35. type = '".Database::escape_string($type)."',
  36. date = '".$time."'
  37. WHERE legal_id= $id ";
  38. $result = Database::query($sql, __FILE__, __LINE__);
  39. return true;
  40. } else {
  41. return false;
  42. }
  43. }
  44. function delete($id) {
  45. /*
  46. $legal_table = Database::get_main_table(TABLE_MAIN_LEGAL);
  47. $id = intval($id);
  48. $sql = "DELETE FROM $legal_table WHERE legal_id = '".$id."'";
  49. */
  50. }
  51. function get_last_condition_version($language){
  52. $legal_conditions_table = Database::get_main_table(TABLE_MAIN_LEGAL);
  53. $language= Database::escape_string($language);
  54. $sql = "SELECT version FROM $legal_conditions_table WHERE language_id = '".$language."' ORDER BY legal_id DESC LIMIT 1 ";
  55. $result = Database::query($sql, __FILE__, __LINE__);
  56. $row = Database::fetch_array($result);
  57. if (Database::num_rows($result)>0) {
  58. return $row['version'];
  59. } else {
  60. return 0;
  61. }
  62. }
  63. function get_last_condition($language) {
  64. $legal_conditions_table = Database::get_main_table(TABLE_MAIN_LEGAL);
  65. $language= Database::escape_string($language);
  66. $sql = "SELECT * FROM $legal_conditions_table WHERE language_id = '".$language."' ORDER BY version DESC LIMIT 1 ";
  67. $result = Database::query($sql, __FILE__, __LINE__);
  68. return Database::fetch_array($result);
  69. }
  70. function show_last_condition($term_preview)
  71. {
  72. $preview = '';
  73. switch ($term_preview['type']) {
  74. /*// scroll box
  75. case 0:
  76. $preview ='<fieldset>
  77. <legend>'.get_lang('TermsAndConditions').'</legend>';
  78. $preview .= '<div class="form-item">
  79. <label>'.get_lang('TermsAndConditions').': </label>
  80. <div class="resizable-textarea">
  81. <span>
  82. <textarea id="" class="form-textarea resizable textarea-processed" readonly="readonly" name="" rows="10" cols="60">';
  83. $preview .= $term_preview['content'];
  84. $preview .= '</textarea>
  85. <div class="grippie" style="margin-right: -2px;"/>
  86. </span>
  87. </div>
  88. </div>
  89. <div id="edit-legal-accept-wrapper" class="form-item">
  90. <label class="option" for="edit-legal-accept">
  91. <input id="edit-legal-accept" class="form-checkbox" type="checkbox" value="1" name="legal_accept"/>
  92. <strong>'.get_lang('Accept').'</strong>
  93. '.get_lang('TermsAndConditions').'
  94. </label>
  95. </div>
  96. </fieldset>';
  97. break;*/
  98. // html
  99. case 0:
  100. $preview = '<div class="legal-terms"> '.$term_preview['content'].' </div>';
  101. $preview .= '<br/>'.get_lang('ByClickingAccept');
  102. break;
  103. // page link
  104. case 1:
  105. $preview ='<fieldset>
  106. <legend>'.get_lang('TermsAndConditions').'</legend>';
  107. $preview .= '<div id="legal-accept-wrapper" class="form-item">
  108. <label class="option" for="legal-accept">
  109. <input id="legal-accept" type="checkbox" value="1" name="legal_accept"/>
  110. <strong>'.get_lang('Accept').'</strong>
  111. <a href="">'.get_lang('TermsAndConditions').'</a>
  112. '.get_lang('OfUse').'
  113. </label>
  114. </div>
  115. </fieldset>';
  116. break;
  117. default:
  118. break;
  119. }
  120. return $preview;
  121. }
  122. function get_last_version($language){
  123. $legal_conditions_table = Database::get_main_table(TABLE_MAIN_LEGAL);
  124. $language= Database::escape_string($language);
  125. $sql = "SELECT version FROM $legal_conditions_table WHERE language_id = '".$language."' ORDER BY version DESC LIMIT 1 ";
  126. $result = Database::query($sql, __FILE__, __LINE__);
  127. if (Database::num_rows($result)>0){
  128. $version = Database::fetch_array($result);
  129. $version = explode(':',$version[0]);
  130. return $version[0];
  131. } else {
  132. return false;
  133. }
  134. }
  135. function get_legal_data($from, $number_of_items, $column) {
  136. $legal_conditions_table = Database::get_main_table(TABLE_MAIN_LEGAL);
  137. $lang_table = Database::get_main_table(TABLE_MAIN_LANGUAGE);
  138. $from = intval($from);
  139. $number_of_items = intval($number_of_items);
  140. $column = intval($column);
  141. $sql = "SELECT version, original_name as language, content, changes, type, FROM_UNIXTIME(date)
  142. FROM $legal_conditions_table inner join $lang_table l on(language_id = l.id) ";
  143. $sql .= "ORDER BY language, version ASC ";
  144. $sql .= "LIMIT $from,$number_of_items ";
  145. $result = Database::query($sql, __FILE__, __LINE__);
  146. $legals = array ();
  147. $versions = array ();
  148. while ($legal = Database::fetch_array($result)) {
  149. // max 2000 chars
  150. //echo strlen($legal[1]); echo '<br>';
  151. $versions[]=$legal[0];
  152. $languages[]=$legal[1];
  153. if (strlen($legal[2])>2000)
  154. $legal[2]= substr($legal[2],0,2000).' ... ';
  155. if ($legal[4]==0)
  156. $legal[4]= get_lang('HTMLText');
  157. elseif($legal[4]==1)
  158. $legal[4]=get_lang('PageLink');
  159. $legals[] = $legal;
  160. }
  161. return $legals;
  162. }
  163. function count() {
  164. $legal_conditions_table = Database::get_main_table(TABLE_MAIN_LEGAL);
  165. $sql = "SELECT count(*) as count_result FROM $legal_conditions_table ORDER BY legal_id DESC ";
  166. $result = Database::query($sql, __FILE__, __LINE__);
  167. $url = Database::fetch_array($result,'ASSOC');
  168. $result = $url['count_result'];
  169. return $result;
  170. }
  171. }