/modules/file/file.class.php

http://xe-core.googlecode.com/ · PHP · 152 lines · 90 code · 17 blank · 45 comment · 30 complexity · d4c2b4105dc22a3bb9703782875aa3eb MD5 · raw file

  1. <?php
  2. /**
  3. * High class of the file module
  4. * @author NHN (developers@xpressengine.com)
  5. */
  6. class file extends ModuleObject
  7. {
  8. /**
  9. * Implement if additional tasks are necessary when installing
  10. *
  11. * @return Object
  12. */
  13. function moduleInstall()
  14. {
  15. // Register action forward (to use in administrator mode)
  16. $oModuleController = &getController('module');
  17. // Save the default settings for attachments
  18. $config->allowed_filesize = '2';
  19. $config->allowed_attach_size = '2';
  20. $config->allowed_filetypes = '*.*';
  21. $oModuleController->insertModuleConfig('file', $config);
  22. // Generate a directory for the file module
  23. FileHandler::makeDir('./files/attach/images');
  24. FileHandler::makeDir('./files/attach/binaries');
  25. // 2007. 10. 17 Create a trigger to insert, update, delete documents and comments
  26. $oModuleController->insertTrigger('document.insertDocument', 'file', 'controller', 'triggerCheckAttached', 'before');
  27. $oModuleController->insertTrigger('document.insertDocument', 'file', 'controller', 'triggerAttachFiles', 'after');
  28. $oModuleController->insertTrigger('document.updateDocument', 'file', 'controller', 'triggerCheckAttached', 'before');
  29. $oModuleController->insertTrigger('document.updateDocument', 'file', 'controller', 'triggerAttachFiles', 'after');
  30. $oModuleController->insertTrigger('document.deleteDocument', 'file', 'controller', 'triggerDeleteAttached', 'after');
  31. $oModuleController->insertTrigger('comment.insertComment', 'file', 'controller', 'triggerCommentCheckAttached', 'before');
  32. $oModuleController->insertTrigger('comment.insertComment', 'file', 'controller', 'triggerCommentAttachFiles', 'after');
  33. $oModuleController->insertTrigger('comment.updateComment', 'file', 'controller', 'triggerCommentCheckAttached', 'before');
  34. $oModuleController->insertTrigger('comment.updateComment', 'file', 'controller', 'triggerCommentAttachFiles', 'after');
  35. $oModuleController->insertTrigger('comment.deleteComment', 'file', 'controller', 'triggerCommentDeleteAttached', 'after');
  36. // 2009. 6. 9 Delete all the attachements when auto-saved document is deleted
  37. $oModuleController->insertTrigger('editor.deleteSavedDoc', 'file', 'controller', 'triggerDeleteAttached', 'after');
  38. // 2007. 10. 17 Create a trigger to delete all the attachements when the module is deleted
  39. $oModuleController->insertTrigger('module.deleteModule', 'file', 'controller', 'triggerDeleteModuleFiles', 'after');
  40. // 2007. 10. 19 Call a trigger to set up the file permissions before displaying
  41. $oModuleController->insertTrigger('module.dispAdditionSetup', 'file', 'view', 'triggerDispFileAdditionSetup', 'before');
  42. return new Object();
  43. }
  44. /**
  45. * A method to check if successfully installed
  46. *
  47. * @return bool
  48. */
  49. function checkUpdate()
  50. {
  51. $oDB = &DB::getInstance();
  52. $oModuleModel = &getModel('module');
  53. // 2007. 10. 17 Create a trigger to insert, update, delete documents and comments
  54. if(!$oModuleModel->getTrigger('document.insertDocument', 'file', 'controller', 'triggerCheckAttached', 'before')) return true;
  55. if(!$oModuleModel->getTrigger('document.insertDocument', 'file', 'controller', 'triggerAttachFiles', 'after')) return true;
  56. if(!$oModuleModel->getTrigger('document.updateDocument', 'file', 'controller', 'triggerCheckAttached', 'before')) return true;
  57. if(!$oModuleModel->getTrigger('document.updateDocument', 'file', 'controller', 'triggerAttachFiles', 'after')) return true;
  58. if(!$oModuleModel->getTrigger('document.deleteDocument', 'file', 'controller', 'triggerDeleteAttached', 'after')) return true;
  59. if(!$oModuleModel->getTrigger('comment.insertComment', 'file', 'controller', 'triggerCommentCheckAttached', 'before')) return true;
  60. if(!$oModuleModel->getTrigger('comment.insertComment', 'file', 'controller', 'triggerCommentAttachFiles', 'after')) return true;
  61. if(!$oModuleModel->getTrigger('comment.updateComment', 'file', 'controller', 'triggerCommentCheckAttached', 'before')) return true;
  62. if(!$oModuleModel->getTrigger('comment.updateComment', 'file', 'controller', 'triggerCommentAttachFiles', 'after')) return true;
  63. if(!$oModuleModel->getTrigger('comment.deleteComment', 'file', 'controller', 'triggerCommentDeleteAttached', 'after')) return true;
  64. // 2009. 6. 9 Delete all the attachements when auto-saved document is deleted
  65. if(!$oModuleModel->getTrigger('editor.deleteSavedDoc', 'file', 'controller', 'triggerDeleteAttached', 'after')) return true;
  66. // 2007. 10. 17 Create a trigger to delete all the attachements when the module is deleted
  67. if(!$oModuleModel->getTrigger('module.deleteModule', 'file', 'controller', 'triggerDeleteModuleFiles', 'after')) return true;
  68. // 2007. 10. 19 Call a trigger to set up the file permissions before displaying
  69. if(!$oModuleModel->getTrigger('module.dispAdditionSetup', 'file', 'view', 'triggerDispFileAdditionSetup', 'before')) return true;
  70. // A column to determine a target type
  71. if(!$oDB->isColumnExists('files', 'upload_target_type')) return true;
  72. // 2012. 08. 29 Add a trigger to copy additional setting when the module is copied
  73. if(!$oModuleModel->getTrigger('module.procModuleAdminCopyModule', 'file', 'controller', 'triggerCopyModule', 'after')) return true;
  74. return false;
  75. }
  76. /**
  77. * Execute update
  78. *
  79. * @return Object
  80. */
  81. function moduleUpdate()
  82. {
  83. $oDB = &DB::getInstance();
  84. $oModuleModel = &getModel('module');
  85. $oModuleController = &getController('module');
  86. // 2007. 10. 17 Create a trigger to insert, update, delete documents and comments
  87. if(!$oModuleModel->getTrigger('document.insertDocument', 'file', 'controller', 'triggerCheckAttached', 'before'))
  88. $oModuleController->insertTrigger('document.insertDocument', 'file', 'controller', 'triggerCheckAttached', 'before');
  89. if(!$oModuleModel->getTrigger('document.insertDocument', 'file', 'controller', 'triggerAttachFiles', 'after'))
  90. $oModuleController->insertTrigger('document.insertDocument', 'file', 'controller', 'triggerAttachFiles', 'after');
  91. if(!$oModuleModel->getTrigger('document.updateDocument', 'file', 'controller', 'triggerCheckAttached', 'before'))
  92. $oModuleController->insertTrigger('document.updateDocument', 'file', 'controller', 'triggerCheckAttached', 'before');
  93. if(!$oModuleModel->getTrigger('document.updateDocument', 'file', 'controller', 'triggerAttachFiles', 'after'))
  94. $oModuleController->insertTrigger('document.updateDocument', 'file', 'controller', 'triggerAttachFiles', 'after');
  95. if(!$oModuleModel->getTrigger('document.deleteDocument', 'file', 'controller', 'triggerDeleteAttached', 'after'))
  96. $oModuleController->insertTrigger('document.deleteDocument', 'file', 'controller', 'triggerDeleteAttached', 'after');
  97. if(!$oModuleModel->getTrigger('comment.insertComment', 'file', 'controller', 'triggerCommentCheckAttached', 'before'))
  98. $oModuleController->insertTrigger('comment.insertComment', 'file', 'controller', 'triggerCommentCheckAttached', 'before');
  99. if(!$oModuleModel->getTrigger('comment.insertComment', 'file', 'controller', 'triggerCommentAttachFiles', 'after'))
  100. $oModuleController->insertTrigger('comment.insertComment', 'file', 'controller', 'triggerCommentAttachFiles', 'after');
  101. if(!$oModuleModel->getTrigger('comment.updateComment', 'file', 'controller', 'triggerCommentCheckAttached', 'before'))
  102. $oModuleController->insertTrigger('comment.updateComment', 'file', 'controller', 'triggerCommentCheckAttached', 'before');
  103. if(!$oModuleModel->getTrigger('comment.updateComment', 'file', 'controller', 'triggerCommentAttachFiles', 'after'))
  104. $oModuleController->insertTrigger('comment.updateComment', 'file', 'controller', 'triggerCommentAttachFiles', 'after');
  105. if(!$oModuleModel->getTrigger('comment.deleteComment', 'file', 'controller', 'triggerCommentDeleteAttached', 'after'))
  106. $oModuleController->insertTrigger('comment.deleteComment', 'file', 'controller', 'triggerCommentDeleteAttached', 'after');
  107. // 2009. 6. 9 Delete all the attachements when auto-saved document is deleted
  108. if(!$oModuleModel->getTrigger('editor.deleteSavedDoc', 'file', 'controller', 'triggerDeleteAttached', 'after'))
  109. $oModuleController->insertTrigger('editor.deleteSavedDoc', 'file', 'controller', 'triggerDeleteAttached', 'after');
  110. // 2007. 10. 17 Create a trigger to delete all the attachements when the module is deleted
  111. if(!$oModuleModel->getTrigger('module.deleteModule', 'file', 'controller', 'triggerDeleteModuleFiles', 'after'))
  112. $oModuleController->insertTrigger('module.deleteModule', 'file', 'controller', 'triggerDeleteModuleFiles', 'after');
  113. // 2007. 10. 19 Call a trigger to set up the file permissions before displaying
  114. if(!$oModuleModel->getTrigger('module.dispAdditionSetup', 'file', 'view', 'triggerDispFileAdditionSetup', 'before'))
  115. $oModuleController->insertTrigger('module.dispAdditionSetup', 'file', 'view', 'triggerDispFileAdditionSetup', 'before');
  116. // A column to determine a target type
  117. if(!$oDB->isColumnExists('files', 'upload_target_type')) $oDB->addColumn('files', 'upload_target_type', 'char', '3');
  118. // 2012. 08. 29 Add a trigger to copy additional setting when the module is copied
  119. if(!$oModuleModel->getTrigger('module.procModuleAdminCopyModule', 'file', 'controller', 'triggerCopyModule', 'after'))
  120. {
  121. $oModuleController->insertTrigger('module.procModuleAdminCopyModule', 'file', 'controller', 'triggerCopyModule', 'after');
  122. }
  123. return new Object(0, 'success_updated');
  124. }
  125. /**
  126. * Re-generate the cache file
  127. *
  128. * @return Object
  129. */
  130. function recompileCache()
  131. {
  132. }
  133. }
  134. /* End of file file.class.php */
  135. /* Location: ./modules/file/file.class.php */