More fixes in the event system kind of work right now see #4658

skala
Julio Montoya 13 years ago
parent e6bf880857
commit b688b13cd1
  1. 4
      main/admin/configure_homepage.php
  2. 22
      main/admin/event_controller.php
  3. 244
      main/admin/event_type.php
  4. 6
      main/admin/index.php
  5. 5
      main/inc/ajax/model.ajax.php
  6. 16
      main/inc/conf/events.conf.dist.php
  7. 8
      main/inc/lib/event_email_template.class.php
  8. 15
      main/inc/lib/events.lib.inc.php
  9. 10
      main/inc/lib/events_dispatcher.class.php
  10. 26
      main/inc/lib/events_email.class.php
  11. 99
      main/inc/lib/usermanager.lib.php

@ -173,6 +173,10 @@ if (!empty($action)) {
fputs($fp, $home_top);
fclose($fp);
}
if (EventsMail::check_if_using_class('portal_homepage_edited')) {
EventsDispatcher::events('portal_homepage_edited');
}
break;
case 'edit_notice':

@ -5,7 +5,10 @@ $cidReset = true;
require_once '../inc/global.inc.php';
//The event type is so mess that I'm giving me the freedom to try to do a "symfony controller" style
if (api_get_setting('activate_email_template') != 'true') {
api_not_allowed();
}
class eventController { // extends Controller {
public function showAction()
{
@ -47,26 +50,26 @@ switch ($action) {
case 'new':
$event_controller->newAction();
break;
case 'listing':
$content = $event_controller->listingAction();
break;
case 'delete' :
$event_controller->deleteAction($_GET['id']);
$content = $event_controller->listingAction();
break;
break;
default:
case 'listing':
$content = $event_controller->listingAction();
break;
}
//jqgrid will use this URL to do the selects
$url = api_get_path(WEB_AJAX_PATH).'model.ajax.php?a=get_event_email_template';
//The order is important you need to check the the $column variable in the model.ajax.php file
$columns = array(get_lang('Subject'), get_lang('Message'), get_lang('EventTypeName'), get_lang('Language'), get_lang('Status'), get_lang('Actions'));
$columns = array(get_lang('Subject'), get_lang('EventTypeName'), get_lang('Language'), get_lang('Status'), get_lang('Actions'));
//Column config
$column_model = array(
array('name'=>'subject', 'index'=>'subject', 'width'=>'80', 'align'=>'left'),
array('name'=>'message', 'index'=>'message', 'width'=>'500', 'align'=>'left','sortable'=>'false'),
// array('name'=>'message', 'index'=>'message', 'width'=>'500', 'align'=>'left','sortable'=>'false'),
array('name'=>'event_type_name', 'index'=>'event_type_name', 'width'=>'80', 'align'=>'left'),
array('name'=>'language_id', 'index'=>'language_id', 'width'=>'80', 'align'=>'left'),
array('name'=>'activated', 'index'=>'activated', 'width'=>'80', 'align'=>'left'),
@ -84,6 +87,9 @@ $(function() {
});
</script>';
$interbreadcrumb[] = array('url' => 'index.php', 'name' => get_lang('PlatformAdmin'));
$interbreadcrumb[] = array('url' => '#', 'name' => get_lang('Events'));
$tpl = new Template($tool_name);
$tpl->assign('actions', $actions);
$tpl->assign('message', $message);

@ -9,27 +9,34 @@ $this_section = SECTION_PLATFORM_ADMIN;
api_protect_admin_script();
if (api_get_setting('activate_email_template') != 'true') {
api_not_allowed();
}
$interbreadcrumb[] = array('url' => 'index.php', 'name' => get_lang('PlatformAdmin'));
$interbreadcrumb[] = array('url' => 'event_controller.php', 'name' => get_lang('Events'));
$tool_name = get_lang('events_title');
$action = isset($_POST['action']) ? $_POST['action'] : null;
//$eventId = isset($_POST['eventId'])?$_POST['eventId']:null;
$eventName = isset($_POST['eventList']) ? $_POST['eventList'] : null;
$eventUsers = isset($_POST['eventUsers']) ? $_POST['eventUsers'] : null;
$eventMessage = isset($_POST['eventMessage']) ? $_POST['eventMessage'] : null;
$eventSubject = isset($_POST['eventSubject']) ? $_POST['eventSubject'] : null;
$eventMessageLanguage = isset($_POST['languages']) ? $_POST['languages'] : null;
$activated = isset($_POST['activated']) ? $_POST['activated'] : 0;
$event_name = isset($_REQUEST['event_type_name']) ? addslashes($_REQUEST['event_type_name']) : 0;
if ($action == 'modEventType') {
if ($eventUsers) {
$users = explode(';', $eventUsers);
} else {
$users = array();
}
}
if (!empty($event_name)) {
$eventName = $event_name;
}
save_event_type_message($eventName, $users, $eventMessage, $eventSubject, $eventMessageLanguage, $activated);
header('location: event_type.php');
header('location: event_controller.php');
exit;
}
@ -40,20 +47,37 @@ $languages = api_get_languages();
$ajaxPath = api_get_path(WEB_CODE_PATH) . 'inc/ajax/events.ajax.php';
Display::display_header($tool_name);
$action_array = array(array('url' =>'event_controller.php?action=listing' , 'content' => get_lang('List')));
$action_array = array(array('url' =>'event_controller.php?action=listing' , 'content' => Display::return_icon('view_text.png', get_lang('List'), array(), ICON_SIZE_MEDIUM)));
echo Display::actions($action_array);
$key_lang = get_lang('unsaved_changes');
$users = UserManager::get_user_list();
$users = UserManager::get_user_list(array(), array('firstname'));
$new_user_list = array();
foreach($users as $user) {
if ($user['status'] == ANONYMOUS) {
continue;
}
$new_user_list[] = $user;
}
?>
<script>
var usersList = <?php print json_encode($users) ?>;
var usersList = <?php print json_encode($new_user_list) ?>;
var eventTypes = <?php print json_encode($ets) ?>;
var eventsConfig = <?php print json_encode($event_config) ?>;
var currentLanguage = <?php print json_encode(api_get_interface_language()) ?>;
var flagContentHasChanged = false;
var key_lang = "<?php print $key_lang ?>";
var key_lang = "<?php print $key_lang ?>";
var event_type_name = "<?php echo $event_name ?>";
$(document).ready(function() {
confirmMessage("eventList");
if (event_type_name != 0) {
$("#event_list_group").hide();
}
});
function ajax(params,func) {
$.ajax({
@ -61,64 +85,62 @@ $users = UserManager::get_user_list();
type: "POST",
data: params,
success: func
}
);
});
}
function refreshUsersList() {
removeAllOption($('#usersList'));
$.each(usersList, function(ind,item) {
console.log(item.firstname);
$.each(usersList, function(ind,item) {
addOption($('#usersList'), item.user_id, item.firstname + ' '+item.lastname);
});
}
function getCurrentEventTypeInd() {
var ind=false;
$.each(eventTypes,function(i,item) {
if(item.event_type_name == $('#eventList option:selected').first().attr('value')) {
ind=i;
return false;
}
}
)
return ind;
}
function getCurrentEventTypeName() {
var name = false;
return $('#eventList option:selected').first().attr('value');
if (event_type_name != 0) {
return event_type_name;
} else {
return $('#eventList option:selected').first().attr('value');
}
}
function self_sent_lock(self_sent) {
if (self_sent == true) {
$(".registration_case").show();
$("#usersList").attr('disabled', 'true');
$("#usersSubList").attr('disabled', 'true');
removeAllOption($('#usersSubList'));
} else {
$(".registration_case").show();
$("#usersList").removeAttr('disabled');
$("#usersSubList").removeAttr('disabled');
}
}
function showEventType() {
cleanInput();
eInd = getCurrentEventTypeInd();
cleanInput();
currentEventName = getCurrentEventTypeName();
$("span#activated_checkbox").css("display", "inline"); // make checkbox visible
$('input[name=activated]').attr('checked', false);
var self_sent = false;
if (typeof(eventsConfig[currentEventName])!='undefined') {
// if registration, only sent to self_user
if (eventsConfig[currentEventName].self_sent == true) {
//hide
$(".registration_case").show();
$("#usersList").attr('disabled', 'true');
$("#usersSubList").attr('disabled', 'true');
} else {
$(".registration_case").show();
$("#usersList").removeAttr('disabled');
$("#usersSubList").removeAttr('disabled');
if (eventsConfig[currentEventName].self_sent == true) {
self_sent = true;
}
} else {
$(".registration_case").show();
$("#usersList").removeAttr('disabled');
$("#usersSubList").removeAttr('disabled');
}
self_sent_lock(self_sent);
// List of events configuration
$('#eventName').attr('value', currentEventName);
// $('#descLangVar').text(eventsConfig[currentEventName].desc_lang_var);
$('#eventNameTitle').text('');
//$('#descLangVar').text(eventsConfig[currentEventName].desc_lang_var);
// Set message and subject accoding to the current interface language
$.each(eventTypes,function(key,value) {
@ -143,28 +165,30 @@ $users = UserManager::get_user_list();
$('#keys').append('<li>'+key+'</li>');
});
}
$.ajax({
url: '<?php echo $ajaxPath ?>?action=get_event_users&eventName=' +currentEventName,
dataType: 'json',
success: function(data) {
removeAllOption($('#usersSubList'));
refreshUsersList();
usersIds = new Array();
var json = jQuery.parseJSON(data);
$.each(json, function(ind,item) {
addOption($('#usersSubList'),item.user_id, item.firstname + ' '+item.lastname);
usersIds[ind] = item.value;
removeOption($('#usersList'),item.user_id);
});
$('#eventUsers').attr('value',usersIds.join(';'));
}
});
if (self_sent == false ) {
$.ajax({
url: '<?php echo $ajaxPath ?>?action=get_event_users&eventName=' +currentEventName,
dataType: 'json',
success: function(data) {
removeAllOption($('#usersSubList'));
refreshUsersList();
usersIds = new Array();
var json = jQuery.parseJSON(data);
$.each(json, function(ind,item) {
addOption($('#usersSubList'),item.user_id, item.firstname + ' '+item.lastname);
usersIds[ind] = item.value;
removeOption($('#usersList'),item.user_id);
});
$('#eventUsers').attr('value',usersIds.join(';'));
}
});
}
}
function submitForm() {
if($('#eventId')) {
if ($('#eventId')) {
usersIds = new Array();
$('#usersSubList option').each(function(ind,item) {
@ -185,7 +209,7 @@ $users = UserManager::get_user_list();
select.find('option[value='+value+']').remove();
}
function removeAllOption(select) {
function removeAllOption(select) {
select.find('option').remove();
}
@ -228,12 +252,12 @@ $users = UserManager::get_user_list();
/**
* Asks if user want to abandon the changes he's done
*/
function confirmMessage(sender) {
console.log(sender);
if(flagContentHasChanged == true) {
if(confirm(key_lang)) {
function confirmMessage(sender) {
if (flagContentHasChanged == true) {
if (confirm(key_lang)) {
flagContentHasChanged = false;
if(sender == "eventList") {
if (sender == "eventList") {
cleanInput();
showEventType();
} else if(sender == "languages") {
@ -252,65 +276,55 @@ $users = UserManager::get_user_list();
/**
* Empty the input and the textarea
*/
function cleanInput()
{
function cleanInput() {
$('#eventMessage').val("");
$('#eventSubject').val("");
}
</script>
<div class="page-header">
<h2><?php print get_lang('events_title') ?></h2>
</div>
<form method="POST" onSubmit="return submitForm(); ">
<table id="" width="90%">
<tr>
<td width="5%">
<h4><?php print get_lang('events_listTitle'); ?></h4>
</td>
<td width="5%">
<h4><?php print get_lang('events_userListTile'); ?></h4>
</td>
<td width="5%">
&nbsp;
</td>
<td width="5%">
<h4><?php print get_lang('events_userSubListTile'); ?></h4>
</td>
</tr>
<tr>
<td>
<select multiple="1" id="eventList" onchange="confirmMessage(this.name); return false;" name="eventList">
<?php
foreach ($event_config as $key => $config) {
print '<option value="' . $key . '">' . get_lang($config['name_lang_var']) . '</option>';
}
?>
</select>
</td>
<td>
<select multiple="1" id="usersList" class="registration_case"></select>
</td>
<td valign="middle" class="registration_case">
<button class="arrowr" onclick='moveUsers($("#usersList"),$("#usersSubList")); return false;'></button>
<br />
<br />
<button class="arrowl" onclick='moveUsers($("#usersSubList"),$("#usersList")); return false;'></button>
</td>
<td>
<select multiple="1" id="usersSubList" class="registration_case"></select>
</td>
</tr>
</table>
<div class="row">
<div class="span12" id="event_list_group">
<h4><?php print get_lang('events_listTitle'); ?></h4>
<select class="span6" multiple="1" id="eventList" onchange="confirmMessage(this.name); return false;" name="eventList">
<?php
foreach ($event_config as $key => $config) {
print '<option value="' . $key . '">' . get_lang($config['name_lang_var']) . '</option>';
}
?>
</select>
</div>
<div class="span4">
<h4><?php print get_lang('events_userListTile'); ?></h4>
<select multiple="1" id="usersList" class="span3 registration_case"></select>
</div>
<div class="span4">
<div class="registration_case">
<button class="arrowr" onclick='moveUsers($("#usersList"),$("#usersSubList")); return false;'></button>
<br />
<br />
<button class="arrowl" onclick='moveUsers($("#usersSubList"),$("#usersList")); return false;'></button>
</div>
</div>
<div class="span4">
<h4><?php print get_lang('events_userSubListTile'); ?></h4>
<select class="span3" multiple="1" id="usersSubList" class="registration_case"></select>
</div>
</div>
<br />
<span id="activated_checkbox">
<h2 id="eventNameTitle"></h2>
<span id="activated_checkbox">
<label for="activated" style="display:inline;"><?php print get_lang('checkbox_activated'); ?></label>
<input type="checkbox" name="activated" value="1" />
</span>
</span>
<br />
<h2 id="eventNameTitle"></h2>
<select id="languages" name="languages" style="margin-top:20px;" onclick='confirmMessage(this.name); return false;'>
<?php foreach ($languages["name"] as $key => $value) {
$english_name = $languages['folder'][$key]; ?>
@ -319,9 +333,9 @@ foreach ($event_config as $key => $config) {
</select>
<input type="hidden" name="action" value="modEventType" />
<input type="hidden" name="eventId" id="eventId" />
<input type="hidden" name="eventId" id="eventId" />
<input type="hidden" name="eventUsers" id="eventUsers" />
<input type="hidden" id="eventName" />
<input type="hidden" id="eventName" value="<?php echo $event_name ?>"/>
<br />
<!-- <div id="descLangVar">

@ -152,9 +152,11 @@ if (api_is_platform_admin()) {
$items[] = array('url'=>'configure_inscription.php', 'label' => get_lang('ConfigureInscription'));
$items[] = array('url'=>'statistics/index.php', 'label' => get_lang('Statistics'));
/* event settings */
$items[] = array('url'=>'event_type.php', 'label' => get_lang('events_title'));
/* Event settings */
if (api_get_setting('activate_email_template') == 'true') {
$items[] = array('url'=>'event_controller.php?action=listing', 'label' => get_lang('events_title'));
}
if (!empty($_configuration['multiple_access_urls'])) {
if (api_is_global_platform_admin()) {

@ -258,13 +258,16 @@ switch ($action) {
$result = $new_result;
break;
case 'get_event_email_template':
$columns = array('subject', 'message', 'event_type_name', 'language_id', 'activated', 'actions');
$columns = array('subject', 'event_type_name', 'language_id', 'activated', 'actions');
if(!in_array($sidx, $columns)) {
$sidx = 'subject';
}
$result = Database::select('*', $obj->table, array('order'=>"$sidx $sord", 'LIMIT'=> "$start , $limit"));
$new_result = array();
foreach ($result as $item) {
$language_info = api_get_language_info($item['language_id']);
$item['language_id'] = $language_info['english_name'];
$item['actions'] = Display::url(Display::return_icon('edit.png', get_lang('Edit')), api_get_path(WEB_CODE_PATH).'admin/event_type.php?action=edit&event_type_name='.$item['event_type_name']);
$item['actions'] .= Display::url(Display::return_icon('delete.png', get_lang('Delete')), api_get_path(WEB_CODE_PATH).'admin/event_controller.php?action=delete&id='.$item['id']);
/*if (!$item['status']) {

@ -18,7 +18,7 @@ global $event_config;
$event_config = array(
'portal_homepage_edited' => array( // key for "user registration" event
'actions' => array( // we link this event to a bunch of functions that will be triggered when the event is fired
'portal_homepage_edited_send_email' // don't forget to actually write this function at the end of this file
'event_send_mail' // don't forget to actually write this function at the end of this file
),
'self_sent' => false, // this key states that we can't add user to this event through the admin panel
'name_lang_var' => get_lang('portal_homepage_edited'),
@ -86,8 +86,7 @@ function user_registration_event_send_mail_filter_func(&$values)
* @param string $event_name
* @param array $params
*/
function event_send_mail($event_name, $params)
{
function event_send_mail($event_name, $params) {
require_once api_get_path(LIBRARY_PATH).'events_email.class.php';
EventsMail::send_mail($event_name, $params);
}
@ -99,23 +98,18 @@ function event_send_mail($event_name, $params)
* @param int $user_to
* @return boolean
*/
function check_if_mail_already_sent($event_name, $user_from, $user_to = null)
{
if ($user_to == null)
{
function check_if_mail_already_sent($event_name, $user_from, $user_to = null) {
if ($user_to == null) {
$sql = 'SELECT COUNT(*) as total FROM ' . Database::get_main_table(TABLE_EVENT_SENT) . '
WHERE user_from = '.$user_from.' AND event_type_name = "'.$event_name.'";
';
}
else
{
} else {
$sql = 'SELECT COUNT(*) as total FROM ' . Database::get_main_table(TABLE_EVENT_SENT) . '
WHERE user_from = '.$user_from.' AND user_to = '.$user_to.' AND event_type_name = "'.$event_name.'";
';
}
$result = Database::store_result(Database::query($sql), 'ASSOC');
return $result[0]["total"];
}

@ -33,7 +33,13 @@ class EventEmailTemplate extends Model {
*/
public function display() {
// action links
$content = Display::actions(array(array('url' => 'event_type.php' , 'content' => get_lang('Add'))));
$content = Display::actions(array(
array(
'url' => 'event_type.php' ,
'content' => Display::return_icon('new_document.png', get_lang('Add'), array(), ICON_SIZE_MEDIUM)
)
)
);
$content .= Display::grid_html('event_email_template');
return $content;
}

@ -679,14 +679,12 @@ function get_event_users($event_name) {
$event_name = Database::escape_string($event_name);
$sql = 'SELECT user.user_id, user.firstname, user.lastname FROM '.Database::get_main_table(TABLE_MAIN_USER).' user JOIN '.Database::get_main_table(TABLE_EVENT_TYPE_REL_USER).' relUser
ON relUser.user_id = user.user_id
WHERE relUser.event_type_name = "'.$event_name.'"';
WHERE user.status <> '.ANONYMOUS.' AND relUser.event_type_name = "'.$event_name.'"';
//For tests
//$sql = 'SELECT user.user_id, user.firstname, user.lastname FROM '.Database::get_main_table(TABLE_MAIN_USER);
$user_list = Database::store_result(Database::query($sql), 'ASSOC');
return json_encode($user_list);
return json_encode($user_list);
}
/**
@ -709,15 +707,14 @@ function save_event_type_message($event_name, $users, $message, $subject, $event
Database::query($sql);
foreach ($users as $user) {
$sql = 'INSERT INTO '.Database::get_main_table(TABLE_EVENT_TYPE_REL_USER).' (user_id,event_type_name)
VALUES('.intval($user).',"'. $event_name.'")';
$sql = 'INSERT INTO '.Database::get_main_table(TABLE_EVENT_TYPE_REL_USER).' (user_id,event_type_name) VALUES('.intval($user).',"'. $event_name.'")';
Database::query($sql);
}
$language_id = api_get_language_id($event_message_language);
// check if this template in this language already exists or not
$sql = 'SELECT COUNT(id) as total FROM '.Database::get_main_table(TABLE_EVENT_EMAIL_TEMPLATE).'
WHERE event_type_name = "'.$event_name.'" AND language_id = (
SELECT id FROM '.Database::get_main_table(TABLE_MAIN_LANGUAGE).' WHERE dokeos_folder = "'.$event_message_language.'")';
WHERE event_type_name = "'.$event_name.'" AND language_id = '.$language_id;
$sql = Database::store_result(Database::query($sql),'ASSOC');
// if already exists, we update

@ -11,13 +11,13 @@ include_once api_get_path(CONFIGURATION_PATH).'events.conf.php';
*/
class EventsDispatcher
{
public static function events($event_name, $event_data)
public static function events($event_name, $event_data = array())
{
global $event_config;
// get the config for the event passed in parameter ($event_name)
// and execute every actions with the values
foreach ($event_config[$event_name]["actions"] as $func)
{
foreach ($event_config[$event_name]["actions"] as $func) {
if (!function_exists($func)) // if the function doesn't exist, we log
{
error_log("EventsDispatcher warning : ".$func." does not exist.");
@ -41,6 +41,4 @@ class EventsDispatcher
$func($event_name, $event_data);
}
}
}
?>
}

@ -170,26 +170,20 @@ class EventsMail
* @param string $event_name
* @return boolean
*/
public static function check_if_using_class($event_name)
{
if (api_get_setting('activate_email_template') === 'false')
{
return false;
}
public static function check_if_using_class($event_name) {
if (api_get_setting('activate_email_template') === 'false') {
return false;
}
$current_language = api_get_interface_language();
$sql = 'SELECT COUNT(*) as total FROM ' . Database::get_main_table(TABLE_EVENT_EMAIL_TEMPLATE) . ' em
INNER JOIN ' . Database::get_main_table(TABLE_MAIN_LANGUAGE) . ' l on em.language_id = l.id
WHERE em.event_type_name = "' . $event_name . '" and l.dokeos_folder = "english" and em.activated = 1
';
$exists = Database::store_result(Database::query($sql), 'ASSOC');
WHERE em.event_type_name = "' . $event_name . '" and l.dokeos_folder = "'.$current_language.'" and em.activated = 1';
if ($exists[0]["total"])
{
return true;
}
else
{
$exists = Database::store_result(Database::query($sql), 'ASSOC');
if ($exists[0]["total"]) {
return true;
} else {
return false;
}
}

@ -166,23 +166,17 @@ class UserManager {
}
/* MANAGE EVENT WITH MAIL */
if(EventsMail::check_if_using_class('user_registration'))
{
$values["about_user"] = $return;
$values["password"] = $original_password;
$values["send_to"] = array($return);
$values["prior_lang"] = null;
EventsDispatcher::events('user_registration', $values);
}
else
{
@api_mail_html($recipient_name, $email, $emailsubject, $emailbody, $sender_name, $email_admin);
}
/* ENDS MANAGE EVENT WITH MAIL */
/* MANAGE EVENT WITH MAIL */
if (EventsMail::check_if_using_class('user_registration')) {
$values["about_user"] = $return;
$values["password"] = $original_password;
$values["send_to"] = array($return);
$values["prior_lang"] = null;
EventsDispatcher::events('user_registration', $values);
} else {
@api_mail_html($recipient_name, $email, $emailsubject, $emailbody, $sender_name, $email_admin);
}
/* ENDS MANAGE EVENT WITH MAIL */
}
@ -755,32 +749,29 @@ class UserManager {
}
public static function get_user_list_by_ids($ids = array(), $active = null)
{
if(empty($ids))
{
return array();
}
$ids = is_array($ids) ? $ids : array($ids);
$ids = array_map('intval', $ids);
$ids = implode(',', $ids);
$tbl_user = Database::get_main_table(TABLE_MAIN_USER);
$sql = "SELECT * FROM $tbl_user WHERE user_id IN ($ids)";
if(! is_null($active))
{
$sql .= ' AND active=' . ($active ? '1' : '0');
}
$rs = Database::query($sql);
$result = array();
while ($row = Database::fetch_array($rs))
{
$result[] = $row;
}
return $result;
{
if(empty($ids)) {
return array();
}
$ids = is_array($ids) ? $ids : array($ids);
$ids = array_map('intval', $ids);
$ids = implode(',', $ids);
$tbl_user = Database::get_main_table(TABLE_MAIN_USER);
$sql = "SELECT * FROM $tbl_user WHERE user_id IN ($ids)";
if(!is_null($active)) {
$sql .= ' AND active=' . ($active ? '1' : '0');
}
$rs = Database::query($sql);
$result = array();
while ($row = Database::fetch_array($rs)) {
$result[] = $row;
}
return $result;
}
/**
* Get a list of users of which the given conditions match with an = 'cond'
* @param array $conditions a list of condition (exemple : status=>STUDENT)
@ -815,6 +806,7 @@ class UserManager {
}
return $return_array;
}
/**
* Get a list of users of which the given conditions match with a LIKE '%cond%'
@ -1094,11 +1086,7 @@ class UserManager {
return self::update_user_picture($user_id);
}
/*
-----------------------------------------------------------
PRODUCTIONS FUNCTIONS
-----------------------------------------------------------
*/
/* PRODUCTIONS FUNCTIONS */
/**
* Returns an XHTML formatted list of productions for a user, or FALSE if he
@ -1290,7 +1278,7 @@ class UserManager {
while ($rowufv = Database::fetch_array($resufv)) {
if ($n > 1) {
$sqld = "DELETE FROM $t_ufv WHERE id = ".$rowufv['id'];
$resd = Database::query($sqld);
Database::query($sqld);
$n--;
}
$rowufv = Database::fetch_array($resufv);
@ -1301,8 +1289,7 @@ class UserManager {
}
return true;
}
}
elseif ($n == 1) {
} elseif ($n == 1) {
//we need to update the current record
$rowufv = Database::fetch_array($resufv);
if ($rowufv['field_value'] != $fvalues) {
@ -1596,12 +1583,12 @@ class UserManager {
while ($row = Database::fetch_array($result)) {
// deleting the option
$sql_delete_option = "DELETE FROM $table_field_options WHERE id='".Database::escape_string($row['id'])."'";
$result_delete_option = Database::query($sql_delete_option);
Database::query($sql_delete_option);
$return['deleted_options']++;
// deleting the answer of the user who has chosen this option
$sql_delete_option_value = "DELETE FROM $table_field_options_values WHERE field_id = '".Database::escape_string($fieldid)."' AND field_value = '".Database::escape_string($row['option_value'])."'";
$result_delete_option_value = Database::query($sql_delete_option_value);
Database::query($sql_delete_option_value);
$return['deleted_option_values'] = $return['deleted_option_values'] + Database::affected_rows();
}
@ -1814,6 +1801,7 @@ class UserManager {
// all the information of the field
$sql = "SELECT * FROM $table_field WHERE field_type='".Database::escape_string($field_type)."'";
$result = Database::query($sql);
$return = array();
while ($row = Database::fetch_array($result)) {
$return[] = $row['id'];
}
@ -2792,14 +2780,6 @@ class UserManager {
$user_id = intval($user_id);
$field_id = intval($field_id);
//&& (substr($tag,strlen($tag)-1) == '@')
/*$sent_by_user = false;
if ( substr($tag,0,1) == '@') {
//is a value sent by the list
$sent_by_user = true;
$tag = substr($tag,1,strlen($tag)-2);
}
*/
$tag_id = UserManager::get_tag_id($tag,$field_id);
/* IMPORTANT
* @todo we don't create tags with numbers
@ -2843,6 +2823,7 @@ class UserManager {
}
}
}
/**
* Deletes an user tag
* @param int user id

Loading…
Cancel
Save