Trunk updated to 0.9 git-svn-id: http://kusabax.cultnet.net/svn/repo/stable@176 73d99b7e-4f53-4972-b7b7-2ecd3c4d89ee
117 lines
3.6 KiB
PHP
117 lines
3.6 KiB
PHP
<?php
|
|
/*
|
|
* This file is part of kusaba.
|
|
*
|
|
* kusaba is free software; you can redistribute it and/or modify it under the
|
|
* terms of the GNU General Public License as published by the Free Software
|
|
* Foundation; either version 2 of the License, or (at your option) any later
|
|
* version.
|
|
*
|
|
* kusaba is distributed in the hope that it will be useful, but WITHOUT ANY
|
|
* WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR
|
|
* A PARTICULAR PURPOSE. See the GNU General Public License for more details.
|
|
*
|
|
* You should have received a copy of the GNU General Public License along with
|
|
* kusaba; if not, write to the Free Software Foundation, Inc.,
|
|
* 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
|
|
*/
|
|
/**
|
|
* Module functions
|
|
*
|
|
* Provides module and hook functionality
|
|
*
|
|
* @package kusaba
|
|
*/
|
|
|
|
function hook_process($hookname, $data) {
|
|
global $hooks;
|
|
|
|
if (is_array($hooks[$hookname])) {
|
|
foreach ($hooks[$hookname] as $hook) {
|
|
$data = module_call_function($hook, 'process_' . $hookname, $data);
|
|
}
|
|
}
|
|
|
|
return $data;
|
|
}
|
|
|
|
function modules_load_all() {
|
|
foreach (modules_list() as $module) {
|
|
module_load($module);
|
|
}
|
|
}
|
|
|
|
/* Fetch the names of the modules in the inc/modules/ directory */
|
|
function modules_list() {
|
|
$modules = array();
|
|
|
|
if ($modules_handle = opendir(KU_ROOTDIR . 'inc/modules')) {
|
|
while (false !== ($file = readdir($modules_handle))) {
|
|
/* We don't want hidden files, nor . or .. */
|
|
if ($file != '.' && $file != '..' && !is_dir($file) && strpos($file, '.php') != false) {
|
|
$modules[] = substr($file, 0, -4);
|
|
}
|
|
}
|
|
} else {
|
|
echo _gettext('Unable to open the modules directory!');
|
|
}
|
|
|
|
return $modules;
|
|
}
|
|
|
|
/* Load a module's script and call its initialization function */
|
|
function module_load($module) {
|
|
global $modules_loaded;
|
|
|
|
if (!in_array($module, $modules_loaded)) {
|
|
/* Include the module file */
|
|
include(KU_ROOTDIR . 'inc/modules/' . $module . '.php');
|
|
|
|
/* Call the initialization function */
|
|
module_call_function($module, 'init');
|
|
|
|
/* Add this module to the loaded modules list */
|
|
$modules_loaded[] = $module;
|
|
|
|
/* The module was loaded, return true to show that it was a success */
|
|
return true;
|
|
}
|
|
|
|
return false;
|
|
}
|
|
|
|
/* Call a module's function, such as module_init() */
|
|
function module_call_function($module, $function, $data = null) {
|
|
if (function_exists($module . '_' . $function)) {
|
|
if ($data == null) {
|
|
return call_user_func($module . '_' . $function);
|
|
}
|
|
|
|
return call_user_func($module . '_' . $function, $data);
|
|
}
|
|
|
|
return false;
|
|
}
|
|
|
|
function module_setting_get($module, $key) {
|
|
global $tc_db;
|
|
|
|
$query = "SELECT `value` FROM `".KU_DBPREFIX."module_settings` WHERE `module` = ".$tc_db->qstr($module)." AND `key` = ".$tc_db->qstr($key)." LIMIT 1";
|
|
$result = $tc_db->GetOne($query);
|
|
|
|
return $result;
|
|
}
|
|
|
|
function module_setting_set($module, $key, $value, $type = 'string') {
|
|
global $tc_db;
|
|
|
|
$exists = $tc_db->GetOne("SELECT COUNT(*) FROM `".KU_DBPREFIX."module_settings` WHERE `module` = ".$tc_db->qstr($module)." AND `key` = ".$tc_db->qstr($key)." LIMIT 1");
|
|
if ($exists > 0) {
|
|
$result = $tc_db->Execute("UPDATE `".KU_DBPREFIX."module_settings` SET `value` = ".$tc_db->qstr($value).") WHERE `module` = ".$tc_db->qstr($module)." AND `key` = ".$tc_db->qstr($key)."");
|
|
} else {
|
|
$result = $tc_db->Execute("INSERT INTO `".KU_DBPREFIX."module_settings` (`module` , `key` , `value` , `type`) VALUES (".$tc_db->qstr($module).", ".$tc_db->qstr($key).", ".$tc_db->qstr($value).", ".$tc_db->qstr($type).")");
|
|
}
|
|
|
|
return $result;
|
|
}
|
|
?>
|