--- /dev/null
+<?php
+/**
+ * ¥Õ¥©¥ë¥À °ÜÆ°½èÍý
+ *
+ * @author kuwayama
+ * @version $Revision: 1.5 $ $Date: 2007/03/27 02:12:36 $
+ */
+//require_once(ACS_CLASS_DIR . 'ACSCommunityFolder.class.php');
+class MoveFolderAction extends BaseAction
+{
+ function execute () {
+ $context = $this->getContext();
+ $controller = $context->getController();
+ $request = $context->getRequest();
+ $user = $context->getUser();
+ $acs_user_info_row = $user->getAttribute('acs_user_info_row');
+
+ // ÂоݤȤʤë¥æ¡¼¥¶¥³¥ß¥å¥Ë¥Æ¥£ID¤ò¼èÆÀ
+ $target_community_id = $request->getParameter('community_id');
+ // ÂоݤȤʤë¥Õ¥©¥ë¥ÀID¤ò¼èÆÀ
+ $target_community_folder_id = $request->getParameter('folder_id');
+
+ // ɽ¼¨¤¹¤ë¥Ú¡¼¥¸¤Î½êͼԾðÊó¼èÆÀ
+ $target_community_info_row = ACSCommunity::get_community_row($target_community_id);
+ // ¥Õ¥©¥ë¥À¾ðÊó¼èÆÀ
+ $community_folder_obj = new ACSCommunityFolder($target_community_id,
+ $acs_user_info_row,
+ $target_community_folder_id);
+
+ // set
+ $request->setAttribute('target_community_info_row', $target_community_info_row);
+ $request->setAttribute('community_folder_obj', $community_folder_obj);
+
+ // °ÜÆ°Àè¥Õ¥©¥ë¥ÀID
+ $move_target_folder_id = $request->getParameter('selected_move_folder_id');
+
+ /* -------- */
+ /* °ÜÆ°½èÍý */
+ /* -------- */
+ ACSDB::_do_query("BEGIN");
+
+ // °ÜÆ°À褬¥ë¡¼¥È¥Õ¥©¥ë¥À¤Î¾ì¹ç¤Ï¡¢¸ø³«ÈϰϤò¥»¥Ã¥È¤¹¤ëɬÍפ¬¤¢¤ë¤¿¤á¡¢
+ // ¥ë¡¼¥È¥Õ¥©¥ë¥À¤Î¾ðÊó¤ò¼èÆÀ¤·¤Æ¤ª¤¯
+ $root_folder_obj = ACSFolder::get_folder_instance($community_folder_obj->get_root_folder_row($community_folder_obj->get_community_id()));
+
+ // ¥Õ¥©¥ë¥À
+ $folder_row_array = array();
+ $selected_folder_id_array = $request->getParameter('selected_folder');
+ if ($selected_folder_id_array) {
+ foreach ($selected_folder_id_array as $folder_id) {
+ // °ÜÆ°¤¹¤ë¥Õ¥©¥ë¥À¼èÆÀ
+ $_folder_obj = $community_folder_obj->folder_obj->get_folder_obj($folder_id);
+
+ // °ÜÆ°½èÍý
+ $ret = $_folder_obj->move_folder($move_target_folder_id);
+ if (!$ret) {
+ ACSDB::_do_query("ROLLBACK;");
+ print "ERROR: Move folder failed.";
+ exit;
+ }
+
+ // ¸ø³«ÈϰϤò¹¹¿·
+ if ($move_target_folder_id == $root_folder_obj->get_folder_id()) {
+ // ¥ë¡¼¥È¥Õ¥©¥ë¥À¤Ø°ÜÆ°¤Î¾ì¹ç¡¢¸ø³«ÈϰϤò¥»¥Ã¥È
+ $new_open_level_code = $community_folder_obj->folder_obj->get_open_level_code();
+ $new_trusted_community_row_array = $community_folder_obj->folder_obj->get_trusted_community_row_array();
+
+ } else {
+ // ¥ë¡¼¥È¥Õ¥©¥ë¥À°Ê³°¤Ø°ÜÆ°¤Î¾ì¹ç¡¢¸ø³«ÈϰϤò¥ê¥»¥Ã¥È
+ $new_open_level_code = "";
+ $new_trusted_community_row_array = array();
+ }
+ $ret = $_folder_obj->update_open_level_code($new_open_level_code, $new_trusted_community_row_array);
+ if (!$ret) {
+ ACSDB::_do_query("ROLLBACK;");
+ print "ERROR: Move folder failed.";
+ exit;
+ }
+ }
+ }
+
+ // ¥Õ¥¡¥¤¥ë
+ $file_row_array = array();
+ $selected_file_id_array = $request->getParameter('selected_file');
+ if ($selected_file_id_array) {
+ foreach ($selected_file_id_array as $file_id) {
+
+ // °ÜÆ°½èÍý
+ $file_obj = $community_folder_obj->folder_obj->get_file_obj($file_id);
+ $ret = $community_folder_obj->folder_obj->move_file($file_obj, $move_target_folder_id);
+ //$ret = $_file_obj->rename_display_file_name($new_file_name);
+ if (!$ret) {
+ ACSDB::_do_query("ROLLBACK;");
+ print "ERROR: Move file failed.";
+ exit;
+ }
+ }
+ }
+
+ ACSDB::_do_query("COMMIT;");
+
+ // ¸ø³«ÍÑ¥Õ¥¡¥¤¥ë¾ðÊ󹹿·
+ $form['folder_id'] = $move_target_folder_id;
+ ACSFileDetailInfo::update_file_public_access($file_id, $form);
+
+ // ¥Õ¥©¥ë¥Àɽ¼¨¥¢¥¯¥·¥ç¥ó¸Æ¤Ó½Ð¤·
+ $folder_action = $this->getControllerPath('Community', 'Folder');
+ $folder_action .= '&community_id=' . $target_community_id;
+ $folder_action .= '&folder_id=' . $target_community_folder_id;
+
+ header("Location: $folder_action");
+ }
+
+ function validate () {
+ return TRUE;
+ }
+
+ function registerValidators (&$validatorManager) {
+ /* ɬ¿Ü¥Á¥§¥Ã¥¯ */
+ parent::regValidateName($validatorManager,
+ "selected_move_folder_id",
+ true,
+ ACSMsg::get_msg('Community', 'MoveFolderAction.class.php', 'M001'));
+ }
+
+ function handleError () {
+ $context = $this->getContext();
+ $controller = $context->getController();
+ // °ÜÆ°°ìÍ÷¥¢¥¯¥·¥ç¥ó¸Æ¤Ó½Ð¤·
+ $controller->forward('Community', 'MoveFolderList');
+ }
+
+ function isSecure () {
+ return false;
+ }
+
+ function getCredential () {
+ return array('COMMUNITY_MEMBER');
+ }
+}
+?>