From 182c1f107810fa5623b9a998b5ad09e963dc793b Mon Sep 17 00:00:00 2001 From: safir Date: Sun, 16 Nov 2008 15:52:05 +0000 Subject: [PATCH] =?utf8?q?=D0=A0=D0=B5=D1=88=D0=B5=D0=BD=D0=B0=20=D0=BF?= =?utf8?q?=D1=80=D0=BE=D0=B1=D0=BB=D0=B5=D0=BC=D0=B0=20=D1=81=20PATH=5FTRA?= =?utf8?q?NSLATED=20=D0=B2=20Fedora:=20=D0=B5=D1=81=D0=BB=D0=B8=20=D0=BF?= =?utf8?q?=D1=83=D1=82=D1=8C=20=D0=B2=20=D0=B0=D0=B4=D1=80=D0=B5=D1=81?= =?utf8?q?=D0=BD=D0=BE=D0=B9=20=D1=81=D1=82=D1=80=D0=BE=D0=BA=D0=B5=20?= =?utf8?q?=D0=B1=D1=80=D0=B0=D1=83=D0=B7=D0=B5=D1=80=D0=B0=20=D0=B7=D0=B0?= =?utf8?q?=D0=BA=D0=B0=D0=BD=D1=87=D0=B8=D0=B2=D0=B0=D0=B5=D1=82=D1=81?= =?utf8?q?=D1=8F=20=D1=81=D0=B8=D0=BC=D0=B2=D0=BE=D0=BB=D0=BE=D0=BC=20'/',?= =?utf8?q?=20Apache=20=D0=B4=D0=BE=D0=BF=D0=BE=D0=BB=D0=BD=D1=8F=D0=B5?= =?utf8?q?=D1=82=20=D0=BF=D1=83=D1=82=D1=8C=20=D0=B8=D0=BC=D0=B5=D0=BD?= =?utf8?q?=D0=B5=D0=BC=20=D1=84=D0=B0=D0=B9=D0=BB=D0=B0,=20=D1=83=D0=BA?= =?utf8?q?=D0=B0=D0=B7=D0=B0=D0=BD=D0=BD=D0=BE=D0=B3=D0=BE=20=D0=BA=D0=B0?= =?utf8?q?=D0=BA=20=D0=B8=D0=BD=D0=B4=D0=B5=D0=BA=D1=81=20=D0=BF=D0=BE=20?= =?utf8?q?=D1=83=D0=BC=D0=BE=D0=BB=D1=87=D0=B0=D0=BD=D0=B8=D1=8F.=20=D0=92?= =?utf8?q?=20=D1=87=D0=B0=D1=81=D1=82=D0=BD=D0=BE=D1=81=D1=82=D0=B8=20-=20?= =?utf8?q?index.html.=20=D0=94=D0=BB=D1=8F=20=D1=80=D0=B5=D1=88=D0=B5?= =?utf8?q?=D0=BD=D0=B8=D1=8F=20=D0=BF=D1=80=D0=BE=D0=B1=D0=BB=D0=B5=D0=BC?= =?utf8?q?=D1=8B=20=D0=B4=D0=BE=D0=B1=D0=B0=D0=B2=D0=B8=D0=BB=20"=D0=BE?= =?utf8?q?=D1=82=D1=80=D0=B5=D0=B7=D0=B0=D0=BD=D0=B8=D0=B5"=20=D0=B8=D0=BC?= =?utf8?q?=D0=B5=D0=BD=D0=B8=20=D1=84=D0=B0=D0=B9=D0=BB=D0=B0,=20=D0=B5?= =?utf8?q?=D1=81=D0=BB=D0=B8=20PATH=5FTRANSLATED=20=D1=83=D0=BA=D0=B0?= =?utf8?q?=D0=B7=D1=8B=D0=B2=D0=B0=D0=B5=D1=82=20=D0=BD=D0=B5=20=D0=BD?= =?utf8?q?=D0=B0=20=D0=B4=D0=B8=D1=80=D0=B5=D0=BA=D1=82=D0=BE=D1=80=D0=B8?= =?utf8?q?=D1=8E.?= MIME-Version: 1.0 Content-Type: text/plain; charset=utf8 Content-Transfer-Encoding: 8bit Решена проблема создания темы и форума с пустыми аннотациями. Для решения проблемы заблокировал обращения к аннотации, если она не определена. --- forum/forum | 22 +++++++++++++--------- 1 file changed, 13 insertions(+), 9 deletions(-) diff --git a/forum/forum b/forum/forum index a8fd425..a1d6137 100755 --- a/forum/forum +++ b/forum/forum @@ -1305,7 +1305,9 @@ sub new_topic { form_error($form,$cgi,$forum,"Некорректные символы в urlname. Допустимы только латинские буквы, цифры и минус") unless $urlname; } - if (!-d $path_translated) { + if (!-d $path_translated && + $path_translated=~s/^(.+)\/+[^\/]+$/$1/ && + !-d $path_translated) { show_error($forum,"Операция $form может быть вызвана только со страницы форума"); } @@ -1325,7 +1327,7 @@ sub new_topic { my $tree = gettemplate($forum,"topic",$url); # Заполнить название и аннотацию my $abstract = input2tree($cgi,$forum,"abstract"); - substinfo($tree,[_tag=>"meta","name"=>"description"],content=>$abstract->as_trimmed_text); + substinfo($tree,[_tag=>"meta","name"=>"description"],content=>$abstract->as_trimmed_text) if $abstract; substinfo($tree,[_tag=>"title"],_content=>$cgi->param("title")); my $subtree = $tree->look_down("class"=>"topic"); my $creation_time=strftime("%d.%m.%Y %H:%M",localtime()); @@ -1336,7 +1338,7 @@ sub new_topic { _content=>$creation_time); # Вставляем в страницу КОПИЮ аннотации, поскольку аннотация # нам еще понадобится в списке тем. - substinfo($subtree,["class"=>"abstract"],_content=>$abstract->clone); + substinfo($subtree,["class"=>"abstract"],_content=>$abstract->clone) if $abstract; substitute_user_info($subtree,$forum); } else { substinfo($tree,["class"=>"title"], @@ -1388,7 +1390,9 @@ sub new_forum { form_error($form,$cgi,$forum,"Некорректные символы в urlname. Допустимы только латинские буквы, цифры и минус") unless $urlname; } - if (!-d $path_translated) { + if (!-d $path_translated && + $path_translated=~s/^(.+)\/+[^\/]+$/$1/ && + !-d $path_translated) { show_error($forum,"Операция $form может быть вызвана только со страницы форума"); } @@ -1432,7 +1436,7 @@ sub new_forum { } # Заполнить название и аннотацию my $abstract = input2tree($cgi,$forum,"abstract"); - substinfo($tree,[_tag=>"meta","name"=>"description"],content=>$abstract->as_trimmed_text); + substinfo($tree,[_tag=>"meta","name"=>"description"],content=>$abstract->as_trimmed_text) if $abstract; substinfo($tree,[_tag=>"title"],_content=>$cgi->param("title")); my $subtree = $tree->look_down("class"=>"annotation") or show_error($forum,"В шаблоне форума отсутствует класс annotation"); @@ -1443,7 +1447,7 @@ sub new_forum { _content=>$creation_time); # Вставляем в страницу КОПИЮ аннотации, поскольку аннотация # нам еще понадобится в списке тем. - substinfo($subtree,["class"=>"abstract"],_content=>$abstract->clone); + substinfo($subtree,["class"=>"abstract"],_content=>$abstract->clone) if $abstract; substitute_user_info($subtree,$forum); substinfo($subtree,[_tag=>"img","class"=>"logo"], src=> $logo_name, width=>$logo_width, height=>$logo_height); @@ -1851,7 +1855,7 @@ sub topicedit { _content=>$cgi->param("title")); # Вставляем в страницу КОПИЮ аннотации, поскольку аннотация # нам еще понадобится в списке тем. - substinfo($subtree,["class"=>"abstract"],_content=>$abstract->clone); + substinfo($subtree,["class"=>"abstract"],_content=>$abstract->clone) if $abstract; } else { substinfo($tree,["class"=>"title"], _content=>$cgi->param("title")); @@ -1902,14 +1906,14 @@ sub forumedit { } my ($tree,$lockfd) = gettree($path_translated . "/".$forum->{indexfile}); my $abstract = input2tree($cgi,$forum,"abstract"); - substinfo($tree,[_tag=>"meta","name"=>"description"],content=>$abstract->as_trimmed_text); + substinfo($tree,[_tag=>"meta","name"=>"description"],content=>$abstract->as_trimmed_text) if $abstract; substinfo($tree,[_tag=>"title"],_content=>$cgi->param("title")); my $subtree = $tree->look_down("class"=>"annotation"); substinfo($subtree,["class"=>"title"], _content=>$cgi->param("title")); # Вставляем в страницу КОПИЮ аннотации, поскольку аннотация # нам еще понадобится в списке тем. - substinfo($subtree,["class"=>"abstract"],_content=>$abstract->clone); + substinfo($subtree,["class"=>"abstract"],_content=>$abstract->clone) if $abstract; substinfo($subtree,[_tag=>"img","class"=>"logo"], src=> $logo_name, width=>$logo_width, height=>$logo_height) if defined($logo_name); -- 2.39.2