209 lines
No EOL
4.8 KiB
PHP
Executable file
209 lines
No EOL
4.8 KiB
PHP
Executable file
<?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);
|
|
}
|
|
}
|
|
|
|
?>
|