|
|
ru.perl- RU.PERL ---------------------------------------------------------------------- From : vilfred 2:5020/400 30 Sep 2002 23:27:21 To : Vilfred Subject : вот более конкретно... --------------------------------------------------------------------------------
может кто такие фишки делал, мои лыжи походу уже не едут...
первое поле собственный код, второе код родителя(третье уровень
вложения верхний уровень 1, четвертое состояние 1 - узел, 0 - нет, и
дальше еще лдо черта полей с описаниями, для структуры они не важны):
1 1 1 1
2 1 .....
3 1 .....
4 1 .....
5 4 .....
6 4 .....
и т.д.
нужно сделать так, чтобы выводилась структура таблицы как в виндовсной
папке, как какой уровень вложения подпапки кликнул, тот и открылся.
я по файлу(на самом деле не файл а массив, полученный селектом из
таблицы, но это не важно, все равно все строки, разделенные #,
находятся в массиве) бегу скриптом:
$url="lesenka.pl";
sub show_base{
@row=@_; my @l=split /\|/ => $pr;
#step1#
@m = sort grep {!$_{$_}++} map {/^.*?#.*?#(.*?)#/} @row;
# выясняю уровень вложения, чтобы от него строить верхний уровень
#step2#
foreach my $l(@row){ $l=~s!(\s)\1+|(\t)+|[\cM\cJ\n]!!g;
my @tmp1= split /#/ => $l;
do{print qq~<a href=$url?id_self=$tmp1[0]&path=\|$tmp1[0]>$tmp1[7]
</a><br>\n~
if $tmp1[3] == 1;
print qq~$tmp1[7]~ if $tmp1[3] == 0;
&view($tmp1[0], " ") if $tmp1[3] == 1 and $id_self
ne '';
} if $tmp1[2]==$m[0]; # это условие значит, что нужно первыми
выводить только верхние уровни
}
sub view{ my $self=$_[0]; $t=$_[1]; my @l=split /\|/ => $pr;
foreach my $k(@row){
my @tmp = split /#/ => $k;
do{print qq~$t<a href=$url?id_self=$tmp[0]&path=$pr|$tmp[0]>$tmp[7]
</a><br>\n~
if $tmp[3] == 1;
&view($l[$#l]) if $l[$#l] != $id_self;
#print "<b>!$tmp[1] = $l[$#l]!</b>";
} if $self eq $tmp[1] and $self eq $l[$#l];
}
}
}
вобщем такая вот задница... я уже честно гря просто офигел это дело
делать...
thx!
--
TEAM [Маньяки]
Отправлено через сервер Форумы@mail.ru - http://talk.mail.ru
--- ifmail v.2.15dev5
* Origin: Talk.ru (2:5020/400)
Вернуться к списку тем, сортированных по: возрастание даты уменьшение даты тема автор
Архивное /ru.perl/64881b4549bc.html, оценка из 5, голосов 10
|