[svn r15740] horizontal dropdowns + consitancy improvements

skala
Patrick Cool 18 years ago
parent 7680a36b87
commit dc86b8b9bb
  1. 4
      main/admin/user_fields_add.php
  2. 59
      main/auth/profile.php
  3. 43
      main/inc/lib/usermanager.lib.php

@ -1,4 +1,4 @@
<?php // $Id: user_fields_add.php 14874 2008-04-13 19:25:19Z yannoo $
<?php // $Id: user_fields_add.php 15740 2008-07-07 09:30:44Z pcool $
/*
==============================================================================
Dokeos - elearning and course management software
@ -69,6 +69,8 @@ $types[USER_FIELD_TYPE_SELECT] = get_lang('FieldTypeSelect');
$types[USER_FIELD_TYPE_SELECT_MULTIPLE] = get_lang('FieldTypeSelectMultiple');
$types[USER_FIELD_TYPE_DATE] = get_lang('FieldTypeDate');
$types[USER_FIELD_TYPE_DATETIME] = get_lang('FieldTypeDatetime');
$types[USER_FIELD_TYPE_DOUBLE_SELECT] = get_lang('FieldTypeDoubleSelect');
$types[USER_FIELD_TYPE_DIVIDER] = get_lang('FieldTypeDivider');
$form->addElement('select','fieldtype',get_lang('FieldType'),$types);
$form->addRule('fieltype', get_lang('ThisFieldIsRequired'), 'required');
// Field display name

@ -1,4 +1,4 @@
<?php // $Id: profile.php 15169 2008-04-29 06:27:22Z yannoo $
<?php // $Id: profile.php 15740 2008-07-07 09:30:44Z pcool $
/*
==============================================================================
Dokeos - elearning and course management software
@ -45,7 +45,7 @@ $cidReset = true;
require ('../inc/global.inc.php');
require_once (api_get_path(LIBRARY_PATH).'formvalidator/FormValidator.class.php');
$this_section = SECTION_MYPROFILE;
api_block_anonymous_users();
$htmlHeadXtra[] = '<script type="text/javascript">
@ -272,6 +272,7 @@ if (is_profile_editable() && api_get_setting('profile', 'password') == 'true')
// EXTRA FIELDS
$extra = UserManager::get_extra_fields(0,50,5,'ASC');
$extra_data = UserManager::get_extra_user_data(api_get_user_id(),true);
foreach($extra as $id => $field_details)
{
if($field_details[6] == 0)
@ -332,6 +333,46 @@ foreach($extra as $id => $field_details)
if ($field_details[7] == 0) $form->freeze('extra_'.$field_details[1]);
$form->applyFilter('theme', 'trim');
break;
case USER_FIELD_TYPE_DOUBLE_SELECT:
foreach ($field_details[8] as $key=>$element)
{
if ($element[2][0] == '*')
{
$values['*'][$element[0]] = str_replace('*','',$element[2]);
}
else
{
$values[0][$element[0]] = $element[2];
}
}
$group='';
$group[] =& HTML_QuickForm::createElement('select', 'extra_'.$field_details[1],'',$values[0],'');
$group[] =& HTML_QuickForm::createElement('select', 'extra_'.$field_details[1].'*','',$values['*'],'');
$form->addGroup($group, 'extra_'.$field_details[1], $field_details[3], '&nbsp;');
if ($field_details[7] == 0) $form->freeze('extra_'.$field_details[1]);
// recoding the selected values for double : if the user has selected certain values, we have to assign them to the correct select form
if (key_exists('extra_'.$field_details[1], $extra_data))
{
// exploding all the selected values (of both select forms)
$selected_values = explode(';',$extra_data['extra_'.$field_details[1]]);
$extra_data['extra_'.$field_details[1]] =array();
// looping through the selected values and assigning the selected values to either the first or second select form
foreach ($selected_values as $key=>$selected_value)
{
if (key_exists($selected_value,$values[0]))
{
$extra_data['extra_'.$field_details[1]]['extra_'.$field_details[1]] = $selected_value;
}
else
{
$extra_data['extra_'.$field_details[1]]['extra_'.$field_details[1].'*'] = $selected_value;
}
}
}
break;
}
}
@ -345,10 +386,6 @@ else
$form->freeze();
}
/*
* Set initial values for all fields.
*/
$extra_data = UserManager::get_extra_user_data(api_get_user_id(),true);
$user_data = array_merge($user_data,$extra_data);
$form->setDefaults($user_data);
@ -622,7 +659,7 @@ elseif ($form->validate())
}
else
{
$sql .= " $key = '".addslashes($value)."',";
$sql .= " $key = '".Database::escape_string($value)."',";
}
}
@ -630,11 +667,11 @@ elseif ($form->validate())
{
if ($userPasswordCrypted)
{
$sql .= " password = MD5('".addslashes($password)."')";
$sql .= " password = MD5('".Database::escape_string($password)."')";
}
else
{
$sql .= " password = '".addslashes($password)."'";
$sql .= " password = '".Database::escape_string($password)."'";
}
}
else // remove trailing , from the query we have so far
@ -669,7 +706,7 @@ Display :: display_header(get_lang('ModifyProfile'));
if (!empty($file_deleted))
{
Display :: display_normal_message(get_lang('FileDeleted'),false);
Display :: display_confirmation_message(get_lang('FileDeleted'),false);
}
elseif (!empty($update_success))
{
@ -685,7 +722,7 @@ elseif (!empty($update_success))
$message.='<br />'.get_lang('ProductionUploaded');
}
Display :: display_normal_message($message,false);
Display :: display_confirmation_message($message,false);
}
if(!empty($warning_msg))

