blob: 308c737b3a7cabc549c63a2f4a1a211509c19750 [file] [log] [blame]
<?php
/*******************************************************************************
* Copyright (c) 2007-2009 Intalio, Inc.
* All rights reserved. This program and the accompanying materials
* are made available under the terms of the Eclipse Public License v1.0
* which accompanies this distribution, and is available at
* http://www.eclipse.org/legal/epl-v10.html
*
* Contributors:
* Antoine Toulme, Intalio Inc.
* Scott Reynen scott at randomchaos com - toescapedunicode
*******************************************************************************/
require_once(dirname(__FILE__) . "/common_functions.php");
// load the backend addon functions.
require_once(dirname(__FILE__) . "/addons_management.php");
global $addon;
$addon->load_backend_functions();
require_once(dirname(__FILE__) . "/user.class.php");
// some methods reused accross the backend.
/**
* Converts string to escaped unicode format
* Based on work by Scott Reynen - CQ 2498
*
* @param string $str
* @return string
* @since 2008-07-18
*/
if(!function_exists('toescapedunicode')) {
function toescapedunicode($str) {
$unicode = array();
$values = array();
$lookingFor = 1;
for ($i = 0; $i < strlen( $str ); $i++ ) {
$thisValue = ord( $str[ $i ] );
if ( $thisValue < 128)
$unicode[] = $str[ $i ];
else {
if ( count( $values ) == 0 ) $lookingFor = ( $thisValue < 224 ) ? 2 : 3;
$values[] = $thisValue;
if ( count( $values ) == $lookingFor ) {
$number = ( $lookingFor == 3 ) ?
( ( $values[0] % 16 ) * 4096 ) + ( ( $values[1] % 64 ) * 64 ) + ( $values[2] % 64 ):
( ( $values[0] % 32 ) * 64 ) + ( $values[1] % 64 );
$number = dechex($number);
if(strlen($number) == 3) {
$unicode[] = "\u0" . $number;
}
elseif(strlen($number) == 2) {
$unicode[] = "\u00" . $number;
}
else {
$unicode[] = "\u" . $number;
}
$values = array();
$lookingFor = 1;
}
}
}
return implode("",$unicode);
}
}
/**
* Returns the genie user to be used for headless applications.
* The user is found by using a hook.
*/
function getGenieUser() {
global $addon;
return $addon->callHook('genie_user');
}
/**
* Returns the syncup user to be used for headless applications.
* The user is found by looking for syncup_id in the base.conf file.
*/
function getSyncupUser() {
global $addon;
return $addon->callHook('syncup_user');
}
/*
* jars the content of a directory $dir, places it in a file named $output
*/
function internalJar($dir, $output) {
$cmd = "cd $dir; jar cfM $output .";
$retval = system($cmd, $return_code);
if ($return_code != 0) {
echo "### ERROR during the execution of: $cmd\n";
echo "$retval\n";
}
}
function errorLog() {
global $addon;
$args = func_get_args();
$addon->callHook('error_log', $args);
}
?>