HTML-WebMake
view release on metacpan or search on metacpan
lib/HTML/WebMake/CGI/Edit.pm view on Meta::CPAN
href="__REINVOKE__dir=${dirurl}__">the directory listing</a>.
</p> }; #"
} else {
$form .= qq{ <p>
Your changes have been submitted. Thanks! Now return to <a
href="__REINVOKE__dir=${dirurl}__">the directory listing</a>.
</p> }; #"
}
$form;
}
###########################################################################
sub create_wmmetas {
my ($self) = @_;
my $q = $self->{q};
$self->{wmmetas} = '';
foreach my $name ($q->param()) {
next unless ($name =~ /^m_(\S+)/);
my $metaname = $1; $metaname =~ s/\"/_/gs;
my $val = $q->param ($name);
next if ($val =~ /^\s*$/);
$val =~ s/<(\/\s*wmmeta\s*>)/\<$1/gs; # escape end-of-metadata tags
$self->{wmmetas} .= "<wmmeta name=\"$metaname\">$val</wmmeta>\n";
}
1;
}
sub strip_wmmetas {
my ($self, $t) = @_;
$t =~ s/\s*<wmmeta\s*name=\"([^\"]+)\"\s*>(.*?)<\/\s*wmmeta\s*>\s*/
$self->_strip_wmmeta_item ($1, $2); /gies;
$t =~ s/\s*<wmmeta\s*name=([^\s>]+)\s*>(.*?)<\/\s*wmmeta\s*>\s*/
$self->_strip_wmmeta_item ($1, $2); /gies;
$t =~ s/\s*<wmmeta\s*name=\"?([^\">]+?)\"?\s+value=\"?([^\">]+?)\"?\s*\/>\s*/
$self->_strip_wmmeta_item ($1, $2); /gies;
$t;
}
sub _strip_wmmeta_item {
my ($self, $name, $val) = @_;
$name =~ tr!A-Z!a-z!;
$self->{read_metas}->{$name} = $val;
return '';
}
sub update_metatable {
my ($self) = @_;
my $q = $self->{q};
if (!$self->{metatable}->lock_metatable_file ($self->{file_base})) {
$self->warn ("failed to lock metadata table: ".
"someone else may be updating content here, in which case try again".
"later -- or you may not have write permissions to the filesystem.");
return 0; # TODO
}
my $res = $self->rewrite_metatable ($q);
$self->{metatable}->unlock_metatable_file ($self->{file_base});
if (!$res) {
$self->warn ("write/unlink/rename of metadata table failed!");
return 0;
}
1;
}
sub rewrite_metatable {
my ($self, $q) = @_;
my $tbl = $self->{metatable}->read_metatable_file ($self->{file_base});
my $fname = $self->{filename};
if (!defined $tbl->{$fname}) { $tbl->{$fname} = { }; }
foreach my $name ($q->param()) {
next unless ($name =~ /^m_(\S+)/);
my $metaname = $1; $metaname =~ s/\"/_/gs;
my $val = $q->param ($name);
next if ($val =~ /^\s*$/);
$val =~ s/<(\/\s*meta\s*>)/\<$1/gs; # escape end-of-metadata tags
$tbl->{$fname}->{$metaname} = $val;
}
$self->{metatable}->rewrite_metatable_file ($self->{file_base});
}
###########################################################################
sub handle_fileless_save {
my ($self, $q, $newtext) = @_;
my $form;
my $wmkf = $q->param ('wmkf');
$q->param ('f', $wmkf);
my $handler = new HTML::WebMake::CGI::Site($q);
$handler->set_file_base ($self->{file_base});
$form = $handler->modify_text_item ($newtext);
$self->{msgs} .= $handler->{msgs};
if ($self->{msgs} ne '') {
$form = qq{ <p>
Some errors were encountered. Either go back and re-edit to fix them,
or abandon the changes that could not be committed and return to <a
( run in 3.354 seconds using v1.01-cache-2.11-cpan-d7f47b0818f )