diff --git a/admin/Masmak/admin_plugins.html b/admin/Masmak/admin_plugins.html index 1f146f1..90abd27 100755 --- a/admin/Masmak/admin_plugins.html +++ b/admin/Masmak/admin_plugins.html @@ -144,7 +144,7 @@ {lang.ALL_PLUGINS_UPDATED} - {lang.STORE_SERVER_ERROR} + {lang.NO_PLUGINS} diff --git a/admin/Masmak/admin_styles.html b/admin/Masmak/admin_styles.html index d768d61..ac3c41a 100755 --- a/admin/Masmak/admin_styles.html +++ b/admin/Masmak/admin_styles.html @@ -59,7 +59,7 @@ {lang.ALL_STYLES_UPDATED} - {lang.STORE_SERVER_ERROR} + {lang.NO_PLUGINS} @@ -155,7 +155,7 @@ function downloadStyle(name, nextStyles) { setTimeout(function() { var currentStyle = nextStyles.shift(); - downloadPlugin(currentStyle, nextStyles); + downloadStyle(currentStyle, nextStyles); }, 500); }) .fail(function(data) { diff --git a/includes/adm/j_plugins.php b/includes/adm/j_plugins.php index 4fc0fa1..1dbe945 100755 --- a/includes/adm/j_plugins.php +++ b/includes/adm/j_plugins.php @@ -7,50 +7,41 @@ * */ - // not for directly open -if (! defined('IN_ADMIN')) -{ +if (! defined('IN_ADMIN')) { exit(); } - //turn time-limit off @set_time_limit(0); - //get current case $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'); +$GET_FORM_KEY = kleeja_add_form_key_get('adm_plugins_get'); +$H_FORM_KEYS = kleeja_add_form_key('adm_plugins'); -$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='; +$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='; //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); } @@ -67,46 +58,35 @@ 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', ]; - $result = $SQL->build($query); $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); } @@ -115,61 +95,52 @@ 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 (is_dir(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; } @@ -184,23 +155,24 @@ switch ($case): version_compare( strtolower($installed_plugins[$plugin_info['name']]['extra_info']['plugin_version']), strtolower($plugin_info['file']['version']), - '>=') || empty($installed_plugins[$plugin_info['name']])) + '>=' + ) || empty($installed_plugins[$plugin_info['name']])) ) { continue; } $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'], - '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_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, '<=') + '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_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, '<=') && version_compare(strtolower($plugin_info['kleeja_version']['max']), KLEEJA_VERSION, '>=') ? false : true, ]; @@ -209,125 +181,97 @@ switch ($case): $store_plugins_count = sizeof($store_plugins); break; - // //upload a plugin // 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')) - { - $zip = new 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; - - // //install a plugin // 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']; } @@ -336,23 +280,26 @@ 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'], - true, '', true, ADMIN_PATH . '?cp=' . basename(__file__, '.php') + $lang['PACKAGE_N_CMPT_KLJ'].'
k:'.KLEEJA_VERSION.'|<|p.min:'.$plugin_info['plugin_kleeja_version_min'], + true, + '', + true, + 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'], - true, '', true, ADMIN_PATH . '?cp=' . basename(__file__, '.php') + $lang['PACKAGE_N_CMPT_KLJ'].'
k:'.KLEEJA_VERSION.'|>|p.max:'.$plugin_info['plugin_kleeja_version_max'], + true, + '', + true, + ADMIN_PATH.'?cp='.basename(__FILE__, '.php') ); exit; @@ -361,100 +308,84 @@ 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 = '

' . $lang['NEW_PLUGIN_ADDED'] . '

'; + $text = '

'.$lang['NEW_PLUGIN_ADDED'].'

'; - if ($plugin_first_run) - { + if ($plugin_first_run) { $text .= $plugin_first_run; - $text .= '

' . $lang['GO_BACK_BROWSER'] . ''; + $text .= '

'.$lang['GO_BACK_BROWSER'].''; + } else { + $text .= ''."\n"; } - else - { - $text .= '' . "\n"; - } - $stylee = 'admin_info'; } break; - // //uninstall a plugin // case 'uninstall': - 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('DEV_STAGE')) - { + if (empty($plg_name)) { + if (defined('DEV_STAGE')) { 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('DEV_STAGE')) - { + redirect(ADMIN_PATH.'?cp='.basename(__FILE__, '.php')); + } else { + if (! file_exists(PATH.KLEEJA_PLUGINS_FOLDER.'/'.$plg_name.'/init.php')) { + if (defined('DEV_STAGE')) { exit('!file_exists($plg_name)'); } - redirect(ADMIN_PATH . '?cp=' . basename(__file__, '.php')); + redirect(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'; $uninstall_callback = $kleeja_plugin[$plg_name]['uninstall']; - if (! is_callable($uninstall_callback)) - { - redirect(ADMIN_PATH . '?cp=' . basename(__file__, '.php')); + if (! is_callable($uninstall_callback)) { + redirect(ADMIN_PATH.'?cp='.basename(__FILE__, '.php')); exit; } - $query = [ 'SELECT' => 'plg_id', - 'FROM' => "{$dbprefix}plugins", - 'WHERE' => "plg_name='" . $SQL->escape($plg_name) . "'" + 'FROM' => "{$dbprefix}plugins", + 'WHERE' => "plg_name='".$SQL->escape($plg_name)."'" ]; $result = $SQL->build($query); @@ -469,72 +400,61 @@ switch ($case): //remove from database $query_del = [ 'DELETE' => "`{$dbprefix}plugins`", - 'WHERE' => "plg_name='" . $SQL->escape($plg_name) . "'" + 'WHERE' => "plg_name='".$SQL->escape($plg_name)."'" ]; $SQL->build($query_del); //show done, msg - $text = '

' . sprintf($lang['ITEM_DELETED'], $plg_name) . '

'; - $text .= '' . "\n"; + $text = '

'.sprintf($lang['ITEM_DELETED'], $plg_name).'

'; + $text .= ''."\n"; $stylee = 'admin_info'; } break; - - // // disable a plugin // case 'disable': case 'enable': - 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('DEV_STAGE')) - { + if (empty($plg_name)) { + if (defined('DEV_STAGE')) { exit('empty($plg_name)'); } //no plugin selected? back - redirect(ADMIN_PATH . '?cp=' . basename(__file__, '.php')); - } - else - { + redirect(ADMIN_PATH.'?cp='.basename(__FILE__, '.php')); + } else { //update database $update_query = [ 'UPDATE' => "{$dbprefix}plugins", - 'SET' => 'plg_disabled=' . ($case == 'disable' ? 1 : 0), - 'WHERE' => "plg_name='" . $SQL->escape($plg_name) . "'" + 'SET' => 'plg_disabled='.($case == 'disable' ? 1 : 0), + 'WHERE' => "plg_name='".$SQL->escape($plg_name)."'" ]; - $SQL->build($update_query); delete_cache('', true); //show done, msg - $text = '

' . $lang['PLGUIN_DISABLED_ENABLED'] . '

'; - $text .= '' . "\n"; - + $text = '

'.$lang['PLGUIN_DISABLED_ENABLED'].'

'; + $text .= ''."\n"; $stylee = 'admin_info'; } break; - case 'download': - if (intval($userinfo['founder']) !== 1) - { + if (intval($userinfo['founder']) !== 1) { header('HTTP/1.0 401 Unauthorized'); kleeja_admin_err($lang['HV_NOT_PRVLG_ACCESS']); } @@ -544,18 +464,15 @@ switch ($case): $is_update = false; //if plugin exists before, then trigger update action. rename folder to rollback in case of failure - if (file_exists(PATH . KLEEJA_PLUGINS_FOLDER . '/' . $plugin_name . '/init.php')) - { + if (file_exists(PATH.KLEEJA_PLUGINS_FOLDER.'/'.$plugin_name.'/init.php')) { $is_update = true; if (! rename( - PATH . KLEEJA_PLUGINS_FOLDER . '/' . $plugin_name, - PATH . KLEEJA_PLUGINS_FOLDER . '/' . $plugin_name . '_backup' - )) - { - if (is_dir(PATH . KLEEJA_PLUGINS_FOLDER . '/' . $plugin_name)) - { - kleeja_unlink(PATH . KLEEJA_PLUGINS_FOLDER . '/' . $plugin_name); + PATH.KLEEJA_PLUGINS_FOLDER.'/'.$plugin_name, + PATH.KLEEJA_PLUGINS_FOLDER.'/'.$plugin_name.'_backup' + )) { + if (is_dir(PATH.KLEEJA_PLUGINS_FOLDER.'/'.$plugin_name)) { + kleeja_unlink(PATH.KLEEJA_PLUGINS_FOLDER.'/'.$plugin_name); } } } @@ -565,32 +482,28 @@ switch ($case): $catalog_plugins = fetch_remote_file($store_link); - if ($catalog_plugins) - { + if ($catalog_plugins) { $catalog_plugins = json_decode($catalog_plugins, true); $store_plugins = []; // make an arry for all plugins in kleeja store that not included in our server - foreach ($catalog_plugins as $plugin_info) - { - if ($plugin_info['type'] != 'plugin') - { + foreach ($catalog_plugins as $plugin_info) { + if ($plugin_info['type'] != 'plugin') { continue; } $store_plugins[$plugin_info['name']] = [ - 'name' => $plugin_info['name'] , - 'plg_version' => $plugin_info['file']['version'] , - 'url' => $plugin_info['file']['url'] , - 'kj_min_version' => $plugin_info['kleeja_version']['min'] , - 'kj_max_version' => $plugin_info['kleeja_version']['max'] , + 'name' => $plugin_info['name'], + 'plg_version' => $plugin_info['file']['version'], + 'url' => $plugin_info['file']['url'], + 'kj_min_version' => $plugin_info['kleeja_version']['min'], + 'kj_max_version' => $plugin_info['kleeja_version']['max'], ]; } // this plugin is hosted in our store - if (isset($store_plugins[$plugin_name])) - { + if (isset($store_plugins[$plugin_name])) { // check if the version of the plugin is compatible with our kleeja version or not if ( version_compare(strtolower($store_plugins[$plugin_name]['kj_min_version']), KLEEJA_VERSION, '<=') @@ -598,110 +511,82 @@ switch ($case): ) { $plugin_name_link = $store_plugins[$plugin_name]['url']; - $plugin_archive = fetch_remote_file($plugin_name_link, PATH . 'cache/' . $plugin_name . '.zip', 60, false, 10, true); + $plugin_archive = fetch_remote_file($plugin_name_link, PATH.'cache/'.$plugin_name.'.zip', 60, false, 10, true); - if ($plugin_archive) - { - if (file_exists(PATH . 'cache/' . $plugin_name . '.zip')) - { + if ($plugin_archive) { + if (file_exists(PATH.'cache/'.$plugin_name.'.zip')) { $zip = new ZipArchive(); - if ($zip->open(PATH . 'cache/' . $plugin_name . '.zip') === true) - { - if ($zip->extractTo(PATH . KLEEJA_PLUGINS_FOLDER)) - { + if ($zip->open(PATH.'cache/'.$plugin_name.'.zip') === true) { + if ($zip->extractTo(PATH.KLEEJA_PLUGINS_FOLDER)) { // we dont need the zip file anymore - kleeja_unlink(PATH . 'cache/' . $plugin_name . '.zip'); + kleeja_unlink(PATH.'cache/'.$plugin_name.'.zip'); // uploaded plugin's archive has different name, so we change it rename( - PATH . KLEEJA_PLUGINS_FOLDER . '/' . trim($zip->getNameIndex(0), '/'), - PATH . KLEEJA_PLUGINS_FOLDER . '/' . $plugin_name + PATH.KLEEJA_PLUGINS_FOLDER.'/'.trim($zip->getNameIndex(0), '/'), + PATH.KLEEJA_PLUGINS_FOLDER.'/'.$plugin_name ); $zip->close(); // download or update msg - $adminAjaxContent = '1:::' . sprintf($lang[$is_update ? 'ITEM_UPDATED' : 'ITEM_DOWNLOADED'], $plugin_name); + $adminAjaxContent = '1:::'.sprintf($lang[$is_update ? 'ITEM_UPDATED' : 'ITEM_DOWNLOADED'], $plugin_name); //in case of update, delete back up version - if (is_dir(PATH . KLEEJA_PLUGINS_FOLDER . '/' . $plugin_name . '_backup')) - { - kleeja_unlink(PATH . KLEEJA_PLUGINS_FOLDER . '/' . $plugin_name . '_backup'); + if (is_dir(PATH.KLEEJA_PLUGINS_FOLDER.'/'.$plugin_name.'_backup')) { + kleeja_unlink(PATH.KLEEJA_PLUGINS_FOLDER.'/'.$plugin_name.'_backup'); } - } - else - { - $adminAjaxContent = '1003:::' . sprintf($lang['EXTRACT_ZIP_FAILED'], KLEEJA_PLUGINS_FOLDER); + } else { + $adminAjaxContent = '1003:::'.sprintf($lang['EXTRACT_ZIP_FAILED'], KLEEJA_PLUGINS_FOLDER); } } + } else { + $adminAjaxContent = '1004:::'.$lang['DOWNLOADED_FILE_NOT_FOUND']; } - else - { - $adminAjaxContent = '1004:::' . $lang['DOWNLOADED_FILE_NOT_FOUND']; - } - } - else - { - $adminAjaxContent = '1005:::' . $lang['STORE_SERVER_ERROR']; + } else { + $adminAjaxContent = '1005:::'.$lang['STORE_SERVER_ERROR']; } + } else { + $adminAjaxContent = '1006:::'.$lang['PACKAGE_N_CMPT_KLJ']; } - else - { - $adminAjaxContent = '1006:::' . $lang['PACKAGE_N_CMPT_KLJ']; - } - } - else - { - $adminAjaxContent = '1007:::' . sprintf($lang['PACKAGE_REMOTE_FILE_MISSING'], $plugin_name); + } else { + $adminAjaxContent = '1007:::'.sprintf($lang['PACKAGE_REMOTE_FILE_MISSING'], $plugin_name); } + } else { + $adminAjaxContent = '1008:::'.$lang['STORE_SERVER_ERROR']; } - else - { - $adminAjaxContent = '1008:::' . $lang['STORE_SERVER_ERROR']; - } - //in case of update failure, rollback to current plugin version - if (strpos($adminAjaxContent, '1:::') === false) - { - if (is_dir(PATH . KLEEJA_PLUGINS_FOLDER . '/' . $plugin_name . '_backup')) - { + if (strpos($adminAjaxContent, '1:::') === false) { + if (is_dir(PATH.KLEEJA_PLUGINS_FOLDER.'/'.$plugin_name.'_backup')) { rename( - PATH . KLEEJA_PLUGINS_FOLDER . '/' . $plugin_name . '_backup', - PATH . KLEEJA_PLUGINS_FOLDER . '/' . $plugin_name + PATH.KLEEJA_PLUGINS_FOLDER.'/'.$plugin_name.'_backup', + PATH.KLEEJA_PLUGINS_FOLDER.'/'.$plugin_name ); } } break; - - case 'dfolder': $plugin_name = preg_replace('/[^a-z0-9_\-\.]/i', '', g('plg')); - $plugin_folder_path = PATH . KLEEJA_PLUGINS_FOLDER . '/' . $plugin_name; + $plugin_folder_path = PATH.KLEEJA_PLUGINS_FOLDER.'/'.$plugin_name; - - if (is_dir($plugin_folder_path)) - { - if (! is_writable($plugin_folder_path)) - { - chmod($plugin_folder_path, K_DIR_CHMOD); + if (is_dir($plugin_folder_path)) { + if (! is_writable($plugin_folder_path)) { + @chmod($plugin_folder_path, K_DIR_CHMOD); } kleeja_unlink($plugin_folder_path); } - - if (! is_dir($plugin_folder_path)) - { - kleeja_admin_info(sprintf($lang['ITEM_DELETED'], $plugin_name), $action . '&case=local'); + if (! is_dir($plugin_folder_path)) { + kleeja_admin_info(sprintf($lang['ITEM_DELETED'], $plugin_name), $action.'&case=local'); } kleeja_admin_err($lang['ERROR_TRY_AGAIN'], $action); break; - endswitch; diff --git a/includes/adm/m_styles.php b/includes/adm/m_styles.php index 033ac44..5975c41 100755 --- a/includes/adm/m_styles.php +++ b/includes/adm/m_styles.php @@ -329,7 +329,7 @@ case 'upload': { if (! is_writable($style_folder_path)) { - chmod($style_folder_path, K_DIR_CHMOD); + @chmod($style_folder_path, K_DIR_CHMOD); } kleeja_unlink($style_folder_path); @@ -361,7 +361,7 @@ case 'download': if (! is_writable(PATH . 'styles')) { - chmod(PATH . 'styles', K_DIR_CHMOD); + @chmod(PATH . 'styles', K_DIR_CHMOD); } //if style exists before, then trigger update action. rename folder to rollback in case of failure diff --git a/install/install.php b/install/install.php index 0e0b707..633bdcc 100755 --- a/install/install.php +++ b/install/install.php @@ -160,6 +160,8 @@ case 'check': if (function_exists('chmod')) { @chmod(PATH . 'cache', 0755); + @chmod(PATH . 'plugins', 0755); + @chmod(PATH . 'styles', 0755); @chmod(PATH . 'uploads', 0755); @chmod(PATH . 'uploads/thumbs', 0755); } diff --git a/lang/ar/acp.php b/lang/ar/acp.php index 16e5b72..a151f33 100755 --- a/lang/ar/acp.php +++ b/lang/ar/acp.php @@ -118,7 +118,8 @@ return [ 'ADD_NEW_PLUGIN' => 'أضف إضافة برمجية جديدة', 'ITEM_DELETED' => 'لقد تم حذف "%s" بنجاح...', 'PLGUIN_DISABLED_ENABLED' => 'لقد تم تفعيل \ تعطيل الإضافة البرمجية..', - 'NO_PLUGINS' => 'لا يوجد أي إضافات برمجية ..', + 'NO_PLUGINS' => 'لا يوجد أي إضافات برمجية متوفرة..', + 'NO_STYLES' => 'لا يوجد أي ستايلات متوفرة..', 'NEW_PLUGIN_ADDED' => 'لقد تمت إضافة الإضافة البرمجية .. ', 'PLUGIN_EXISTS_BEFORE' => 'الاضافة هذه موجودة سابقاً بنفس الاصدار أو أعلى ولاتحتاج تحديث !', 'R_CHECK_UPDATE' => 'فحص عن تحديثات', diff --git a/lang/en/acp.php b/lang/en/acp.php index ec14b35..e9a8076 100755 --- a/lang/en/acp.php +++ b/lang/en/acp.php @@ -120,7 +120,8 @@ return [ 'ITEM_DELETED' => '%s has been deleted successfully...', 'PLGUIN_DISABLED_ENABLED' => 'Plugin Enabled / Disabled', - 'NO_PLUGINS' => 'No plugins found! You could start browsing plugins and installing them by clicking the tab "Kleeja Store" or upload a plugin file from the tab "Local Plugins".', + 'NO_PLUGINS' => 'No available plugins found...', + 'NO_STYLES' => 'No available styles found...', 'NEW_PLUGIN_ADDED' => 'Plugin added ... ', 'PLUGIN_EXISTS_BEFORE' => 'This plugin exists before with same version or above, so no need to update it!.', 'R_CHECK_UPDATE' => 'Check for updates',