kkhk
Advanced Member | Редактировать | Профиль | Сообщение | ICQ | Цитировать | Сообщить модератору Этот хак добавляет в профиль ссылку "Сортировать категории", ведь многим не нравиться например, что катагория Общии выше чем Тематические (на примере этого форума), так вот в профиле это можно будет очень легко сделать!(утверждают авторы хака) кто протестирует пусть сообщит о работоспособности. Итак начнем! Идем в админ центр, находим Skins & Templates » Manage HTML Templates » Manage HTML » ищем Menu_bar » Edit и после строчки Код: • <a href='{$base_url}&act=UserCP&CODE=04'>{ibf.lang.m_board_opt}</a><br> | добавляем Код: • <a href='{$base_url}&act=UserCP&CODE=52'>Сортировать катагории</a><br> | Далее открываем Boards.php - ищем Код: // Get the forums and category info from the DB $last_c_id = -1; | Ниже добавляем Код: if($order_cookie = $std->my_getcookie('catorder')) { $order = explode("p8o", $order_cookie); foreach($order as $v) {if(!is_numeric($v)) {continue;} $order_f[] = "c.id='$v' DESC"; } $order_f[] = 'c.position'; $order = implode(",", $order_f); } else {$order = "c.position";} Below you will see a $DB query. The bottom is: order by c.position, f.position"); REPLACE WITH: order by $order, f.position"); | Открываем Usercp.php, ищем Код: //------------------------------ case '50': $this->forum_tracker(); break; case '51': $this->remove_forum_tracker(); break; //------------------------------- | ниже добавляем Код: case '52': $this->forum_order(); break; case '53': $this->do_forum_order(); break; //------------------------------- | ищем Код: $print->add_output("$this->output"); $print->do_output( array( 'TITLE' => $this->page_title, 'JS' => 1, NAV => $this->nav ) ); } | ниже добавляем Код: function do_forum_order() {global $ibforums, $std, $print; foreach($ibforums->input['order'] as $v) {if(isset($cach[$v])) {$ibforums->lang['my_error'] = "You have selected the same position for more then one category, please try again."; $std->Error( array( 'LEVEL' => 1, 'MSG' => 'my_error' ) );} $cach[$v] = 1; } $order = implode("p8o", $ibforums->input['order']); $std->my_setcookie('catorder', $order); $print->redirect_screen( $ibforums->lang['set_updated'], "act=UserCP&CODE=52" ); } function forum_order() {global $ibforums, $std, $DB; $DB->query("SELECT f.*, c.id as cat_id, c.position as cat_position, c.state as cat_state, c.name as cat_name, c.description as cat_desc, c.image, c.url from ibforums f, ibcategories c WHERE f.category=c.id order by c.position, f.position"); while ( $r = $DB->fetch_row() ) { if ($last_c_id != $r['cat_id']) { $this->cats[ $r['cat_id'] ] = array( 'id' => $r['cat_id'], 'position' => $r['cat_position'], 'state' => $r['cat_state'], 'name' => $r['cat_name'], 'description' => $r['cat_desc'], 'image' => $r['image'], 'url' => $r['url'], ); $last_c_id = $r['cat_id']; } if ($r['parent_id'] > 0) { $this->children[ $r['parent_id'] ][$r['id']] = $r; } else { $this->forums[ $r['id'] ] = $r; } } $run = 1; foreach ($this->cats as $cat_id => $cat_data) {if (! $cat_data['state'] ) { continue; } foreach ($this->forums as $forum_id => $forum_data) { if ($forum_data['read_perms'] != '*') { if ( ! preg_match( "/(^|,)".$ibforums->member['mgroup']."(,|$)/", $forum_data['read_perms'] ) ) { continue; } } if ($forum_data['category'] == $cat_id AND $forum_data['parent_id'] == '-1') { $forums[$cat_id][] = $forum_data['name']; } } if (isset($forums[$cat_id])) { $cats[$cat_id] = $cat_data['name']; $order_val[$cat_id] = $run; $run++; } } $mid = ""; if($order_cookie = $std->my_getcookie('catorder')) {$order = explode("p8o", $order_cookie); $run = 1; foreach($order as $v) {$order_val[$v] = $run; $run++; } } foreach($cats as $id => $name) {$select = $order_val[$id]; $nos = ""; $no = 0; while($no++ < count($cats)) {if($no == $select) {$sel = " selected";} $nos .= "<option value='$no'$sel>$no</option>n"; $sel = ""; } $mid .= "<tr><td width='15%' valign='middle' align='center'>n<select name='order[{$id}]' class='forminput'>n$nos</select>n</td>n"; $mid .= "<td width='85%' valign='middle'><b>$name</b>n<br>Forums: "; $mid .= implode(", ", $forums[$id]); $mid .= "n</td></tr>"; } $output = <<<data <td colspan='2' class='category'><b>Category Order</b></td> </tr> <form action="index.php" method="post" name='form1'> <input type='hidden' name='act' value='UserCP'> <input type='hidden' name='CODE' value='53'> <input type='hidden' name='s' value='{$ibforums->session_id}'> <tr> <td class='row1' colspan='2'>Please select the order you wish for the categories to display on the main forum page.</td> </tr> <tr> <td class='row1' align='left'> <table width='100%' cellspacing='5'> {$mid} </table></td> </tr> <tr> <td class='row2' align='center' colspan='2'><input type="submit" name='change_email' value="Change Category Order" class='forminput'></td> </tr> </form> data; $this->page_title = "Category Order"; $this->nav = array( "<a href='".$this->base_url."&act=UserCP&CODE=00'>".$ibforums->lang['t_title']."</a>" ); $this->output = $output; } | Вот и все, пользуемся на здоровье.
---------- infix* - зашибательский weblog Говори кратко, проси мало, уходи борзо |
| Всего записей: 930 | Зарегистр. 12-10-2001 | Отправлено: 11:04 13-02-2003 | Исправлено: kkhk, 18:09 13-02-2003 |
|