parser

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

 

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

Проблеммы с новостями!

AISMEN 07.02.2006 10:49

У меня такая проблемма,пробовал писать новостной раздел по примерам из документации, все прописал все классы прописал, выдает ошибку: "неопределенный метод"
-----------------------------------------------------------------
Вод коды файлов:
-----------------------------------------------------------------
auto.p-корневой.
---
@dbconnect[code]
^connect[$connect_string]{$code}
# connect_string определяется в методе @auto[]
# $connect_string[mysql://root@localhost/p3test]
@auto[]
$connect_string[mysql://root@localhost/p3test]
$CLASS_PATH[table]
@main[]
^header[]
^body[]
^footer[]
@header[]
<html>
<head>
<title>Тестовый сайт Parser3</title>
</head>
<body bgcolor="#F9A344">
<table width="100%" border="0" bgcolor="#000000" cellspacing="1">
<tr bgcolor="#E6E6E6" height="60">
<td align="center">
<font size="+2"> <b>^greeting[]</b></font>
</td>
</tr>
</table>
@body[]
^navigation[]
<table width="100%" height="65%" border="0" 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>
@navigation[]
$sections[^table::load[/sections.cfg]]
<table width="100%" border="0" bgcolor="#000000" cellspacing="1">
<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="center" bgcolor="#A2D0F2">
<nobr>$sections.name</nobr>
</td>
}{
<td width="$cell_width" align="center">
<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>
-----------------------------------------------------------------
Index.html-раздела news.
---
@main[]
$CLASS_PATH[]
@USE
/classes/dtf.p
/classes/lib.p
/classes/mssql.p
/classes/mysql.p
/classes/oracle.p
/classes/pgsql.p
/classes/sql.p
/classes/scroller.p
@main[]
^if(!def $form:id){
^rem{ *** $form:id не определена: показываем календарь со списком новостей *** }

^rem{ *** получаем информацию о календаре и выводим его *** }
$calendar[^getCalendar[$.article_type_id(1)]]
^printCalendar[$calendar]

^rem{ *** получаем список последних новостей или новостей за указанный период и выводим его *** }
$article[^getArticles[
$.article_type_id(1)
^if(^form:year.int(0)){
$.where[dt >= '^form:year.int(0)-^form:month.int(0)-00' AND dt <= '^form:year.int(0)-^form:month.int(0)-31']
}{
$.limit(20)
}
]]
^if($article){
^printArticles[$article]
}{
<p>Не найдено ни одной новости за указаный период.</p>
}
}{
^rem{ *** $form:id определена: достаем и показываем новость с выбранным id *** }
$article[^getArticles[
$.article_type_id(1)
$.id(^form:id.int(0))
]]
^if($article){
^printArticle[$article]
}{
^rem{ *** указали такую id, новости с которой не существует... посылаем посетителя на... 404 ошибку. *** }
^location[/404/]
}
}


@getArticles[lparams][params]
$params[^hash::create[$lparams]]
$result[^MAIN:pSQL.table{
SELECT
article_id AS id,
title,
lead,
dt
^if(^params.id.int(0)){, body}
FROM
article
WHERE
article_type_id = ^params.article_type_id.int(0) AND
is_published = 1 AND
dt_published <= ^MAIN:pSQL.now[]
^if(^params.id.int(0)){
AND article_id = ^params.id.int(0)
}
^if(def $params.where){
AND $params.where
}
ORDER BY
dt DESC
}[
^if(def $params.limit){$.limit($params.limit)}
^if(def $params.offset){$.offset($params.offset)}
]]
@printArticles[article]
<ul>
^untaint[as-is]{
^article.menu{
<li><b>^dtf:format[%d.%m.%Y;$article.dt]</b>
^printTitle[$article]
<br />$article.lead</li>
}
}
</ul>
#end @printArticles[]


@printTitle[article]
^if(def $article.title && ^article.title.match[\^[[^^\^]]+\^]]){
$result[^article.title.match[\^[([^^\^]]+)\^]][g]{<a href="?id=$article.id">$match.1</a>}]
}{
$result[<a href="?id=$article.id">$article.title</a>]
}
@printArticle[article]
^untaint[as-is]{
^if(def $article.title){<h1>^article.title.match[[\[\]]][g]{}</h1>}
^dtf:format[%d %h %Y;$article.dt;$dtf:rr-locale]
<p>$article.body</p>
}
@getCalendar[lparams][params]
$params[^hash::create[$lparams]]
$result[^MAIN:pSQL.table[news] {
SELECT
^MAIN:pSQL.month[dt] AS month,
^MAIN:pSQL.year[dt] AS year
FROM
article
WHERE
article_type_id = ^params.article_type_id.int(0) AND
is_published = 1 AND
dt_published <= ^MAIN:pSQL.now[]
GROUP BY
year,
month
}]
@printCalendar[calendar][now;curr_year;curr_month;y_hash;ym_hash;i;m]
^if($calendar){
$now[^date::now[]]
$curr_year(^form:year.int(^dtf:format[%Y]))
$curr_month(^form:month.int(^dtf:format[%m]))

$y_hash[^calendar.hash[year;year][$.distinct(1)]]
$ym_hash[^calendar.hash{^calendar.year.format[%04d]=^calendar.month.format[%02d]}[month][$.distinct(1)]]
$year[^y_hash._keys[]]
^year.sort($year.key)[desc]

<table border="1" align="right">
<tr valign="top">
<td>
^year.menu{
<b>^if($year.key == $curr_year){
$year.key /&nbsp^;
}{
^rem{ *** если кликнем в год, по попадем на последний месяц года,
за который у нас есть новости *** }
^if(^calendar.locate[year;$year.key]){}
<a href="?year=$year.key&month=$calendar.month">$year.key</a>
}
</b><br />
}
</td>
<td>
^if(^year.locate[key;$curr_year]){}
^for[i](0;11){
$m(12-$i)
^if(def $form:month && $m == $curr_month){
<b>$dtf:[ri-locale].month.$m</b><br />
}{
^if(!($now.year == $curr_year && $m > $now.month)){
^if($ym_hash.[^curr_year.format[%04d]=^m.format[%02d]]){
<a href="?year=$curr_year&month=$m">$dtf:[ri-locale].month.$m</a>
}{
$dtf:[ri-locale].month.$m
}
<br />
}
}
}
</td>
</tr>
</table>
}
-----------------------------------------------------------------
Помогите пожалуйста, подскажите где ошибка!