function execute()
 {
     $context = $this->getContext();
     $controller = $context->getController();
     $request = $context->getRequest();
     $user = $context->getUser();
     $acs_user_info_row = $user->getAttribute('acs_user_info_row');
     // get
     $user_community_id = $request->ACSgetParameter('id');
     $target_user_info_row = ACSUser::get_user_info_row_by_user_community_id($request->getParameter('id'));
     $form = $request->ACSgetParameters();
     // 検索時
     if ($form['search']) {
         $folder_row_array = array();
         $file_info_row_array = array();
         // フォルダ検索
         if ($form['target'] != 'file') {
             $folder_row_array = ACSUserFolder::search_folder_row_array($user_community_id, $form);
         }
         // ファイル検索
         if ($form['target'] != 'folder') {
             $file_info_row_array = ACSUserFolder::search_file_info_row_array($user_community_id, $form);
         }
         foreach ($folder_row_array as $index => $folder_row) {
             $target_folder_obj = new ACSUserFolder($user_community_id, $acs_user_info_row, $folder_row['folder_id']);
             $folder_row_array[$index]['update_date'] = $target_folder_obj->folder_obj->get_update_date_yyyymmddhmi();
             // 公開レベル
             $folder_row_array[$index]['open_level_code'] = $target_folder_obj->folder_obj->get_open_level_code();
             $folder_row_array[$index]['open_level_name'] = $target_folder_obj->folder_obj->get_open_level_name();
             $open_level_master_row = ACSAccessControl::get_open_level_master_row($folder_row_array[$index]['open_level_code']);
             $folder_row_array[$index] = array_merge($folder_row_array[$index], $open_level_master_row);
             $folder_row_array[$index]['trusted_community_row_array'] = $target_folder_obj->folder_obj->get_trusted_community_row_array();
             // パス
             $path_folder_obj_array = $target_folder_obj->get_path_folder_obj_array();
             $path_array = array();
             foreach ($path_folder_obj_array as $path_folder_obj_index => $path_folder_obj) {
                 if ($path_folder_obj_index != 0) {
                     array_push($path_array, $path_folder_obj->get_folder_name());
                 }
             }
             $folder_row_array[$index]['path_array'] = $path_array;
         }
         foreach ($file_info_row_array as $index => $file_info_row) {
             $target_folder_obj = new ACSUserFolder($user_community_id, $acs_user_info_row, $file_info_row['folder_id']);
             $target_file_obj = new ACSFile($file_info_row);
             $file_info_row_array[$index]['file_size'] = $target_file_obj->get_file_size_kb();
             $file_info_row_array[$index]['update_date'] = $target_file_obj->get_update_date_yyyymmddhmi();
             $file_info_row_array[$index]['is_root_folder'] = $target_folder_obj->folder_obj->get_is_root_folder();
             // 公開レベル
             $file_info_row_array[$index]['open_level_code'] = $target_folder_obj->folder_obj->get_open_level_code();
             $file_info_row_array[$index]['open_level_name'] = $target_folder_obj->folder_obj->get_open_level_name();
             $open_level_master_row = ACSAccessControl::get_open_level_master_row($file_info_row_array[$index]['open_level_code']);
             $file_info_row_array[$index] = array_merge($file_info_row_array[$index], $open_level_master_row);
             $file_info_row_array[$index]['trusted_community_row_array'] = $target_folder_obj->folder_obj->get_trusted_community_row_array();
             // パス
             $path_folder_obj_array = $target_folder_obj->get_path_folder_obj_array();
             $path_array = array();
             foreach ($path_folder_obj_array as $path_folder_obj_index => $path_folder_obj) {
                 if ($path_folder_obj_index != 0) {
                     array_push($path_array, $path_folder_obj->get_folder_name());
                 }
             }
             array_push($path_array, $file_info_row['display_file_name']);
             $file_info_row_array[$index]['path_array'] = $path_array;
         }
     }
     // set
     $request->setAttribute('target_user_info_row', $target_user_info_row);
     $request->setAttribute('form', $form);
     $request->setAttribute('folder_row_array', $folder_row_array);
     $request->setAttribute('file_info_row_array', $file_info_row_array);
     return View::INPUT;
 }
 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を取得
     $user_community_id = $acs_user_info_row['user_community_id'];
     // ワークディレクトリの作成(存在しない場合)
     $work_dir = ACS_CONTENTS_BACKUP_DIR;
     ACSLib::make_dir($work_dir);
     $work_dir .= $user_community_id . '/';
     ACSLib::make_dir($work_dir);
     $work_dir .= ACS_BACKUP_ZIP_DIR_NAME;
     ACSLib::make_dir($work_dir);
     // バックアップ用ZIPクラスの生成
     $zip = new ACSZip($work_dir);
     // Folder, Diary ディレクトリを作成しておく(0件対応)
     ACSLib::make_dir($work_dir . '/' . ACS_BACKUP_MYFOLDER_SUBDIR_NAME);
     ACSLib::make_dir($work_dir . '/' . ACS_BACKUP_MYDIARY_SUBDIR_NAME);
     // ----- マイフォルダバックアップコンテンツの生成
     // フォルダ取得用の配列を設定
     $form = array('q' => '', 'order' => 'name');
     // フォルダの取得
     $folder_row_array = ACSUserFolder::search_folder_row_array($user_community_id, $form);
     // パス情報の設定
     foreach ($folder_row_array as $index => $folder_row) {
         $target_folder_obj = new ACSUserFolder($user_community_id, $acs_user_info_row, $folder_row['folder_id']);
         // パス
         $path_folder_obj_array = $target_folder_obj->get_path_folder_obj_array();
         $path_array = array();
         foreach ($path_folder_obj_array as $path_folder_obj_index => $path_folder_obj) {
             if ($path_folder_obj_index != 0) {
                 array_push($path_array, $path_folder_obj->get_folder_name());
             }
         }
         // ディレクトリを作成(空ディレクトリ対応)
         $zip->make_dir(ACS_BACKUP_MYFOLDER_SUBDIR_NAME . '/' . implode("/", $path_array), ACS_BACKUP_NAME_ENCODING);
     }
     // ファイルの取得
     $file_info_row_array = ACSUserFolder::search_file_info_row_array($user_community_id, $form);
     // パス情報の設定
     foreach ($file_info_row_array as $index => $file_info_row) {
         $target_folder_obj = new ACSUserFolder($user_community_id, $acs_user_info_row, $file_info_row['folder_id']);
         // パス
         $path_folder_obj_array = $target_folder_obj->get_path_folder_obj_array();
         $path_array = array();
         foreach ($path_folder_obj_array as $path_folder_obj_index => $path_folder_obj) {
             if ($path_folder_obj_index != 0) {
                 array_push($path_array, $path_folder_obj->get_folder_name());
             }
         }
         array_push($path_array, $file_info_row['display_file_name']);
         $file_info_row_array[$index]['path_array'] = $path_array;
     }
     // マイフォルダのフォルダ構成でファイルを配置
     $dest_path_array = array();
     foreach ($file_info_row_array as $file_info_row) {
         $from_path = ACS_FOLDER_DIR . $file_info_row['server_file_name'];
         $dest_path = ACS_BACKUP_MYFOLDER_SUBDIR_NAME . '/' . implode("/", $file_info_row['path_array']);
         // 同一名ファイル時の連番付加対応
         $dest_path_array[$dest_path]++;
         if ($dest_path_array[$dest_path] > 1) {
             $count = $dest_path_array[$dest_path];
             mb_ereg('.*(\\.[^\\.\\/]*$)', $dest_path, $matches);
             $ext = $matches[1];
             if ($ext) {
                 $dest_path = mb_ereg_replace('\\.[^\\.\\/]*$', '', $dest_path);
             }
             $dest_path .= '_' . ($count - 1) . $ext;
         }
         $zip->entry($from_path, $dest_path, ACS_BACKUP_NAME_ENCODING);
     }
     // ----- マイダイアリバックアップコンテンツの生成
     $diary_backup = new ACSDiaryBackup($user_community_id, $work_dir . '/' . ACS_BACKUP_MYDIARY_SUBDIR_NAME);
     $diary_backup->make_contents(ACS_BACKUP_NAME_ENCODING);
     // ダウンロード時ZIPファイル名の生成
     $download_filename = 'ACSBackup_' . date('Ymd', time()) . '.zip';
     // バックアップzipアーカイブの作成(zip圧縮の実行)
     $zip->commpress();
     $zip->download($download_filename);
     // 不必要なワークファイルの削除
     $zip->clear_work_dir_and_files();
 }