X-Git-Url: http://www.wagner.pp.ru/gitweb/?p=oss%2Fstilllife.git;a=blobdiff_plain;f=forum%2Fforum;fp=forum%2Fforum;h=a1d613710cc5b4141d0b44fa857628f833ef84bc;hp=a8fd425bdd215c564a2722bde18b66b23822154e;hb=182c1f107810fa5623b9a998b5ad09e963dc793b;hpb=b8a4f08b92828db2ea6ec0e3d99267bcdb52d6d0 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);