webgui/lib/WebGUI/Macro/EditableToggle.pm
2009-02-20 23:47:30 +00:00

76 lines
2.5 KiB
Perl

package WebGUI::Macro::EditableToggle;
#-------------------------------------------------------------------
# WebGUI is Copyright 2001-2009 Plain Black Corporation.
#-------------------------------------------------------------------
# Please read the legal notices (docs/legal.txt) and the license
# (docs/license.txt) that came with this distribution before using
# this software.
#-------------------------------------------------------------------
# http://www.plainblack.com info@plainblack.com
#-------------------------------------------------------------------
use strict;
use WebGUI::International;
use WebGUI::Asset::Template;
=head1 NAME
Package WebGUI::Macro::EditableToggle
=head1 DESCRIPTION
Macro for displaying a url to the user for turning Admin mode on and off if they
have editing rights to the current Asset.
=head2 process ( [turnOn,turnOff,template ] )
process takes three optional parameters for customizing the content and layout
of the account link.
=head3 turnOn
The text displayed to the user if Admin mode is turned off, they are in the
Turn On Admin group and they have editing rights to this Asset.
If this is blank an internationalized default is used.
=head3 turnOff
The text displayed to the user if Admin mode is turned on, they are in
the Turn On Admin group and they have editing rights to this Asset..
If this is blank an internationalized default is used.
=head3 template
The URL of a template from the Macro/EditableToggle namespace to use for formatting the link.
=cut
#-------------------------------------------------------------------
sub process {
my $session = shift;
if ($session->asset && $session->asset->canEdit && $session->user->isInGroup(12)) {
my %var;
my @param = @_;
my $i18n = WebGUI::International->new($session,'Macro_EditableToggle');
my $turnOn = $param[0] || $i18n->get(516);
my $turnOff = $param[1] || $i18n->get(517);
if ($session->var->isAdminOn) {
$var{'toggle.url'} = $session->url->page('op=switchOffAdmin');
$var{'toggle.text'} = $turnOff;
} else {
$var{'toggle.url'} = $session->url->page('op=switchOnAdmin');
$var{'toggle.text'} = $turnOn;
}
if ($param[2]) {
return WebGUI::Asset::Template->newByUrl($session,$param[2])->process(\%var);
} else {
return WebGUI::Asset::Template->new($session,"PBtmpl0000000000000038")->process(\%var);
}
}
return "";
}
1;