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

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 launcher {
  10. private $os;
  11. public function __construct($os){
  12. $this->os = $os;
  13. }
  14. /** get_id()
  15.   * 
  16.   * @param {string} launcher (e.g. autorun, contextmenu, quickstart, shortcut, startmenu)
  17.   **/
  18. private function get_id($launcher){
  19. // default
  20. $id = '';
  21. if($this->os->session->exists() && $launcher != ""){
  22. $sql = "select
  23. id
  24. from
  25. qo_launchers
  26. where
  27. name = '".$launcher."'";
  28. if(mysql_num_rows($result = mysql_query($sql)) > 0){
  29. $row = mysql_fetch_assoc($result);
  30. $id = $row["id"];
  31. }
  32. }
  33. return $id;
  34. } // end get_id()
  35. /** clear() Clears a members launcher
  36.   * 
  37.   * @access public
  38.   * @param {string} type ["system", "member"]
  39.   * @param {string} launcher (e.g. autorun, contextmenu, quickstart, shortcut, startmenu)
  40.   **/
  41. public function clear($type, $launcher){
  42. // default
  43. $response = false;
  44. // only if system or member type
  45. if($launcher != "" && ($type == "system" || $type == "member")){
  46. // if system
  47. if($type == "system"){
  48. $member_id = 0;
  49. $group_id = 0;
  50. }else{
  51. // else is member
  52. $member_id = $this->os->session->get_member_id();
  53. $group_id = $this->os->session->get_group_id();
  54. }
  55. if($member_id != "" && $group_id != ""){
  56. // get the launchers id
  57. $sql = "select id from qo_launchers where name = '".$launcher."'";
  58. if(mysql_num_rows($result = mysql_query($sql)) > 0){
  59. $row = mysql_fetch_assoc($result);
  60. // clear members launcher
  61. $sql = "DELETE
  62. FROM
  63. qo_members_has_module_launchers
  64. WHERE
  65. qo_members_id = ".$member_id."
  66. AND
  67. qo_groups_id = ".$group_id."
  68. AND
  69. qo_launchers_id = ".$row["id"];
  70. if(mysql_query($sql)){
  71. $response = true;
  72. }
  73. }
  74. }
  75. }
  76. return $response;
  77. } // end clear()
  78. /** set()
  79.   * 
  80.   * @access public
  81.   * @param {string} type The type of launcher ["system", "member"]
  82.   * @param {array} ids An array containing each module's moduleId property
  83.   * @param {string} launcher ["autorun", "contextmenu", "quickstart", "shortcut", "startmenu"]
  84.   * 
  85.   * @usage set("system", ["demo-grid", "tabs-grid"], "shortcut", 10);
  86.   **/
  87. public function set($member_id, $group_id, $ids, $launcher){
  88. // default
  89. $response = false;
  90. if($member_id != "" && $group_id != "" && count($ids) > 0 && $launcher != ""){
  91. // get the launcher's Db record id based on its launcher name
  92. $launcher_id = $this->get_id($launcher);
  93. if($launcher_id != ""){
  94. // initialize
  95. $sort_order = 0;
  96. // loop through ids array
  97. foreach($ids as $id){
  98. // get the module's Db record id based on its moduleId property
  99. $module_id = $this->os->module->get_id($id);
  100. if($module_id != ""){
  101. $sql = "INSERT INTO
  102. qo_members_has_module_launchers
  103. (qo_members_id,
  104. qo_groups_id,
  105. qo_modules_id,
  106. qo_launchers_id,
  107. sort_order)
  108. VALUES
  109. (".$member_id.",
  110. ".$group_id.",
  111. ".$module_id.",
  112. ".$launcher_id.",
  113. ".$sort_order.")";
  114. mysql_query($sql);
  115. $response = true;
  116. /* ToDo: handle errors
  117. if(!mysql_query($sql))
  118. {
  119. $response = true;
  120. } */
  121. $sort_order++;
  122. }
  123. }
  124. }
  125. }
  126. return $response;
  127. } // end set()
  128. /** get()
  129.   *
  130.   * @access public
  131.   * @param {integer} $member_id
  132.   * @param {integer} $group_id
  133.   **/
  134. public function get($member_id, $group_id){
  135. $response = array();
  136. if($member_id != "" && $group_id != ""){
  137. // get the launchers
  138. $sql = "SELECT
  139. id,
  140. name
  141. FROM
  142. qo_launchers";
  143. if($result = mysql_query($sql)){
  144. while($row = mysql_fetch_assoc($result)){
  145. $response[$row["name"]] = $this->get_modules($member_id, $group_id, $row["id"]);
  146. }
  147. }
  148. }
  149. return $response;
  150. } // end get()
  151. /** get_all() Will load ALL the launchers associated
  152.   * with a member (in group) at once.  Includes the default launchers
  153.   *
  154.   * @access private
  155.   * @param $member_id int, the member id
  156.   **/
  157. public function get_all(){
  158. $member_id = $this->os->session->get_member_id();
  159. $group_id = $this->os->session->get_group_id();
  160. if($member_id != "" && $group_id != ""){
  161. // get system default
  162. $l_default = $this->get("0", "0");
  163. // get member preferences
  164. $l_member = $this->get($member_id, $group_id);
  165. }
  166. // overwrite system default launchers with member preference
  167. if(count($l_member) > 0){
  168. $launchers = $this->os->overwrite_assoc_array($l_default, $l_member);
  169. }else{
  170. $launchers = $l_default;
  171. }
  172. return json_encode($launchers);
  173. } // end get_all()
  174. /** get_modules() Returns an array containing all modules for the passed in launcher.
  175.   * 
  176.   * @param {integer} $member_id
  177.   * @param {integer} $group_id
  178.   * @param {integer} $launcher_id
  179.   **/
  180. private function get_modules($member_id, $group_id, $launcher_id){
  181.     $response = array();
  182.     
  183.     if($member_id != '' && $group_id != '' && $launcher_id != ''){
  184.      $sql = "SELECT
  185. M.module_id as moduleId
  186. FROM
  187. qo_members_has_module_launchers ML
  188. -- Modules --
  189. INNER JOIN qo_modules AS M ON M.id = ML.qo_modules_id
  190. WHERE
  191. qo_launchers_id = ".$launcher_id."
  192. AND
  193. qo_members_id = ".$member_id."
  194. AND
  195. qo_groups_id = ".$group_id."
  196. ORDER BY  ML.sort_order asc";
  197. if($result = mysql_query($sql)){
  198. while($row = mysql_fetch_assoc($result)){
  199.      $response[] = $row["moduleId"];
  200. }
  201. }
  202.     }
  203.     
  204.     return $response;
  205. } // end get_modules()
  206. }
  207. ?>