verifyPackage( 'pigeonholes' ); $gBitSystem->verifyPermission( 'bit_p_edit_pigeonholes' ); include_once( LIBERTY_PKG_PATH.'LibertyStructure.php' ); include_once( PIGEONHOLES_PKG_PATH.'lookup_pigeonholes_inc.php' ); // include edit structure file only when structure_id is known if( !empty( $_REQUEST["structure_id"] ) && ( empty( $_REQUEST['action'] ) || $_REQUEST['action'] != 'remove' ) ) { $verifyStructurePermission = 'bit_p_edit_pigeonholes'; include_once( LIBERTY_PKG_PATH.'edit_structure_inc.php' ); // get all the nodes in this structure foreach( $rootTree as $node ) { $pigeonStructure[$node['structure_id']] = str_repeat( '-', $node['level'] ).' '.$node['title']; } $gBitSmarty->assign( 'pigeonStructure', $pigeonStructure ); } global $gStructure; //vd($_REQUEST); // store the form if we need to if( !empty( $_REQUEST['pigeonhole_store'] ) ) { if( ( empty( $_REQUEST['pigeonhole']['title'] ) ) ) { $gBitSmarty->assign( 'msg', tra( "You must specify a title." ) ); $gBitSystem->display( 'error.tpl' ); die; } // we need to get the root structure id $_REQUEST['pigeonhole']['root_structure_id'] = !empty( $rootStructure->mStructureId ) ? $rootStructure->mStructureId : NULL; // store the pigeonhole $pigeonStore = new Pigeonholes(); $pigeonStore->mContentId = !empty( $_REQUEST['content_id'] ) ? $_REQUEST['content_id'] : NULL; $pigeonStore->load(); if( $pigeonStore->store( $_REQUEST['pigeonhole'] ) ) { header( "Location: ".$_SERVER['PHP_SELF'].'?structure_id='.$pigeonStore->mStructureId ); } else { vd( $gPigeonholes->mErrors ); $gBitSmarty->assign( 'msg', tra( "There was a problem trying to store the pigeonhole." ) ); $gBitSystem->display( 'error.tpl' ); die; } } // if we are just changing the content that is being displayed, we treat it like a preview. if( !empty( $_REQUEST['search_objects'] ) ) { $pigeonInfo['parent_id'] = !empty( $_REQUEST['pigeonhole']['parent_id'] ) ? $_REQUEST['pigeonhole']['parent_id'] : NULL; $pigeonInfo['title'] = !empty( $_REQUEST['pigeonhole']['title'] ) ? $_REQUEST['pigeonhole']['title'] : NULL; $pigeonInfo['data'] = !empty( $_REQUEST['pigeonhole']['edit'] ) ? $_REQUEST['pigeonhole']['edit'] : NULL; $pigeonInfo['selected_members'] = !empty( $_REQUEST['pigeonhole']['members'] ) ? $_REQUEST['pigeonhole']['members'] : NULL; $gBitSmarty->assign( 'pigeonInfo', !empty( $pigeonInfo ) ? $pigeonInfo : NULL ); } elseif( !empty( $_REQUEST['action'] ) || isset( $_REQUEST["confirm"] ) ) { // if we need to edit, show the information if( $_REQUEST['action'] == 'edit' ) { $pigeonInfo = $gPigeonholes->mInfo; // create usable array for selected items in content listing if( !empty( $pigeonInfo['members'] ) ) { foreach( $pigeonInfo['members'] as $member ) { if( $pigeonInfo['content_id'] == $member['parent_id'] ) { $pigeonInfo['selected_members'][] = $member['content_id']; } } } } if( $_REQUEST['action'] == 'edit' || $_REQUEST['action'] == 'create' ) { $gBitSmarty->assign( 'pigeonInfo', !empty( $pigeonInfo ) ? $pigeonInfo : NULL ); } if( $_REQUEST['action'] == 'move' ) { $gPigeonholes->moveMember( $_REQUEST['parent_id'], $_REQUEST['member_id'], $_REQUEST['orientation'] ); } if( $_REQUEST["action"] == 'remove' || isset( $_REQUEST["confirm"] ) ) { if( isset( $_REQUEST["confirm"] ) ) { if( $gPigeonholes->expunge( $_REQUEST["structure_id"] ) ) { header( "Location: ".$_SERVER['PHP_SELF'].'?structure_id='.$gPigeonholes->mInfo["parent_id"] ); die; } else { vd( $gPigeonhole->mErrors ); } } $gBitSystem->setBrowserTitle( 'Confirm removal of '.$gPigeonholes->mInfo['title'] ); $formHash['remove'] = TRUE; $formHash['structure_id'] = $_REQUEST['structure_id']; $formHash['action'] = 'remove'; $msgHash = array( 'label' => 'Remove Pigeonhole', 'confirm_item' => $gPigeonholes->mInfo['title'].'
and any subitems', 'warning' => 'This will remove the pigeonhole but will not modify or remove the content itself.', ); $gBitSystem->confirmDialog( $formHash, $msgHash ); } if( $_REQUEST['action'] == 'demember' && !empty( $_REQUEST['content_id'] ) && !empty( $_REQUEST['parent_id'] ) ) { if( $gPigeonholes->expungePigeonholeMember( $_REQUEST['content_id'], $_REQUEST['parent_id'] ) ) { $feedback['success'] = tra( 'The item was successfully removed' ); } else { $feedback['error'] = tra( 'The item could not be removed' ); } // used to avoid displaying edit form unset( $_REQUEST['action'] ); } } // get content include_once( LIBERTY_PKG_PATH.'get_content_list_inc.php' ); foreach( $contentList['data'] as $cItem ) { $cList[$contentTypes[$cItem['content_type_guid']]][$cItem['content_id']] = $cItem['title'].' [id: '.$cItem['content_id'].']'; } $gBitSmarty->assign( 'contentList', $cList ); $gBitSmarty->assign( 'contentSelect', $contentSelect ); $gBitSmarty->assign( 'contentTypes', $contentTypes ); $listHash['root_structure_id'] = $gPigeonholes->mInfo['root_structure_id']; $pigeonList = $gPigeonholes->getList( $listHash, FALSE, TRUE ); $gBitSmarty->assign( 'pigeonList', $pigeonList['data'] ); $gBitSmarty->assign( 'feedback', !empty( $feedback ) ? $feedback : NULL ); // Display the template $gBitSystem->display( 'bitpackage:pigeonholes/edit_pigeonholes.tpl', !empty( $gStructure ) ? tra( 'Edit Pigeonhole' ).': '.$gStructure->mInfo["title"] : tra( 'Create Pigeonhole' ) ); ?>