Сворачивание меню в админке

G

Gemini_13

Гость
#1
Название: Сворачивание меню в админке
Автор: Wertos
Версия движка: R446
Описание: Мод добавляет функцию сворачивания меню в административном разделе.
Cложность установки: Легкая
Время, необходимое для установки: ~ 5 минут

Открыть admin/index.php

Найти:
PHP:
"U_ADMIN_INDEX" => append_sid("index.php?pane=right"))
Вставить до:
PHP:
        //+MOD: DHTML Menu for ACP
        'COOKIE_NAME'  => $bb_cfg['cookie_prefix'],
        'COOKIE_PATH'  => $bb_cfg['cookie_path'],
        'COOKIE_DOMAIN'  => $bb_cfg['cookie_domain'],
        'COOKIE_SECURE'  => $bb_cfg['cookie_secure'],
        //-MOD: DHTML Menu for ACP
Найти:
PHP:
ksort($module);
Вставить после:
PHP:
    //+MOD: DHTML Menu for ACP
    $menu_cat_id = 0;
    //-MOD: DHTML Menu for ACP
Найти:
PHP:
$template->assign_block_vars("catrow", array(
Вставить после:
PHP:
  //+MOD: DHTML Menu for ACP
            'MENU_CAT_ID' => $menu_cat_id,
            'MENU_CAT_ROWS' => count($action_array),
            //-MOD: DHTML Menu for ACP
Найти:
PHP:
$template->assign_block_vars("catrow.modulerow", array(
Вставить после:
PHP:
                //+MOD: DHTML Menu for ACP
                'ROW_COUNT' => $row_count,
                //-MOD: DHTML Menu for ACP
Найти:
PHP:
            $row_count++;
        }
Вставить после:
PHP:
        //+MOD: DHTML Menu for ACP
        $menu_cat_id++;
        //-MOD: DHTML Menu for ACP
Открыть templates/admin/index.tpl

Найти:
HTML:
<!-- IF TPL_ADMIN_NAVIGATE -->
<!--========================================================================-->
Вставить после:
HTML:
<script language="javascript" type="text/javascript">
<!--
var menuVersion = "Slide Menu v1.0.0";
 
menuVersion += ' &copy; 2004<br />by <a href="http://www.phpmix.com/" target="_blank" class="copyright">phpMiX</a>';
 
function getCookie(name)
{
  var cookies = document.cookie;
  var start = cookies.indexOf(name + '=');
  if( start < 0 ) return null;
  var len = start + name.length + 1;
  var end = cookies.indexOf(';', len);
  if( end < 0 ) end = cookies.length;
  return unescape(cookies.substring(len, end));
}
function setCookie(name, value, expires, path, domain, secure)
{
  document.cookie = name + '=' + escape (value) +
    ((expires) ? '; expires=' + ( (expires == 'never') ? 'Thu, 31-Dec-2099 23:59:59 GMT' : expires.toGMTString() ) : '') +
    ((path)    ? '; path='    + path    : '') +
    ((domain)  ? '; domain='  + domain  : '') +
    ((secure)  ? '; secure' : '');
}
function delCookie(name, path, domain)
{
  if( getCookie(name) )
  {
    document.cookie = name + '=;expires=Thu, 01-Jan-1970 00:00:01 GMT' +
      ((path)    ? '; path='    + path    : '') +
      ((domain)  ? '; domain='  + domain  : '');
  }
}
 
function menuCat(id, rows)
{
  this.cat_id = id;
  this.cat_rows = rows;
  this.status = 'block';
}
var menuCats = new Array();
<!-- BEGIN catrow -->
menuCats['menuCat_{catrow.MENU_CAT_ID}'] = new menuCat('{catrow.MENU_CAT_ID}', {catrow.MENU_CAT_ROWS});
<!-- END catrow -->
 
function getObj(obj)
{
  return ( document.getElementById ? document.getElementById(obj) : ( document.all ? document.all[obj] : null ) );
}
function displayObj(obj, status)
{
  var x = getObj(obj);
  if( x && x.style ) x.style.display = status;
}
 
var queueInterval = 20;    // milliseconds between queued steps.
var execInterval = 0;
var queuedSteps;
var currentStep;
 
function queueStep(o, s)
{
  this.obj = o;
  this.status = s;
}
function execQueue()
{
  if( currentStep < queuedSteps.length )
  {
    var obj = queuedSteps[currentStep].obj;
    var status = queuedSteps[currentStep].status;
    displayObj(obj, status);
    if( menuCats[obj] ) menuCats[obj].status = status;
    currentStep++;
    setTimeout("execQueue();", execInterval);
  }
  else
  {
    execInterval = queueInterval;
  }
}
function onMenuCatClick(cat_id)
{
  var currentCat, currentStatus;
 
  currentCat = 'menuCat_'+cat_id;
  currentStatus = menuCats[currentCat].status;
 
  queuedSteps = new Array();
  currentStep = 0;
 
  for( var catName in menuCats )
  {
    if( menuCats[catName].status == 'none' ) continue;
 
    for( var i=(menuCats[catName].cat_rows-1); i >= 0; i-- )
    {
      queuedSteps[currentStep++] = new queueStep(catName+'_'+i, 'none');
    }
    queuedSteps[currentStep++] = new queueStep(catName, 'none');
  }
 
  if( currentStatus == 'none' )
  {
    queuedSteps[currentStep++] = new queueStep(currentCat, 'block');
    for( var i=0; i < menuCats[currentCat].cat_rows; i++ )
    {
      queuedSteps[currentStep++] = new queueStep(currentCat+'_'+i, 'block');
    }
    var  expdate = new Date();    // 72 Hours from now
    expdate.setTime(expdate.getTime() + (72 * 60 * 60 * 1000));
    setCookie('{COOKIE_NAME}_menu_cat_id', cat_id, expdate,
        ('{COOKIE_PATH}'  == '') ? null : '{COOKIE_PATH}',
        ('{COOKIE_DOMAIN}' == '') ? null : '{COOKIE_DOMAIN}',
        ('{COOKIE_SECURE}' == '0') ? false : true);
  }
  else
  {
    delCookie('{COOKIE_NAME}_menu_cat_id',
        ('{COOKIE_PATH}'  == '') ? null : '{COOKIE_PATH}',
        ('{COOKIE_DOMAIN}' == '') ? null : '{COOKIE_DOMAIN}');
  }
 
  currentStep = 0;
  setTimeout("execQueue();", execInterval);
}
 
function doOnLoadMenuACP()
{
  var cat_id;
 
  if( getObj('menuCat_0') )
  {
    cat_id = getCookie('{COOKIE_NAME}_menu_cat_id');
    if( !menuCats['menuCat_'+cat_id] )
    {
      cat_id = 0;
    }
    else
    {
      menuCats['menuCat_'+cat_id].status = 'none';
    }
    onMenuCatClick(cat_id);
  }
  if( oldOnLoadMenuACP )
  {
    oldOnLoadMenuACP();
  }
}
var  oldOnLoadMenuACP = window.onload;
window.onload = doOnLoadMenuACP;
 
// -->
</script>
Найти:
HTML:
<td class="catTitle">{catrow.ADMIN_CATEGORY}</td>
Заменить на:
HTML:
<td class="catTitle" style="cursor:pointer;cursor:hand;" onclick="onMenuCatClick('{catrow.MENU_CAT_ID}', this);">{catrow.ADMIN_CATEGORY}</td>
Найти:
HTML:
<!-- BEGIN modulerow -->
Вставить до:
HTML:
    <tr>
      <td class="row1">
        <div id="menuCat_{catrow.MENU_CAT_ID}" style="display:block;">
          <table width="100%" cellpadding="4" cellspacing="1" border="0" class="bodyline">
Найти:
HTML:
<td><a href="{catrow.modulerow.U_ADMIN_MODULE}" target="main" class="med">{catrow.modulerow.ADMIN_MODULE}</a></td>
Заменить на:
HTML:
<td><div id="menuCat_{catrow.MENU_CAT_ID}_{catrow.modulerow.ROW_COUNT}" style="display:block;"><a href="{catrow.modulerow.U_ADMIN_MODULE}" target="main" class="med">{catrow.modulerow.ADMIN_MODULE}</a></div></td>
Найти:
HTML:
<!-- END modulerow -->
Вставить после:
HTML:
          </table>
        </div>
      </td>
    </tr>
 

JDVU

Разработчик
#2
тогда уже добавь раскрыть/закрыть все
иначе запаришься искать нужное
 
B

Bustra

Гость
#3
phpfox уверен?Я вот что то нет.Вроде вертос выкладывал мод Сворачивание меню в админке
 
G

Gemini_13

Гость
#4
Bustra, нет, не уверен. взято с

Please Login or Register to view hidden text.

, phpfox там выкладывал и больше указанных авторов нету. В скрипте прописан phpMix, но у него такого мода я не нашел, или код уже там другой. По сути мне все равно, кто автор... Wertos, так Wertos. Главное, что мод удобный и рабочий :)
 

Lion18

Пользователь
#7
Мда. Данный мод актуален?.))
Видать у народа по несколько сотен строк в меню админке.))))