& /dev/null &");
}
function util_send_jabber($to,$subject,$body) {
if (!$GLOBALS['sys_use_jabber']) {
return;
}
$JABBER = new Jabber();
if (!$JABBER->Connect()) {
echo '
Unable to connect';
return false;
}
//$JABBER->SendAuth();
//$JABBER->AccountRegistration();
if (!$JABBER->SendAuth()) {
echo '
Auth Failure';
$JABBER->Disconnect();
return false;
//or die("Couldn't authenticate!");
}
$JABBER->SendPresence(NULL, NULL, "online");
$body=htmlspecialchars($body);
$to_arr=explode(',',$to);
for ($i=0; $i
Error Sending to '.$to_arr[$i];
}
}
}
$JABBER->CruiseControl(2);
$JABBER->Disconnect();
}
/**
* util_prep_string_for_sendmail() - Prepares a string to be sent by email
*
* @param string The text to be prepared
* @returns The prepared text
*
*/
function util_prep_string_for_sendmail($body) {
//$body=str_replace("\\","\\\\",$body);
$body=str_replace("`","\\`",$body);
$body=str_replace("\"","\\\"",$body);
$body=str_replace("\$","\\\$",$body);
return $body;
}
/**
* util_handle_message() - a convenience wrapper which sends messages
* to either a jabber account or email account or both, depending on
* user preferences
*
* @param array array of user_id's from the user table
* @param string subject of the message
* @param string the message body
* @param string a comma-separated list of email address
* @param string a comma-separated list of jabber address
*/
function util_handle_message($id_arr,$subject,$body,$extra_emails='',$extra_jabbers='') {
$address=array();
if (count($id_arr) < 1) {
} else {
$res=db_query("SELECT user_id, jabber_address,email,jabber_only
FROM users WHERE user_id IN (". implode($id_arr,',') .")");
$rows=db_numrows($res);
for ($i=0; $i<$rows; $i++) {
if (db_result($res, $i, 'user_id') == 100) {
// Do not send messages to "Nobody"
continue;
}
//
// Build arrays of the jabber address
//
if (db_result($res,$i,'jabber_address')) {
$address['jabber_address'][]=db_result($res,$i,'jabber_address');
if (db_result($res,$i,'jabber_only') != 1) {
$address['email'][]=db_result($res,$i,'email');
}
} else {
$address['email'][]=db_result($res,$i,'email');
}
}
if (count($address['email']) > 0) {
$extra_email1=implode($address['email'],',').',';
}
if (count($address['jabber_address']) > 0) {
$extra_jabber1=implode($address['jabber_address'],',').',';
}
}
if ($extra_email1 || $extra_emails) {
util_send_message('',$subject,$body,'',$extra_email1.$extra_emails);
}
if ($extra_jabber1 || $extra_jabbers) {
util_send_jabber($extra_jabber1.$extra_jabbers,$subject,$body);
}
}
/**
* util_unconvert_htmlspecialchars() - Unconverts a string converted with htmlspecialchars()
* This function requires PHP 4.0.3 or greater
*
* @param string The string to unconvert
* @returns The unconverted string
*
*/
function util_unconvert_htmlspecialchars($string) {
if (strlen($string) < 1) {
return '';
} else {
//$trans = get_html_translation_table(HTMLENTITIES, ENT_QUOTES);
$trans = get_html_translation_table(HTML_ENTITIES);
$trans = array_flip ($trans);
$str = strtr ($string, $trans);
return $str;
}
}
/**
* util_result_columns_to_assoc() - Takes a result set and turns the column pair into an associative array
*
* @param string The result set ID
* @param int The column key
* @param int The optional column value
* @returns An associative array
*
*/
function util_result_columns_to_assoc($result, $col_key=0, $col_val=1) {
$rows=db_numrows($result);
if ($rows > 0) {
$arr=array();
for ($i=0; $i<$rows; $i++) {
$arr[db_result($result,$i,$col_key)]=db_result($result,$i,$col_val);
}
} else {
$arr=array();
}
return $arr;
}
/**
* util_result_column_to_array() - Takes a result set and turns the optional column into an array
*
* @param int The result set ID
* @param int The column
* @resturns An array
*
*/
function &util_result_column_to_array($result, $col=0) {
/*
Takes a result set and turns the optional column into
an array
*/
$rows=db_numrows($result);
if ($rows > 0) {
$arr=array();
for ($i=0; $i<$rows; $i++) {
$arr[$i]=db_result($result,$i,$col);
}
} else {
$arr=array();
}
return $arr;
}
/**
* util_wrap_find_space() - Find the first space in a string
*
* @param string The string in which to find the space
* @param int The number of characters to wrap - Default is 80
* @returns The position of the first space
*
*/
function util_wrap_find_space($string,$wrap) {
//echo"\n";
$start=$wrap-5;
$try=1;
$found=false;
while (!$found) {
//find the first space starting at $start
$pos=@strpos($string,' ',$start);
//if that space is too far over, go back and start more to the left
if (($pos > ($wrap+5)) || !$pos) {
$try++;
$start=($wrap-($try*5));
//if we've gotten so far left , just truncate the line
if ($start<=10) {
return $wrap;
}
$found=false;
} else {
$found=true;
}
}
return $pos;
}
/**
* util_line_wrap() - Automatically linewrap text
*
* @param string The text to wrap
* @param int The number of characters to wrap - Default is 80
* @param string The line break to use - Default is '\n'
* @returns The wrapped text
*
*/
function util_line_wrap ($text, $wrap = 80, $break = "\n") {
$paras = explode("\n", $text);
$result = array();
$i = 0;
while ($i < count($paras)) {
if (strlen($paras[$i]) <= $wrap) {
$result[] = $paras[$i];
$i++;
} else {
$pos=util_wrap_find_space($paras[$i],$wrap);
$result[] = substr($paras[$i], 0, $pos);
$new = trim(substr($paras[$i], $pos, strlen($paras[$i]) - $pos));
if ($new != '') {
$paras[$i] = $new;
$pos=util_wrap_find_space($paras[$i],$wrap);
} else {
$i++;
}
}
}
return implode($break, $result);
}
/**
* util_make_links() - Turn URL's into HREF's.
*
* @param string The URL
* @returns The HREF'ed URL
*
*/
function util_make_links ($data='') {
if(empty($data)) { return $data; }
$lines = split("\n",$data);
while ( list ($key,$line) = each ($lines)) {
// When we come here, we usually have form input
// encoded in entities. Our aim is to NOT include
// angle brackets in the URL
// (RFC2396; http://www.w3.org/Addressing/URL/5.1_Wrappers.html)
$line = str_replace('>', "\1", $line);
$line = eregi_replace("([ \t]|^)www\."," http://www.",$line);
$text = eregi_replace("([[:alnum:]]+)://([^[:space:]<\1]*)([[:alnum:]#?/&=])", "\\1://\\2\\3", $line);
$text = eregi_replace("([[:space:]]|^)(([a-z0-9_]|\\-|\\.)+@([^[:space:]]*)([[:alnum:]-]))", "\\1\\2", $text);
$text = str_replace("\1", '>', $text);
$newText .= $text;
}
return $newText;
}
/**
* show_priority_colors_key() - Show the priority colors legend
*
*/
function show_priority_colors_key() {
global $Language;
echo '
'.$Language->getText('common_utils','priority_colors').':
'.$i.' | '; } echo '