Агрегатор agr_m.php
/com/menu.css

исходник

примеры вызовов:

<?php include_once($GLOBALS['ROOT_AS']."com/agr_m.php");   - на стороне сервера
create_menu("ind/t","button_H");
?>

http://111.ib35.ru/com/agr_m.php?pref=left&dir=111/ind/left/agr&id=12 - на стороне клиента, pref - ранее использовалась для вычисления директории, сейчас не используется. оставлено для совместимости. dir - от $GLOBALS["ROOT_AS"]. полный путь вычисляется так - $GLOBALS["ROOT_AS"].$dir."/f_".$id.".txt";

$f_name=$GLOBALS["ROOT_AS"].$dir - если в дир передается сам файл, то id - игнорируется и загружается файл.

при этом на странице гененрится div#cfg - div#dir_name, div#dir, div#id, при этом если в div#dir-имя файла, то в div#dir_name-каталог, иначе они совпадают 


Структура загрузки страниц

 include_once($GLOBALS["ROOT_AS"]."com/var.php");  init_var();  

 include($_SERVER['DOCUMENT_ROOT']."/com/head_com.php");

 include($GLOBALS["ROOT_AS"]."com/slave/head_u.php");

 $var_root=$GLOBALS["ROOT_AS"]."".$dir;   if(file_exists($var_root."/agr/h_.php")){include($var_root."/agr/h_.php");}  

т.е. три уровня загрузки хедеров: общий, для подстраниц, для кону\кретной страницы.


function create_menu($dir_,$mode_='string')


  1. просматриваюся все файлы с расширением .txt.

  2. -> div.$mode_ .tb_req #$f_name_raw
  3. Из имени файла("f_21.txt") выделяем id.

  4. Если $mode_=='sub_menu' ->div.sub_m   div#'.$dir_.'
  5.   $menu_text=fgets($f_);        считываем заголовки
      $title=fgets($f_);
      $href=fgets($f_);
      $description=fgets($f_);
      $mode=fgets($f_);
      $resrv_2=fgets($f_);
      $resrv_3=fgets($f_); 
  6. Если $href не пустой, то ссылка и выход.
  7. Если $description не пустой, то div.descr_ > div.read_full
  8. Если сущ. директорий $GLOBALS["ROOT_AS"].$dir_."/sub_".$id -> div.have_sub_m и рекурсия(create_menu($dir_."/sub_".$i_,'sub_menu');)
  9. Иначе сcылка href='/com/agr_m.php?dir=".$dir_."&id=".$id


<div class="button_H tb_req" id_="/ind/t/f_1.txt">
    <a href="/com/agr_m.php?dir=ind/t&amp;id=1"><div><span><strong>Услуги</strong></span></div></a>
</div>
<div class="button_H tb_req" id_="/ind/t/f_2.txt">
    <div class="have_sub_m">
        <div style="display: none;" class="sub_m" id="ind/t/sub_2">
            <div class="sub_menu tb_req" id_="/ind/t/sub_2/f_1.txt">
                <div class="have_sub_m">
                    <div style="display: none;" class="sub_m" id="ind/t/sub_2/sub_1">
                        <div class="sub_menu tb_req" id_="/ind/t/sub_2/sub_1/f_1.txt">
                            <a href="/com/agr_m.php?dir=ind/t/sub_2/sub_1&amp;id=1"><div><span><strong>Услуги</strong></span></div></a>
                        </div>
                        <div class="sub_menu tb_req" id_="/ind/t/sub_2/sub_1/f_2.txt">
                            <a href="/com/agr_m.php?dir=ind/t/sub_2/sub_1&amp;id=2"><div><span><strong>Разное</strong></span></div></a>
                        </div>
                        <div class="sub_menu tb_req" id_="/ind/t/sub_2/sub_1/f_3.txt">
                            <a href="/com/agr_m.php?dir=ind/t/sub_2/sub_1&amp;id=3"><div><span><strong>Прочее</strong></span></div></a>
                        </div>
                    </div>
                    <span><strong>РАЗНОЕ (подменю 1)</strong></span>
                </div>
            </div>
            <div class="sub_menu tb_req" id_="/ind/t/sub_2/f_2.txt">
                <a href="/com/agr_m.php?dir=ind/t/sub_2&amp;id=2"><div><span><strong>РАЗНОЕ (подменю 2)</strong></span></div></a>
            </div>
            <div class="sub_menu tb_req" id_="/ind/t/sub_2/f_3.txt">
                <a href="/com/agr_m.php?dir=ind/t/sub_2&amp;id=3"><div><span><strong>РАЗНОЕ (подменю 3)</strong></span></div></a>
            </div>
        </div><span><strong>Разное</strong></span>
    </div>
</div>
<div class="button_H tb_req" id_="/ind/t/f_3.txt">
    <a href="/com/agr_m.php?dir=ind/t&amp;id=3"><div><span><strong>Прочее</strong></span></div></a>
</div>