[Koha-patches] [PATCH] Add a date field in news edition, and permit to set the "timestamp" field, that is the publication date and modify the GetNewsToDisplay to return only news that timestamp is < to current date that permit to publish news later without any action.
henridamien.laurent at biblibre.com
henridamien.laurent at biblibre.com
Fri Mar 6 11:38:00 CET 2009
From: Nahuel Angelinetti <nahuel.angelinetti at biblibre.com>
Signed-off-by: Henri-Damien LAURENT <henridamien.laurent at biblibre.com>
---
C4/NewsChannels.pm | 13 ++++++++-----
.../prog/en/modules/tools/koha-news.tmpl | 18 ++++++++++++++++--
tools/koha-news.pl | 5 +++--
3 files changed, 27 insertions(+), 9 deletions(-)
mode change 100644 => 100755 koha-tmpl/intranet-tmpl/prog/en/modules/tools/koha-news.tmpl
diff --git a/C4/NewsChannels.pm b/C4/NewsChannels.pm
index 5edf0f1..136cc5c 100644
--- a/C4/NewsChannels.pm
+++ b/C4/NewsChannels.pm
@@ -234,16 +234,16 @@ sub update_channel_category {
}
sub add_opac_new {
- my ($title, $new, $lang, $expirationdate, $number) = @_;
+ my ($title, $new, $lang, $expirationdate, $timestamp, $number) = @_;
my $dbh = C4::Context->dbh;
- my $sth = $dbh->prepare("INSERT INTO opac_news (title, new, lang, expirationdate, number) VALUES (?,?,?,?,?)");
- $sth->execute($title, $new, $lang, $expirationdate, $number);
+ my $sth = $dbh->prepare("INSERT INTO opac_news (title, new, lang, expirationdate, timestamp, number) VALUES (?,?,?,?,?,?)");
+ $sth->execute($title, $new, $lang, $expirationdate, $timestamp, $number);
$sth->finish;
return 1;
}
sub upd_opac_new {
- my ($idnew, $title, $new, $lang, $expirationdate, $number) = @_;
+ my ($idnew, $title, $new, $lang, $expirationdate, $timestamp,$number) = @_;
my $dbh = C4::Context->dbh;
my $sth = $dbh->prepare("
UPDATE opac_news SET
@@ -251,10 +251,11 @@ sub upd_opac_new {
new = ?,
lang = ?,
expirationdate = ?,
+ timestamp = ?,
number = ?
WHERE idnew = ?
");
- $sth->execute($title, $new, $lang, $expirationdate,$number,$idnew);
+ $sth->execute($title, $new, $lang, $expirationdate, $timestamp,$number,$idnew);
$sth->finish;
return 1;
}
@@ -280,6 +281,7 @@ sub get_opac_new {
my $data = $sth->fetchrow_hashref;
$data->{$data->{'lang'}} = 1;
$data->{expirationdate} = format_date($data->{expirationdate});
+ $data->{timestamp} = format_date($data->{timestamp});
$sth->finish;
return $data;
}
@@ -330,6 +332,7 @@ sub GetNewsToDisplay {
OR expirationdate IS NULL
OR expirationdate = '00-00-0000'
)
+ AND `timestamp` < CURRENT_DATE()
AND lang = ?
ORDER BY number
"; # expirationdate field is NOT in ISO format?
diff --git a/koha-tmpl/intranet-tmpl/prog/en/modules/tools/koha-news.tmpl b/koha-tmpl/intranet-tmpl/prog/en/modules/tools/koha-news.tmpl
old mode 100644
new mode 100755
index 6aa4d76..09dca99
--- a/koha-tmpl/intranet-tmpl/prog/en/modules/tools/koha-news.tmpl
+++ b/koha-tmpl/intranet-tmpl/prog/en/modules/tools/koha-news.tmpl
@@ -65,13 +65,27 @@ Edit News Item<!-- TMPL_ELSE -->Add News Item<!-- /TMPL_IF --><!-- TMPL_ELSE -->
<input id="title" size="30" type="text" name="title" value="<!-- TMPL_VAR NAME="title" -->" />
</li>
<li>
+ <label for="timestamp">Publication date</label>
+ <input id="timestamp" type="text" name="timestamp" size="15" value="<!-- TMPL_VAR NAME="timestamp" -->" />
+ <img src="<!-- TMPL_VAR Name="themelang" -->/lib/calendar/cal.gif" alt="Show Calendar" border="0" id="timestampButton" style="cursor: pointer;" />
+ <script type="text/javascript">
+ Calendar.setup(
+ {
+ button : "timestampButton",
+ inputField : "timestamp",
+ ifFormat : "<!-- TMPL_VAR NAME="DHTMLcalendar_dateformat" -->",
+ }
+ );
+ </script>
+ </li>
+ <li>
<label for="expirationdate">Expiration date</label>
<input id="expirationdate" type="text" name="expirationdate" size="15" value="<!-- TMPL_VAR NAME="expirationdate" -->" />
- <img src="<!-- TMPL_VAR Name="themelang" -->/lib/calendar/cal.gif" alt="Show Calendar" border="0" id="openCalendar" style="cursor: pointer;" />
+ <img src="<!-- TMPL_VAR Name="themelang" -->/lib/calendar/cal.gif" alt="Show Calendar" border="0" id="openCalendar" style="cursor: pointer;" />
<script type="text/javascript">
Calendar.setup(
{
- button : "openCalendar",
+ button : "openCalendar",
inputField : "expirationdate",
ifFormat : "<!-- TMPL_VAR NAME="DHTMLcalendar_dateformat" -->",
}
diff --git a/tools/koha-news.pl b/tools/koha-news.pl
index 3730c10..08b38c8 100755
--- a/tools/koha-news.pl
+++ b/tools/koha-news.pl
@@ -38,6 +38,7 @@ my $id = $cgi->param('id');
my $title = $cgi->param('title');
my $new = $cgi->param('new');
my $expirationdate = format_date_in_iso($cgi->param('expirationdate'));
+my $timestamp = format_date_in_iso($cgi->param('timestamp'));
my $number = $cgi->param('number');
my $lang = $cgi->param('lang');
@@ -83,11 +84,11 @@ if ( $op eq 'add_form' ) {
}
}
elsif ( $op eq 'add' ) {
- add_opac_new( $title, $new, $lang, $expirationdate, $number );
+ add_opac_new( $title, $new, $lang, $expirationdate, $timestamp, $number );
print $cgi->redirect("/cgi-bin/koha/tools/koha-news.pl");
}
elsif ( $op eq 'edit' ) {
- upd_opac_new( $id, $title, $new, $lang, $expirationdate, $number );
+ upd_opac_new( $id, $title, $new, $lang, $expirationdate, $timestamp ,$number );
print $cgi->redirect("/cgi-bin/koha/tools/koha-news.pl");
}
elsif ( $op eq 'del' ) {
--
1.5.6.3
More information about the Koha-patches
mailing list