@ -1,4 +1,4 @@
<?php // $Id: usermanager.lib.php 15626 2008-06-26 15:26:29Z elixir_inter $
<?php // $Id: usermanager.lib.php 15740 2008-07-07 09:30:44Z pcool $
/*
==============================================================================
Dokeos - elearning and course management software
@ -38,6 +38,8 @@ define('USER_FIELD_TYPE_SELECT',4);
define('USER_FIELD_TYPE_SELECT_MULTIPLE',5);
define('USER_FIELD_TYPE_DATE',6);
define('USER_FIELD_TYPE_DATETIME',7);
define('USER_FIELD_TYPE_DOUBLE_SELECT',8);
define('USER_FIELD_TYPE_DIVIDER',9);
class UserManager
{
@ -981,9 +983,44 @@ class UserManager
//echo "false - failed" ;
return false;
}
if(!empty($fieldoptions) && in_array($fieldtype,array(USER_FIELD_TYPE_RADIO,USER_FIELD_TYPE_SELECT,USER_FIELD_TYPE_SELECT_MULTIPLE)))
if(!empty($fieldoptions) && in_array($fieldtype,array(USER_FIELD_TYPE_RADIO,USER_FIELD_TYPE_SELECT,USER_FIELD_TYPE_SELECT_MULTIPLE,USER_FIELD_TYPE_DOUBLE_SELECT)))
{
$list = split(';',$fieldoptions);
//echo 'storing the options';
if($fieldtype == USER_FIELD_TYPE_DOUBLE_SELECT)
{
//echo 'double select';
$twolist = explode('|', $fieldoptions);
$counter = 0;
//echo $fieldoptions;
//print_r($twolist);
foreach ($twolist as $individual_list)
{
$splitted_individual_list = split(';',$individual_list);
foreach ($splitted_individual_list as $individual_list_option)
{
//echo 'counter:'.$counter;
if ($counter == 0)
{
$list[] = $individual_list_option;
}
else
{
$list[] = str_repeat('*',$counter).$individual_list_option;
}
}
$counter++;
}
/*
echo '<pre>';
print_r($list);
echo '</pre>';
*/
}
else
{
$list = split(';',$fieldoptions);
}
foreach($list as $option)
{
$option = Database::escape_string($option);

Loading…
Cancel
Save