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 может быть вызвана только со
страницы форума");
}
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());
_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"],
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 может быть вызвана только со
страницы форума");
}
}
# Заполнить название и аннотацию
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");
_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);
_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"));
}
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);