![]() |
Xataface 2.0
Xataface Application Framework
|
00001 <?php 00002 class dataface_actions_delete { 00003 00004 function handle(&$params){ 00005 import( 'Dataface/DeleteForm.php'); 00006 import( 'Dataface/LanguageTool.php'); 00007 import( 'Dataface/Record.php'); 00008 00009 $app =& Dataface_Application::getInstance(); 00010 $query =& $app->getQuery(); 00011 $record = new Dataface_Record($query['-table'], @$_REQUEST['--__keys__']); 00012 00013 // if ( !Dataface_PermissionsTool::delete($record) ) { 00014 // return Dataface_Error::permissionDenied( 00015 // Dataface_LanguageTool::translate( 00016 // /* i18n id */ 00017 // 'No delete permissions', 00018 // /* Default error message */ 00019 // 'Insufficient Permissions to delete this record', 00020 // /* i18n parameters */ 00021 // array('record'=>$record->getTitle()) 00022 // ) 00023 // ); 00024 // 00025 // 00026 // } 00027 00028 00029 00030 $form = new Dataface_DeleteForm($query['-table'], $app->db(), $query); 00031 00032 $form->_build(); 00033 $form->addElement('hidden','-table'); 00034 $form->setDefaults(array('-table'=>$query['-table'])); 00035 $msg = ''; 00036 00037 if ( $form->validate() ){ 00038 $res = $form->process( array(&$form, 'delete'), true); 00039 $response =& Dataface_Application::getResponse(); 00040 if ( !isset($response['--msg']) ) $response['--msg'] = ''; 00041 $failed = false; 00042 if ( PEAR::isError($res) && !Dataface_Error::isNotice($res) ){ 00043 return $res; 00044 //$error = $res->getMessage(); 00045 //$msg .= "\n". $res->getUserInfo(); 00046 } else if ( Dataface_Error::isNotice($res) ){ 00047 $app->addError($res); 00048 //$response['--msg'] = @$response['--msg'] ."\n".$res->getMessage(); 00049 $failed = true; 00050 } else if ( is_array($res) ){ 00051 $msg = df_translate( 00052 'Some errors occurred while deleting records', 00053 'Some errors occurred while deleting records' 00054 ); 00055 foreach ($res as $warning){ 00056 $response['--msg'] .= "\n".$warning->getMessage(); 00057 } 00058 00059 } else { 00060 $msg = Dataface_LanguageTool::translate( 00061 /* i18n id */ 00062 'Records successfully deleted', 00063 /* default message */ 00064 'Records successfully deleted.' 00065 ); 00066 } 00067 $msg = urlencode(trim($msg."\n".$response['--msg'])); 00068 if ( !$failed ){ 00069 import('Dataface/Utilities.php'); 00070 Dataface_Utilities::fireEvent('after_action_delete', array('record'=>&$record)); 00071 header('Location: '.$_SERVER['HOST_URI'].DATAFACE_SITE_HREF.'?-table='.$query['-table'].'&--msg='.$msg); 00072 exit; 00073 } 00074 } 00075 00076 ob_start(); 00077 $form->display(); 00078 $out = ob_get_contents(); 00079 ob_end_clean(); 00080 00081 00082 $context = array('form'=>$out); 00083 if ( isset($query['-template']) ) $template = $query['-template']; 00084 else if ( isset( $params['action']['template']) ) $template = $params['action']['template']; 00085 else $template = 'Dataface_Delete_Record.html'; 00086 df_display($context, $template, true); 00087 00088 } 00089 }