(2003-2009) * @author Froxlor team (2010-) * @license GPLv2 http://files.froxlor.org/misc/COPYING.txt * @package Panel * */ const AREA = 'admin'; require __DIR__ . '/lib/init.php'; use Froxlor\Api\Commands\FpmDaemons; use Froxlor\Api\Commands\PhpSettings; use Froxlor\Database\Database; use Froxlor\UI\Panel\UI; use Froxlor\UI\Request; $id = (int) Request::get('id'); if ($page == 'overview') { if ($action == '') { try { $phpconf_list_data = include_once dirname(__FILE__) . '/lib/tablelisting/admin/tablelisting.phpconfigs.php'; $collection = (new \Froxlor\UI\Collection(\Froxlor\Api\Commands\PhpSettings::class, $userinfo, ['with_subdomains' => true])) ->withPagination($phpconf_list_data['phpconf_list']['columns']); } catch (Exception $e) { \Froxlor\UI\Response::dynamic_error($e->getMessage()); } UI::twigBuffer('user/table.html.twig', [ 'listing' => \Froxlor\UI\Listing::format($collection, $phpconf_list_data['phpconf_list']), 'actions_links' => [[ 'href' => $linker->getLink(['section' => 'phpsettings', 'page' => $page, 'action' => 'add']), 'label' => $lng['admin']['phpsettings']['addnew'] ]] ]); UI::twigOutputBuffer(); } if ($action == 'add') { if ((int) $userinfo['change_serversettings'] == 1) { if (isset($_POST['send']) && $_POST['send'] == 'send') { try { PhpSettings::getLocal($userinfo, $_POST)->add(); } catch (Exception $e) { \Froxlor\UI\Response::dynamic_error($e->getMessage()); } \Froxlor\UI\Response::redirectTo($filename, array( 'page' => $page, 's' => $s )); } else { if (file_exists(\Froxlor\Froxlor::getInstallDir() . '/templates/misc/php/default.ini.php')) { include \Froxlor\Froxlor::getInstallDir() . '/templates/misc/php/default.ini.php'; $result = [ 'phpsettings' => $phpini ]; } else { // use first php-config as fallback $result_stmt = Database::query("SELECT * FROM `" . TABLE_PANEL_PHPCONFIGS . "` WHERE `id` = 1"); $result = $result_stmt->fetch(PDO::FETCH_ASSOC); } $fpmconfigs = []; $configs = Database::query("SELECT * FROM `" . TABLE_PANEL_FPMDAEMONS . "` ORDER BY `description` ASC"); while ($row = $configs->fetch(PDO::FETCH_ASSOC)) { $fpmconfigs[$row['id']] = $row['description'];; } $phpconfig_add_data = include_once dirname(__FILE__) . '/lib/formfields/admin/phpconfig/formfield.phpconfig_add.php'; UI::twigBuffer('user/form.html.twig', [ 'formaction' => $linker->getLink(array('section' => 'phpsettings')), 'formdata' => $phpconfig_add_data['phpconfig_add'] ]); UI::twigOutputBuffer(); } } else { \Froxlor\UI\Response::standard_error('nopermissionsorinvalidid'); } } if ($action == 'delete') { try { $json_result = PhpSettings::getLocal($userinfo, array( 'id' => $id ))->get(); } catch (Exception $e) { \Froxlor\UI\Response::dynamic_error($e->getMessage()); } $result = json_decode($json_result, true)['data']; if ($result['id'] != 0 && $result['id'] == $id && (int) $userinfo['change_serversettings'] == 1 && $id != 1) // cannot delete the default php.config { if (isset($_POST['send']) && $_POST['send'] == 'send') { try { PhpSettings::getLocal($userinfo, array( 'id' => $id ))->delete(); } catch (Exception $e) { \Froxlor\UI\Response::dynamic_error($e->getMessage()); } \Froxlor\UI\Response::redirectTo($filename, array( 'page' => $page, 's' => $s )); } else { \Froxlor\UI\HTML::askYesNo('phpsetting_reallydelete', $filename, array( 'id' => $id, 'page' => $page, 'action' => $action ), $result['description']); } } else { \Froxlor\UI\Response::standard_error('nopermissionsorinvalidid'); } } if ($action == 'edit') { try { $json_result = PhpSettings::getLocal($userinfo, array( 'id' => $id ))->get(); } catch (Exception $e) { \Froxlor\UI\Response::dynamic_error($e->getMessage()); } $result = json_decode($json_result, true)['data']; if ($result['id'] != 0 && $result['id'] == $id && (int) $userinfo['change_serversettings'] == 1) { if (isset($_POST['send']) && $_POST['send'] == 'send') { try { PhpSettings::getLocal($userinfo, $_POST)->update(); } catch (Exception $e) { \Froxlor\UI\Response::dynamic_error($e->getMessage()); } \Froxlor\UI\Response::redirectTo($filename, array( 'page' => $page, 's' => $s )); } else { $fpmconfigs = []; $configs = Database::query("SELECT * FROM `" . TABLE_PANEL_FPMDAEMONS . "` ORDER BY `description` ASC"); while ($row = $configs->fetch(PDO::FETCH_ASSOC)) { $fpmconfigs[$row['id']] = $row['description']; } $phpconfig_edit_data = include_once dirname(__FILE__) . '/lib/formfields/admin/phpconfig/formfield.phpconfig_edit.php'; UI::twigBuffer('user/form.html.twig', [ 'formaction' => $linker->getLink(array('section' => 'phpsettings', 'id' => $id)), 'formdata' => $phpconfig_edit_data['phpconfig_edit'], 'editid' => $id ]); UI::twigOutputBuffer(); } } else { \Froxlor\UI\Response::standard_error('nopermissionsorinvalidid'); } } } elseif ($page == 'fpmdaemons') { if ($action == '') { try { $json_result = FpmDaemons::getLocal($userinfo)->listing(); } catch (Exception $e) { \Froxlor\UI\Response::dynamic_error($e->getMessage()); } $result = json_decode($json_result, true)['data']; $tablecontent = ''; $count = 0; if (isset($result['count']) && $result['count'] > 0) { foreach ($result['list'] as $row) { $configs = ""; foreach ($row['configs'] as $configused) { $configs .= $configused . "
"; } $count++; eval("\$tablecontent.=\"" . \Froxlor\UI\Template::getTemplate("phpconfig/fpmdaemons_overview") . "\";"); } } eval("echo \"" . \Froxlor\UI\Template::getTemplate("phpconfig/fpmdaemons") . "\";"); } if ($action == 'add') { if ((int) $userinfo['change_serversettings'] == 1) { if (isset($_POST['send']) && $_POST['send'] == 'send') { try { FpmDaemons::getLocal($userinfo, $_POST)->add(); } catch (Exception $e) { \Froxlor\UI\Response::dynamic_error($e->getMessage()); } \Froxlor\UI\Response::redirectTo($filename, array( 'page' => $page, 's' => $s )); } else { $fpmconfig_add_data = include_once dirname(__FILE__) . '/lib/formfields/admin/phpconfig/formfield.fpmconfig_add.php'; UI::twigBuffer('user/form.html.twig', [ 'formaction' => $linker->getLink(array('section' => 'phpsettings', 'page' => 'fpmdaemons')), 'formdata' => $fpmconfig_add_data['fpmconfig_add'] ]); UI::twigOutputBuffer(); } } else { \Froxlor\UI\Response::standard_error('nopermissionsorinvalidid'); } } if ($action == 'delete') { try { $json_result = FpmDaemons::getLocal($userinfo, array( 'id' => $id ))->get(); } catch (Exception $e) { \Froxlor\UI\Response::dynamic_error($e->getMessage()); } $result = json_decode($json_result, true)['data']; if ($id == 1) { \Froxlor\UI\Response::standard_error('cannotdeletedefaultphpconfig'); } if ($result['id'] != 0 && $result['id'] == $id && (int) $userinfo['change_serversettings'] == 1 && $id != 1) // cannot delete the default php.config { if (isset($_POST['send']) && $_POST['send'] == 'send') { try { FpmDaemons::getLocal($userinfo, $_POST)->delete(); } catch (Exception $e) { \Froxlor\UI\Response::dynamic_error($e->getMessage()); } \Froxlor\UI\Response::redirectTo($filename, array( 'page' => $page, 's' => $s )); } else { \Froxlor\UI\HTML::askYesNo('fpmsetting_reallydelete', $filename, array( 'id' => $id, 'page' => $page, 'action' => $action ), $result['description']); } } else { \Froxlor\UI\Response::standard_error('nopermissionsorinvalidid'); } } if ($action == 'edit') { try { $json_result = FpmDaemons::getLocal($userinfo, array( 'id' => $id ))->get(); } catch (Exception $e) { \Froxlor\UI\Response::dynamic_error($e->getMessage()); } $result = json_decode($json_result, true)['data']; if ($result['id'] != 0 && $result['id'] == $id && (int) $userinfo['change_serversettings'] == 1) { if (isset($_POST['send']) && $_POST['send'] == 'send') { try { FpmDaemons::getLocal($userinfo, $_POST)->update(); } catch (Exception $e) { \Froxlor\UI\Response::dynamic_error($e->getMessage()); } \Froxlor\UI\Response::redirectTo($filename, array( 'page' => $page, 's' => $s )); } else { $fpmconfig_edit_data = include_once dirname(__FILE__) . '/lib/formfields/admin/phpconfig/formfield.fpmconfig_edit.php'; UI::twigBuffer('user/form.html.twig', [ 'formaction' => $linker->getLink(array('section' => 'phpsettings', 'page' => 'fpmdaemons', 'id' => $id)), 'formdata' => $fpmconfig_edit_data['fpmconfig_edit'], 'editid' => $id ]); UI::twigOutputBuffer(); } } else { \Froxlor\UI\Response::standard_error('nopermissionsorinvalidid'); } } }