parser

Написать ответ на текущее сообщение

 

 
   команды управления поиском

что я делаю не так?

Роман 25.11.2003 21:30

что есть
sections.cfg

section_id name uri
1 Главная /
2 Новости /news/
3 О компании /okom/

auto.p


@main[]
^header[]
^body[]
^footer[]

@navigation[]
$sections[^table::load[/sections.cfg]]
<table width="100%" border="0" bgcolor="#000000" cellspacing="0">
<tr bgcolor="#FFFFFF">
^sections.menu{
^navigation_cell[]
}
</tr>
</table>
<br>

@navigation_cell[]
$cell_width[^eval(100\$sections)%]
^if($sections.uri eq $request:uri){
<td width="$cell_width" align="middle" bgcolor="#A2D0F2">
<nobr>$sections.name</nobr>
</td>
}{
<td width="$cell_width" align="middle">
<a href="$sections.uri"><nobr>$sections.name</nobr></a>
</td>
}

@footer[]
<table width="100%" border="0" bgcolor="#000000" cellspacing="0">
<tr>
<td></td>
</tr>
</table>
$now[^date::now[]]
<font size="-3">
<center>Powered by Parser3<br>1997-$now.year</center>
</font>
</body>
</html>


@header[]

<html>
<head>
<title>Тестовый сайт Parser3</title>
</head>
<body bgcolor="#FAEBD7">
<table width="100%" border="0" bgcolor="#000000" cellspacing="1">
<tr bgcolor="#FFFFFF" height="60">
<td align="middle">
<font size="+2"> <b>^greeting[]</b></font>
</td>
</tr>
</table>
<br>


@body[]

^navigation[]
<table width="100%" height="65%" border="1" bgcolor="#000000" cellspacing="1">
<tr bgcolor="#ffffff" height="100%">
<td width="30%" valign="top" bgcolor="#EFEFEF">
<b>^body_additional[]</b>


</td>
<td width="70%" valign="top">
^body_main[]



</td>
</tr>
</table>
<br>

index.htm

@greeting[]
Добро пожаловать!

@body_additional[]
Главная страница сайта

@body_main[]
Основное содержание



Подразделы:
/ocomp
/news
/classes (здесь находятся классы)

Задача: в корневом _root.cfg прописывать разделы всего сайта
А в каждом разделе в файле - _secton.cfg прописывать подразделы сайта и просто страницы

Чтобы класс tnavigatoin.p
Сам формировал вверху основное меню разделов всего сайта а при заходе на какой-либо раздел в левой колонке этот класс создавал меню текущего раздела

согласно написанному в http://www.parser.ru/forum/?id=6732

кидаю в /ocom файл _secton.cfg:

uri title
biz/ Бизнес
prod/ Продукция



а в /news файл _secton.cfg:

uri title
comp/ Компания
me/ О себе

в корневом делаю файл _root.cfg:

uri title status image aimage
/ Главная
/news/ Новости
/ocom/ Компания

/admin/ Администрирование сайта admin


и в auto.p

в @body[]

прописываю:
$nav[^TNavigation::Init[]]
^nav.ShowSecondNav[]

результат:
Unhandled Exception (Debug)
class is undefined
TNavigation
t:/home/nav/www/auto.p(61)
exception.type=parser.runtime

body t:/home/nav/www/auto.p(3)

я так понимаю что класс не определен.

Хорошо, моё следующее действие:
определяю класс:

В начале корневого auto.p сразу после:

@main[]
^header[]
^body[]
^footer[]

прописываю:

@USE
/classes/tnavigation.p


Результат:

Unhandled Exception (Debug)
t:/home/nav/www/auto.p(8:1): 'USE ' invalid special name. valid names are 'CLASS', 'USE' and 'BASE'
exception.type=parser.compile


такое ощущение что не понравился пробел после USE - 'USE '
убираю пробел

Результат:
Открывается начальная страница без ошибок &#61514;

И где я вставлял
$nav[^TNavigation::Init[]]
^nav.ShowSecondNav[]
там идет путь от начальной до файла
ссылка > ссылка>…

поскольку это начальная страница то стоит ссылка nav ( почему то nav а не начальная)
При переходе по ссылке «Новости» в главном меню попадаю на сайт новостей
И стоит адрес:
nav> новости
но при переходе по ссылке «Компания»
после nav> слова «компания» нет

и где меню подраздела????!!!????
Подскажите где я не прав