Форум: Форум PHPФорум ApacheФорум Регулярные ВыраженияФорум MySQLHTML+CSS+JavaScriptФорум FlashРазное
Новые темы: 0000000
Социальная инженерия и социальные хакеры. Авторы: Кузнецов М.В., Симдянов И.В. C++. Мастер-класс в задачах и примерах. Авторы: Кузнецов М.В., Симдянов И.В. MySQL 5. В подлиннике. Авторы: Кузнецов М.В., Симдянов И.В. Программирование. Ступени успешной карьеры. Авторы: Кузнецов М.В., Симдянов И.В. Самоучитель MySQL 5. Авторы: Кузнецов М.В., Симдянов И.В.
ВСЕ НАШИ КНИГИ
Консультационный центр SoftTime

Форум PHP

Выбрать другой форум

 

Здравствуйте, Посетитель!

вид форума:
Линейный форум (новые сообщения вниз) Структурный форум

тема: Помогите со скриптом редактирования меню

Сообщения:  [1-10] 

 
 автор: lifead   (21.08.2007 в 23:56)   письмо автору
 
   для: fancky   (21.08.2007 в 23:47)
 

С теоретической точки зрения возможно, но я этого еще не делал. Могу только подсказать направление - попробуте поюзать функции если функции ничего не дадут можете прибегнуть к помощи классов.
О функциях Вы можете узнать здесь - http://www.softtime.ru/bookphp/gl5_1.php. Если у Вас получится, можете выложить скрипт сюда с комментариями буду оч. благодарен, и думаю не я один.

   
 
 автор: fancky   (21.08.2007 в 23:47)   письмо автору
 
   для: lifead   (19.08.2007 в 22:21)
 

Огромное спасибо вам за ответ!
И у меня будет еще один вапрос как сделать так чтобы когда в текстовом файле добавляеш "ссылки" меню создавалось само? и вазможно ли вообще это?

   
 
 автор: lifead   (19.08.2007 в 22:21)   письмо автору
 
   для: Fancky   (19.08.2007 в 20:44)
 

Вот Вам двумерный массив $m[][];

<?php
$fp 
fopen("menu.txt","r");
//$i=0;$j=0;
$str=fgets($fp30);
$m[0][0]=$str;
for (
$i=0;$i<20;)
 {
        for (
$j=1;$j<20;)
        {
            if (
feof($fp)==true){break;}
             
$str=fgets($fp30);
            
$str1=strstr($str,'+');
            if (
$str1==false)
            {
                
$m[$i][$j]=$str;
                
$j++;
            }
            else
            {
                
$i++;
                
$m[$i][0]=$str1;
                break;
            }
        }
            if (
feof($fp)==true){break;}

 }
fclose($fp);
for (
$i=0;$i<20;)
    {
        for  (
$j=0;$j<20;)
        {
        if (isset(
$m [$i][$j])){echo $m [$i][$j];}else{break;}
        
$j++;
        }
    echo
"<br>";
    
$i++;
    }
?>


вот текстовый файл (menu.txt) который я юзал пока писал

+квартиры
*1комнотные
*2хкомнатные
*3хкомнатные
*4хкомнатные
+дома
*1комнотные
*2хкомнатные
*3хкомнатные
+склады
*маленькие
*большие
да, еще, скрипт написан без всяких там проверок, тоесть текстовый файл должен быть составлен без ошибок иначе усе приехали

   
 
 автор: Fancky   (19.08.2007 в 20:44)   письмо автору
 
   для: lifead   (19.08.2007 в 20:34)
 

Количество первычных менюшек тоже должно меняться.

   
 
 автор: lifead   (19.08.2007 в 20:34)   письмо автору
 
   для: Fancky   (19.08.2007 в 20:00)
 

Хорошо. Только тогда несколько уточнений.
В файле которым задается меню колличество менюшек "первого" рода будет постоянным? и менятся будет только менюшки второго рода?

   
 
 автор: Fancky   (19.08.2007 в 20:00)   письмо автору
 
   для: lifead   (19.08.2007 в 16:33)
 

Не могли бы вы поподробнее расказать как это сделать, или показать пример ?

   
 
 автор: lifead   (19.08.2007 в 16:33)   письмо автору
 
   для: Fancky   (19.08.2007 в 15:45)
 

Попробуйте следующим образом:
Создаете двумерный массив из файла со структурой меню, создаете функцию или класс которые будут выстраивать одну выпадающую менюшку, а потом уже используя класс (функцию) выводите их на экран

   
 
 автор: Fancky   (19.08.2007 в 15:45)   письмо автору
 
   для: lifead   (19.08.2007 в 15:30)
 

скрипт меню уже с веддеными данными
<HTML>
<HEAD>



<style>
<!--
DIV.clTop{position:absolute; width:170}
DIV.clSub{position:absolute; left:10; width:170}
#divCont{position:relative; left:1; top:0; height:600; width:170;}
A.clMain{font-family:Arial, Verdana, Helvetica, Helv; font-size:10px; text-decoration:none; font-weight:bold; color:202020}
A.clSubb{font-family:Arial, Verdana, Helvetica, Helv; font-size:10px; text-decoration:none; color:111111}
#divMain{position:absolute}
//-->
</style>
<script language="JavaScript">

var stayFolded=false


