Changeset 6698 for trunk/admin
- Timestamp:
- Jul 23, 2010, 11:33:56 PM (14 years ago)
- Location:
- trunk/admin
- Files:
-
- 3 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/admin/cat_list.php
r6363 r6698 56 56 function save_categories_order($categories) 57 57 { 58 $current_rank_for_id_uppercat = array(); 58 59 $current_rank = 0; 60 59 61 $datas = array(); 60 foreach ($categories as $id) 61 { 62 array_push($datas, array('id' => $id, 'rank' => ++$current_rank)); 62 foreach ($categories as $category) 63 { 64 if (is_array($category)) 65 { 66 $id = $category['id']; 67 $id_uppercat = $category['id_uppercat']; 68 69 if (!isset($current_rank_for_id_uppercat[$id_uppercat])) 70 { 71 $current_rank_for_id_uppercat[$id_uppercat] = 0; 72 } 73 $current_rank = ++$current_rank_for_id_uppercat[$id_uppercat]; 74 } 75 else 76 { 77 $id = $category; 78 $current_rank++; 79 } 80 81 array_push($datas, array('id' => $id, 'rank' => $current_rank)); 63 82 } 64 83 $fields = array('primary' => array('id'), 'update' => array('rank')); … … 112 131 else if (isset($_POST['submitOrder'])) 113 132 { 114 asort($_POST['catOrd'], SORT_NUMERIC); 115 save_categories_order(array_keys($_POST['catOrd'])); 116 117 array_push( 118 $page['infos'], 119 l10n('Categories manual order was saved') 120 ); 121 } 122 // sort categories alpha-numerically 123 else if (isset($_POST['submitOrderAlphaNum'])) 124 { 125 $query = ' 126 SELECT id, name 133 if ('manual' == $_POST['order_type']) 134 { 135 asort($_POST['catOrd'], SORT_NUMERIC); 136 save_categories_order(array_keys($_POST['catOrd'])); 137 138 array_push( 139 $page['infos'], 140 l10n('Categories manual order was saved') 141 ); 142 } 143 else 144 { 145 $query = ' 146 SELECT id 127 147 FROM '.CATEGORIES_TABLE.' 128 148 WHERE id_uppercat '. 129 149 (!isset($_GET['parent_id']) ? 'IS NULL' : '= '.$_GET['parent_id']).' 130 150 ;'; 131 $result = pwg_query($query); 132 while ($row = pwg_db_fetch_assoc($result)) 133 { 134 $categories[ $row['id'] ] = strtolower($row['name']); 135 } 136 137 asort($categories, SORT_REGULAR); 138 save_categories_order(array_keys($categories)); 139 140 array_push( 141 $page['infos'], 142 l10n('Categories ordered alphanumerically') 143 ); 144 } 145 // sort categories alpha-numerically reverse 146 else if (isset($_POST['submitOrderAlphaNumReverse'])) 147 { 148 $query = ' 149 SELECT id, name 151 $category_ids = array_from_query($query, 'id'); 152 153 if (isset($_POST['recursive'])) 154 { 155 $category_ids = get_subcat_ids($category_ids); 156 } 157 158 $categories = array(); 159 $names = array(); 160 $id_uppercats = array(); 161 162 $query = ' 163 SELECT id, name, id_uppercat 150 164 FROM '.CATEGORIES_TABLE.' 151 WHERE id_uppercat '. 152 (!isset($_GET['parent_id']) ? 'IS NULL' : '= '.$_GET['parent_id']).' 165 WHERE id IN ('.implode(',', $category_ids).') 153 166 ;'; 154 $result = pwg_query($query); 155 while ($row = pwg_db_fetch_assoc($result)) 156 { 157 $categories[ $row['id'] ] = strtolower($row['name']); 158 } 159 160 arsort($categories, SORT_REGULAR); 161 save_categories_order(array_keys($categories)); 162 163 array_push( 164 $page['infos'], 165 l10n('Categories ordered alphanumerically reverse') 166 ); 167 $result = pwg_query($query); 168 while ($row = pwg_db_fetch_assoc($result)) 169 { 170 array_push( 171 $categories, 172 array( 173 'id' => $row['id'], 174 'id_uppercat' => $row['id_uppercat'], 175 ) 176 ); 177 array_push( 178 $names, 179 $row['name'] 180 ); 181 } 182 183 array_multisort( 184 $names, 185 SORT_REGULAR, 186 'asc' == $_POST['ascdesc'] ? SORT_ASC : SORT_DESC, 187 $categories 188 ); 189 save_categories_order($categories); 190 191 array_push( 192 $page['infos'], 193 l10n('Categories automatically sorted') 194 ); 195 } 167 196 } 168 197 -
trunk/admin/themes/default/default-layout.css
r6622 r6698 70 70 71 71 /* categoryOrdering */ 72 FORM#categoryOrdering .orderParams { 73 line-height:30px; 74 margin-bottom:10px; 75 } 76 72 77 SELECT.categoryList { 73 78 width: 100%; -
trunk/admin/themes/default/template/cat_list.tpl
r6363 r6698 17 17 cat = ar[i].split('cat_'); 18 18 document.getElementsByName('catOrd[' + cat[1] + ']')[0].value = i; 19 } 20 }); 21 22 jQuery("input[name=order_type]").click(function () {ldelim} 23 jQuery("#automatic_order_params").hide(); 24 if (jQuery("input[name=order_type]:checked").val() == "automatic") {ldelim} 25 jQuery("#automatic_order_params").show(); 19 26 } 20 27 }); … … 40 47 {if count($categories) } 41 48 <form id="categoryOrdering" action="{$F_ACTION}" method="post"> 42 <p> 43 <input type="hidden" name="pwg_token" value="{$PWG_TOKEN}"> 49 <input type="hidden" name="pwg_token" value="{$PWG_TOKEN}"> 50 51 <div class="orderParams"> 44 52 <input class="submit" name="submitOrder" type="submit" value="{'Save order'|@translate}" {$TAG_INPUT_ENABLED}> 45 <input class="submit" name="submitOrderAlphaNum" type="submit" value="{'Order alphanumerically'|@translate}" {$TAG_INPUT_ENABLED}> 46 <input class="submit" name="submitOrderAlphaNumReverse" type="submit" value="{'Order alphanumerically reverse'|@translate}" {$TAG_INPUT_ENABLED}> 47 </p> 53 <label><input type="radio" name="order_type" value="manual" checked="checked"> {'manual order'|@translate}</label> 54 <label><input type="radio" name="order_type" value="automatic"> {'automatic order'|@translate}</label> 55 <span id="automatic_order_params" style="display:none"> 56 <select name="ascdesc"> 57 <option value="asc">{'ascending'|@translate}</option> 58 <option value="desc">{'descending'|@translate}</option> 59 </select> 60 <label><input type="checkbox" name="recursive"> {'apply to sub-categories'|@translate}</label> 61 </span> 62 </div> 63 48 64 <ul class="categoryUl"> 49 65 … … 86 102 {/foreach} 87 103 </ul> 88 <p>89 <input class="submit" name="submitOrder" type="submit" value="{'Save order'|@translate}" {$TAG_INPUT_ENABLED}>90 <input class="submit" name="submitOrderAlphaNum" type="submit" value="{'Order alphanumerically'|@translate}" {$TAG_INPUT_ENABLED}>91 <input class="submit" name="submitOrderAlphaNumReverse" type="submit" value="{'Order alphanumerically reverse'|@translate}" {$TAG_INPUT_ENABLED}>92 </p>93 94 104 </form> 95 105 {/if}
Note: See TracChangeset
for help on using the changeset viewer.