mirror of
https://git.code.sf.net/p/quake/website
synced 2024-11-10 23:32:38 +00:00
Okay, one more time...
This commit is contained in:
parent
263ddbc245
commit
e24ebd67a4
1 changed files with 98 additions and 0 deletions
98
lib/needs.php
Normal file
98
lib/needs.php
Normal file
|
@ -0,0 +1,98 @@
|
|||
<?
|
||||
if (!defined ('_ARRAY_')) { // Treat array handler special
|
||||
define ('_ARRAY_', 1);
|
||||
|
||||
/*
|
||||
inArray
|
||||
|
||||
Search an array for data
|
||||
*/
|
||||
function inArray ($needle, $haystack)
|
||||
{
|
||||
$found = false;
|
||||
|
||||
for ($ptr = 0; $ptr < count ($haystack); $ptr++) {
|
||||
if ($haystack[$ptr] == $needle) {
|
||||
$found = true;
|
||||
}
|
||||
}
|
||||
return $found;
|
||||
}
|
||||
|
||||
/*
|
||||
addToArray
|
||||
|
||||
Add an element to an array
|
||||
*/
|
||||
function addToArray ($var, &$arr)
|
||||
{
|
||||
if (!inArray ($var, $arr)) {
|
||||
if (isset ($arr)) {
|
||||
$arr[count ($arr)] = $var;
|
||||
} else {
|
||||
$arr = array ($var);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
addToArray ('array', $has);
|
||||
}
|
||||
|
||||
if (!defined ('_LIBFUNCS_')) {
|
||||
define ('_LIBFUNCS_', 1);
|
||||
|
||||
/*
|
||||
reqIfNeeded
|
||||
|
||||
Require a library module if it hasn't already been.
|
||||
*/
|
||||
function reqIfNeeded ($libNames)
|
||||
{
|
||||
global $has, $needs;
|
||||
|
||||
$libs = explode(' ', $libNames);
|
||||
|
||||
for ($i = 0 ; $i < count ($libs) ; $i++ ) {
|
||||
$lib = $libs[$i];
|
||||
if ((inArray ($libs[$i], $needs)) && (!inArray ($libs[$i], $has))) {
|
||||
include siteHome . "/lib/$libs[$i].php";
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
/*
|
||||
have
|
||||
|
||||
Tell the library that module X is loaded
|
||||
*/
|
||||
function have ($libName)
|
||||
{
|
||||
global $has;
|
||||
|
||||
addToArray ($libName, $has);
|
||||
}
|
||||
|
||||
/*
|
||||
need
|
||||
|
||||
Load module X if it hasn't been already, taking care to retain the
|
||||
integrity of the $needs array.
|
||||
*/
|
||||
function need ($libNames)
|
||||
{
|
||||
global $needs;
|
||||
|
||||
$libs = explode (' ', $libNames);
|
||||
for ($i = 0; $i < count ($libs); $i++) {
|
||||
addToArray ($libs[$i], $needs);
|
||||
}
|
||||
reqIfNeeded ($libNames);
|
||||
}
|
||||
|
||||
// Actual code for the lib
|
||||
if ($need)
|
||||
need ($need);
|
||||
unset ($need);
|
||||
}
|
||||
} // !_LIBFUNCS_
|
||||
?>
|
Loading…
Reference in a new issue