[svn r15782] delete user field

skala
Patrick Cool 18 years ago
parent 8f09ed81e4
commit 204d11dc04
  1. 66
      main/admin/user_fields.php

@ -118,6 +118,8 @@ if(1)
}
break;
case 'movedown' :
if (api_is_platform_admin() && !empty($_GET['field_id']))
{
if (move_user_field('movedown', $_GET['field_id']))
{
Display :: display_confirmation_message(get_lang('FieldMovedDown'));
@ -126,6 +128,20 @@ if(1)
{
Display :: display_error_message(get_lang('CannotMoveField'));
}
}
break;
case 'delete':
if (api_is_platform_admin() && !empty($_GET['field_id']))
{
if (delete_user_fields($_GET['field_id']))
{
Display :: display_confirmation_message(get_lang('FieldDeleted'));
}
else
{
Display :: display_error_message(get_lang('CannotDeleteField'));
}
}
break;
}
Security::clear_token();
@ -279,14 +295,16 @@ function modify_visibility($visibility,$url_params,$row)
* @param array The results row
* @return string The link
*/
function modify_changeability($visibility,$url_params,$row)
function modify_changeability($changeability,$url_params,$row)
{
return ($visibility?'<a href="'.api_get_self().'?action=freeze_field&field_id='.$row[0].'&sec_token='.$_SESSION['sec_token'].'"><img src="'.api_get_path(WEB_IMG_PATH).'right.gif" alt="'.get_lang('MakeUnchangeable').'" /></a>':'<a href="'.api_get_self().'?action=thaw_field&field_id='.$row[0].'&sec_token='.$_SESSION['sec_token'].'"><img src="'.api_get_path(WEB_IMG_PATH).'wrong.gif" alt="'.get_lang('MakeChangeable').'" /></a>');
return ($changeability?'<a href="'.api_get_self().'?action=freeze_field&field_id='.$row[0].'&sec_token='.$_SESSION['sec_token'].'"><img src="'.api_get_path(WEB_IMG_PATH).'right.gif" alt="'.get_lang('MakeUnchangeable').'" /></a>':'<a href="'.api_get_self().'?action=thaw_field&field_id='.$row[0].'&sec_token='.$_SESSION['sec_token'].'"><img src="'.api_get_path(WEB_IMG_PATH).'wrong.gif" alt="'.get_lang('MakeChangeable').'" /></a>');
}
function edit_filter()
function edit_filter($id,$url_params,$row)
{
$return = '<a href="user_fields_add.php?action=edit&field_id='.$row[0].'&sec_token='.$_SESSION['sec_token'].'">'.Display::return_icon('edit.gif',get_lang('Edit')).'</a>';
$return .= ' <a href="'.api_get_self().'?action=delete&field_id='.$row[0].'&sec_token='.$_SESSION['sec_token'].'" onclick="javascript:if(!confirm('."'".addslashes(htmlentities(get_lang("ConfirmYourChoice"),ENT_QUOTES,$charset))."'".')) return false;">'.Display::return_icon('delete.gif',get_lang('Delete')).'</a>';
return $return;
}
/**
* Move a user defined field up or down
@ -347,4 +365,44 @@ function move_user_field($direction,$field_id)
return true;
}
/**
* Delete a user field (and also the options and values entered by the users)
*
* @param integer $field_id the id of the field that has to be deleted
* @return boolean true if the field has been deleted, false if the field could not be deleted (for whatever reason)
*
* @author Patrick Cool <patrick.cool@UGent.be>, Ghent University, Belgium
* @version July 2008
* @since Dokeos 1.8.6
*/
function delete_user_fields($field_id)
{
// Database table definitions
$table_user_field = Database::get_main_table(TABLE_MAIN_USER_FIELD);
$table_user_field_options = Database::get_main_table(TABLE_MAIN_USER_FIELD_OPTIONS);
$table_user_field_values = Database::get_main_table(TABLE_MAIN_USER_FIELD_VALUES);
// delete the fields
$sql = "DELETE FROM $table_user_field WHERE id = '".Database::escape_string($field_id)."'";
$result = api_sql_query($sql,__FILE__,__LINE__);
if (Database::affected_rows() == 1)
{
// delete the field options
$sql = "DELETE FROM $table_user_field_options WHERE field_id = '".Database::escape_string($field_id)."'";
$result = api_sql_query($sql,__FILE__,__LINE__);
// delete the field values
$sql = "DELETE FROM $table_user_field_values WHERE field_id = '".Database::escape_string($field_id)."'";
$result = api_sql_query($sql,__FILE__,__LINE__);
// field was deleted so we return true
return true;
}
else
{
// the field was not deleted so we return false
return false;
}
}
?>
Loading…
Cancel
Save