package WebGUI::Wobject::LinkList; #------------------------------------------------------------------- # WebGUI is Copyright 2001-2003 Plain Black LLC. #------------------------------------------------------------------- # 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 Tie::CPHash; use WebGUI::HTMLForm; use WebGUI::Icon; use WebGUI::International; use WebGUI::Privilege; use WebGUI::Session; use WebGUI::SQL; use WebGUI::URL; use WebGUI::Wobject; our @ISA = qw(WebGUI::Wobject); #------------------------------------------------------------------- sub duplicate { my ($w, $sth, $row); $w = $_[0]->SUPER::duplicate($_[1]); $w = WebGUI::Wobject::LinkList->new({wobjectId=>$w,namespace=>$_[0]->get("namespace")}); $sth = WebGUI::SQL->read("select * from LinkList_link where wobjectId=".$_[0]->get("wobjectId") ." order by sequenceNumber"); while ($row = $sth->hashRef) { $row->{LinkList_linkId} = "new"; $w->setCollateral("LinkList_link","LinkList_linkId",$row); } $sth->finish; } #------------------------------------------------------------------- sub name { return WebGUI::International::get(6,$_[0]->get("namespace")); } #------------------------------------------------------------------- sub new { my $class = shift; my $property = shift; my $self = WebGUI::Wobject->new( -properties=>$property, -extendedProperties=>{}, -useTemplate=>1, ); bless $self, $class; } #------------------------------------------------------------------- sub purge { WebGUI::SQL->write("delete from LinkList_link where wobjectId=".$_[0]->get("wobjectId")); $_[0]->SUPER::purge(); } #------------------------------------------------------------------- sub www_deleteLink { return WebGUI::Privilege::insufficient() unless (WebGUI::Privilege::canEditPage()); return $_[0]->confirm(WebGUI::International::get(9,$_[0]->get("namespace")), WebGUI::URL::page('func=deleteLinkConfirm&wid='.$session{form}{wid}.'&lid='.$session{form}{lid})); } #------------------------------------------------------------------- sub www_deleteLinkConfirm { return WebGUI::Privilege::insufficient() unless (WebGUI::Privilege::canEditPage()); $_[0]->deleteCollateral("LinkList_link","LinkList_linkId",$session{form}{lid}); $_[0]->reorderCollateral("LinkList_link","LinkList_linkId"); return ""; } #------------------------------------------------------------------- sub www_edit { my $properties = WebGUI::HTMLForm->new; if ($_[0]->get("wobjectId") eq "new") { $properties->whatNext( -options=>{ addLink=>WebGUI::International::get(13,$_[0]->get("namespace")), backToPage=>WebGUI::International::get(745) }, -value=>"addLink" ); } return $_[0]->SUPER::www_edit( -properties=>$properties->printRowsOnly, -headingId=>10, -helpId=>1 ); } #------------------------------------------------------------------- sub www_editSave { return WebGUI::Privilege::insufficient() unless (WebGUI::Privilege::canEditPage()); $_[0]->SUPER::www_editSave(); if ($session{form}{proceed} eq "addLink") { $session{form}{lid} = "new"; $_[0]->www_editLink(); } else { return ""; } } #------------------------------------------------------------------- sub www_editLink { return WebGUI::Privilege::insufficient() unless (WebGUI::Privilege::canEditPage()); my ($output, $link, $f, $linkId, $newWindow); $link = $_[0]->getCollateral("LinkList_link", "LinkList_linkId",$session{form}{lid}); if ($link->{LinkList_linkId} eq "new") { $newWindow = 1; } else { $newWindow = $link->{newWindow}; } $output = helpIcon(2,$_[0]->get("namespace")); $output .= '