Changeset 6772 for extensions/bulk_manager/element_set.php
- Timestamp:
- Aug 17, 2010, 5:47:14 PM (14 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
extensions/bulk_manager/element_set.php
r6756 r6772 44 44 45 45 // +-----------------------------------------------------------------------+ 46 // | initialize info about category | 47 // +-----------------------------------------------------------------------+ 48 49 if (!isset($_GET['cat'])) 50 { 51 $_GET['cat'] = 'caddie'; 52 } 53 54 // To element_set_(global|unit).php, we must provide the elements id of the 55 // managed category in $page['cat_elements_id'] array. 56 $page['cat_elements_id'] = array(); 57 if (is_numeric($_GET['cat'])) 58 { 59 $page['title'] = 60 get_cat_display_name_from_id( 61 $_GET['cat'], 62 PHPWG_ROOT_PATH.'admin.php?page=cat_modify&cat_id=', 63 false 46 // | initialize current set | 47 // +-----------------------------------------------------------------------+ 48 49 if (isset($_POST['submitFilter'])) 50 { 51 // echo '<pre>'; print_r($_POST); echo '</pre>'; 52 53 $_SESSION['bulk_manager_filter'] = array(); 54 55 if (isset($_POST['filter_prefilter_use'])) 56 { 57 $prefilters = array('caddie', 'last import', 'with no album', 'with no tag'); 58 if (in_array($_POST['filter_prefilter'], $prefilters)) 59 { 60 $_SESSION['bulk_manager_filter']['prefilter'] = $_POST['filter_prefilter']; 61 } 62 } 63 64 if (isset($_POST['filter_category_use'])) 65 { 66 $_SESSION['bulk_manager_filter']['category'] = $_POST['filter_category']; 67 68 if (isset($_POST['filter_category_recursive'])) 69 { 70 $_SESSION['bulk_manager_filter']['category_recursive'] = true; 71 } 72 } 73 74 if (isset($_POST['filter_level_use'])) 75 { 76 if (in_array($_POST['filter_level'], $conf['available_permission_levels'])) 77 { 78 $_SESSION['bulk_manager_filter']['level'] = $_POST['filter_level']; 79 } 80 } 81 } 82 83 if (isset($_GET['cat'])) 84 { 85 if ('caddie' == $_GET['cat']) 86 { 87 $_SESSION['bulk_manager_filter'] = array( 88 'prefilter' => 'caddie' 64 89 ); 65 66 $query = ' 67 SELECT image_id 68 FROM '.IMAGE_CATEGORY_TABLE.' 69 WHERE category_id = '.$_GET['cat'].' 70 ;'; 71 $page['cat_elements_id'] = array_from_query($query, 'image_id'); 72 } 73 else if ('caddie' == $_GET['cat']) 74 { 75 $page['title'] = l10n('caddie'); 76 77 $query = ' 90 } 91 92 if (is_numeric($_GET['cat'])) 93 { 94 $_SESSION['bulk_manager_filter'] = array( 95 'category' => $_GET['cat'] 96 ); 97 } 98 } 99 100 if (!isset($_SESSION['bulk_manager_filter'])) 101 { 102 $_SESSION['bulk_manager_filter'] = array( 103 'prefilter' => 'caddie' 104 ); 105 } 106 107 // echo '<pre>'; print_r($_SESSION['bulk_manager_filter']); echo '</pre>'; 108 109 // depending on the current filter (in session), we find the appropriate 110 // photos 111 $filter_sets = array(); 112 if (isset($_SESSION['bulk_manager_filter']['prefilter'])) 113 { 114 if ('caddie' == $_SESSION['bulk_manager_filter']['prefilter']) 115 { 116 $query = ' 78 117 SELECT element_id 79 118 FROM '.CADDIE_TABLE.' 80 119 WHERE user_id = '.$user['id'].' 81 120 ;'; 82 $page['cat_elements_id'] = array_from_query($query, 'element_id'); 83 } 84 else if ('not_linked' == $_GET['cat']) 85 { 86 $page['title'] = l10n('Not linked elements'); 87 $template->assign(array('U_ACTIVE_MENU' => 5 )); 88 89 // we are searching elements not linked to any virtual category 121 array_push( 122 $filter_sets, 123 array_from_query($query, 'element_id') 124 ); 125 } 126 127 if ('last import'== $_SESSION['bulk_manager_filter']['prefilter']) 128 { 129 $query = ' 130 SELECT MAX(date_available) AS date 131 FROM '.IMAGES_TABLE.' 132 ;'; 133 $row = pwg_db_fetch_assoc(pwg_query($query)); 134 if (!empty($row['date'])) 135 { 136 $query = ' 137 SELECT id 138 FROM '.IMAGES_TABLE.' 139 WHERE date_available BETWEEN '.pwg_db_get_recent_period_expression(1, $row['date']).' AND \''.$row['date'].'\' 140 ;'; 141 array_push( 142 $filter_sets, 143 array_from_query($query, 'id') 144 ); 145 } 146 } 147 } 148 149 if (isset($_SESSION['bulk_manager_filter']['category'])) 150 { 151 $categories = array(); 152 153 if (isset($_SESSION['bulk_manager_filter']['category_recursive'])) 154 { 155 $categories = get_subcat_ids(array($_SESSION['bulk_manager_filter']['category'])); 156 } 157 else 158 { 159 $categories = array($_SESSION['bulk_manager_filter']['category']); 160 } 161 162 $query = ' 163 SELECT DISTINCT(image_id) 164 FROM '.IMAGE_CATEGORY_TABLE.' 165 WHERE category_id IN ('.implode(',', $categories).') 166 ;'; 167 array_push( 168 $filter_sets, 169 array_from_query($query, 'image_id') 170 ); 171 } 172 173 if (isset($_SESSION['bulk_manager_filter']['level'])) 174 { 90 175 $query = ' 91 176 SELECT id 92 177 FROM '.IMAGES_TABLE.' 178 WHERE level >= '.$_SESSION['bulk_manager_filter']['level'].' 93 179 ;'; 94 $all_elements = array_from_query($query, 'id'); 95 96 $linked_to_virtual = array(); 97 98 $query = ' 99 SELECT id 100 FROM '.CATEGORIES_TABLE.' 101 WHERE dir IS NULL 102 ;'; 103 $virtual_categories = array_from_query($query, 'id'); 104 if (!empty($virtual_categories)) 105 { 106 $query = ' 107 SELECT DISTINCT(image_id) 108 FROM '.IMAGE_CATEGORY_TABLE.' 109 WHERE category_id IN ('.implode(',', $virtual_categories).') 110 ;'; 111 $linked_to_virtual = array_from_query($query, 'image_id'); 112 } 113 114 $page['cat_elements_id'] = array_diff($all_elements, $linked_to_virtual); 115 } 116 else if ('duplicates' == $_GET['cat']) 117 { 118 $page['title'] = l10n('Files with same name in more than one physical category'); 119 $template->assign(array('U_ACTIVE_MENU' => 5 )); 120 121 // we are searching related elements twice or more to physical categories 122 // 1 - Retrieve Files 123 $query = ' 124 SELECT DISTINCT(file) 125 FROM '.IMAGES_TABLE.' 126 GROUP BY file 127 HAVING COUNT(DISTINCT storage_category_id) > 1 128 ;'; 129 130 $duplicate_files = array_from_query($query, 'file'); 131 $duplicate_files[]='Nofiles'; 132 // 2 - Retrives related picture ids 133 $query = ' 134 SELECT id, file 135 FROM '.IMAGES_TABLE.' 136 WHERE file IN (\''.implode("','", $duplicate_files).'\') 137 ORDER BY file, id 138 ;'; 139 140 $page['cat_elements_id'] = array_from_query($query, 'id'); 141 } 142 elseif ('recent'== $_GET['cat']) 143 { 144 $page['title'] = l10n('Recent pictures'); 145 $query = 'SELECT MAX(date_available) AS date 146 FROM '.IMAGES_TABLE; 147 $row = pwg_db_fetch_assoc(pwg_query($query)); 148 if (!empty($row['date'])) 149 { 150 $query = 'SELECT id 151 FROM '.IMAGES_TABLE.' 152 WHERE date_available BETWEEN '.pwg_db_get_recent_period_expression(1, $row['date']).' AND \''.$row['date'].'\''; 153 $page['cat_elements_id'] = array_from_query($query, 'id'); 154 } 155 } 180 array_push( 181 $filter_sets, 182 array_from_query($query, 'id') 183 ); 184 } 185 186 $current_set = array_shift($filter_sets); 187 foreach ($filter_sets as $set) 188 { 189 $current_set = array_intersect($current_set, $set); 190 } 191 $page['cat_elements_id'] = $current_set; 192 193 // // To element_set_(global|unit).php, we must provide the elements id of the 194 // // managed category in $page['cat_elements_id'] array. 195 // $page['cat_elements_id'] = array(); 196 // if (is_numeric($_GET['cat'])) 197 // { 198 // $page['title'] = 199 // get_cat_display_name_from_id( 200 // $_GET['cat'], 201 // PHPWG_ROOT_PATH.'admin.php?page=cat_modify&cat_id=', 202 // false 203 // ); 204 // 205 // $query = ' 206 // SELECT image_id 207 // FROM '.IMAGE_CATEGORY_TABLE.' 208 // WHERE category_id = '.$_GET['cat'].' 209 // ;'; 210 // $page['cat_elements_id'] = array_from_query($query, 'image_id'); 211 // } 212 // else if ('caddie' == $_GET['cat']) 213 // { 214 // $page['title'] = l10n('caddie'); 215 // 216 // $query = ' 217 // SELECT element_id 218 // FROM '.CADDIE_TABLE.' 219 // WHERE user_id = '.$user['id'].' 220 // ;'; 221 // $page['cat_elements_id'] = array_from_query($query, 'element_id'); 222 // } 223 // else if ('not_linked' == $_GET['cat']) 224 // { 225 // $page['title'] = l10n('Not linked elements'); 226 // $template->assign(array('U_ACTIVE_MENU' => 5 )); 227 // 228 // // we are searching elements not linked to any virtual category 229 // $query = ' 230 // SELECT id 231 // FROM '.IMAGES_TABLE.' 232 // ;'; 233 // $all_elements = array_from_query($query, 'id'); 234 // 235 // $linked_to_virtual = array(); 236 // 237 // $query = ' 238 // SELECT id 239 // FROM '.CATEGORIES_TABLE.' 240 // WHERE dir IS NULL 241 // ;'; 242 // $virtual_categories = array_from_query($query, 'id'); 243 // if (!empty($virtual_categories)) 244 // { 245 // $query = ' 246 // SELECT DISTINCT(image_id) 247 // FROM '.IMAGE_CATEGORY_TABLE.' 248 // WHERE category_id IN ('.implode(',', $virtual_categories).') 249 // ;'; 250 // $linked_to_virtual = array_from_query($query, 'image_id'); 251 // } 252 // 253 // $page['cat_elements_id'] = array_diff($all_elements, $linked_to_virtual); 254 // } 255 // else if ('duplicates' == $_GET['cat']) 256 // { 257 // $page['title'] = l10n('Files with same name in more than one physical category'); 258 // $template->assign(array('U_ACTIVE_MENU' => 5 )); 259 // 260 // // we are searching related elements twice or more to physical categories 261 // // 1 - Retrieve Files 262 // $query = ' 263 // SELECT DISTINCT(file) 264 // FROM '.IMAGES_TABLE.' 265 // GROUP BY file 266 // HAVING COUNT(DISTINCT storage_category_id) > 1 267 // ;'; 268 // 269 // $duplicate_files = array_from_query($query, 'file'); 270 // $duplicate_files[]='Nofiles'; 271 // // 2 - Retrives related picture ids 272 // $query = ' 273 // SELECT id, file 274 // FROM '.IMAGES_TABLE.' 275 // WHERE file IN (\''.implode("','", $duplicate_files).'\') 276 // ORDER BY file, id 277 // ;'; 278 // 279 // $page['cat_elements_id'] = array_from_query($query, 'id'); 280 // } 281 // elseif ('recent'== $_GET['cat']) 282 // { 283 // $page['title'] = l10n('Recent pictures'); 284 // $query = 'SELECT MAX(date_available) AS date 285 // FROM '.IMAGES_TABLE; 286 // $row = pwg_db_fetch_assoc(pwg_query($query)); 287 // if (!empty($row['date'])) 288 // { 289 // $query = 'SELECT id 290 // FROM '.IMAGES_TABLE.' 291 // WHERE date_available BETWEEN '.pwg_db_get_recent_period_expression(1, $row['date']).' AND \''.$row['date'].'\''; 292 // $page['cat_elements_id'] = array_from_query($query, 'id'); 293 // } 294 // } 156 295 157 296 // +-----------------------------------------------------------------------+
Note: See TracChangeset
for help on using the changeset viewer.