package Kwiki::BroadcastMessage; use Kwiki::Plugin -Base; use mixin 'Kwiki::Installer'; our $VERSION = '0.01'; const class_id => 'broadcast_message'; const cgi_class => 'Kwiki::BroadcastMessage::CGI'; sub register { my $register = shift; $register->add( status => 'broadcast_message', template => 'broadcast_message.html' ); $register->add( action => 'broadcast_message'); $register->add( action => 'broadcast_message_add'); $register->add( toolbar => 'broadcast_message_button', template => 'broadcast_message_button.html' ); } sub html { my $ret; my $messages = $self->fetch_messages; for(@$messages) { $ret .= qq{
}; } return $ret; } sub broadcast_message { $self->render_screen(screen_title => "Broadcast..."); } sub broadcast_message_add { if($self->cgi->broadcast_message_delete) { $self->store_message(''); } else { $self->store_message($self->cgi->message); } $self->redirect($self->hub->config->main_page); } sub message_db { io->catfile($self->plugin_directory,"messages"); } sub store_message { $self->message_db->print($_[0]); } sub fetch_messages { return [ @{$self->message_db} ]; } package Kwiki::BroadcastMessage::CGI; use base 'Kwiki::CGI'; cgi 'user_name'; cgi 'message' => -utf8; cgi 'broadcast_message_delete'; package Kwiki::BroadcastMessage; __DATA__ =head1 NAME Kwiki::BroadcastMessage - Broadcasting Messages on Kwiki site. =head1 DESCRIPTION This plugin provide a broadcasting message interface for people to temporarily display some words on your status pane. Just install this plugin, and there would be an extra item "Broadcast" on the toolbar. The message would be kept until someone explict delete it or modify it. =head1 COPYRIGHT Copyright 2005 by Kang-min Liu