parser

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

 

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

Новостной раздел для чайников! Ято не так?

Step 04.01.2005 10:52

Я вот не понимаю что не так? Парсеру не нравятся вот эти строки:
y_hash[^calendar.hash[year;year][$distinct(1)]]
$ym_hash[^calendar.hash{^calendar.year.format[%04d]=^calendar.month.format[%02d]}[month] [$.distinct(1)]]
Выдает такую ошибку:
undefined method
hash

z:/home/www.27.ru/www/news/auto.p(79)
(перевод я знаю)
На всякий случай приведу auto.p (новостной):
################_ìåòîä_ïîëó÷åíèÿ_ñòàòåé_ïî_çàäàííûì_òåìàì####################

@getnews[lparams][params]
$params[^hash::create[$lparams]]
$result[^MAIN:pSQL.sql[table]]{
	SELECT
		article_id AS id,
		title,
		lead,
		dt
		^if(^params.id.int(0)){, body}
	FROM
		news
	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)}
]
#########################_end_of_this_geting_news_###########################
#############################################################################
#####################_&#238;&#242;&#238;&#225;&#240;&#224;&#230;&#229;&#237;&#232;&#229;_&#241;&#239;&#232;&#241;&#234;&#224;_&#224;&#237;&#238;&#237;&#241;&#238;&#226;_&#237;&#238;&#226;&#238;&#241;&#242;&#229;&#233;_###################
@printnews[news]
<ul>
^untaint[as-is]{
	^news.menu{
	<li><b>^dtf:format[%d%m%Y;$news.dt]</b>
	^printTitle[$news]
	<br />$news.lead</li>
	}
}
</ul>
#########################_end_of_this_geting_lead_###########################
#############################################################################
###################_&#206;&#242;&#238;&#225;&#240;&#224;&#230;&#229;&#237;&#232;&#229;_&#238;&#228;&#237;&#238;&#233;_&#241;&#242;&#224;&#242;&#252;&#232;_&#241;_&#242;&#229;&#234;&#241;&#242;&#238;&#236;_######################
@get_one_news[news]
^untaint[as-is]{
	^if(def $news.title){<h1>^news.title.match[[/[/]]][g]{}</h1>}
	^dtf:format[%d%m%Y;$news.dt;$dtf:rr-locate]
	<p>$news.body</p>
}
#########################_&#234;&#238;&#237;&#229;&#246;_&#226;&#251;&#226;&#238;&#228;&#224;_&#238;&#228;&#237;&#238;&#233;_&#237;&#238;&#226;&#238;&#241;&#242;&#232;_#######################
############################################################################
############_&#228;&#238;&#241;&#242;&#224;&#229;&#236;_&#232;&#237;&#244;&#238;&#240;&#236;&#224;&#246;&#232;&#254;_&#228;&#235;&#255;_&#238;&#242;&#238;&#254;&#240;&#224;&#228;&#229;&#237;&#232;&#255;_&#234;&#224;&#235;&#229;&#237;&#228;&#224;&#240;&#255;_##################
@getCalendar[lparams][params]
$params[^hash::create[$lparams]]
$result[^MAIN:pSQL.sql[table]{
	SELECT
		^MAIN:pSQL.month[dt] AS month,
		^MAIN:pSQL.year[dt] AS year
	FROM
		news
	WHERE
		article_type_id=^params.article_type_id.int(0) AND
		is_published=1 AND
		dt_published<=^MAIN:pSQL.now[]
	GROUP BY
		year,
		month
}]
#################_&#234;&#238;&#237;&#229;&#246;_&#241;&#234;&#240;&#232;&#239;&#242;&#224;_############################################
############################################################################
#################_&#238;&#242;&#238;&#225;&#240;&#224;&#230;&#229;&#237;&#232;&#229;_&#234;&#224;&#235;&#229;&#237;&#228;&#224;&#240;&#255;_####################################
@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._key[]]
	^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{ *** &#229;&#241;&#235;&#232; &#234;&#235;&#232;&#234;&#237;&#229;&#236; &#226; &#227;&#238;&#228;, &#239;&#238; &#239;&#238;&#239;&#224;&#228;&#229;&#236; &#237;&#224; &#239;&#238;&#241;&#235;&#229;&#228;&#237;&#232;&#233; &#236;&#229;&#241;&#255;&#246; &#227;&#238;&#228;&#224;, 
						&#231;&#224; &#234;&#238;&#242;&#238;&#240;&#251;&#233; &#243; &#237;&#224;&#241; &#229;&#241;&#242;&#252; &#237;&#238;&#226;&#238;&#241;&#242;&#232; *** }
				^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-locate].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-locate].month.$m</a>
					}{
					$dtf:[ri-locate].month.$m
					}
					<br />
				}
			}
		}
		
		</td>
		</tr>
	</table>
}
И файд index.html:
@greeting[] 
&#209;&#242;&#240;&#224;&#237;&#232;&#246;&#224; &#237;&#238;&#226;&#238;&#241;&#242;&#229;&#233;,  &#231;&#224;&#245;&#238;&#228;&#232;&#242;&#229; &#247;&#224;&#249;&#229;! 

@body_additional[] 
<center>&#192;&#240;&#245;&#232;&#226; &#237;&#238;&#226;&#238;&#241;&#242;&#229;&#233; &#231;&#224; &#242;&#229;&#234;&#243;&#249;&#232;&#233; &#236;&#229;&#241;&#255;&#246;:</center> 
<br> 

@body_main[] 


^if(!def $form:id){
	$calendar[^printCalendar[$.article_type_id(1)]]
	^printCalendar[$calendar]
######################	
	$news[^getnews[
		$.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:year.int(0)-31']
		}{
			$limit(20)
		}
	]
	]
#######################
	^if($news){
		^printnews[$news]
	}{
		<p>&#205;&#229; &#237;&#224;&#233;&#228;&#229;&#237;&#238; &#237;&#232;&#247;&#229;&#227;&#238; &#231;&#224; &#243;&#234;&#224;&#231;&#224;&#237;&#237;&#251;&#233; &#239;&#229;&#240;&#232;&#238;&#228;</p>
	}
######################
	}{
	$news[^getnews[
		$.article_type_id(1)
		$.id(^form:id.int(0))
	]]
	^if($news){
		^print_one_news[$news]
	}{
	^location[/404/]
	}
}
Подскажите!