[svn r18595] Admin user can export/import the extra_field information of users (see FS#3686)

skala
Julio Montoya 16 years ago
parent 69318a8e4d
commit ec4dc4f474
  1. 4
      main/admin/exemple.csv
  2. 22
      main/admin/exemple.xml
  3. 37
      main/admin/user_export.php
  4. 43
      main/admin/user_import.php

@ -1,3 +1,3 @@
LastName;FirstName;UserName;Password;Email;OfficialCode;PhoneNumber;Status;Courses
Gates;Bill;BillGates;secret_password;bill.gates@microsoft.com;12345678;001-123-456-789;user;COURSE1|COURSE2|COURSE3
Bush;Georges;;;georges_bush@usa.org;;;teacher;COURSE2
Mcfly;Marty;Marty Mcfly;secret;marty@example.com;12345678;001-123-456-789;user;COURSE1|COURSE2|COURSE3
Brown;Emmert;;;drbrown@example.net;;;teacher;COURSE2

1 LastName FirstName UserName Password Email OfficialCode PhoneNumber Status Courses
2 Gates Mcfly Bill Marty BillGates Marty Mcfly secret_password secret bill.gates@microsoft.com marty@example.com 12345678 001-123-456-789 user COURSE1|COURSE2|COURSE3
3 Bush Brown Georges Emmert georges_bush@usa.org drbrown@example.net teacher COURSE2

@ -1,22 +1,22 @@
<?xml version="1.0" encoding="ISO-8859-1"?>
<Contacts>
<Contact>
<LastName>Gates</LastName>
<FirstName>Bill</FirstName>
<UserName>BillGates</UserName>
<Password>secret_password</Password>
<Email>bill.gates@microsoft.com</Email>
<LastName>Mcfly</LastName>
<FirstName>Marty</FirstName>
<UserName>marty</UserName>
<Password>secret</Password>
<Email>marty@example.net</Email>
<OfficialCode>12345678</OfficialCode>
<PhoneNumber>001-123-456-789</PhoneNumber>
<Status>user</Status>
<Courses>COURSE1|COURSE2|COURSE3</Courses>
</Contact>
<Contact>
<LastName>Bush</LastName>
<FirstName>Georges</FirstName>
<UserName></UserName>
<Password></Password>
<Email>georges_bush@usa.org</Email>
<Contact>
<LastName>Brown</LastName>
<FirstName>Emmett</FirstName>
<UserName>emmett</UserName>
<Password>secret</Password>
<Email>drbrown@example.net</Email>
<OfficialCode />
<PhoneNumber />
<Status>teacher</Status>

@ -1,5 +1,5 @@
<?php
// $Id: user_export.php 18237 2009-02-04 19:13:09Z juliomontoya $
// $Id: user_export.php 18595 2009-02-19 21:17:17Z juliomontoya $
/*
==============================================================================
Dokeos - elearning and course management software
@ -99,13 +99,12 @@ if ($form->validate())
if (strlen($course_code) > 0) {
$sql .= " FROM $user_table u, $course_user_table cu WHERE u.user_id = cu.user_id AND course_code = '$course_code' ORDER BY lastname,firstname";
$filename = 'export_users_'.$course_code.'_'.date('Y-m-d_H-i-s');
} else {
} else {
global $_configuration;
if ($_configuration['multiple_access_urls']==true) {
$tbl_user_rel_access_url= Database::get_main_table(TABLE_MAIN_ACCESS_URL_REL_USER);
$access_url_id = api_get_current_access_url_id();
if ($access_url_id != -1){
if ($access_url_id != -1) {
$sql.= " FROM $user_table u INNER JOIN $tbl_user_rel_access_url as user_rel_url
ON (u.user_id= user_rel_url.user_id)
WHERE access_url_id = $access_url_id
@ -113,22 +112,36 @@ if ($form->validate())
}
} else {
$sql .= " FROM $user_table u ORDER BY lastname,firstname";
}
}
$filename = 'export_users_'.date('Y-m-d_H-i-s');
}
$data = array();
require_once (api_get_path(LIBRARY_PATH).'usermanager.lib.php');
$data = array();
$extra_fields = Usermanager::get_extra_fields(0, 0, 5, 'ASC',false);
if ($export['addcsvheader']=='1' AND $export['file_type']=='csv')
{
if($userPasswordCrypted){
$data[] = array('UserId', 'LastName', 'FirstName', 'Email', 'UserName', 'AuthSource', 'Status', 'OfficialCode', 'Phone');
if($userPasswordCrypted) {
$data[] = array('UserId', 'LastName', 'FirstName', 'Email', 'UserName', 'AuthSource', 'Status', 'OfficialCode', 'Phone');
} else {
$data[] = array('UserId', 'LastName', 'FirstName', 'Email', 'UserName','Password', 'AuthSource', 'Status', 'OfficialCode', 'Phone');
$data[] = array('UserId', 'LastName', 'FirstName', 'Email', 'UserName','Password', 'AuthSource', 'Status', 'OfficialCode', 'Phone');
}
foreach($extra_fields as $extra) {
$data[0][]=$extra[1];
}
}
$res = api_sql_query($sql,__FILE__,__LINE__);
while($user = mysql_fetch_array($res,MYSQL_ASSOC))
{
while($user = Database::fetch_array($res,'ASSOC')) {
$student_data= UserManager :: get_extra_user_data($user['UserId'],true,false);
foreach($student_data as $key=>$value) {
$key= substr($key,6);
if (is_array($value))
$user[$key]= $value[$key];
else {
$user[$key]= $value;
}
}
$data[] = $user ;
}

@ -1,9 +1,9 @@
<?php // $Id: user_import.php 18020 2009-01-27 00:02:33Z cfasanando $
<?php // $Id: user_import.php 18595 2009-02-19 21:17:17Z juliomontoya $
/*
==============================================================================
Dokeos - elearning and course management software
Copyright (c) 2004-2008 Dokeos SPRL
Copyright (c) 2004-2009 Dokeos SPRL
Copyright (c) 2003 Ghent University (UGent)
Copyright (c) 2001 Universite catholique de Louvain (UCL)
Copyright (c) Olivier Brouckaert
@ -170,6 +170,19 @@ function save_data($users)
$class_id = ClassManager :: get_class_id($user['ClassName']);
ClassManager :: add_user($user_id, $class_id);
}
//saving extra fields
global $extra_fields;
//print_R($user);
//we are sure the extra field exist
foreach($extra_fields as $extras) {
if (isset($user[$extras[1]])) {
$key = $extras[1];
$value = $user[$extras[1]];
UserManager::update_extra_field_value($user_id,$key,$value);
}
}
if ($sendMail)
{
$recipient_name = $user['FirstName'].' '.$user['LastName'];
@ -296,6 +309,7 @@ $tool_name = get_lang('ImportUserListXMLCSV');
$interbreadcrumb[] = array ("url" => 'index.php', "name" => get_lang('PlatformAdmin'));
set_time_limit(0);
$extra_fields = Usermanager::get_extra_fields(0, 0, 5, 'ASC',false);
if ($_POST['formSent'] AND $_FILES['import_file']['size'] !== 0)
{
@ -351,13 +365,30 @@ $defaults['formSent'] = 1;
$defaults['file_type'] = 'xml';
$form->setDefaults($defaults);
$form->display();
$list=array();
$list_reponse=array();
$result_xml = '' ;
$i=0;
$count_fields = count($extra_fields);
if ($count_fields > 0) {
foreach($extra_fields as $extra) {
$list[] = $extra[1];
$list_reponse[]='xxx';
$spaces = '&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;';
$result_xml.=$spaces.'&lt;'.$extra[1].'&gt;xxx&lt;/'.$extra[1].'&gt;';
if ($i!=$count_fields-1)
$result_xml.='<br/>';
$i++;
}
}
?>
<p><?php echo get_lang('CSVMustLookLike').' ('.get_lang('MandatoryFields').')'; ?> :</p>
<blockquote>
<pre>
<b>LastName</b>;<b>FirstName</b>;<b>Email</b>;UserName;Password;AuthSource;OfficialCode;PhoneNumber;Status;Courses;ClassName
<b>xxx</b>;<b>xxx</b>;<b>xxx</b>;xxx;xxx;<?php echo implode('/',$defined_auth_sources); ?>;xxx;xxx;user/teacher/drh;xxx1|xxx2|xxx3;xxx
<b>LastName</b>;<b>FirstName</b>;<b>Email</b>;UserName;Password;AuthSource;OfficialCode;PhoneNumber;Status;<font style="color:red;"><?php if(count($list)>0) echo implode(';', $list).';';?></font>Courses;ClassName;
<b>xxx</b>;<b>xxx</b>;<b>xxx</b>;xxx;xxx;<?php echo implode('/',$defined_auth_sources); ?>;xxx;xxx;user/teacher/drh;<font style="color:red;"><?php if(count($list_reponse)>0) echo implode(';', $list_reponse).';';?></font>xxx1|xxx2|xxx3;xxx;<br />
</pre>
</blockquote>
@ -376,9 +407,9 @@ $form->display();
<b>&lt;Email&gt;xxx&lt;/Email&gt;</b>
&lt;OfficialCode&gt;xxx&lt;/OfficialCode&gt;
&lt;PhoneNumber&gt;xxx&lt;/PhoneNumber&gt;
&lt;Status&gt;user/teacher/drh&lt;/Status&gt;
&lt;Status&gt;user/teacher/drh&lt;/Status&gt; <?php if ($result_xml!='') { echo '<br /><font style="color:red;">',$result_xml;echo '</font>';} ?>
&lt;Courses&gt;xxx1|xxx2|xxx3&lt;/Courses&gt;
&lt;ClassName&gt;class 1&lt;/ClassName&gt;
&lt;ClassName&gt;class 1&lt;/ClassName&gt;
&lt;/Contact&gt;
&lt;/Contacts&gt;
</pre>

Loading…
Cancel
Save