openrat-cms

Unnamed repository; edit this file 'description' to name the repository.
Log | Files | Refs

commit 0e35a5e071d6be5fab1336330ad1a4695073c683
parent a9515a77597ceeaf8d15fcbf143da90ce7152220
Author: dankert <devnull@localhost>
Date:   Thu,  1 Jun 2006 20:15:30 +0200

Implementiert: "kopieren, verschieben, l?schen"

Diffstat:
actionClasses/FolderAction.class.php | 133++++++++++++++++++++++++++++++++++++++++++++++++++++++++++---------------------
actionClasses/FolderAction.ini.php | 6++++++
2 files changed, 104 insertions(+), 35 deletions(-)

diff --git a/actionClasses/FolderAction.class.php b/actionClasses/FolderAction.class.php @@ -20,7 +20,10 @@ // Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. // --------------------------------------------------------------------------- // $Log$ -// Revision 1.34 2006-02-05 11:30:12 dankert +// Revision 1.35 2006-06-01 18:15:30 dankert +// Implementiert: "kopieren, verschieben, l?schen" +// +// Revision 1.34 2006/02/05 11:30:12 dankert // Hinzuf?gen: Methode "select()" // // Revision 1.33 2006/01/29 17:18:58 dankert @@ -137,7 +140,6 @@ class FolderAction extends ObjectAction var $defaultSubAction = 'show'; var $folder; - function FolderAction() { if ( $this->getRequestId() != 0 ) @@ -327,25 +329,70 @@ class FolderAction extends ObjectAction // Verschieben/Kopieren/Loeschen/Verknuepfen von mehreren Dateien in diesem Ordner - function multiple() + function edit() { - $ids = $this->folder->getObjectIds(); $type = $this->getRequestVar('type'); - $targetObjectId = intval($this->getRequestVar('targetobjectid')); +// $this->setTemplateVar('targetobjectid',intval($this->getRequestVar('targetobjectid'))); +// +// if ( $targetObjectId == 0 ) +// exit('fatal: no target'); - if ( $targetObjectId == 0 ) - exit('fatal: no target'); + if ( in_array($type,array('move','copy','link'))) + { + // Liste von möglichen Zielordnern anzeigen - $notices = array(); + $otherfolder = array(); + foreach( $this->folder->getAllFolders() as $id ) + { + $f = new Folder( $id ); + if ( $f->hasRight( ACL_WRITE ) ) + $otherfolder[$id] = FILE_SEP.implode( FILE_SEP,$f->parentObjectNames(false,true) ); + } + asort( $otherfolder ); + + $this->setTemplateVar('folder',$otherfolder); + } + + if ( $type == 'archive' ) + $this->setTemplateVar('ask_filename',''); + + if ( $type == 'delete' ) + $this->setTemplateVar('ask_commit',''); + + $ids = $this->folder->getObjectIds(); + $objectList = array(); foreach( $ids as $id ) { // Nur, wenn Objekt ausgewaehlt wurde - if ( $this->getRequestVar('obj'.$id) != '1' ) + if ( !$this->hasRequestVar('obj'.$id) ) continue; $o = new Object( $id ); $o->load(); + + $objectList[ $id ] = $o->getProperties(); + } + + $this->setTemplateVar('type' ,$type ); + $this->setTemplateVar('objectlist',$objectList ); + + // Komma-separierte Liste von ausgewählten Objekt-Ids erzeugen + $this->setTemplateVar('ids',join(array_keys($objectList),',') ); + } + + + // Verschieben/Kopieren/Loeschen/Verknuepfen von mehreren Dateien in diesem Ordner + function multiple() + { + $type = $this->getRequestVar('type'); + $ids = explode(',',$this->getRequestVar('ids')); + $targetObjectId = $this->getRequestVar('targetobjectid'); + + foreach( $ids as $id ) + { + $o = new Object( $id ); + $o->load(); switch( $type ) { @@ -446,33 +493,37 @@ class FolderAction extends ObjectAction case 'delete': - switch( $o->getType() ) + if ( $this->hasRequestVar('commit') ) { - case 'folder': - $f = new Folder( $id ); - $f->delete(); - break; - - case 'file': - $f = new File( $id ); - $f->delete(); - break; - - case 'page': - $p = new Page( $id ); - $p->load(); - $p->delete(); - break; - - case 'link': - $l = new Link( $id ); - $l->delete(); - break; - - default: - die('fatal: what type to delete?'); + switch( $o->getType() ) + { + case 'folder': + $f = new Folder( $id ); + $f->delete(); + break; + + case 'file': + $f = new File( $id ); + $f->delete(); + break; + + case 'page': + $p = new Page( $id ); + $p->load(); + $p->delete(); + break; + + case 'link': + $l = new Link( $id ); + $l->delete(); + break; + + default: + die('fatal: what type to delete?'); + } + $this->addNotice($o->getType(),$o->name,'DELETED','ok'); } - $this->addNotice($o->getType(),$o->name,'DELETED','ok'); + break; default: @@ -681,7 +732,6 @@ class FolderAction extends ObjectAction } - function select() { global $conf_php; @@ -697,6 +747,7 @@ class FolderAction extends ObjectAction if ( $o->hasRight(ACL_READ) ) { + $list[$id]['id'] = 'obj'.$id; $list[$id]['name'] = Text::maxLaenge( 30,$o->name ); $list[$id]['filename'] = Text::maxLaenge( 20,$o->filename ); $list[$id]['desc'] = Text::maxLaenge( 30,$o->desc ); @@ -744,6 +795,18 @@ class FolderAction extends ObjectAction $this->setTemplateVar('order_url' ,Html::url('folder','order',$this->folder->id) ); } + $actionList = array(); + $actionList[] = array('type'=>'copy'); + $actionList[] = array('type'=>'link'); + + if ( $this->folder->hasRight('ACL_WRITE') ) + { + $actionList[] = array('type'=>'move'); + $actionList[] = array('type'=>'delete'); + } + + $this->setTemplateVar('actionlist',$actionList ); + $this->setTemplateVar('object' ,$list ); $this->setTemplateVar('act_objectid',$this->folder->id); } diff --git a/actionClasses/FolderAction.ini.php b/actionClasses/FolderAction.ini.php @@ -9,6 +9,12 @@ menu=show target=multiple menu=show +[edit] +menu=show + +[multiple] +goto=show + [prop] menu=prop target=saveprop