var exImg=new Image(); exImg.src='arrow1.gif'

var unImg=new Image(); unImg.src='arrow.gif'


var n = (document.layers) ? 1:0;
var ie = (document.all) ? 1:0;
var browser=((n || ie) && parseInt(navigator.appVersion)>=4)


function makeMenu(obj,nest){
nest=(!nest) ? '':'document.'+nest+'.'
this.css=(n) ? eval(nest+'document.'+obj):eval('document.all.'+obj+'.style')
this.ref=(n) ? eval(nest+'document.'+obj+'.document'):eval('document');
this.height=n?this.ref.height:eval(obj+'.offsetHeight')
this.x=(n)? this.css.left:this.css.pixelLeft;this.y=(n)? this.css.top:this.css.pixelTop;
this.hideIt=b_hideIt; this.showIt=b_showIt; this.vis=b_vis; this.moveIt=b_moveIt
return this
}
function b_showIt(){this.css.visibility="visible"}
function b_hideIt(){this.css.visibility="hidden"}
function b_vis(){if(this.css.visibility=="hidden" || this.css.visibility=="hide") return true;}
function b_moveIt(x,y){this.x=x; this.y=y; this.css.left=this.x; this.css.top=this.y}

function init(){
oTop=new Array()
oTop[0]=new makeMenu('divTop1','divCont')
oTop[1]=new makeMenu('divTop2','divCont')
oTop[2]=new makeMenu('divTop3','divCont')


oSub=new Array()
oSub[0]=new makeMenu('divSub1','divCont.document.divTop1')
oSub[1]=new makeMenu('divSub2','divCont.document.divTop2')
oSub[2]=new makeMenu('divSub3','divCont.document.divTop3')


for(i=0;i<oSub.length;i++){ oSub[i].hideIt() }
for(i=1;i<oTop.length;i++){ oTop[i].moveIt(0,oTop[i-1].y+oTop[i-1].height) }
}

function menu(num){
if(browser){
if(!stayFolded){
for(i=0;i<oSub.length;i++){
if(i!=num){
oSub[i].hideIt()
oTop[i].ref["imgA"+i].src=unImg.src
}
}
for(i=1;i<oTop.length;i++){
oTop[i].moveIt(0,oTop[i-1].y+oTop[i-1].height)
}
}
if(oSub[num].vis()){
oSub[num].showIt()
oTop[num].ref["imgA"+num].src=exImg.src
}else{
oSub[num].hideIt()
oTop[num].ref["imgA"+num].src=unImg.src
}
for(i=1;i<oTop.length;i++){
if(!oSub[i-1].vis()) oTop[i].moveIt(0,oTop[i-1].y+oTop[i-1].height+oSub[i-1].height)
else oTop[i].moveIt(0,oTop[i-1].y+oTop[i-1].height)
}
}
}

if(browser) onload=init;
</script>
</HEAD>
<body text="#202020" bgcolor="ivory" link="#0000FF" vlink="#FFA500" alink="#FF0000" marginwidth="0" marginheight="0" topmargin="0" leftmargin="0">


<!-- МЕНЮ -->

<div id="divCont">
<div id="divTop1" class="clTop">
<a href="#" onclick="menu(0); return false" class="clMain">
<img src="arrow.gif" name="imgA0" width=12 height=12 alt="" border="0">
Главная</a><br>
<div id="divSub1" class="clSub">
<a href="main.html" target="main" class="clSubb">-Старт</a><br>
</div><br>
</div>

<div id="divTop2" class="clTop">
<a href="#" onclick="menu(1); return false" class="clMain">
<img src="arrow.gif" name="imgA1" width=12 height=12 alt="" border="0">
HTML</a><br>
<div id="divSub2" class="clSub">
<a href="#" class="clSubb">-O HTML</a><br>
<a href="#" class="clSubb">-DHTML</a><br>
<a href="html/html_faq.html" target="main" class="clSubb">-FAQ</a><br>
</div><br>
</div>

<div id="divTop3" class="clTop">
<a href="#" onclick="menu(2); return false" class="clMain">
<img src="arrow.gif" name="imgA2" width=12 height=12 alt="" border="0">
Скрипты</a><br>
<div id="divSub3" class="clSub">
<a href="#" class="clSubb">-JavaScript</a><br>
<a href="#" class="clSubb">-VBScript</a><br>
<a href="#" class="clSubb">-FAQ</a><br>
</div><br>



</div>

</div>

</HEAD>
</HTML>

   
 
 автор: lifead   (19.08.2007 в 15:30)   письмо автору
 
   для: Fancky   (19.08.2007 в 14:34)
 

Можно уточнение, меню уже написано (на JS или HTML)? или Вам надо сделать меню? если оно есть, можно увидеть как оно выглядит?

   
 
 автор: Fancky   (19.08.2007 в 14:34)   письмо автору
 
 

задача скрипта состоит в том чтобы в уже созданном меню можно было изменять или добавлять данные задавая в текстовом файле например
+квартиры+
*1-комнатные*
*2-комнатные*
*3-комнатные*
Имена заключеные в плюсы являлись перевостепенным меню, а имена заключенные в звездочки второстепенным

   

Сообщения:  [1-10] 

Форум разработан IT-студией SoftTime
Rambler's Top100
вверх

Rambler's Top100 Яндекс.Метрика Яндекс цитирования