khanat-opennel-code/code/ryzom/tools/server/admin/functions_common.php

209 lines
4.8 KiB
PHP
Raw Normal View History

2010-06-12 10:17:29 +00:00
<?php
/*
* THIS FILE SHOULD ONLY INCLUDE SMALL USEFUL FUNCTIONS
*/
/*
* pushes some data in the debug variable
*/
function nt_common_add_debug($data)
{
global $nel_debug;
if (is_array($data)) $nel_debug[] = print_r($data,true);
else $nel_debug[] = $data;
}
/*
* redirects to a defined url
*/
function nt_common_redirect($url)
{
$url = trim($url);
if (substr($url,0,1) == '/') $url = substr($url,1);
$redirect = NELTOOL_SITEBASE . $url;
header("Location: ". $redirect);
exit();
}
/*
* adds a user action log
*/
function nt_common_add_log($userinfo, $log_action, $log_desc)
{
global $db, $NELTOOL;
$log_action = trim($log_action);
$log_desc = trim($log_desc);
if (!is_array($userinfo) && (!isset($userinfo['user_id']))) return false;
if ($log_action == '') return false;
if ($log_desc == '') return false;
$sql = "INSERT INTO ". NELDB_LOG_TABLE ." ('log_user_id','log_action','log_description','log_date','log_ip') VALUES ('". $userinfo['user_id'] ."','". addslashes($log_action) ."','". addslashes($log_desc) ."','". time() ."','". $NELTOOL['SERVER_VARS']['REMOTE_ADDR'] ."')";
$db->sql_query($sql);
return true;
}
if (!function_exists('array_combine'))
{
function array_combine( $keys, $vals )
{
$keys = array_values( (array) $keys );
$vals = array_values( (array) $vals );
$n = max( count( $keys ), count( $vals ) );
$r = array();
for( $i=0; $i<$n; $i++ )
{
$r[ $keys[ $i ] ] = $vals[ $i ];
}
return $r;
}
}
if (!function_exists('array_chunk')) {
function array_chunk($input,$size,$preserve_keys=false)
{
@reset($input);
$i = $j = 0;
while (@list($key,$value) = @each($input))
{
if( !( isset( $chunks[$i] ) ) )
{
$chunks[$i] = array();
}
if( count( $chunks[$i] ) < $size )
{
if( $preserve_keys )
{
$chunks[$i][$key] = $value;
$j++;
}
else
{
$chunks[$i][] = $value;
}
}
else
{
$i++;
if( $preserve_keys )
{
$chunks[$i][$key] = $value;
$j++;
}
else
{
$j = 0;
$chunks[$i][$j] = $value;
}
}
}
return $chunks;
}
}
function array_natsort_list($array)
{
// for all arguments without the first starting at end of list
for ($i=func_num_args();$i>1;$i--)
{
// get column to sort by
$sort_by = func_get_arg($i-1);
// clear arrays
$new_array = array();
$temporary_array = array();
// walk through original array
foreach($array as $original_key => $original_value)
{
// and save only values
$temporary_array[] = $original_value[$sort_by];
}
// sort array on values
natsort($temporary_array);
// delete double values
$temporary_array = array_unique($temporary_array);
// walk through temporary array
foreach($temporary_array as $temporary_value)
{
// walk through original array
foreach($array as $original_key => $original_value)
{
// and search for entries having the right value
if($temporary_value == $original_value[$sort_by])
{
// save in new array
$new_array[$original_key] = $original_value;
}
}
}
// update original array
$array = $new_array;
}
return $array;
}
function nt_common_assert( $script, $line, $message )
{
nt_common_add_debug('ASSERT ('. $script .':'. $line .') : '. ereg_replace( '^.*//\*', '', $message ));
//exit;
}
function nt_log($data)
{
global $db;
global $nel_user;
$log_user_name = $nel_user['user_name'];
$log_date = time();
$log_data = addslashes(trim($data));
$sql = "INSERT INTO ". NELDB_LOG_TABLE ." (`logs_user_name`,`logs_date`,`logs_data`) VALUES ('". $log_user_name ."','". $log_date ."','". $log_data ."')";
$db->sql_query($sql);
}
function nt_sleep($delay)
{
if ($delay > 0)
{
sleep($delay);
}
}
function nt_email($subject,$message,$emails=null)
{
if ($message !== '' && $subject !== '')
{
if ($emails === null)
{
$emails = 'vl@ryzom.com';
}
elseif (is_array($emails))
{
$emails = implode(', ', $emails);
}
$headers = "From: vl@ryzom.com\r\nReply-To: vl@ryzom.com\r\nX-Mailer: Shard Admin Tool\r\n";
mail($emails, $subject, $message, $headers);
}
}
?>