<?php // TEST FILE TO RUN QFQ REPORT WITHOUT TYPO3 // /////////////////////////////////////////////// ////////////////////////////////////// ////////// PAGE DISABLED ///////////// exit(); // <<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<< // !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! const IS_DEBUG = true; // TODO: replace this with better debug meachanism require_once(__DIR__ . '/../vendor/autoload.php'); use http\Exception; use IMATHUZH\Qfq\Core\Helper\Path; use IMATHUZH\Qfq\Core\QuickFormQuery; class User { public $user; public function __construct() { $this->user = [ "uid" => 1, // Backend user: 2 // $feUserLoggedIn = isset($GLOBALS["TSFE"]->fe_user->user["uid"]) && $GLOBALS["TSFE"]->fe_user->user["uid"] > 0; // $arr["fe_user_uid"] = $GLOBALS["TSFE"]->fe_user->user["uid"] ?? '-'; // $arr["be_user_uid"] = (isset($GLOBALS['BE_USER'])) ? $GLOBALS['BE_USER']->user["uid"] : '-'; // $feUidLoggedIn = $GLOBALS["TSFE"]->fe_user->user["uid"] ?? false; // $t3vars[TYPO3_FE_USER_UID] = isset($GLOBALS["TSFE"]->fe_user->user["uid"]) ? $GLOBALS["TSFE"]->fe_user->user["uid"] : ''; "username" => "megger", // Backend user: "megger" // $arr["fe_user"] = $GLOBALS["TSFE"]->fe_user->user["username"] ?? '-'; // $feUserSession = $GLOBALS["TSFE"]->fe_user->user["username"] ?? false; // $beUser = $GLOBALS["BE_USER"]->user["username"] ?? false; // if (isset($GLOBALS["TSFE"]->fe_user->user["username"]) && isset($_COOKIE['fe_typo_user'])) { // $t3vars[TYPO3_FE_USER] = isset($GLOBALS["TSFE"]->fe_user->user["username"]) ? $GLOBALS["TSFE"]->fe_user->user["username"] : ''; // $t3vars[TYPO3_BE_USER] = isset($GLOBALS["BE_USER"]->user["username"]) ? $GLOBALS["BE_USER"]->user["username"] : ''; "usergroup"=> "1" // Backend user: "" // $feUserGroup = $GLOBALS["TSFE"]->fe_user->user["usergroup"] ?? false; // $t3vars[TYPO3_FE_USER_GROUP] = isset($GLOBALS["TSFE"]->fe_user->user["usergroup"]) ? $GLOBALS["TSFE"]->fe_user->user["usergroup"] : ''; ]; } public function logoff() { // $GLOBALS['TSFE']->fe_user->logoff(); } } class TSFE { public $fe_user; public $id = 1; // $arr["page_id"] = $GLOBALS["TSFE"]->id; // $t3vars[TYPO3_PAGE_ID] = isset($GLOBALS["TSFE"]->id) ? $GLOBALS["TSFE"]->id : ''; public $type = 0; // $arr["page_type"] = $GLOBALS["TSFE"]->type; // $t3vars[TYPO3_PAGE_TYPE] = isset($GLOBALS["TSFE"]->type) ? $GLOBALS["TSFE"]->type : ''; public $sys_language_uid = 0; // $arr["page_language_uid"] = $GLOBALS["TSFE"]->sys_language_uid; // $t3vars[TYPO3_PAGE_LANGUAGE] = isset($GLOBALS["TSFE"]->sys_language_uid) ? $GLOBALS["TSFE"]->sys_language_uid : ''; public $beUserLogin = true; // return (!empty($GLOBALS["TSFE"]->beUserLogin) && $GLOBALS["TSFE"]->beUserLogin === true); // $t3vars[TYPO3_BE_USER_LOGGED_IN] = (isset($GLOBALS["TSFE"]->beUserLogin) && $GLOBALS["TSFE"]->beUserLogin === true) ? 'yes' : 'no'; public $page = [ "alias" => 1, // $t3vars[TYPO3_PAGE_ALIAS] = empty($GLOBALS["TSFE"]->page["alias"]) ? $t3vars[TYPO3_PAGE_ID] : $GLOBALS["TSFE"]->page["alias"]; "title" => "two" // $t3vars[TYPO3_PAGE_TITLE] = isset($GLOBALS["TSFE"]->page["title"]) ? $GLOBALS["TSFE"]->page["title"] : ''; ]; public function __construct() { $this->fe_user = new User(); // if (isset($GLOBALS["TSFE"]->fe_user)) { } } $extConf = [ "flagProduction" => "yes", "render" => "both", "maxFileSize" => "", "baseUrl" => "", "dateFormat" => "dd.mm.yyyy", "thumbnailDirSecure" => "fileadmin/protected/qfqThumbnail", "thumbnailDirPublic" => "typo3temp/qfqThumbnail", "cmdInkscape" => "inkscape", "cmdConvert" => "convert", "cmdWkhtmltopdf" => "/opt/wkhtmltox/bin/wkhtmltopdf", "cmdQpdf" => "qpdf", "cmdGs" => "gs", "cmdPdfunite" => "pdfunite", "sendEMailOptions" => "", "documentation" => "https://docs.typo3.org/typo3cms/drafts/github/T3DocumentationStarter/Public-Info-053/Manual.html", "fillStoreSystemBySql1" => "", "fillStoreSystemBySqlErrorMsg1" => "", "fillStoreSystemBySql2" => "", "fillStoreSystemBySqlErrorMsg2" => "", "fillStoreSystemBySql3" => "", "fillStoreSystemBySqlErrorMsg3" => "", "throwExceptionGeneralError" => "auto", "formSubmitLogMode" => "all", "redirectAllMailTo" => "", "sqlLogMode" => "modify", "sqlLogModeAutoCron" => "error", "sqlLog" => "fileadmin/protected/log/sql.log", "qfqLog" => "fileadmin/protected/log/qfq.log", "mailLog" => "fileadmin/protected/log/mail.log", "showDebugInfo" => "auto", "init" => "SET names utf8; SET sql_mode = \"NO_ENGINE_SUBSTITUTION\";", "update" => "auto", "indexData" => "1", "indexQfq" => "1", "escapeTypeDefault" => "m", "securityVarsHoneypot" => "email,username,password", "securityAttackDelay" => "5", "securityShowMessage" => "true", "securityGetMaxLength" => "50", "securityFailedAuthDelay" => "3", "sessionTimeoutSeconds" => "1800", "recordLockTimeoutSeconds" => "900", "enterAsSubmit" => "1", "editFormPage" => "form", "formDataPatternError" => "", "formDataRequiredError" => "", "formDataMatchError" => "", "formDataError" => "", "showIdInFormTitle" => "0", "cssClassColumnId" => "text-muted", "labelAlign" => "left", "cssClassQfqContainer" => "", "cssClassQfqForm" => "", "cssClassQfqFormPill" => "qfq-color-grey-1", "cssClassQfqFormBody" => "qfq-color-grey-2", "formBsColumns" => "col-md-12", "formBsLabelColumns" => "col-md-3 col-lg-3", "formBsInputColumns" => "col-md-6 col-lg-6", "formBsNoteColumns" => "col-md-3 col-lg-3", "extraButtonInfoInline" => "<span class=\"glyphicon glyphicon-info-sign\" aria-hidden=\"true\"></span>", "extraButtonInfoBelow" => "<span class=\"glyphicon glyphicon-info-sign text-info\" aria-hidden=\"true\"></span>", "extraButtonInfoPosition" => "auto", "extraButtonInfoClass" => "", "formLanguageAId" => "", "formLanguageALabel" => "", "formLanguageBId" => "", "formLanguageBLabel" => "", "formLanguageCId" => "", "formLanguageCLabel" => "", "formLanguageDId" => "", "formLanguageDLabel" => "", "saveButtonText" => "", "saveButtonTooltip" => "Save", "saveButtonClass" => "btn btn-default navbar-btn", "saveButtonClassOnChange" => "alert-info btn-info", "saveButtonGlyphIcon" => "glyphicon-ok", "closeButtonText" => "", "closeButtonTooltip" => "Close", "closeButtonClass" => "btn btn-default navbar-btn", "closeButtonGlyphIcon" => "glyphicon-remove", "deleteButtonText" => "", "deleteButtonTooltip" => "Delete", "deleteButtonClass" => "btn btn-default navbar-btn", "deleteButtonGlyphIcon" => "glyphicon-trash", "newButtonText" => "", "newButtonTooltip" => "New", "newButtonClass" => "btn btn-default navbar-btn", "newButtonGlyphIcon" => "glyphicon-plus", "custom1" => "", "custom2" => "", "custom3" => "", "custom4" => "", "custom5" => "", "custom6" => "", "custom7" => "", "custom8" => "", "custom9" => "", "custom10" => "", "custom11" => "", "custom12" => "", "custom13" => "", "custom14" => "", "custom15" => "", "custom16" => "", "custom17" => "", "custom18" => "", "custom19" => "", "custom20" => "", "custom21" => "", "custom22" => "", "custom23" => "", "custom24" => "", "custom25" => "", "custom26" => "", "custom27" => "", "custom28" => "", "custom29" => "", "custom30" => "", "cmdImg2pdf" => "img2pdf" ]; $GLOBALS["TSFE"] = new TSFE(); // if (isset($GLOBALS["TSFE"])) { $GLOBALS["BE_USER"] = new User(); /// THIS STOPS RENDERING $GLOBALS['TYPO3_CONF_VARS'] = [ 'EXT' => ['extConf'=>[EXT_KEY=>serialize($extConf)]], // THIS STOPS RENDERING // $configT3qfq = unserialize($GLOBALS['TYPO3_CONF_VARS']['EXT']['extConf'][EXT_KEY]); 'DB' => [ "additionalQueryRestrictions" => [], "Connections" => [ "Default" => [ "charset" => "utf8", "dbname" => "megger_qfq_t3", "driver" => "mysqli", "host" => "127.0.0.1", "password" => "R76HL8s6xsDdHiuu", "port" => 3306, "user" => "megger_qfq" ] ] ] // $configT3qfq[SYSTEM_DB_NAME_T3] = self::getDbName($GLOBALS['TYPO3_CONF_VARS']['DB']); ]; $GLOBALS['TYPO3_LOADED_EXT'] = [ EXT_KEY => ['ext_localconf.php' => '/var/www/html/megger/qfq/typo3conf/ext/qfq/ext_localconf.php'] // if ($pos === false && isset($GLOBALS['TYPO3_LOADED_EXT'][EXT_KEY]['ext_localconf.php'])) { // $config[SYSTEM_EXT_PATH] = dirname($GLOBALS['TYPO3_LOADED_EXT'][EXT_KEY]['ext_localconf.php']); ]; // Cookies // In SessionCookie.php all cookie data is saved in a file. but this isonly used in Html2Pdf.php: foreach ($_COOKIE as $name => $value) { $_COOKIE[SESSION_NAME] = "rnhngphhsia6nulti8mqe35i80"; // isset($_COOKIE[SESSION_NAME]) // "Cookie: " . SESSION_NAME . "=" . $_COOKIE[SESSION_NAME] . "\r\n", // $cookie = isset($_COOKIE[SESSION_NAME]) ? $_COOKIE[SESSION_NAME] : '<no session cookie>'; // $feUser = $_COOKIE[SESSION_NAME] ?? 'fake'; // if (isset($_COOKIE[SESSION_NAME])) { $cookie[CLIENT_COOKIE_QFQ] = $_COOKIE[SESSION_NAME]; } // if (isset($_COOKIE[SESSION_NAME])) { unset($_COOKIE[SESSION_NAME]); setcookie(SESSION_NAME, '', time() - 86400, '/'); } $_COOKIE['fe_typo_user'] = "1d4751e1531fac9e145914bc12cb83f6"; // $cookieFe = ($_COOKIE['fe_typo_user']) ?? false; // if (isset($GLOBALS["TSFE"]->fe_user->user["username"]) && isset($_COOKIE['fe_typo_user'])) { //// echo <<<EOF <link rel="stylesheet" type="text/css" href="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.6/css/bootstrap.min.css" media="all"> <link rel="stylesheet" type="text/css" href="https://webwork16.math.uzh.ch/megger/qfq/typo3conf/ext/qfq/Resources/Public/Css/bootstrap-theme.min.css?1594738199" media="all"> <link rel="stylesheet" type="text/css" href="https://webwork16.math.uzh.ch/megger/qfq/typo3conf/ext/qfq/Resources/Public/Css/qfq-bs.css" media="all"> <link rel="stylesheet" type="text/css" href="https://webwork16.math.uzh.ch/megger/qfq/typo3conf/ext/qfq/Resources/Public/Css/tablesorter-bootstrap.css?1594738199" media="all"> <link rel="stylesheet" type="text/css" href="https://webwork16.math.uzh.ch/megger/qfq/typo3conf/ext/qfq/Resources/Public/Css/font-awesome.min.css?1594738199" media="all"> <script src="https://ajax.googleapis.com/ajax/libs/jquery/2.2.2/jquery.min.js" type="text/javascript"></script> <script src="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.6/js/bootstrap.min.js" type="text/javascript"></script> <script src="https://webwork16.math.uzh.ch/megger/qfq/typo3conf/ext/qfq/Resources/Public/JavaScript/validator.min.js" type="text/javascript"></script> <script src="https://webwork16.math.uzh.ch/megger/qfq/typo3conf/ext/qfq/Resources/Public/JavaScript/tinymce.min.js" type="text/javascript"></script> <script src="https://webwork16.math.uzh.ch/megger/qfq/typo3conf/ext/qfq/Resources/Public/JavaScript/EventEmitter.min.js" type="text/javascript"></script> <script src="https://webwork16.math.uzh.ch/megger/qfq/typo3conf/ext/qfq/Resources/Public/JavaScript/qfq.debug.js" type="text/javascript"></script> <script src="https://webwork16.math.uzh.ch/megger/qfq/typo3conf/ext/qfq/Resources/Public/JavaScript/typeahead.bundle.min.js" type="text/javascript"></script> <script src="https://webwork16.math.uzh.ch/megger/qfq/typo3conf/ext/qfq/Resources/Public/JavaScript/jquery.tablesorter.combined.min.js" type="text/javascript"></script> <script src="https://webwork16.math.uzh.ch/megger/qfq/typo3conf/ext/qfq/Resources/Public/JavaScript/jquery.tablesorter.pager.min.js" type="text/javascript"></script> <script src="https://webwork16.math.uzh.ch/megger/qfq/typo3conf/ext/qfq/Resources/Public/JavaScript/widget-columnSelector.min.js" type="text/javascript"></script> EOF; $t3data = [ "uid" => 3, "pid" => 3, "t3ver_oid" => 0, "t3ver_id" => 0, "t3ver_wsid" => 0, "t3ver_label" => "", "t3ver_state" => 0, "t3ver_stage" => 0, "t3ver_count" => 0, "t3ver_tstamp" => 0, "t3ver_move_id" => 0, "t3_origuid" => 0, "tstamp" => 1596017434, "crdate" => 1544445105, "cruser_id" => 2, "editlock" => 0, "hidden" => 0, "sorting" => 256, "CType" => "qfq_qfq", "header" => "QFQ: Person", "header_position" => "", "rowDescription" => "", "bodytext" => "file=home/two/qfq-person.qfqr", "bullets_type" => 0, "uploads_description" => 0, "uploads_type" => 0, "assets" => 0, "image" => 0, "imagewidth" => 0, "imageorient" => 0, "imagecols" => 2, "imageborder" => 0, "media" => 0, "layout" => 0, "frame_class" => "default", "deleted" => 0, "cols" => 0, "spaceBefore" => 0, "spaceAfter" => 0, "space_before_class" => "", "space_after_class" => "", "records" => null, "pages" => null, "starttime" => 0, "endtime" => 0, "colPos" => 0, "subheader" => "", "fe_group" => "", "header_link" => "", "image_zoom" => 0, "header_layout" => "0", "list_type" => "", "sectionIndex" => 1, "linkToTop" => 0, "file_collections" => null, "filelink_size" => 0, "filelink_sorting" => "", "target" => "", "date" => 0, "recursive" => 0, "imageheight" => 0, "sys_language_uid" => 0, "pi_flexform" => null, "accessibility_title" => "", "accessibility_bypass" => 0, "accessibility_bypass_text" => "", "l18n_parent" => 0, "l18n_diffsource" => "a:15:{s:6:\"header\";N;s:5:\"CType\";N;s:8:\"bodytext\";N;s:6:\"hidden\";N;s:8:\"fe_group\";N;s:9:\"starttime\";N;s:7:\"endtime\";N;s:6:\"colPos\";N;s:15:\"header_position\";N;s:16:\"sys_language_uid\";N;s:6:\"layout\";N;s:13:\"header_layout\";N;s:9:\"linkToTop\";N;s:12:\"sectionIndex\";N;s:10:\"categories\";N;}", "l10n_source" => 0, "selected_categories" => null, "category_field" => "", "table_class" => "", "table_caption" => null, "table_delimiter" => 124, "table_enclosure" => 0, "table_header_position" => 0, "table_tfoot" => 0, "tx_impexp_origuid" => 0, "l10n_state" => null, "categories" => 0 ]; $html = ''; $origErrorReporting = ''; $flagOk = false; try { // By T3 default 'E_NOTICE' is unset. E.g. 'Undefined Index' will throw an exception. // QFQ like to see those 'E_NOTICE' $origErrorReporting = error_reporting(); error_reporting($origErrorReporting | E_NOTICE); Path::setMainPaths('../../../../'); $t3data["bodytext"] = "file=Home/selenium/QFQ__basicform.qfqr"; $qfq = new QuickFormQuery($t3data); $html = $qfq->process(); $html = '<div class="container">' . $html . '</div>'; $flagOk = true; } catch (\UserFormException $e) { $html = $e->formatMessage(); } catch (\UserReportException $e) { $html = $e->formatMessage(); } catch (\CodeException $e) { $html = $e->formatMessage(); } catch (\DbException $e) { $html = $e->formatMessage(); } catch (\ShellException $e) { $html = $e->formatMessage(); } catch (\DownloadException $e) { $html = $e->formatMessage(); } catch (\Error $e) { $html = "Generic Exception: " . $e->getMessage() . (IS_DEBUG ? ("<br>" . nl2br($e->getTraceAsString())) : ''); } catch (\Exception $e) { $html = "Generic Exception: " . $e->getMessage() . (IS_DEBUG ? ("<br>" . nl2br($e->getTraceAsString())) : ''); } if (isset($e) && $e->getCode() == ERROR_QUIT_QFQ_REGULAR) { $flagOk = true; } if (!$flagOk) { $html = "<div class='alert alert-warning'>$html</div>"; } // Restore has to be outside of try/catch - E_NOTICE needs to unset for further T3 handling after an QFQ Exception. error_reporting($origErrorReporting); echo $html;