/** * Initialize the order param */ function init_order_param() { global $UserSettings; if (empty($UserSettings)) { $UserSettings = new UserSettings(); } // attribution of an order type $this->order_param = 'results_' . $this->param_prefix . 'order'; $order_request = param($this->order_param, 'string', '', true); // remove symbols '-' from the end $order_request = rtrim($order_request, '-'); if ($this->force_order_by_count !== NULL && !empty($order_request)) { // Check if we should force an order filed to default value if ($this->get_total_rows() > $this->force_order_by_count) { // This table has very much records we should force an order to default $reverse_default_order = str_replace('D', 'A', $this->default_order); $reverse_default_order = $reverse_default_order == $this->default_order ? str_replace('A', 'D', $this->default_order) : $reverse_default_order; if ($order_request != $this->default_order && $order_request != $reverse_default_order) { // If an order from request is not default then we must change it to default $this->order = $this->default_order; $order_request_title = $order_request; if (isset($this->cols)) { // Try to find a title of the ordered field to display it in warning message $order_index = strpos($order_request, 'A'); $order_index = $order_index === FALSE ? strpos($order_request, 'D') : $order_index; if (isset($this->cols[$order_index]) && isset($this->cols[$order_index]['th'])) { $order_request_title = $this->cols[$order_index]['th']; } } // Add a message to inform user about this order type is not allowed in this case $this->add_message(sprintf(T_('In order to maintain good performance, you cannot sort by %s when there are more than %s results.'), $order_request_title, number_format($this->force_order_by_count, 0, '', ' '))); } } } if (empty($this->order)) { // Set an order from GET request $this->order = $order_request; } if (!empty($this->param_prefix) && !empty($this->order) && $this->order != $UserSettings->get($this->order_param)) { // Change an order param in DB for current user and current list if ($this->order == $this->default_order) { // Delete an order param for current list if it is a default value $UserSettings->delete($this->order_param); } else { // Set a new value of an order param for current list $UserSettings->set($this->order_param, $this->order); } $UserSettings->dbupdate(); } if (!empty($this->param_prefix) && empty($this->order)) { // Set an order param from DB if ($UserSettings->get($this->order_param) != '') { // Set a value for current list if it was already defined $this->order = $UserSettings->get($this->order_param); } } if (empty($this->order)) { // Set a default value $this->order = $this->default_order; } }
if (empty($users_to_remind_ids)) { // There is no user to remind after we have filtered out those ussers who haven't logged in since a long time $result_message = T_('It was not necessary to send any reminder!'); return 1; } // Set TRUE to use gender settings from back office global $is_admin_page; $is_admin_page = true; // Get all those user threads and their recipients where the corresponding users have unread messages $unread_threads = get_users_unread_threads($users_to_remind_ids, NULL, 'array', 'html'); // Get unread thread urls list($threads_link) = get_messages_link_to(); $reminder_sent = 0; foreach ($users_to_remind_ids as $user_ID) { // send reminder email $email_template_params = array('unread_threads' => $unread_threads[$user_ID], 'threads_link' => $threads_link); $notify_User = $UserCache->get_by_ID($user_ID); // Change locale here to localize the email subject and content locale_temp_switch($notify_User->get('locale')); if (send_mail_to_User($user_ID, T_('You have unread messages!'), 'private_messages_unread_reminder', $email_template_params)) { // Update users last unread message reminder timestamp $UserSettings->set('last_unread_messages_reminder', date2mysql($servertimenow), $user_ID); // save UserSettings after each email, because the cron task mail fail and users won't be updated! $UserSettings->dbupdate(); $reminder_sent++; } locale_restore_previous(); } $result_message = sprintf(T_('%d reminder emails were sent!'), $reminder_sent); return 1; /* ok */
function test_usersettings() { $us = new UserSettings(); $this->assertFalse($us->get('foo')); // no current user $this->assertNull($us->get('foo', 1)); // not set $this->assertTrue($us->set('foo', 'bar', 1)); // successfully set $this->assertEqual('bar', $us->get('foo', 1)); $us->dbupdate(); }
/** * Initialize the order param * * @param string default ordering of columns (special syntax) if not specified in the URL params * example: -A-- will sort in ascending order on 2nd column * example: ---D will sort in descending order on 4th column */ function init_order_param($default_order) { global $UserSettings; if (empty($UserSettings)) { $UserSettings = new UserSettings(); } // attribution of an order type $this->order_param = 'results_' . $this->param_prefix . 'order'; $this->order = param($this->order_param, 'string', '', true); // remove symbols '-' from the end $this->order = preg_replace('/(-*[AD]+)(-*)/i', '$1', $this->order); if (!empty($this->param_prefix) && !empty($this->order) && $this->order != $UserSettings->get($this->order_param)) { // Change an order param in DB for current user and current list if ($this->order == $default_order) { // Delete an order param for current list if it is a default value $UserSettings->delete($this->order_param); } else { // Set a new value of an order param for current list $UserSettings->set($this->order_param, $this->order); } $UserSettings->dbupdate(); } if (!empty($this->param_prefix) && empty($this->order)) { // Set an order param from DB if ($UserSettings->get($this->order_param) != '') { // Set a value for current list if it was already defined $this->order = $UserSettings->get($this->order_param); } } if (empty($this->order)) { // Set a default value $this->order = $default_order; } }