diff --git a/includes/adm/j_plugins.php b/includes/adm/j_plugins.php
index 1dbe945..8c009b9 100755
--- a/includes/adm/j_plugins.php
+++ b/includes/adm/j_plugins.php
@@ -8,7 +8,8 @@
*/
// not for directly open
-if (! defined('IN_ADMIN')) {
+if (! defined('IN_ADMIN'))
+{
exit();
}
@@ -20,28 +21,32 @@ $case = g('case', 'str', 'installed');
//set _get form key
$GET_FORM_KEY = kleeja_add_form_key_get('adm_plugins_get');
-$H_FORM_KEYS = kleeja_add_form_key('adm_plugins');
+$H_FORM_KEYS = kleeja_add_form_key('adm_plugins');
-$action = ADMIN_PATH.'?cp='.basename(__FILE__, '.php');
+$action = ADMIN_PATH . '?cp=' . basename(__FILE__, '.php');
-$plugin_install_link = $action.'&case=install&'.$GET_FORM_KEY.'&plg=';
-$plugin_uninstall_link = $action.'&case=uninstall&'.$GET_FORM_KEY.'&plg=';
-$plugin_enable_link = $action.'&case=enable&'.$GET_FORM_KEY.'&plg=';
-$plugin_disable_link = $action.'&case=disable&'.$GET_FORM_KEY.'&plg=';
-$plugin_download_link = $action.'&case=download&'.$GET_FORM_KEY.'&plg=';
-$plugin_delete_folder_link = $action.'&case=dfolder&'.$GET_FORM_KEY.'&plg=';
+$plugin_install_link = $action . '&case=install&' . $GET_FORM_KEY . '&plg=';
+$plugin_uninstall_link = $action . '&case=uninstall&' . $GET_FORM_KEY . '&plg=';
+$plugin_enable_link = $action . '&case=enable&' . $GET_FORM_KEY . '&plg=';
+$plugin_disable_link = $action . '&case=disable&' . $GET_FORM_KEY . '&plg=';
+$plugin_download_link = $action . '&case=download&' . $GET_FORM_KEY . '&plg=';
+$plugin_delete_folder_link = $action . '&case=dfolder&' . $GET_FORM_KEY . '&plg=';
//check _GET Csrf token
-if (! empty($case) && in_array($case, ['install', 'uninstall', 'enable', 'disable', 'download', 'dfolder'])) {
- if (! kleeja_check_form_key_get('adm_plugins_get')) {
+if (! empty($case) && in_array($case, ['install', 'uninstall', 'enable', 'disable', 'download', 'dfolder']))
+{
+ if (! kleeja_check_form_key_get('adm_plugins_get'))
+ {
header('HTTP/1.0 401 Unauthorized');
kleeja_admin_err($lang['INVALID_GET_KEY']);
}
}
//check _POST Csrf token
-if (ip('newplugin')) {
- if (! kleeja_check_form_key('adm_plugins')) {
+if (ip('newplugin'))
+{
+ if (! kleeja_check_form_key('adm_plugins'))
+ {
header('HTTP/1.0 401 Unauthorized');
kleeja_admin_err($lang['INVALID_FORM_KEY'], true, $lang['ERROR'], true, $action);
}
@@ -58,8 +63,8 @@ switch ($case):
// Get installed plugins
$query = [
- 'SELECT' => 'plg_id, plg_name, plg_ver, plg_disabled, plg_author, plg_dsc',
- 'FROM' => "{$dbprefix}plugins",
+ 'SELECT' => 'plg_id, plg_name, plg_ver, plg_disabled, plg_author, plg_dsc',
+ 'FROM' => "{$dbprefix}plugins",
'ORDER BY' => 'plg_id ASC',
];
@@ -67,26 +72,34 @@ switch ($case):
$installed_plugins = [];
- while ($row = $SQL->fetch($result)) {
+ while ($row = $SQL->fetch($result))
+ {
$installed_plugins[$row['plg_name']] = $row;
$installed_plugins[$row['plg_name']]['extra_info'] = Plugins::getInstance()->installed_plugin_info($row['plg_name']);
$installed_plugins[$row['plg_name']]['icon'] = file_exists(
- PATH.KLEEJA_PLUGINS_FOLDER.'/'.$row['plg_name'].'/icon.png'
+ PATH . KLEEJA_PLUGINS_FOLDER . '/' . $row['plg_name'] . '/icon.png'
)
- ? PATH.KLEEJA_PLUGINS_FOLDER.'/'.$row['plg_name'].'/icon.png'
- : $STYLE_PATH_ADMIN.'images/plugin.png';
+ ? PATH . KLEEJA_PLUGINS_FOLDER . '/' . $row['plg_name'] . '/icon.png'
+ : $STYLE_PATH_ADMIN . 'images/plugin.png';
- foreach (['plugin_title', 'plugin_description'] as $localizedInfo) {
- if (is_array($installed_plugins[$row['plg_name']]['extra_info'][$localizedInfo])) {
- if (! empty($installed_plugins[$row['plg_name']]['extra_info'][$localizedInfo][$config['language']])) {
+ foreach (['plugin_title', 'plugin_description'] as $localizedInfo)
+ {
+ if (is_array($installed_plugins[$row['plg_name']]['extra_info'][$localizedInfo]))
+ {
+ if (! empty($installed_plugins[$row['plg_name']]['extra_info'][$localizedInfo][$config['language']]))
+ {
$installed_plugins[$row['plg_name']]['extra_info'][$localizedInfo] =
shorten_text($installed_plugins[$row['plg_name']]['extra_info'][$localizedInfo][$config['language']], 100);
- } elseif (! empty($installed_plugins[$row['plg_name']]['extra_info'][$localizedInfo]['en'])) {
+ }
+ elseif (! empty($installed_plugins[$row['plg_name']]['extra_info'][$localizedInfo]['en']))
+ {
$installed_plugins[$row['plg_name']]['extra_info'][$localizedInfo] =
shorten_text($installed_plugins[$row['plg_name']]['extra_info'][$localizedInfo]['en'], 100);
- } else {
+ }
+ else
+ {
$installed_plugins[$row['plg_name']]['extra_info'][$localizedInfo] =
shorten_text($installed_plugins[$row['plg_name']]['extra_info'][$localizedInfo][0], 100);
}
@@ -96,51 +109,59 @@ switch ($case):
$SQL->free($result);
//get available plugins
- $dh = opendir(PATH.KLEEJA_PLUGINS_FOLDER);
+ $dh = opendir(PATH . KLEEJA_PLUGINS_FOLDER);
$available_plugins = [];
- while (false !== ($folder_name = readdir($dh))) {
- if (is_dir(PATH.KLEEJA_PLUGINS_FOLDER.'/'.$folder_name) && preg_match('/[a-z0-9_.]{3,}/', $folder_name)) {
- if (empty($installed_plugins[$folder_name])) {
+ while (false !== ($folder_name = readdir($dh)))
+ {
+ if (file_exists(PATH . KLEEJA_PLUGINS_FOLDER . '/' . $folder_name) && preg_match('/[a-z0-9_.]{3,}/', $folder_name))
+ {
+ if (empty($installed_plugins[$folder_name]))
+ {
array_push($available_plugins, [
'name' => $folder_name,
- 'icon' => file_exists(PATH.KLEEJA_PLUGINS_FOLDER.'/'.$folder_name.'/icon.png')
- ? PATH.KLEEJA_PLUGINS_FOLDER.'/'.$folder_name.'/icon.png'
- : $STYLE_PATH_ADMIN.'images/plugin.png',
+ 'icon' => file_exists(PATH . KLEEJA_PLUGINS_FOLDER . '/' . $folder_name . '/icon.png')
+ ? PATH . KLEEJA_PLUGINS_FOLDER . '/' . $folder_name . '/icon.png'
+ : $STYLE_PATH_ADMIN . 'images/plugin.png',
]);
}
}
}
@closedir($dh);
- $no_plugins = sizeof($available_plugins) == 0 && sizeof($installed_plugins) == 0;
+ $no_plugins = sizeof($available_plugins) == 0 && sizeof($installed_plugins) == 0;
$no_installed_plugins = sizeof($installed_plugins) == 0;
$stylee = 'admin_plugins';
//do not proceed if not store case
- if (! in_array($case, ['store', 'check'])) {
+ if (! in_array($case, ['store', 'check']))
+ {
break;
}
// plugins avilable in kleeja remote catalog
- if (! ($store_catalog = $cache->get('store_catalog'))) {
+ if (! ($store_catalog = $cache->get('store_catalog')))
+ {
$store_link = 'https://raw.githubusercontent.com/kleeja-official/store-catalog/master/catalog.json';
$store_catalog = fetch_remote_file($store_link);
$store_catalog = json_decode($store_catalog, true);
- if (json_last_error() == JSON_ERROR_NONE) {
+ if (json_last_error() == JSON_ERROR_NONE)
+ {
$cache->save('store_catalog', $store_catalog);
}
}
// make an array for all plugins in kleeja remote catalog
// that are not exsisted locally.
- $store_plugins = [];
+ $store_plugins = [];
$available_plugins_names = array_column($available_plugins, 'name');
- foreach ($store_catalog as $plugin_info) {
- if ($plugin_info['type'] != 'plugin') {
+ foreach ($store_catalog as $plugin_info)
+ {
+ if ($plugin_info['type'] != 'plugin')
+ {
continue;
}
@@ -162,17 +183,17 @@ switch ($case):
}
$store_plugins[$plugin_info['name']] = [
- 'name' => $plugin_info['name'],
- 'developer' => $plugin_info['developer'],
- 'version' => $plugin_info['file']['version'],
- 'title' => ! empty($plugin_info['title'][$config['language']]) ? $plugin_info['title'][$config['language']] : $plugin_info['title']['en'],
- 'website' => $plugin_info['website'],
+ 'name' => $plugin_info['name'],
+ 'developer' => $plugin_info['developer'],
+ 'version' => $plugin_info['file']['version'],
+ 'title' => ! empty($plugin_info['title'][$config['language']]) ? $plugin_info['title'][$config['language']] : $plugin_info['title']['en'],
+ 'website' => $plugin_info['website'],
'current_version' => ! empty($installed_plugins[$plugin_info['name']]) ? strtolower($installed_plugins[$plugin_info['name']]['extra_info']['plugin_version']) : '',
- 'kj_min_version' => $plugin_info['kleeja_version']['min'],
- 'kj_max_version' => $plugin_info['kleeja_version']['max'],
+ 'kj_min_version' => $plugin_info['kleeja_version']['min'],
+ 'kj_max_version' => $plugin_info['kleeja_version']['max'],
'kj_version_cmtp' => sprintf($lang['KLJ_VER_NO_PLUGIN'], $plugin_info['kleeja_version']['min'], $plugin_info['kleeja_version']['max']),
- 'icon' => $plugin_info['icon'],
- 'NotCompatible' => version_compare(strtolower($plugin_info['kleeja_version']['min']), KLEEJA_VERSION, '<=')
+ 'icon' => $plugin_info['icon'],
+ 'NotCompatible' => version_compare(strtolower($plugin_info['kleeja_version']['min']), KLEEJA_VERSION, '<=')
&& version_compare(strtolower($plugin_info['kleeja_version']['max']), KLEEJA_VERSION, '>=')
? false : true,
];
@@ -187,41 +208,55 @@ switch ($case):
case 'upload':
$ERRORS = [];
- if (intval($userinfo['founder']) !== 1) {
+ if (intval($userinfo['founder']) !== 1)
+ {
$ERRORS[] = $lang['HV_NOT_PRVLG_ACCESS'];
}
//is uploaded?
- if (empty($_FILES['plugin_file']['tmp_name'])) {
+ if (empty($_FILES['plugin_file']['tmp_name']))
+ {
$ERRORS[] = $lang['CHOSE_F'];
}
//extract it to plugins folder
- if (! sizeof($ERRORS)) {
- if (class_exists('ZipArchive')) {
+ if (! sizeof($ERRORS))
+ {
+ if (class_exists('ZipArchive'))
+ {
$zip = new ZipArchive();
- if ($zip->open($_FILES['plugin_file']['tmp_name']) === true) {
- if (! $zip->extractTo(PATH.KLEEJA_PLUGINS_FOLDER)) {
+ if ($zip->open($_FILES['plugin_file']['tmp_name']) === true)
+ {
+ if (! $zip->extractTo(PATH . KLEEJA_PLUGINS_FOLDER))
+ {
$ERRORS[] = sprintf($lang['EXTRACT_ZIP_FAILED'], KLEEJA_PLUGINS_FOLDER);
}
$zip->close();
- } else {
+ }
+ else
+ {
$ERRORS[] = sprintf($lang['EXTRACT_ZIP_FAILED'], KLEEJA_PLUGINS_FOLDER);
}
- } else {
+ }
+ else
+ {
$ERRORS[] = $lang['NO_ZIP_ARCHIVE'];
}
}
- if (! empty($_FILES['plugin_file']['tmp_name'])) {
+ if (! empty($_FILES['plugin_file']['tmp_name']))
+ {
@unlink($_FILES['plugin_file']['tmp_name']);
}
- if (! sizeof($ERRORS)) {
+ if (! sizeof($ERRORS))
+ {
kleeja_admin_info($lang['NO_PROBLEM_AFTER_ZIP'], $action);
- } else {
- kleeja_admin_err('- '.implode('
- ', $ERRORS), $action);
+ }
+ else
+ {
+ kleeja_admin_err('- ' . implode('
- ', $ERRORS), $action);
}
break;
@@ -230,48 +265,59 @@ switch ($case):
//
case 'install':
- if (intval($userinfo['founder']) !== 1) {
+ if (intval($userinfo['founder']) !== 1)
+ {
header('HTTP/1.0 401 Unauthorized');
kleeja_admin_err($lang['HV_NOT_PRVLG_ACCESS'], $action);
}
$plg_name = g('plg', 'str');
- if (empty($plg_name)) {
- if (defined('DEBUG')) {
+ if (empty($plg_name))
+ {
+ if (defined('DEBUG'))
+ {
exit('empty($plg_name)');
}
//no plugin selected? back
- redirect(ADMIN_PATH.'?cp='.basename(__FILE__, '.php'));
- } else {
- if (! file_exists(PATH.KLEEJA_PLUGINS_FOLDER.'/'.$plg_name.'/init.php')) {
- if (defined('DEBUG')) {
+ redirect(ADMIN_PATH . '?cp=' . basename(__FILE__, '.php'));
+ }
+ else
+ {
+ if (! file_exists(PATH . KLEEJA_PLUGINS_FOLDER . '/' . $plg_name . '/init.php'))
+ {
+ if (defined('DEBUG'))
+ {
exit('!file_exists($plg_name)');
}
- redirect(ADMIN_PATH.'?cp='.basename(__FILE__, '.php'));
+ redirect(ADMIN_PATH . '?cp=' . basename(__FILE__, '.php'));
exit;
}
//if already installed, show a message
- if (! empty(Plugins::getInstance()->installed_plugin_info($plg_name))) {
- kleeja_admin_info($lang['PLUGIN_EXISTS_BEFORE'], true, '', true, ADMIN_PATH.'?cp='.basename(__FILE__, '.php'));
+ if (! empty(Plugins::getInstance()->installed_plugin_info($plg_name)))
+ {
+ kleeja_admin_info($lang['PLUGIN_EXISTS_BEFORE'], true, '', true, ADMIN_PATH . '?cp=' . basename(__FILE__, '.php'));
exit;
}
$kleeja_plugin = [];
- include PATH.KLEEJA_PLUGINS_FOLDER.'/'.$plg_name.'/init.php';
+ include PATH . KLEEJA_PLUGINS_FOLDER . '/' . $plg_name . '/init.php';
$install_callback = $kleeja_plugin[$plg_name]['install'];
- $plugin_info = $kleeja_plugin[$plg_name]['information'];
+ $plugin_info = $kleeja_plugin[$plg_name]['information'];
$plugin_first_run = false;
- if (! empty($kleeja_plugin[$plg_name]['first_run'][$config['language']])) {
+ if (! empty($kleeja_plugin[$plg_name]['first_run'][$config['language']]))
+ {
$plugin_first_run = $kleeja_plugin[$plg_name]['first_run'][$config['language']];
- } elseif (! empty($kleeja_plugin[$plg_name]['first_run']['en'])) {
+ }
+ elseif (! empty($kleeja_plugin[$plg_name]['first_run']['en']))
+ {
$plugin_first_run = $kleeja_plugin[$plg_name]['first_run']['en'];
}
@@ -280,26 +326,29 @@ switch ($case):
// Max version of Kleeja that's required to run this plugin
//'plugin_kleeja_version_max' => '3.8',
- if (version_compare(KLEEJA_VERSION, $plugin_info['plugin_kleeja_version_min'], '<')) {
+ if (version_compare(KLEEJA_VERSION, $plugin_info['plugin_kleeja_version_min'], '<'))
+ {
kleeja_admin_info(
- $lang['PACKAGE_N_CMPT_KLJ'].'
k:'.KLEEJA_VERSION.'|<|p.min:'.$plugin_info['plugin_kleeja_version_min'],
+ $lang['PACKAGE_N_CMPT_KLJ'] . '
k:' . KLEEJA_VERSION . '|<|p.min:' . $plugin_info['plugin_kleeja_version_min'],
true,
'',
true,
- ADMIN_PATH.'?cp='.basename(__FILE__, '.php')
+ ADMIN_PATH . '?cp=' . basename(__FILE__, '.php')
);
exit;
}
- if ($plugin_info['plugin_kleeja_version_max'] != '0') {
- if (version_compare(KLEEJA_VERSION, $plugin_info['plugin_kleeja_version_max'], '>')) {
+ if ($plugin_info['plugin_kleeja_version_max'] != '0')
+ {
+ if (version_compare(KLEEJA_VERSION, $plugin_info['plugin_kleeja_version_max'], '>'))
+ {
kleeja_admin_info(
- $lang['PACKAGE_N_CMPT_KLJ'].'
k:'.KLEEJA_VERSION.'|>|p.max:'.$plugin_info['plugin_kleeja_version_max'],
+ $lang['PACKAGE_N_CMPT_KLJ'] . '
k:' . KLEEJA_VERSION . '|>|p.max:' . $plugin_info['plugin_kleeja_version_max'],
true,
'',
true,
- ADMIN_PATH.'?cp='.basename(__FILE__, '.php')
+ ADMIN_PATH . '?cp=' . basename(__FILE__, '.php')
);
exit;
@@ -308,32 +357,37 @@ switch ($case):
delete_cache('', true);
- if (is_array($plugin_info['plugin_description'])) {
+ if (is_array($plugin_info['plugin_description']))
+ {
$plugin_info['plugin_description'] = ! empty($plugin_info['plugin_description']['en']) ? $plugin_info['plugin_description']['en'] : $plugin_info['plugin_description'][0];
}
//add to database
$insert_query = [
'INSERT' => '`plg_name` ,`plg_ver`, `plg_author`, `plg_dsc`, `plg_icon`, `plg_uninstall`, `plg_instructions`, `plg_store`, `plg_files`',
- 'INTO' => "{$dbprefix}plugins",
- 'VALUES' => "'".$SQL->escape($plg_name)."','".$SQL->escape($plugin_info['plugin_version'])."', '".$SQL->escape($plugin_info['plugin_developer'])."','".$SQL->escape($plugin_info['plugin_description'])."', '', '', '', '', ''",
+ 'INTO' => "{$dbprefix}plugins",
+ 'VALUES' => "'" . $SQL->escape($plg_name) . "','" . $SQL->escape($plugin_info['plugin_version']) . "', '" . $SQL->escape($plugin_info['plugin_developer']) . "','" . $SQL->escape($plugin_info['plugin_description']) . "', '', '', '', '', ''",
];
$SQL->build($insert_query);
//may God protect you brother.
- if (is_callable($install_callback)) {
+ if (is_callable($install_callback))
+ {
$install_callback($SQL->insert_id());
}
//show done, msg
- $text = '