shell bypass 403
<?php /** * @package RSForm! Pro * @copyright (C) 2007-2019 www.rsjoomla.com * @license GPL, http://www.gnu.org/copyleft/gpl.html */ defined('_JEXEC') or die; use Joomla\CMS\Language\Text; use Joomla\CMS\HTML\HTMLHelper; require_once __DIR__.'/../formlayout.php'; class RSFormProFormLayoutBootstrap5 extends RSFormProFormLayout { public $errorClass = ''; public $fieldErrorClass = 'is-invalid'; public $progressContent = '<div><div class="progress"><div class="progress-bar" role="progressbar" aria-valuenow="{percent}" aria-valuemin="0" aria-valuemax="100" style="width: {percent}%;"><em>{page_lang} <strong>{page}</strong> {of_lang} {total}</em></div></div></div>'; public function __construct() { if ($this->getDirection() == 'rtl') { $this->progressContent = '<div><div class="progress"><div class="progress-bar" role="progressbar" aria-valuenow="{percent}" aria-valuemin="0" aria-valuemax="100" style="width: {percent}%;"><em>{total} {of_lang} <strong>{page}</strong> {page_lang}</em></div></div></div>'; } $this->progressOverwritten = true; parent::__construct(); } public function loadFramework() { if (version_compare(JVERSION, '4.0', '<')) { // Load the CSS files $this->addStyleSheet('com_rsform/frameworks/bootstrap5/bootstrap.min.css'); // Load jQuery $this->addjQuery(); // Load Javascript $this->addScript('com_rsform/frameworks/bootstrap5/bootstrap.bundle.min.js'); } else { // Joomla! 4 has Bootstrap 5.0 built-in try { $this->addjQuery(); HTMLHelper::_('bootstrap.framework'); HTMLHelper::_('bootstrap.loadCss', true, $this->getDirection()); } catch (Exception $e) { // @TODO don't like hardcoded stuff keep an eye on this $this->addStyleSheet('vendor/bootstrap/bootstrap.min.css'); $this->addScript('vendor/bootstrap/bootstrap.min.js'); } } // Set the script for the tooltips $script = array(); $script[] = 'document.addEventListener(\'DOMContentLoaded\', function() {'; $script[] = ' var tooltipTriggerList = [].slice.call(document.querySelectorAll(\'[data-bs-toggle="tooltip"]\'));'; $script[] = ' var tooltipList = tooltipTriggerList.map(function (tooltipTriggerEl) {'; $script[] = ' return new bootstrap.Tooltip(tooltipTriggerEl)'; $script[] = ' });'; $script[] = '});'; $this->addScriptDeclaration(implode("\n", $script)); } public function generateButton($goto) { return '<button type="button" class="rsform-submit-button rsform-thankyou-button btn btn-primary" name="continue" onclick="'.$goto.'">'.Text::_('RSFP_THANKYOU_BUTTON').'</button>'; } }