Hey guys (and gals too),
I'm having problems with this here script. It seems that I can save new articles,
but
when I go to save changes to an old article, it doesn't save them. If you need it, I
can
provide the source to admin_news.cgi also. Thanks for your help in advance. (I'm not
sure if this wil be formatted right. Yahoo's text area isn't as wide as my text
editor).
#!/usr/bin/perl -wT
# edit_article.cgi
use strict;
use lib "..."; /* this contains my mod dir...but I */
/* wasn't going to give that to you guys */
use CGI;
use Ntdw10Error;
use Fcntl qw/ :flock /;
my $NEWS_DIR = "$ENV{DOCUMENT_ROOT}/news";
my $q = new CGI;
if ( $q->param( 'story' ) ) {
my( $headline, $article ) = get_story( $q->param( 'story' ) );
$q->param( -name => 'headline', -value => $headline );
$q->param( -name => 'article', -value => $article );
}
elsif ( $q->param( 'save' ) ) {
save_story( $q->param( 'story' ), $q->param( 'headline' ), $q->param(
'article' ) );
print $q->redirect( "/admin/admin_news.cgi" );
exit;
}
print $q->header,
$q->start_html( -title => "Edit Article",
-style => { -src =>
"/admin.css" },
-script => { -src =>
"/ntdw10.js" } ),
$q->h2( "Edit Article" ),
$q->hr,
$q->start_form,
$q->p(
$q->span( { -class => "bold" }, "Headline: " ),
$q->textfield( -name => "headline",
-size => 50 )
),
$q->p(
$q->span( { -class => "bold" }, "Article: " ),
"(HTML formatted)",
$q->br,
$q->textarea( -name => "article",
-rows => 20,
-cols => 60,
-wrap => "physical" )
),
$q->hidden( -name => "story",
-value => $q->param( 'story' ) ),
$q->reset( "Reset Form" ),
$q->submit( -name => "save",
-value => "Save Article" ),
$q->span( { -class => "italic" }, "Note: clicking Save Article on an
article
which you are editing (is not new) will not return you to the News Administration
page!!
Use the
Return to News Administration link at the bottom of the page." ),
$q->end_form,
$q->hr,
$q->p( "Return to ", $q->a( { -href => "/admin/admin_news.cgi" },
"News
Administration" ), ".", $q->span( { -class => "italic" }, "Warning! If you have not
saved, your
changes will be lost!!!" ) ),
$q->end_html;
sub get_story {
my( $filename ) = shift() =~ /^(\d+)$/;
my( $headline, $article );
local( *STORY );
open STORY, "$NEWS_DIR/$filename" or die "Cannot open $NEWS_DIR/$filename: $!";
flock STORY, LOCK_SH;
$headline = <STORY>;
chomp $headline;
local $/ = undef;
$article = <STORY>;
return $headline, $article, get_date( $filename );
}
sub get_date {
my $filename = shift;
( my $date = localtime $filename ) =~ s/ +\d+:\d+:\d+/,/;
return $date;
}
sub save_story {
my( $story, $headline, $article ) = @_;
local *STORY;
$story ||= time;
$article =~ s/\015\012|\015|\012/\n/g;
$headline =~ tr/\015\012//d;
my( $file ) = $story =~ /^(\d+)$/ or die "Illegal filename: '$story'";
my( $st ) = "$NEWS_DIR/$file" =~ /^(.+)$/;
open STORY, "> $st";
flock STORY, LOCK_EX;
seek STORY, 0, 0;
print STORY $headline, "\n", $article;
close STORY;
}
__________________________________________________
Do You Yahoo!?
Make a great connection at Yahoo! Personals.
http://personals.yahoo.com
--
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]