Application.php 2.4 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485
  1. <?php
  2. /**
  3. * [Discuz!] (C)2001-2099 Comsenz Inc.
  4. * This is NOT a freeware, use is subject to license terms
  5. *
  6. * $Id: Application.php 25813 2011-11-22 10:07:48Z zhengqingpeng $
  7. */
  8. if(!defined('IN_DISCUZ')) {
  9. exit('Access Denied');
  10. }
  11. class Cloud_Service_Server_Application extends Cloud_Service_Server_Restful {
  12. protected static $_instance;
  13. public static function getInstance() {
  14. if (!(self::$_instance instanceof self)) {
  15. self::$_instance = new self();
  16. }
  17. return self::$_instance;
  18. }
  19. public function onApplicationUpdate($appId, $appName, $version, $displayMethod, $displayOrder = null, $userPanelArea = null, $canvasTitle = null, $isFullscreen = null, $displayUserPanel = null, $additionalStatus = null) {
  20. $row = C::t('common_myapp')->fetch($appId);
  21. $result = true;
  22. if ($row['appname'] != $appName) {
  23. $fields = array('appname' => $appName);
  24. $result = C::t('home_userapp')->update_by_uid_appid(0, $appId, $fields);
  25. require_once libfile('function/cache');
  26. updatecache('userapp');
  27. }
  28. $displayMethod = ($displayMethod == 'iframe') ? 1 : 0;
  29. $this->refreshApplication($appId, $appName, $version, $userPanelArea, $canvasTitle, $isFullscreen, $displayUserPanel, $displayMethod, null, null, $displayOrder, $additionalStatus);
  30. return $result;
  31. }
  32. public function onApplicationRemove($appIds) {
  33. $result = C::t('home_userapp')->delete_by_uid_appid(0, $appIds);
  34. C::t('home_userappfield')->delete_by_uid_appid(0, $appIds);
  35. C::t('common_myapp')->delete($appIds);
  36. require_once libfile('function/cache');
  37. updatecache(array('userapp', 'myapp'));
  38. return $result;
  39. }
  40. public function onApplicationSetFlag($applications, $flag) {
  41. $flag = ($flag == 'disabled') ? -1 : ($flag == 'default' ? 1 : 0);
  42. $appIds = array();
  43. if ($applications && is_array($applications)) {
  44. foreach($applications as $application) {
  45. $this->refreshApplication($application['appId'], $application['appName'], null, null, null, null, null, null, null, $flag, null, null);
  46. $appIds[] = $application['appId'];
  47. }
  48. }
  49. if ($flag == -1) {
  50. C::t('home_feed')->delete_by_icon($appIds);
  51. C::t('home_userapp')->delete_by_uid_appid(0, $appIds);
  52. C::t('home_userappfield')->delete_by_uid_appid(0, $appIds);
  53. C::t('common_myinvite')->delete_by_appid($appIds);
  54. C::t('home_notification')->delete_by_type($appIds);
  55. }
  56. require_once libfile('function/cache');
  57. updatecache('userapp');
  58. $result = true;
  59. return $result;
  60. }
  61. }