package MT::Plugin::OMV::PublishDateTimeToNow; # PublishDateTimeToNow # Copyright (c) 2008 Open MagicVox.net - http://www.magicvox.net/ use strict; use base qw( MT::Plugin ); my $plugin = __PACKAGE__->new({ name => __PACKAGE__, }); MT->add_plugin( $plugin ); ### Registry sub init_registry { my $plugin = shift; $plugin->registry({ callbacks => { 'MT::App::CMS::template_source.edit_entry' => \&_edit_entry_source, }, }); } sub _edit_entry_source { my( $eh_ref, $app_ref, $tmpl_ref ) = @_; # Omit a button for calendar control my $old = quotemeta( <<'HTMLHEREDOC' ); ">Choose Date HTMLHEREDOC my $new = ''; $$tmpl_ref =~ s/$old/$new/; # Create a new button for getting current timestamp. $old = quotemeta( <<'HTMLHEREDOC' ); " /> HTMLHEREDOC if ($$tmpl_ref !~ /$old/) { # 4.25 $old = quotemeta( <<'HTMLHEREDOC' ); " /> HTMLHEREDOC } $new = < function set_current_time() { var cur_time = new Date(); var cur_year = cur_time.getFullYear(); var cur_month = cur_time.getMonth() + 1; var cur_day = cur_time.getDate(); var cur_hour = cur_time.getHours(); var cur_minutes = cur_time.getMinutes(); var cur_seconds = cur_time.getSeconds(); if (1 == (new String (cur_month )).length) cur_month = '0' + cur_month; if (1 == (new String (cur_day )).length) cur_day = '0' + cur_day; if (1 == (new String (cur_hour )).length) cur_hour = '0' + cur_hour; if (1 == (new String (cur_minutes)).length) cur_minutes = '0' + cur_minutes; if (1 == (new String (cur_seconds)).length) cur_seconds = '0' + cur_seconds; var e_date = document.forms['entry_form'].authored_on_date; e_date.value = cur_year + '-' + cur_month + '-' + cur_day; var e_time = document.forms['entry_form'].authored_on_time; e_time.value = cur_hour + ':' + cur_minutes + ':' + cur_seconds; } ">Set current timestamp HTMLHEREDOC $$tmpl_ref =~ s/($old)/$1$new/; } 1;