--- /dev/null
+<?php
+/**
+ * ACS User Folder
+ *
+ * @author kuwayama
+ * @version $Revision: 1.13 $ $Date: 2008/04/24 16:00:00 y-yuki Exp $
+ */
+require_once(ACS_CLASS_DIR . 'ACSGenericFolder.class.php');
+
+define('_ACSUSERFOLDER_COMMUNITY_TYPE_MASTER',
+ ACSMsg::get_mst('community_type_master','D10'));
+
+class ACSUserFolder extends ACSGenericFolder
+{
+ /* ¥³¥ß¥å¥Ë¥Æ¥£¥¿¥¤¥×̾ */
+ var $community_type_name = _ACSUSERFOLDER_COMMUNITY_TYPE_MASTER;
+
+ /**
+ * ¥³¥ó¥¹¥È¥é¥¯¥¿
+ *
+ * @param $user_community_id
+ * @param $acs_user_info_row ¥¢¥¯¥»¥¹¼Ô¾ðÊó
+ * @param $folder_id
+ */
+ function ACSUserFolder ($user_community_id, $acs_user_info_row, $folder_id) {
+ /* ¥Õ¥©¥ë¥ÀID¤Î»ØÄ꤬¤Ê¤¤¾ì¹ç¡¢¥ë¡¼¥È¥Õ¥©¥ë¥À¤ò¼èÆÀ¤¹¤ë */
+ if ($folder_id == "") {
+ $folder_row = $this->get_root_folder_row($user_community_id);
+
+ $folder_id = $folder_row['folder_id'];
+ }
+
+ // ¥æ¡¼¥¶¥Õ¥©¥ë¥À¤Ç¤Ï¡¢¼èÆÀÂоݤΥե©¥ë¥À¾ðÊó¤Èɽ¼¨¤¹¤ë¥Õ¥©¥ë¥À¤ÏƱ°ì
+ parent::ACSGenericFolder($user_community_id, $acs_user_info_row, $folder_id, array($folder_id));
+ }
+
+ /**
+ * ¥Õ¥©¥ë¥À¸¡º÷
+ *
+ * @param $user_community_id
+ * @param $form ¸¡º÷¾ò·ï
+ * @return ¥Õ¥©¥ë¥À¾ðÊó¤ÎÇÛÎó
+ */
+ function search_folder_row_array($user_community_id, $form) {
+ $user_community_id = pg_escape_string($user_community_id);
+
+ $sql = "SELECT *";
+ $sql .= " FROM folder";
+ $sql .= " WHERE folder.community_id = '$user_community_id'";
+ $sql .= " AND folder.parent_folder_id is not null";
+
+ if ($form['q'] != '') {
+ $query_array_array = ACSLib::get_query_array_array($form['q']);
+ $where_sql = '';
+ foreach ($query_array_array as $query_array) {
+ if (!count($query_array)) {
+ continue;
+ }
+
+ $sub_where_sql = '';
+ foreach ($query_array as $query) {
+ $query = pg_escape_string($query);
+ ACSLib::escape_ilike($query);
+
+ if ($sub_where_sql != '') {
+ $sub_where_sql .= " OR ";
+ }
+
+ $sub_where_sql .= "(";
+ $sub_where_sql .= " folder.folder_name ILIKE '%$query%'";
+ $sub_where_sql .= " OR folder.comment ILIKE '%$query%'";
+ $sub_where_sql .= ")";
+ }
+
+ if ($sub_where_sql != '') {
+ if ($where_sql != '') {
+ $where_sql .= " AND ";
+ }
+ $where_sql .= "($sub_where_sql)";
+ }
+ }
+
+ if ($where_sql != '') {
+ $sql .= " AND ($where_sql)";
+ }
+ }
+ //
+
+ // ORDER
+ if ($form['order'] == 'update_date') {
+ $sql .= " ORDER BY folder.update_date DESC";
+ } else {
+ $sql .= " ORDER BY folder.folder_name ASC";
+ }
+
+ $row_array = ACSDB::_get_row_array($sql);
+ return $row_array;
+ }
+
+ /**
+ * ¥Õ¥¡¥¤¥ë¸¡º÷
+ *
+ * @param $user_community_id
+ * @param $form ¸¡º÷¾ò·ï
+ * @return ¥Õ¥©¥ë¥À¾ðÊó¤ÎÇÛÎó
+ */
+ function search_file_info_row_array($user_community_id, $form) {
+ $user_community_id = pg_escape_string($user_community_id);
+
+ $sql = "SELECT *";
+ $sql .= " FROM folder, folder_file, file_info";
+ $sql .= " WHERE folder.community_id = '$user_community_id'";
+ $sql .= " AND folder.folder_id = folder_file.folder_id";
+ $sql .= " AND folder_file.file_id = file_info.file_id";
+ $sql .= " AND file_info.owner_community_id = '$user_community_id'";
+
+ if ($form['q'] != '') {
+ $query_array_array = ACSLib::get_query_array_array($form['q']);
+ $where_sql = '';
+ foreach ($query_array_array as $query_array) {
+ if (!count($query_array)) {
+ continue;
+ }
+
+ $sub_where_sql = '';
+ foreach ($query_array as $query) {
+ $query = pg_escape_string($query);
+ ACSLib::escape_ilike($query);
+
+ if ($sub_where_sql != '') {
+ $sub_where_sql .= " OR ";
+ }
+
+ $sub_where_sql .= "(";
+ $sub_where_sql .= " file_info.display_file_name ILIKE '%$query%'";
+ $sub_where_sql .= " OR file_info.comment ILIKE '%$query%'";
+ $sub_where_sql .= ")";
+ }
+
+ if ($sub_where_sql != '') {
+ if ($where_sql != '') {
+ $where_sql .= " AND ";
+ }
+ $where_sql .= "($sub_where_sql)";
+ }
+ }
+
+ if ($where_sql != '') {
+ $sql .= " AND ($where_sql)";
+ }
+ }
+ //
+
+ // ORDER
+ if ($form['order'] == 'update_date') {
+ $sql .= " ORDER BY file_info.update_date DESC";
+ } else {
+ $sql .= " ORDER BY file_info.display_file_name ASC";
+ }
+
+ $row_array = ACSDB::_get_row_array($sql);
+ return $row_array;
+ }
+
+ /**
+ * ¥Õ¥©¥ë¥ÀÁ´ÂΤθø³«ÈÏ°Ï¥»¥Ã¥È
+ * ¥æ¡¼¥¶¤Î¥Õ¥©¥ë¥À¤Î¾ì¹ç¤Ï¡¢°ìÈ̸ø³«
+ *
+ * @param $community_id
+ */
+ function set_contents_folder_open_level ($community_id) {
+ $open_level_code = "";
+ $open_level_name = "";
+
+ // ¥Õ¥©¥ë¥ÀÁ´ÂΤθø³«ÈÏ°Ï °ìÈ̸ø³«¤ò¼èÆÀ
+ $open_level_master_row_array = ACSAccessControl::get_open_level_master_row_array(ACSMsg::get_mst('community_type_master','D10'), ACSMsg::get_mst('contents_type_master','D32'));
+ foreach ($open_level_master_row_array as $open_level_master_row) {
+ if ($open_level_master_row['open_level_name'] == ACSMsg::get_mst('open_level_master','D01')) {
+ $open_level_code = $open_level_master_row['open_level_code'];
+ $open_level_name = $open_level_master_row['open_level_name'];
+
+ break;
+ }
+ }
+
+ $this->open_level_code = $open_level_code;
+ $this->open_level_name = $open_level_name;
+
+ // ±ÜÍ÷µö²Ä¥³¥ß¥å¥Ë¥Æ¥£¥»¥Ã¥È
+ // ÀßÄê¤Ê¤·
+ $this->set_contents_folder_trusted_community_row_array(array());
+ }
+
+ /**
+ * ¥Õ¥©¥ë¥À¤Ë¥¢¥¯¥»¥¹¸¢¤¬¤¢¤ë¤«
+ *
+ * @param $target_user_info_row ɽ¼¨Âоݥޥ¤¥Ú¡¼¥¸¾ðÊó
+ * @return true / false
+ */
+ function has_privilege ($target_user_info_row) {
+ $ret_folder_obj_array = array();
+
+ /* role_array ¼èÆÀ */
+ $role_array = ACSAccessControl::get_user_community_role_array($this->get_acs_user_info_row(), $target_user_info_row);
+
+ $folder_obj = $this->get_folder_obj();
+ $ret_folder_obj = ACSAccessControl::get_valid_obj_row_array_for_user_community($this->get_acs_user_info_row(), $role_array, array($folder_obj));
+
+ if ($ret_folder_obj) {
+ return true;
+
+ // ¤Ê¤¤¾ì¹ç¤Ï¡¢¥¢¥¯¥»¥¹ÉÔ²Ä
+ } else {
+ return false;
+ }
+ }
+
+ /**
+ * ¥Þ¥¤¥Õ¥ì¥ó¥º¤Î¿·Ãå¥Õ¥¡¥¤¥ë¾ðÊó¤ò¼èÆÀ¤¹¤ë
+ *
+ * @param $user_community_id ¥æ¡¼¥¶¥³¥ß¥å¥Ë¥Æ¥£ID (¥À¥¤¥¢¥ê¡¼¤Ø¤Î¥¢¥¯¥»¥¹¼Ô¤È¤Ê¤ë¥æ¡¼¥¶)
+ * $days ¼èÆÀ¤¹¤ëÆü¿ô(ºÇ¶á²¿Æü´Ö¤Î¿·Ãå¾ðÊó¤ò¼èÆÀ)
+ * @return ¿·Ãå¥Õ¥©¥ë¥À°ìÍ÷ (Ï¢ÁÛÇÛÎó¤ÎÇÛÎó)
+ */
+ function get_new_friends_file_row_array($user_community_id, $days=false, $offset=false) {
+ // ¥Þ¥¤¥Õ¥ì¥ó¥º¤Î¥æ¡¼¥¶¥³¥ß¥å¥Ë¥Æ¥£ID¤ÎCSV¤òºîÀ®¤¹¤ë
+ // ¥Þ¥¤¥Õ¥ì¥ó¥º¤Î¾ò·ïcsvʸ»úÎó¼èÆÀ
+ $csv_string = ACSUserFolder::get_new_friends_csv_string($user_community_id);
+
+ $row_array = array();
+
+ if ($csv_string!='') {
+ // ¥Þ¥¤¥Õ¥ì¥ó¥º¥Õ¥©¥ë¥À¤Î¿·Ãå¾ðÊó¤ò¼èÆÀ
+ $row_array = ACSUserFolder::get_new_folder_row_array(
+ $user_community_id, $csv_string, $days, $offset);
+ }
+
+ return $row_array;
+
+ }
+
+ /**
+ * ¥Þ¥¤¥Õ¥ì¥ó¥º¤Îcsvʸ»úÎó¤ò¼èÆÀ¤¹¤ë
+ *
+ * @param $user_community_id ¥æ¡¼¥¶¥³¥ß¥å¥Ë¥Æ¥£ID (¥¢¥¯¥»¥¹¼Ô¤È¤Ê¤ë¥æ¡¼¥¶)
+ * @return csvʸ»úÎó
+ */
+ function get_new_friends_csv_string($user_community_id) {
+
+ // ¥Þ¥¤¥Õ¥ì¥ó¥º¤Î¥æ¡¼¥¶¥³¥ß¥å¥Ë¥Æ¥£ID¤ÎCSV¤òºîÀ®¤¹¤ë
+ // ¥Þ¥¤¥Õ¥ì¥ó¥º¤Î¼èÆÀ
+ $friends_row_array = ACSUser::get_simple_friends_row_array($user_community_id);
+
+ // ¥Þ¥¤¥Õ¥ì¥ó¥º¤Î¾ò·ïcsvʸ»úÎó¼èÆÀ
+ $csv_string =
+ ACSLib::get_csv_string_from_array($friends_row_array, 'user_community_id');
+
+ return $csv_string;
+ }
+
+ /**
+ * ¥Þ¥¤¥Õ¥ì¥ó¥º¤Î¿·Ãå¥Õ¥©¥ë¥À¾ðÊó¤ò¼èÆÀ¤¹¤ë
+ *
+ * @param $user_community_id ¥æ¡¼¥¶¥³¥ß¥å¥Ë¥Æ¥£ID (¥À¥¤¥¢¥ê¡¼¤Ø¤Î¥¢¥¯¥»¥¹¼Ô¤È¤Ê¤ë¥æ¡¼¥¶)
+ * @return ¿·Ãå¥Õ¥©¥ë¥À°ìÍ÷ (Ï¢ÁÛÇÛÎó¤ÎÇÛÎó)
+ */
+ function get_new_friends_folder_row_array($user_community_id) {
+
+ // ¥Þ¥¤¥Õ¥ì¥ó¥º¤Î¥æ¡¼¥¶¥³¥ß¥å¥Ë¥Æ¥£ID¤ÎCSV¤òºîÀ®¤¹¤ë
+ // ¥Þ¥¤¥Õ¥ì¥ó¥º¤Î¼èÆÀ
+ $friends_row_array = ACSUser::get_simple_friends_row_array($user_community_id);
+
+ // ¥Þ¥¤¥Õ¥ì¥ó¥º¤Î¾ò·ïcsvʸ»úÎó¼èÆÀ
+ $csv_string =
+ ACSLib::get_csv_string_from_array($friends_row_array, 'user_community_id');
+
+ // ¥Þ¥¤¥Õ¥ì¥ó¥º¥Õ¥©¥ë¥À¤Î¿·Ãå¾ðÊó¤ò¼èÆÀ
+ $row_array = ACSUserFolder::get_new_folder_row_array(
+ $user_community_id, $csv_string);
+
+ return $row_array;
+
+ }
+}
+?>