preference.php
上传用户:snow1005
上传日期:2015-11-10
资源大小:3151k
文件大小:7k
源码类别:

Ajax

开发平台:

JavaScript

  1. <?php
  2. /*
  3.  * qWikiOffice Desktop 0.8.1
  4.  * Copyright(c) 2007-2008, Integrated Technologies, Inc.
  5.  * licensing@qwikioffice.com
  6.  * 
  7.  * http://www.qwikioffice.com/license
  8.  */
  9. class preference {
  10. private $os;
  11. public function __construct($os){
  12. $this->os = $os;
  13. }
  14. /** get_styles() Returns all the styles associated with a member (in group)
  15.   * for this session.
  16.   *
  17.   * @access public
  18.   **/
  19. public function get_styles(){
  20. $styles = '{}';
  21. $member_id = $this->os->session->get_member_id();
  22. $group_id = $this->os->session->get_group_id();
  23. if($member_id != "" && $group_id != ""){
  24. // get system default
  25. $s_default = $this->get_style("0", "0");
  26. // get group default
  27. $s_group = $this->get_style("0", $group_id);
  28. // get member preferences
  29. $s_member = $this->get_style($member_id, $group_id);
  30. }
  31. // default styles
  32. $styles = $s_default;
  33. // overwrite with group default
  34. if(count($s_group) > 0){
  35. $styles = $this->os->overwrite_assoc_array($styles, $s_group);
  36. }
  37. // overwrite with member preference
  38. if(count($s_member) > 0){
  39. $styles = $this->os->overwrite_assoc_array($styles, $s_member);
  40. }
  41. return json_encode($styles);
  42. } // end get_styles()
  43. /** get_style() Will return the style associated with a member (in group).
  44.   *
  45.   * @access private
  46.   * @param $member_id int, the member id
  47.   * @param $group_id int, the group id
  48.   **/
  49. private function get_style($member_id, $group_id){
  50. $response = array();
  51. if($member_id != "" && $group_id != ""){
  52. // get system default
  53. $sql = "SELECT
  54. backgroundcolor,
  55. fontcolor,
  56. transparency,
  57. T.id AS themeid,
  58. T.name AS themename,
  59. T.path_to_file AS themefile,
  60. W.id AS wallpaperid,
  61. W.name AS wallpapername,
  62. W.path_to_file AS wallpaperfile,
  63. wallpaperposition
  64. FROM
  65. qo_styles S
  66. -- Themes --
  67. INNER JOIN qo_themes AS T ON T.id = S.qo_themes_id
  68. -- Wallpapers --
  69. INNER JOIN qo_wallpapers AS W ON W.id = S.qo_wallpapers_id
  70. WHERE
  71. qo_members_id = ".$member_id."
  72. AND
  73. qo_groups_id = ".$group_id;
  74. $result = mysql_query($sql);
  75. // if a record was returned
  76. if(mysql_num_rows($result = mysql_query($sql)) > 0){
  77. $row = mysql_fetch_assoc($result);
  78. $response["backgroundcolor"] = $row["backgroundcolor"];
  79. $response["fontcolor"] = $row["fontcolor"];
  80. $response["transparency"] = $row["transparency"];
  81. $response["theme"] = array(
  82. "id" => $row["themeid"],
  83. "name" => $row["themename"],
  84. "pathtofile" => $this->os->config->THEMES_DIR.$row["themefile"]
  85. );
  86. $response["wallpaper"] = array(
  87. "id" => $row["wallpaperid"],
  88. "name" => $row["wallpapername"],
  89. "pathtofile" => $this->os->config->WALLPAPERS_DIR.$row["wallpaperfile"]
  90. );
  91. $response["wallpaperposition"] = $row["wallpaperposition"];
  92. }
  93. }
  94. return $response;
  95. } // end get_style()
  96. /** set_style() Creates a new style record, or updates one if it already exists
  97.   * 
  98.   * @param {integer} $member_id
  99.   * @param {integer} $group_id
  100.   * @param {array} $styles
  101.   * @return {boolean}
  102.   **/
  103. public function set_styles($styles){
  104. $result = false;
  105. $member_id = $this->os->session->get_member_id();
  106. $group_id = $this->os->session->get_group_id();
  107. if($member_id != "" && $group_id != ""){
  108. if($this->style_exists($member_id, $group_id)){
  109. $sql = "update
  110. qo_styles
  111. set
  112. backgroundcolor = '".$styles['backgroundcolor']."',
  113. fontcolor = '".$styles['fontcolor']."',
  114. qo_themes_id = ".$styles['theme_id'].",
  115. transparency = '".$styles['transparency']."',
  116. qo_wallpapers_id = ".$styles['wallpaper_id'].",
  117. wallpaperposition = '".$styles['wallpaperposition']."'
  118. where
  119. qo_members_id = ".$member_id." and
  120. qo_groups_id = ".$group_id;
  121. }else{
  122. $sql = "insert into qo_styles (
  123. qo_members_id,
  124. qo_groups_id,
  125. backgroundcolor,
  126. fontcolor,
  127. qo_themes_id,
  128. transparency,
  129. qo_wallpapers_id,
  130. wallpaperposition)
  131. values (
  132. ".$styles['member_id'].",
  133. ".$styles['group_id'].",
  134. '".$styles['backgroundcolor']."',
  135. '".$styles['fontcolor']."',
  136. ".$styles['theme_id'].",
  137. '".$styles['transparency']."',
  138. ".$styles['wallpaper_id'].",
  139. '".$styles['wallpaperposition']."')";
  140. }
  141. if(mysql_query($sql)){
  142. $result = true;
  143. }
  144. }
  145. return $result;
  146. } // end set_styles()
  147. /** style_exists() Returns true if a style record exists for the member id and group id.
  148.   * 
  149.   * @param {integer} $member_id
  150.   * $param {integer} $group_id
  151.   * @return boolean
  152.   **/
  153. private function style_exists($member_id, $group_id){
  154. $result = false;
  155. if($member_id != "" && $group_id != ""){
  156. $sql = "select
  157. transparency
  158. from
  159. qo_styles
  160. where
  161. qo_members_id = ".$member_id." and
  162. qo_groups_id = ".$group_id;
  163. // if a record exists
  164. if(mysql_num_rows(mysql_query($sql)) > 0){
  165. $result = true;
  166. }
  167. }
  168. return $result;
  169. } // end style_exists()
  170. /** get_theme_thumbs()
  171.   **/
  172. public function get_theme_thumbs(){
  173.     $themes = "{'images': []}";
  174.     $member_id = $this->os->session->get_member_id();
  175.     
  176.     if($member_id != ''){
  177.         $sql = "select
  178. id,
  179. name,
  180. path_to_thumbnail as pathtothumbnail,
  181. path_to_file as pathtofile
  182. from
  183. qo_themes
  184. order by name";
  185. if($result = mysql_query($sql)){
  186. $items = array();
  187. $count = 0;
  188. $path = $this->os->config->THEMES_DIR;
  189. while($row = mysql_fetch_assoc($result)){
  190. $items[$count] = $row;
  191. $items[$count]["pathtothumbnail"] = $path.$items[$count]["pathtothumbnail"];
  192. $items[$count]["pathtofile"] = $path.$items[$count]["pathtofile"];
  193. $count++;
  194. }
  195. $themes = '{"images":'.json_encode($items).'}';
  196. }
  197.     }
  198.     
  199.     return $themes;
  200. } // end get_theme_thumbs()
  201. /** get_wallpaper_thumbs()
  202.   **/
  203. public function get_wallpaper_thumbs(){
  204.     $wallpapers = "{'images': []}";
  205.     $member_id = $this->os->session->get_member_id();
  206.     
  207.     if($member_id != ''){
  208.         $sql = "select
  209. id,
  210. name,
  211. path_to_thumbnail as pathtothumbnail,
  212. path_to_file as pathtofile
  213. from
  214. qo_wallpapers
  215. order by name";
  216. if($result = mysql_query($sql)){
  217. $items = array();
  218. $count = 0;
  219. $path = $this->os->config->WALLPAPERS_DIR;
  220. while($row = mysql_fetch_assoc($result)){
  221. $items[$count] = $row;
  222. $items[$count]["pathtothumbnail"] = $path.$items[$count]["pathtothumbnail"];
  223. $items[$count]["pathtofile"] = $path.$items[$count]["pathtofile"];
  224. $count++;
  225. }
  226. $wallpapers = '{"images":'.json_encode($items).'}';
  227. }
  228.     }
  229.     
  230.     return $wallpapers;
  231. } // end get_wallpaper_thumbs
  232. }
  233. ?>