<?php
/***************************************************************************
- * Copyright (C) 2003-2009 Polytechnique.org *
+ * Copyright (C) 2003-2010 Polytechnique.org *
* http://opensource.polytechnique.org/ *
* *
* This program is free software; you can redistribute it and/or modify *
function pl_autoload($cls, array $pathes = array())
{
$cls = strtolower($cls);
+ if (substr($cls, 0, 3) == 'xdb') {
+ $cls = 'xdb';
+ }
$basepath = dirname(dirname(dirname(__FILE__)));
array_unshift($pathes, 'core/classes', 'classes');
foreach ($pathes as $path) {
- if (@include_once "$basepath/$path/$cls.php") {
- return true;
+ if (file_exists("$basepath/$path/$cls.php")) {
+ if (include_once "$basepath/$path/$cls.php") {
+ return true;
+ }
}
}
return false;
$type = isset($errortype[$errno]) ? $errortype[$errno] : $errno;
$errstr = utf8_encode(htmlentities($errstr));
- $GLOBALS['pl_errors'][] =
- "<div class='phperror'>".
- "<strong>{$type}</strong> <em>$errstr</em><br />".
- "<tt>$errfile : $errline</tt>".
- "</div>";
+ if (php_sapi_name() == 'cli') {
+ $GLOBALS['pl_errors'] = "$type: $errstr\n $errfile:$errline\n";
+ } else {
+ $GLOBALS['pl_errors'][] =
+ "<div class='phperror'>".
+ "<strong>{$type}</strong> <em>$errstr</em><br />".
+ "<tt>$errfile : $errline</tt>".
+ "</div>";
+ }
}
function pl_clear_errors()
return html_entity_decode($text, $mode, 'UTF-8');
}
+function pl_flatten_aux(array &$dest, array $src)
+{
+ foreach ($src as $val) {
+ if (is_array($val)) {
+ pl_flatten_aux($dest, $val);
+ } else {
+ $dest[] = $val;
+ }
+ }
+}
+
+function pl_flatten(array $array)
+{
+ $res = array();
+ pl_flatten_aux($res, $array);
+ return $res;
+}
+
/**
* Returns the path of a static content, including, when appropriate, the
* version number. This is used to avoid cross-version cache issues, by ensuiring