* @param \Doctrine\DBAL\Driver $driver * @param \Exception $driverEx * @param string $sql * @param array $params * * @return \Doctrine\DBAL\DBALException */ public static function driverExceptionDuringQuery(Driver $driver, \Exception $driverEx, $sql, array $params = array()) { $msg = "An exception occurred while executing '".$sql."'"; if ($params) { $msg .= " with params " . self::formatParameters($params); } $msg .= ":\n\n".$driverEx->getMessage(); if ($driver instanceof ExceptionConverterDriver && $driverEx instanceof DriverException) { return $driver->convertException($msg, $driverEx); } return new self($msg, 0, $driverEx); } /** * @param \Doctrine\DBAL\Driver $driver * @param \Exception $driverEx * * @return \Doctrine\DBAL\DBALException */ public static function driverException(Driver $driver, \Exception $driverEx) { $msg = "An exception occured in driver: " . $driverEx->getMessage(); if ($driver instanceof ExceptionConverterDriver && $driverEx instanceof DriverException) { return $driver->convertException($msg, $driverEx); } return new self($msg, 0, $driverEx); } /**
$logger = $this->_config->getSQLLogger(); if ($logger) { $logger->startQuery($args[0]); } try { switch (func_num_args()) { case 1: $statement = $this->_conn->query($args[0]); break; case 2: $statement = $this->_conn->query($args[0], $args[1]); break; default: $statement = call_user_func_array(array($this->_conn, 'query'), $args); break; } } catch (\Exception $ex) { throw DBALException::driverExceptionDuringQuery($this->_driver, $ex, $args[0]); } $statement->setFetchMode($this->defaultFetchMode); if ($logger) { $logger->stopQuery(); } return $statement; } /** * Executes an SQL INSERT/UPDATE/DELETE query with the given parameters * and returns the number of affected rows. * * This method supports PDO binding types as well as DBAL mapping types. * * @param string $query The SQL query. * @param array $params The query parameters. * @param array $types The parameter types.
*/ public function query() { $args = func_get_args(); $argsCount = count($args); try { if ($argsCount == 4) { return parent::query($args[0], $args[1], $args[2], $args[3]); } if ($argsCount == 3) { return parent::query($args[0], $args[1], $args[2]); } if ($argsCount == 2) { return parent::query($args[0], $args[1]); } return parent::query($args[0]); } catch (\PDOException $exception) { throw new PDOException($exception); } } /** * {@inheritdoc} */ public function quote($input, $type = \PDO::PARAM_STR) { return parent::quote($input, $type); } /** * {@inheritdoc} */ public function lastInsertId($name = null) { return parent::lastInsertId($name); }
*/ public function query() { $args = func_get_args(); $argsCount = count($args); try { if ($argsCount == 4) { return parent::query($args[0], $args[1], $args[2], $args[3]); } if ($argsCount == 3) { return parent::query($args[0], $args[1], $args[2]); } if ($argsCount == 2) { return parent::query($args[0], $args[1]); } return parent::query($args[0]); } catch (\PDOException $exception) { throw new PDOException($exception); } } /** * {@inheritdoc} */ public function quote($input, $type = \PDO::PARAM_STR) { return parent::quote($input, $type); } /** * {@inheritdoc} */ public function lastInsertId($name = null) { return parent::lastInsertId($name); }
* * @return \Doctrine\DBAL\Driver\Statement * * @throws \Doctrine\DBAL\DBALException */ public function query() { $this->connect(); $args = func_get_args(); $logger = $this->_config->getSQLLogger(); if ($logger) { $logger->startQuery($args[0]); } try { switch (func_num_args()) { case 1: $statement = $this->_conn->query($args[0]); break; case 2: $statement = $this->_conn->query($args[0], $args[1]); break; default: $statement = call_user_func_array(array($this->_conn, 'query'), $args); break; } } catch (\Exception $ex) { throw DBALException::driverExceptionDuringQuery($this->_driver, $ex, $args[0]); } $statement->setFetchMode($this->defaultFetchMode); if ($logger) { $logger->stopQuery(); } return $statement; }
public function Execute($q, $arguments = array()) { if ($q instanceof \Doctrine\DBAL\Statement) { return $q->execute($arguments); } else { if (!is_array($arguments)) { $arguments = array($arguments); // adodb backward compatibility } return $this->executeQuery($q, $arguments); } } public function query() { $args = func_get_args(); if (isset($args) && isset($args[1]) && (is_string($args[1]) || is_array($args[1]))) { return $this->executeQuery($args[0], $args[1]); } else { return call_user_func_array('parent::query', $args); } } /** * @deprecated * alias to old ADODB method */ public function GetRow($q, $arguments = array()) { if (!is_array($arguments)) { $arguments = array($arguments); // adodb backward compatibility } $r = $this->fetchAssoc($q, $arguments); if (!is_array($r)) { $r = array(); } return $r; }
public function Execute($q, $arguments = array()) { if ($q instanceof \Doctrine\DBAL\Statement) { return $q->execute($arguments); } else { if (!is_array($arguments)) { $arguments = array($arguments); // adodb backward compatibility } return $this->executeQuery($q, $arguments); } } public function query() { $args = func_get_args(); if (isset($args) && isset($args[1]) && (is_string($args[1]) || is_array($args[1]))) { return $this->executeQuery($args[0], $args[1]); } else { return call_user_func_array('parent::query', $args); } } /** * @deprecated * alias to old ADODB method */ public function GetRow($q, $arguments = array()) { if (!is_array($arguments)) { $arguments = array($arguments); // adodb backward compatibility } $r = $this->fetchAssoc($q, $arguments); if (!is_array($r)) { $r = array(); } return $r; }
return; } } } // increment all items in the nav array with a greater $currentLevel foreach ($this->navArray as $ni) { if ($ni->getLevel() + 1 < $currentLevel) { $ni->hasChildren = true; } } $db = Database::connection(); $navSort = $this->navSort; $sorted_array = $this->sorted_array; $navObjectNames = $this->navObjectNames; $q = "select Pages.cID from Pages where cIsTemplate = 0 and cIsActive = 1 and cParentID = '{$cParentID}' {$orderBy}"; $r = $db->query($q); if ($r) { while ($row = $r->fetchRow()) { if ($this->displaySubPages != 'relevant_breadcrumb' || (in_array( $row['cID'], $this->cParentIDArray) || $row['cID'] == $this->cID) ) { /* if ($this->haveRetrievedSelf) { // since we've already retrieved self, and we're going through again, we set plus 1 $this->haveRetrievedSelfPlus1 = true; } else */ if ($this->haveRetrievedSelf && $cParentID == $this->cID) { $this->haveRetrievedSelfPlus1 = true; } else { if ($row['cID'] == $this->cID) { $this->haveRetrievedSelf = true; } }
} else { if (($this->displaySubPages == "relevant" || $this->displaySubPages == "relevant_breadcrumb") && (in_array( $sortCID, $this->cParentIDArray) || $sortCID == $this->cID) ) { if ($this->displaySubPageLevels == "enough" && $this->haveRetrievedSelf == false) { $retrieveMore = true; } else { if ($this->displaySubPageLevels == "enough_plus1" && $this->haveRetrievedSelfPlus1 == false) { $retrieveMore = true; } else { if ($this->displaySubPageLevels == 'all' || ($this->displaySubPageLevels == 'custom' && $this->displaySubPageLevelsNum > $currentLevel)) { $retrieveMore = true; } } } } } if ($retrieveMore) { $this->getNavigationArray($sortCID, $orderBy, $currentLevel + 1); } #############end_recursive_crap } } } // End Joshua's Huge Sorting Crap } } protected function displayPage($tc) { $tcv = $tc->getVersionObject(); if ((!is_object($tcv)) || (!$tcv->isApproved() && !$this->displayUnapproved)) { return false; } if ($this->displayUnavailablePages == false) { $tcp = new Permissions($tc); if (!$tcp->canRead()) { return false;
} else { if (($this->displaySubPages == "relevant" || $this->displaySubPages == "relevant_breadcrumb") && (in_array( $sortCID, $this->cParentIDArray) || $sortCID == $this->cID) ) { if ($this->displaySubPageLevels == "enough" && $this->haveRetrievedSelf == false) { $retrieveMore = true; } else { if ($this->displaySubPageLevels == "enough_plus1" && $this->haveRetrievedSelfPlus1 == false) { $retrieveMore = true; } else { if ($this->displaySubPageLevels == 'all' || ($this->displaySubPageLevels == 'custom' && $this->displaySubPageLevelsNum > $currentLevel)) { $retrieveMore = true; } } } } } if ($retrieveMore) { $this->getNavigationArray($sortCID, $orderBy, $currentLevel + 1); } #############end_recursive_crap } } } // End Joshua's Huge Sorting Crap } } protected function displayPage($tc) { $tcv = $tc->getVersionObject(); if ((!is_object($tcv)) || (!$tcv->isApproved() && !$this->displayUnapproved)) { return false; } if ($this->displayUnavailablePages == false) { $tcp = new Permissions($tc); if (!$tcp->canRead()) { return false;
} else { $tc1 = Page::getByID($row['cID'], "ACTIVE"); } $tc1v = $tc1->getVersionObject(); if (!$tc1v->isApproved() && !$this->displayUnapproved) { $displayHeadPage = false; } } } if ($displayHeadPage) { $level++; } */ if ($this->displaySubPages == 'relevant' || $this->displaySubPages == 'relevant_breadcrumb') { $this->populateParentIDArray($this->cID); } $this->getNavigationArray($cParentID, $orderBy, $level); // if we're at the top level we add home to the beginning if ($cParentID == 1) { if ($this->displayUnapproved) { $tc1 = Page::getByID(HOME_CID, "RECENT"); } else { $tc1 = Page::getByID(HOME_CID, "ACTIVE"); } $niRow = array(); $niRow['cvName'] = $tc1->getCollectionName(); $niRow['cID'] = HOME_CID; $niRow['cvDescription'] = $tc1->getCollectionDescription(); $niRow['cPath'] = Core::make('helper/navigation')->getLinkToCollection($tc1); $ni = new NavItem($niRow, 0); $ni->setCollectionObject($tc1); array_unshift($this->navArray, $ni); }
$inspectC = $c; $selectedPathCIDs = array($inspectC->getCollectionID()); $parentCIDnotZero = true; while ($parentCIDnotZero) { $cParentID = $inspectC->getCollectionParentID(); if (!intval($cParentID)) { $parentCIDnotZero = false; } else { if ($cParentID != $this->homePageID) { $selectedPathCIDs[] = $cParentID; //Don't want home page in nav-path-selected } $inspectC = Page::getById($cParentID, 'ACTIVE'); } } $this->ignoreExcludeNav = $ignore_exclude_nav; //Retrieve the raw "pre-processed" list of all nav items (before any custom attributes are considered) $allNavItems = $this->generateNav(); //Remove excluded pages from the list (do this first because some of the data prep code needs to "look ahead" in the list) $includedNavItems = array(); $excluded_parent_level = 9999; //Arbitrarily high number denotes that we're NOT currently excluding a parent (because all actual page levels will be lower than this) $exclude_children_below_level = 9999; //Same deal as above. Note that in this case "below" means a HIGHER number (because a lower number indicates higher placement in the sitemp -- e.g. 0 is top-level) foreach ($allNavItems as $ni) { $_c = $ni->getCollectionObject(); $current_level = $ni->getLevel(); if ($this->excludeFromNavViaAttribute($_c) && ($current_level <= $excluded_parent_level)) { $excluded_parent_level = $current_level; $exclude_page = true; } else { if (($current_level > $excluded_parent_level) || ($current_level > $exclude_children_below_level)) { $exclude_page = true; } else { $excluded_parent_level = 9999; //Reset to arbitrarily high number to denote that we're no longer excluding a parent $exclude_children_below_level = $_c->getAttribute( 'exclude_subpages_from_nav') ? $current_level : 9999; $exclude_page = false;
<?php defined('C5_EXECUTE') or die("Access Denied."); ?> <?php View::getInstance()->requireAsset('javascript', 'jquery'); $navItems = $controller->getNavItems(); /** * The $navItems variable is an array of objects, each representing a nav menu item. * It is a "flattened" one-dimensional list of all nav items -- it is not hierarchical. * However, a nested nav menu can be constructed from this "flat" array by * looking at various properties of each item to determine its place in the hierarchy * (see below, for example $navItem->level, $navItem->subDepth, $navItem->hasSubmenu, etc.) * * Items in the array are ordered with the first top-level item first, followed by its sub-items, etc. * * Each nav item object contains the following information: * $navItem->url : URL to the page * $navItem->name : page title (already escaped for html output) * $navItem->target : link target (e.g. "_self" or "_blank") * $navItem->level : number of levels deep the current menu item is from the top (top-level nav items are 1, their sub-items are 2, etc.) * $navItem->subDepth : number of levels deep the current menu item is *compared to the next item in the list* (useful for determining how many <ul>'s to close in a nested list) * $navItem->hasSubmenu : true/false -- if this item has one or more sub-items (sometimes useful for CSS styling) * $navItem->isFirst : true/false -- if this is the first nav item *in its level* (for example, the first sub-item of a top-level item is TRUE) * $navItem->isLast : true/false -- if this is the last nav item *in its level* (for example, the last sub-item of a top-level item is TRUE) * $navItem->isCurrent : true/false -- if this nav item represents the page currently being viewed * $navItem->inPath : true/false -- if this nav item represents a parent page of the page currently being viewed (also true for the page currently being viewed) * $navItem->attrClass : Value of the 'nav_item_class' custom page attribute (if it exists and is set) * $navItem->isHome : true/false -- if this nav item represents the home page * $navItem->cID : collection id of the page this nav item represents * $navItem->cObj : collection object of the page this nav item represents (use this if you need to access page properties and attributes that aren't already available in the $navItem object) */ /** For extra functionality, you can add the following page attributes to your site (via Dashboard > Pages & Themes > Attributes): * * 1) Handle: exclude_nav * (This is the "Exclude From Nav" attribute that comes pre-installed with concrete5, so you do not need to add it yourself.) * Functionality: If a page has this checked, it will not be included in the nav menu (and neither will its children / sub-pages). * * 2) Handle: exclude_subpages_from_nav
break; } $this->viewPerformed = $view; } protected function onBeforeGetContents() { if (in_array($this->viewPerformed, array('scrapbook', 'view'))) { $this->controller->runAction('on_page_view', array($this)); $this->controller->outputAutoHeaderItems(); } } public function renderViewContents($scopeItems) { extract($scopeItems); if (!$this->outputContent) { ob_start(); include $this->template; $this->outputContent = ob_get_contents(); ob_end_clean(); } // The translatable texts in the block header/footer need to be printed // out in the system language. $loc = Localization::getInstance(); $loc->pushActiveContext(Localization::CONTEXT_UI); if ($this->blockViewHeaderFile) { include $this->blockViewHeaderFile; } $this->controller->registerViewAssets($this->outputContent); $this->onBeforeGetContents(); echo $this->outputContent; $this->onAfterGetContents(); if ($this->blockViewFooterFile) {
$helpers = $this->controller->getHelperObjects(); $return = array_merge($this->scopeItems, $sets, $helpers); } else { $return = $this->scopeItems; } $return['view'] = $this; $return['controller'] = $this->controller; return $return; } public function render($state = false) { if ($this instanceof View) { $this->setRequestInstance($this); } $this->start($state); $this->setupRender(); $this->startRender(); $scopeItems = $this->getScopeItems(); $contents = $this->renderViewContents($scopeItems); $contents = $this->postProcessViewContents($contents); $response = $this->finishRender($contents); if ($this instanceof View) { $this->revertRequestInstance(); } return $response; } public function renderViewContents($scopeItems) { if (file_exists($this->template)) { extract($scopeItems); ob_start(); $this->onBeforeGetContents(); include $this->template; $this->onAfterGetContents(); $contents = ob_get_contents(); ob_end_clean();
$loc = Localization::getInstance(); // now, we iterate through these block groups (which are actually arrays of block objects), and display them on the page $loc->pushActiveContext(Localization::CONTEXT_UI); if ($this->showControls && $c->isEditMode() && $ap->canViewAreaControls()) { View::element('block_area_header', array('a' => $this)); } else { View::element('block_area_header_view', array('a' => $this)); } $loc->popActiveContext(); foreach ($blocksToDisplay as $b) { $bv = new BlockView($b); $bv->setAreaObject($this); $p = new Permissions($b); if ($p->canViewBlock()) { if (!$c->isEditMode()) { echo $this->enclosingStart; } $bv->render('view'); if (!$c->isEditMode()) { echo $this->enclosingEnd; } } } $loc->pushActiveContext(Localization::CONTEXT_UI); if ($this->showControls && $c->isEditMode() && $ap->canViewAreaControls()) { View::element('block_area_footer', array('a' => $this)); } else { View::element('block_area_footer_view', array('a' => $this)); } $loc->popActiveContext(); } /** * Exports the area to content format. * * @param \SimpleXMLElement $p * @param Page $page
if (is_object($stack)) { $blocksTmp = $stack->getBlocks(STACKS_AREA_NAME); $globalArea = self::get($stack, STACKS_AREA_NAME); } $blocks = array(); foreach ($blocksTmp as $ab) { $ab->setBlockAreaObject($globalArea); $ab->setBlockActionCollectionID($stack->getCollectionID()); $blocks[] = $ab; } unset($blocksTmp); return $blocks; } public function display($c = false, $fake = null) { parent::display($c, null); } /** * Note that this function does not delete the global area's stack. * You probably want to call the "delete" method of the Stack model instead. * * @param string $arHandle */ public static function deleteByName($arHandle) { $db = Loader::db(); $db->Execute('select cID from Areas where arHandle = ? and arIsGlobal = 1', array($arHandle)); $db->Execute('delete from Areas where arHandle = ? and arIsGlobal = 1', array($arHandle)); } }
</div> <div class="col-lg-8 col-sm-8 col-xs-12 nopadding"> <div class="header-tag-line">Flexible Training Solutions<br><span class="second-tag-line">"If our course dates don't suit you; call us"</span></div> </div> </div> <div class="col-lg-7 col-sm-6 nopadding ipadfull pos-abs-ipad"> <div class="col-lg-9 nopadding pull-right ipadfull"> <div class="top-res-menu-button"><span>MENU</span><i></i></div> <div class="header-red-bar"> <a href="tel:1300977606" class="red-bar-phone"><i class="fa fa-phone" aria-hidden="true"></i> <span>1300 977 606</span></a> <a class="header-email" href="mailto:info@australiantraining.com.au"><i class="fa fa-envelope" aria-hidden="true"></i> <span>info@australiantraining.com.au</span></a> <a href="https://www.facebook.com/Australian-Training-Management-313778208782168/" target="_blank"><i class="fa fa-facebook" aria-hidden="true"></i></a> <a href="https://www.linkedin.com/company/australian-training-management-pty-ltd-rto-2431?trk=top_nav_home" target="_blank"><i class="fa fa-linkedin-square" aria-hidden="true"></i></a> <a id="jsLoginOpen" href="#login">LOGIN</a> </div> </div> <div class="col-xs-12 nopadding pull-right top-pos-nav"> <?php $a = new GlobalArea( 'Header Navigation' ); $a->display(); ?> </div> </div> </div> <!-- /row --> </section> <!--container-fluid--> <div id="header_overlay_wrapper"> <div id="header_overlay"> <a href="<?php echo View::url( '/courses/scheduled-training/course-schedule' ); ?>"> <h2 class="">Course Schedule</h2> <span class="red uppercase">Click here for upcoming course dates</span> </a> </div> </div><!--header_overlay_wrapper--> </div><!--header_wrapper--> </header>
$path = $env->getPath(DIRNAME_THEMES.'/'.$this->themeHandle.'/'.$file, $this->themePkgHandle); if (!file_exists($path)) { $path2 = $env->getPath(DIRNAME_THEMES.'/'.$this->themeHandle.'/'.$file, $this->viewPkgHandle); if (file_exists($path2)) { $path = $path2; } unset($path2); } $__data__['path'] = $path; unset($file); unset($args); unset($env); unset($path); if (!empty($__data__['scopedItems'])) { if (array_key_exists('__data__', $__data__['scopedItems'])) { throw new \Exception(t(/*i18n: %1$s is a variable name, %2$s is a function name*/'Illegal variable name \'%1$s\' in %2$s args.', '__data__', __CLASS__.'::'.__METHOD__)); } extract($__data__['scopedItems']); } include $__data__['path']; } /** * A shortcut to posting back to the current page with a task and optional parameters. Only works in the context of. * * @param string $action * @param string $task * * @return string $url */ public function action($action) { $a = func_get_args(); $controllerPath = $this->controller->getControllerActionPath(); array_unshift($a, $controllerPath); $ret = call_user_func_array([$this, 'url'], $a); return $ret; }
<?php /** * Created by PhpStorm. * User: Dexter */ defined( 'C5_EXECUTE' ) or die( "Access Denied." ); $this->inc( 'elements/header.php' ); ?> <main> <section> <div class="container"> <div class="row"> <div class="col-sm-12"> <div class="row page_blue_title_wrapper"> <div class="col-xs-12 col-sm-10 col-md-9 col-lg-7"> <h2>COURSES</h2> </div> </div> </div> </div> </div> <div class="container"> <div class="row"> <div class="col-lg-12"> <?php $a = new Area( 'Main' ); //$a->enableGridContainer(); $a->display( $c ); ?> </div> <div class="col-lg-12"> <?php if ( $c->getCollectionParentID() != 194 ) { $page = Page::getByID( $c->getCollectionParentID() ); $nh = Loader::helper( 'navigation' ); $URL = $nh->getCollectionURL( $page ); ?> <a style="background:#102d46;border:none;" href="<?php echo $URL ?>" class="btn btn-sm btn-back btn-info"> << Back</a> <?php } ?> </div> </div>
ob_end_clean(); return $innerContent; } /** * Render the file set to $this->template * @param $scopeItems * @return string */ protected function renderTemplate($scopeItems, $innerContent) { // Extract the items into the current scope extract($scopeItems); ob_start(); // Fire a `before` event $this->onBeforeGetContents(); include $this->template; // Fire an `after` event $this->onAfterGetContents(); $contents = ob_get_contents(); ob_end_clean(); return $contents; } public function finishRender($contents) { $event = new \Symfony\Component\EventDispatcher\GenericEvent(); $event->setArgument('view', $this); Events::dispatch('on_render_complete', $event); return $contents; } /** * Function responsible for outputting header items.
protected function onBeforeGetContents() { $event = new \Symfony\Component\EventDispatcher\GenericEvent(); $event->setArgument('view', $this); Events::dispatch('on_before_render', $event); $this->themeObject->registerAssets(); } public function renderViewContents($scopeItems) { $contents = ''; // Render the main view file if ($this->innerContentFile) { $contents = $this->renderInnerContents($scopeItems); } // Render the template around it if (file_exists($this->template)) { $contents = $this->renderTemplate($scopeItems, $contents); } return $contents; } /** * Render the file set to $this->innerContentFile * @param $scopeItems * @return string */ protected function renderInnerContents($scopeItems) { // Extract the items into the current scope extract($scopeItems); ob_start(); include $this->innerContentFile; $innerContent = ob_get_contents(); ob_end_clean();
$helpers = $this->controller->getHelperObjects(); $return = array_merge($this->scopeItems, $sets, $helpers); } else { $return = $this->scopeItems; } $return['view'] = $this; $return['controller'] = $this->controller; return $return; } public function render($state = false) { if ($this instanceof View) { $this->setRequestInstance($this); } $this->start($state); $this->setupRender(); $this->startRender(); $scopeItems = $this->getScopeItems(); $contents = $this->renderViewContents($scopeItems); $contents = $this->postProcessViewContents($contents); $response = $this->finishRender($contents); if ($this instanceof View) { $this->revertRequestInstance(); } return $response; } public function renderViewContents($scopeItems) { if (file_exists($this->template)) { extract($scopeItems); ob_start(); $this->onBeforeGetContents(); include $this->template; $this->onAfterGetContents(); $contents = ob_get_contents(); ob_end_clean();
$cnt = $this->app->make(PageForbidden::class); $this->controller($cnt, $code, $headers); } /** * {@inheritdoc} */ public function redirect($to, $code = Response::HTTP_MOVED_PERMANENTLY, $headers = []) { return RedirectResponse::create($to, $code, $headers); } /** * {@inheritdoc} */ public function view(View $view, $code = Response::HTTP_OK, $headers = []) { $this->localization->pushActiveContext(Localization::CONTEXT_SITE); $contents = $view->render(); return $this->create($contents, $code, $headers); } /** * {@inheritdoc} */ public function controller(Controller $controller, $code = Response::HTTP_OK, $headers = []) { $request = $this->request; if ($response = $controller->on_start()) { return $response; } if ($controller instanceof PageController) { if ($controller->isReplaced()) { return $this->controller($controller->getReplacement(), $code, $headers); } $controller->setupRequestActionAndParameters($request);
if ($response = $controller->runAction('view')) { return $response; } } $view = $controller->getViewObject(); // Mobile theme if ($this->config->get('concrete.misc.mobile_theme_id') > 0) { $md = $this->app->make(MobileDetect::class); if ($md->isMobile()) { $mobileTheme = Theme::getByID($this->app->config->get('concrete.misc.mobile_theme_id')); if ($mobileTheme instanceof Theme) { $view->setViewTheme($mobileTheme); $controller->setTheme($mobileTheme); } } } return $this->view($view, $code, $headers); } /** * {@inheritdoc} */ public function collection(Collection $collection, $code = Response::HTTP_OK, $headers = []) { if (!$this->app) { throw new \RuntimeException('Cannot resolve collections without a reference to the application'); } $request = $this->request; if ($collection->isError() && $collection->getError() == COLLECTION_NOT_FOUND) { if ($response = $this->collectionNotFound($collection, $request, $headers)) { return $response; } } if ($collection->getCollectionPath() != '/page_not_found') {
require DIR_BASE_CORE . '/bootstrap/process.php'; $u = new User(); // On page view event. $pe = new Event($collection); $pe->setUser($u); $pe->setRequest($request); $this->app['director']->dispatch('on_page_view', $pe); // Core menu items $item = new RelationListItem(); $menu = $this->app->make('helper/concrete/ui/menu'); $menu->addMenuItem($item); $controller = $collection->getPageController(); // we update the current page with the one bound to this controller. $collection->setController($controller); return $this->controller($controller); } private function collectionNotFound(Collection $collection, Request $request, array $headers) { // if we don't have a path and we're doing cID, then this automatically fires a 404. if (!$request->getPath() && $request->get('cID')) { return $this->notFound('', Response::HTTP_NOT_FOUND, $headers); } // let's test to see if this is, in fact, the home page, // and we're routing arguments onto it (which is screwing up the path.) $home = Page::getByID(HOME_CID); $request->setCurrentPage($home); $homeController = $home->getPageController(); $homeController->setupRequestActionAndParameters($request); $response = $homeController->validateRequest(); if ($response instanceof \Symfony\Component\HttpFoundation\Response) { return $response; } elseif ($response === true) {
protected $factory; /** * DispatcherRouteCallback constructor. * * @param $callback * @param $factory */ public function __construct($callback, ResponseFactoryInterface $factory) { parent::__construct($callback); $this->factory = $factory; } public function execute(Request $request, Route $route = null, $parameters = []) { // figure out where we need to go $c = Page::getFromRequest($request); return $this->factory->collection($c); } public static function getRouteAttributes($callback) { $callback = Core::make(self::class, [$callback]); return ['callback' => $callback]; } /** * @deprecated Use CollectionResponseFactory * * @param \Concrete\Core\View\View $view * @param int $code * * @return \Symfony\Component\HttpFoundation\Response */ protected function sendResponse(View $view, $code = 200) { return $this->factory->view($view, $code);
$context->fromRequest($request); $matcher = new UrlMatcher($collection, $context); $path = rtrim($request->getPathInfo(), '/') . '/'; $callDispatcher = false; try { $request->attributes->add($matcher->match($path)); $matched = $matcher->match($path); $route = $collection->get($matched['_route']); $this->router->setRequest($request); $response = $this->router->execute($route, $matched); } catch (ResourceNotFoundException $e) { $callDispatcher = true; } catch (MethodNotAllowedException $e) { $callDispatcher = true; } if ($callDispatcher) { $callback = $this->app->make(DispatcherRouteCallback::class, ['dispatcher']); $response = $callback->execute($request); } return $response; } }
/** * @param \Symfony\Component\HttpFoundation\Request $request * * @return SymfonyResponse */ public function dispatch(SymfonyRequest $request) { $path = rawurldecode($request->getPathInfo()); if (substr($path, 0, 3) == '../' || substr($path, -3) == '/..' || strpos($path, '/../') || substr($path, 0, 3) == '..\\' || substr($path, -3) == '\\..' || strpos($path, '\\..\\')) { throw new \RuntimeException(t('Invalid path traversal. Please make this request with a valid HTTP client.')); } $response = null; if ($this->app->isInstalled()) { $response = $this->getEarlyDispatchResponse(); } if ($response === null) { $response = $this->handleDispatch($request); } return $response; } private function getEarlyDispatchResponse() { $session = $this->app['session']; if (!$session->has('uID')) { User::verifyAuthTypeCookie(); } // User may have been logged in, so lets check status again. if ($session->has('uID') && $session->get('uID') > 0 && $response = $this->validateUser()) { return $response; } } private function validateUser()
private $dispatcher; /** * DispatcherFrame constructor. * @param \Concrete\Core\Http\DispatcherInterface $dispatcher */ public function __construct(DispatcherInterface $dispatcher) { $this->dispatcher = $dispatcher; } /** * Dispatch the next available middleware and return the response. * * @param Request $request * @return Response */ public function next(Request $request) { return $this->dispatcher->dispatch($request); } }
* @var \Doctrine\ORM\EntityManagerInterface */ private $entityManager; /** * @var Connection */ private $connection; /** * Process the request and return a response. * * @param \Symfony\Component\HttpFoundation\Request $request * @param DelegateInterface $frame * * @return \Symfony\Component\HttpFoundation\Response */ public function process(Request $request, DelegateInterface $frame) { $response = $frame->next($request); if ($this->app->isInstalled()) { if ($response->getStatusCode() == 200) { /* @var Connection $database */ try { $database = $this->getConnection(); } catch (\InvalidArgumentException $e) { // Don't die here if there's no available database connection $database = null; } if ($database) { try { $paths = $database->executeQuery('SELECT * FROM FileImageThumbnailPaths WHERE isBuilt=0 LIMIT 5'); if ($paths->rowCount()) { $this->generateThumbnails($paths, $database); } } catch (InvalidFieldNameException $e) { // Ignore this, user probably needs to run an upgrade. }
/** * @var \Concrete\Core\Http\Middleware\DelegateInterface */ private $nextDelegate; public function __construct(MiddlewareInterface $middleware, DelegateInterface $nextDelegate) { $this->middleware = $middleware; $this->nextDelegate = $nextDelegate; } /** * Dispatch the next available middleware and return the response. * * @param Request $request * @return Response */ public function next(Request $request) { return $this->middleware->process($request, $this->nextDelegate); } }
private $config; /** * @var \Concrete\Core\Utility\Service\Validation\Strings */ private $stringValidator; public function __construct(Repository $config, Strings $stringValidator) { $this->config = $config; $this->stringValidator = $stringValidator; } /** * @param \Concrete\Core\Http\Middleware\DelegateInterface $frame * @return Response */ public function process(Request $request, DelegateInterface $frame) { $response = $frame->next($request); if ($response->headers->has('X-Frame-Options') === false) { $x_frame_options = $this->config->get('concrete.security.misc.x_frame_options'); if ($this->stringValidator->notempty($x_frame_options)) { $response->headers->set('X-Frame-Options', $x_frame_options); } } return $response; } }
/** * @var \Concrete\Core\Http\Middleware\DelegateInterface */ private $nextDelegate; public function __construct(MiddlewareInterface $middleware, DelegateInterface $nextDelegate) { $this->middleware = $middleware; $this->nextDelegate = $nextDelegate; } /** * Dispatch the next available middleware and return the response. * * @param Request $request * @return Response */ public function next(Request $request) { return $this->middleware->process($request, $this->nextDelegate); } }
*/ private $cookies; public function __construct(CookieJar $cookies) { $this->cookies = $cookies; } /** * Add or remove cookies from the * @param Request $request * @param \Concrete\Core\Http\Middleware\DelegateInterface $frame * @return Response */ public function process(Request $request, DelegateInterface $frame) { $this->cookies->setRequest($request); /** @var Response $response */ $response = $frame->next($request); $cleared = $this->cookies->getClearedCookies(); foreach ($cleared as $cookie) { $response->headers->clearCookie($cookie, DIR_REL . '/'); } $cookies = $this->cookies->getCookies(); foreach ($cookies as $cookie) { $response->headers->setCookie($cookie, DIR_REL . '/'); } return $response; } }
/** * @var \Concrete\Core\Http\Middleware\DelegateInterface */ private $nextDelegate; public function __construct(MiddlewareInterface $middleware, DelegateInterface $nextDelegate) { $this->middleware = $middleware; $this->nextDelegate = $nextDelegate; } /** * Dispatch the next available middleware and return the response. * * @param Request $request * @return Response */ public function next(Request $request) { return $this->middleware->process($request, $this->nextDelegate); } }
* Middleware for applying state changes to the application * @package Concrete\Core\Http\Middleware */ class ApplicationMiddleware implements MiddlewareInterface, ApplicationAwareInterface { use ApplicationAwareTrait; /** * Apply the request instance to the request singleton * @param \Symfony\Component\HttpFoundation\Request $request * @param \Concrete\Core\Http\Middleware\DelegateInterface $frame * @return \Symfony\Component\HttpFoundation\Response */ public function process(Request $request, DelegateInterface $frame) { \Concrete\Core\Http\Request::setInstance($request); $this->app->instance('Concrete\Core\Http\Request', $request); return $frame->next($request); } }
/** * @var \Concrete\Core\Http\Middleware\DelegateInterface */ private $nextDelegate; public function __construct(MiddlewareInterface $middleware, DelegateInterface $nextDelegate) { $this->middleware = $middleware; $this->nextDelegate = $nextDelegate; } /** * Dispatch the next available middleware and return the response. * * @param Request $request * @return Response */ public function next(Request $request) { return $this->middleware->process($request, $this->nextDelegate); } }
public function withoutMiddleware(MiddlewareInterface $middleware) { $stack = clone $this; $stack->middleware = array_map(function($priorityGroup) use ($middleware) { return array_map(function($stackMiddleware) use ($middleware) { return $middleware === $stackMiddleware ? null : $stackMiddleware; }, $priorityGroup); }, $stack->middleware); return $stack; } /** * @inheritdoc */ public function process(Request $request) { $stack = $this->getStack(); return $stack->next($request); } /** * Reduce middleware into a stack of functions that each call the next * @return callable */ private function getStack() { $processed = []; foreach ($this->middlewareGenerator() as $middleware) { $processed[] = $middleware; } $middleware = array_reverse($processed); $stack = array_reduce($middleware, $this->getZipper(), $this->dispatcher); return $stack; }
*/ public function removeMiddleware(MiddlewareInterface $middleware) { $this->stack = $this->stack->withoutMiddleware($middleware); return $this; } /** * Take a request and pass it through middleware, then return the response * @param SymfonyRequest $request * @return SymfonyResponse */ public function handleRequest(SymfonyRequest $request) { $stack = $this->stack; if ($stack instanceof MiddlewareStack) { $stack = $stack->withDispatcher($this->app->make(DispatcherDelegate::class, [$this->dispatcher])); } return $stack->process($request); } }
'registerLegacyRoutes', // Register legacy config values 'registerLegacyConfigValues', // Handle loading permission keys 'handlePermissionKeys', // Handle eventing 'handleEventing', ]); } else { $this->initializeSystemTimezone(); } // Create the request to use $request = $this->createRequest(); if (!$response) { $response = $this->server->handleRequest($request); } // Prepare and return the response return $response->prepare($request); } /** * Define the base url if not defined * This will define `BASE_URL` to whatever is resolved from the resolver. * * @deprecated In a future major version this will be part of HTTP middleware * * @return Response|void Returns a response if an error occurs */ protected function initializeLegacyURLDefinitions() { if (!defined('BASE_URL')) { $resolver = $this->getUrlResolver(); try {
$this->status = self::STATUS_ACTIVE; } } /** * Begin the runtime. */ public function run() { switch ($this->status) { case self::STATUS_ENDED: // We've already ended, lets just return return; case self::STATUS_INACTIVE: throw new \RuntimeException('Runtime has not yet booted.'); } $runner = $this->getRunner(); $response = $runner->run(); if ($response) { $this->sendResponse($response); } return $response; } /** * The method that handles properly sending a response. * * @param \Symfony\Component\HttpFoundation\Response $response */ protected function sendResponse(Response $response) { $response->send(); // Set the status to ended $this->status = self::STATUS_ENDED; }
* Include all autoloaders. * ---------------------------------------------------------------------------- */ require $__DIR__ . '/bootstrap/autoload.php'; /* * ---------------------------------------------------------------------------- * Begin concrete5 startup. * ---------------------------------------------------------------------------- */ /** @var \Concrete\Core\Application\Application $cms */ $cms = require $__DIR__ . '/bootstrap/start.php'; /* * ---------------------------------------------------------------------------- * Run the runtime. * ---------------------------------------------------------------------------- */ $runtime = $cms->getRuntime(); if ($response = $runtime->run()) { /* * ------------------------------------------------------------------------ * Shut it down. * ------------------------------------------------------------------------ */ $cms->shutdown(); } else { return $cms; }
defined('DIR_CONFIG_SITE') or define('DIR_CONFIG_SITE', DIR_APPLICATION . '/config'); /** * ---------------------------------------------------------------------------- * Now that we've had the opportunity to load our config file, we know if we * have a DIRNAME_CORE_UPDATED constant, which lives in that file, and which * points to another core. If we have this constant, we exit this file * immeditely and proceed into the updated core. * ---------------------------------------------------------------------------- */ $update_file = DIR_CONFIG_SITE . '/update.php'; $updates = array(); if (file_exists($update_file)) { $updates = (array) include $update_file; } if (!defined('APP_UPDATED_PASSTHRU') && isset($updates['core'])) { define('APP_UPDATED_PASSTHRU', true); if (is_dir(DIR_BASE . '/' . DIRNAME_UPDATES . '/' . $updates['core'])) { require(DIR_BASE . '/' . DIRNAME_UPDATES . '/' . $updates['core'] . '/' . DIRNAME_CORE . '/' . 'dispatcher.php'); } else if(file_exists(DIRNAME_UPDATES . '/' . $updates['core'] . '/' . DIRNAME_CORE . '/' . 'dispatcher.php')){ require(DIRNAME_UPDATES . '/' . $updates['core'] . '/' . DIRNAME_CORE . '/' . 'dispatcher.php'); } else { die(sprintf('Invalid "%s" defined. Please remove it from %s.','update.core', $update_file)); } exit; } /** * ---------------------------------------------------------------------------- * ## If we're still here, we're proceeding through this concrete directory, * and it's time to load the rest of our hard-coded configuration options – * the one we don't need a database to tell us about. * * Namespacing and Autoloading * ---------------------------------------------------------------------------- */ define('NAMESPACE_SEGMENT_VENDOR', 'Concrete');
<?php /** * ---------------------------------------------------------------------------- * Set our own version of __DIR__ as $__DIR__ so we can include this file on PHP < 5.3 and have it not * die wholesale. * ---------------------------------------------------------------------------- */ $__DIR__ = dirname(__FILE__); /** * ---------------------------------------------------------------------------- * Set required constants, including directory names, attempt to include site configuration file with database * information, attempt to determine if we ought to skip to an updated core, etc... * ---------------------------------------------------------------------------- */ require $__DIR__ . '/bootstrap/configure.php'; /** * ---------------------------------------------------------------------------- * Include all autoloaders * ---------------------------------------------------------------------------- */ require $__DIR__ . '/bootstrap/autoload.php'; /** * ---------------------------------------------------------------------------- * Begin concrete5 startup. * ---------------------------------------------------------------------------- */ $cms = require $__DIR__ . '/bootstrap/start.php'; if (!$cms->isRunThroughCommandLineInterface()) {
<?php require('api/intercept-urls.php'); require('concrete/dispatcher.php');
Key | Value |
Version | 8.2.1 |
Installed Version | 8.2.1 |
Key | Value |
concrete.version | 8.2.1 |
concrete.version_installed | 8.2.1 |
concrete.version_db | 20170802000000 |
concrete.installed | true |
concrete.locale | en_US |
concrete.charset | UTF-8 |
concrete.maintenance_mode | false |
concrete.debug.display_errors | true |
concrete.debug.detail | debug |
concrete.proxy.host | null |
concrete.proxy.port | null |
concrete.proxy.user | null |
concrete.proxy.password | null |
concrete.upload.extensions | *.flv;*.jpg;*.gif;*.jpeg;*.ico;*.docx;*.xla;*.png;*.psd;*.swf;*.doc;*.txt;*.xls;*.xlsx;*.csv;*.pdf;*.tiff;*.rtf;*.m4a;*.mov;*.wmv;*.mpeg;*.mpg;*.wav;*.3gp;*.avi;*.m4v;*.mp4;*.mp3;*.qt;*.ppt;*.pptx;*.kml;*.xml;*.svg;*.webm;*.ogg;*.ogv |
concrete.interface.panel.page_relations | false |
concrete.mail.method | PHP_MAIL |
concrete.mail.methods.smtp.server | |
concrete.mail.methods.smtp.port | |
concrete.mail.methods.smtp.username | |
concrete.mail.methods.smtp.password | |
concrete.mail.methods.smtp.encryption | |
concrete.mail.methods.smtp.messages_per_connection | null |
concrete.cache.enabled | true |
concrete.cache.lifetime | 21600 |
concrete.cache.overrides | false |
concrete.cache.blocks | false |
concrete.cache.assets | true |
concrete.cache.theme_css | true |
concrete.cache.pages | 0 |
concrete.cache.doctrine_dev_mode | false |
concrete.cache.full_page_lifetime | default |
concrete.cache.full_page_lifetime_value | null |
concrete.cache.full_contents_assets_hash | false |
concrete.cache.directory | /home/atmetrai/public_html/australiantraining.com.au/application/files/cache |
concrete.cache.directory_relative | null |
concrete.cache.page.directory | /home/atmetrai/public_html/australiantraining.com.au/application/files/cache/pages |
concrete.cache.page.adapter | file |
concrete.cache.levels.overrides.drivers.core_ephemeral.class | \Stash\Driver\Ephemeral |
concrete.cache.levels.overrides.drivers.core_filesystem.class | Concrete\Core\Cache\Driver\FileSystemStashDriver |
concrete.cache.levels.overrides.drivers.core_filesystem.options.path | /home/atmetrai/public_html/australiantraining.com.au/application/files/cache |
concrete.cache.levels.overrides.drivers.core_filesystem.options.dirPermissions | 493 |
concrete.cache.levels.overrides.drivers.core_filesystem.options.filePermissions | 420 |
concrete.cache.levels.expensive.drivers.core_ephemeral.class | \Stash\Driver\Ephemeral |
concrete.cache.levels.expensive.drivers.core_filesystem.class | Concrete\Core\Cache\Driver\FileSystemStashDriver |
concrete.cache.levels.expensive.drivers.core_filesystem.options.path | /home/atmetrai/public_html/australiantraining.com.au/application/files/cache |
concrete.cache.levels.expensive.drivers.core_filesystem.options.dirPermissions | 493 |
concrete.cache.levels.expensive.drivers.core_filesystem.options.filePermissions | 420 |
concrete.cache.levels.object.drivers.core_ephemeral.class | \Stash\Driver\Ephemeral |
concrete.cache.clear.thumbnails | true |
concrete.design.enable_custom | true |
concrete.design.enable_layouts | true |
concrete.log.emails | true |
concrete.log.errors | true |
concrete.log.spam | false |
concrete.log.queries.log | false |
concrete.log.queries.clear_on_reload | false |
concrete.jobs.enable_scheduling | true |
concrete.filesystem.temp_directory | null |
concrete.filesystem.permissions.file | 420 |
concrete.filesystem.permissions.directory | 493 |
concrete.email.enabled | true |
concrete.email.default.address | concrete5-noreply@concrete5 |
concrete.email.default.name | |
concrete.email.form_block.address | false |
concrete.email.forgot_password.address | null |
concrete.email.forgot_password.name | null |
concrete.email.validate_registration.address | null |
concrete.email.validate_registration.name | null |
concrete.marketplace.enabled | true |
concrete.marketplace.request_timeout | 30 |
concrete.marketplace.token | null |
concrete.marketplace.site_token | null |
concrete.marketplace.intelligent_search | true |
concrete.marketplace.log_requests | false |
concrete.external.intelligent_search_help | true |
concrete.external.news_overlay | false |
concrete.external.news | true |
concrete.misc.user_timezones | false |
concrete.misc.package_backup_directory | /home/atmetrai/public_html/australiantraining.com.au/application/files/trash |
concrete.misc.enable_progressive_page_reindex | true |
concrete.misc.mobile_theme_id | 0 |
concrete.misc.sitemap_approve_immediately | true |
concrete.misc.enable_translate_locale_en_us | false |
concrete.misc.page_search_index_lifetime | 259200 |
concrete.misc.enable_trash_can | true |
concrete.misc.app_version_display_in_header | true |
concrete.misc.default_jpeg_image_compression | 80 |
concrete.misc.default_png_image_compression | 9 |
concrete.misc.default_thumbnail_format | auto |
concrete.misc.basic_thumbnailer_generation_strategy | now |
concrete.misc.help_overlay | true |
concrete.misc.require_version_comments | false |
concrete.misc.access_entity_updated | 1539131939 |
concrete.misc.latest_version | 8.2.1 |
concrete.misc.do_page_reindex_check | false |
concrete.misc.login_redirect | DESKTOP |
concrete.theme.compress_preprocessor_output | true |
concrete.theme.generate_less_sourcemap | false |
concrete.updates.enable_auto_update_packages | false |
concrete.updates.enable_permissions_protection | true |
concrete.updates.check_threshold | 172800 |
concrete.updates.services.get_available_updates | http://www.concrete5.org/tools/update_core |
concrete.updates.services.inspect_update | http://www.concrete5.org/tools/inspect_update |
concrete.paths.trash | /!trash |
concrete.paths.drafts | /!drafts |
concrete.icons.page_template.width | 120 |
concrete.icons.page_template.height | 90 |
concrete.icons.theme_thumbnail.width | 120 |
concrete.icons.theme_thumbnail.height | 90 |
concrete.icons.file_manager_listing.handle | file_manager_listing |
concrete.icons.file_manager_listing.width | 60 |
concrete.icons.file_manager_listing.height | 60 |
concrete.icons.file_manager_detail.handle | file_manager_detail |
concrete.icons.file_manager_detail.width | 400 |
concrete.icons.user_avatar.width | 80 |
concrete.icons.user_avatar.height | 80 |
concrete.icons.user_avatar.default | /updates/concrete5-8.2.1_remote_updater/concrete/images/avatar_none.png |
concrete.file_manager.images.use_exif_data_to_rotate_images | false |
concrete.file_manager.images.manipulation_library | gd |
concrete.file_manager.results | 10 |
concrete.search_users.results | 10 |
concrete.sitemap_xml.file | sitemap.xml |
concrete.sitemap_xml.frequency | weekly |
concrete.sitemap_xml.priority | 0.5 |
concrete.accessibility.toolbar_titles | false |
concrete.accessibility.toolbar_large_font | false |
concrete.accessibility.display_help_system | true |
concrete.accessibility.toolbar_tooltips | true |
concrete.i18n.choose_language_login | false |
concrete.i18n.community_translation.entry_point | http://translate.concrete5.org/api |
concrete.i18n.community_translation.api_token | |
concrete.i18n.community_translation.progress_limit | 60 |
concrete.i18n.community_translation.cache_lifetime | 3600 |
concrete.i18n.community_translation.package_url | https://translate.concrete5.org/translate/package |
concrete.urls.concrete5 | http://www.concrete5.org |
concrete.urls.concrete5_secure | https://www.concrete5.org |
concrete.urls.newsflow | http://newsflow.concrete5.org |
concrete.urls.background_feed | //backgroundimages.concrete5.org/wallpaper |
concrete.urls.background_feed_secure | https://backgroundimages.concrete5.org/wallpaper |
concrete.urls.background_info | http://backgroundimages.concrete5.org/get_image_data.php |
concrete.urls.videos | https://www.youtube.com/user/concrete5cms/videos |
concrete.urls.help.developer | http://documentation.concrete5.org/developers |
concrete.urls.help.user | http://documentation.concrete5.org/editors |
concrete.urls.help.forum | http://www.concrete5.org/community/forums |
concrete.urls.paths.menu_help_service | /tools/get_remote_help_list/ |
concrete.urls.paths.site_page | /private/sites |
concrete.urls.paths.newsflow_slot_content | /tools/slot_content/ |
concrete.urls.paths.marketplace.connect | /marketplace/connect |
concrete.urls.paths.marketplace.connect_success | /marketplace/connect/-/connected |
concrete.urls.paths.marketplace.connect_validate | /marketplace/connect/-/validate |
concrete.urls.paths.marketplace.connect_new_token | /marketplace/connect/-/generate_token |
concrete.urls.paths.marketplace.checkout | /cart/-/add/ |
concrete.urls.paths.marketplace.purchases | /marketplace/connect/-/get_available_licenses |
concrete.urls.paths.marketplace.item_information | /marketplace/connect/-/get_item_information |
concrete.urls.paths.marketplace.item_free_license | /marketplace/connect/-/enable_free_license |
concrete.urls.paths.marketplace.remote_item_list | /marketplace/ |
concrete.white_label.logo | false |
concrete.white_label.name | false |
concrete.white_label.background_image | null |
concrete.session.name | CONCRETE5 |
concrete.session.handler | file |
concrete.session.save_path | null |
concrete.session.max_lifetime | 7200 |
concrete.session.cookie.cookie_path | false |
concrete.session.cookie.cookie_lifetime | 0 |
concrete.session.cookie.cookie_domain | false |
concrete.session.cookie.cookie_secure | false |
concrete.session.cookie.cookie_httponly | true |
concrete.user.registration.enabled | false |
concrete.user.registration.type | disabled |
concrete.user.registration.captcha | true |
concrete.user.registration.email_registration | false |
concrete.user.registration.display_username_field | true |
concrete.user.registration.validate_email | false |
concrete.user.registration.approval | false |
concrete.user.registration.notification | false |
concrete.user.group.badge.default_point_value | 50 |
concrete.user.username.maximum | 64 |
concrete.user.username.minimum | 3 |
concrete.user.username.allow_spaces | false |
concrete.user.password.maximum | 128 |
concrete.user.password.minimum | 5 |
concrete.user.password.hash_portable | false |
concrete.user.password.hash_cost_log2 | 12 |
concrete.user.password.legacy_salt | |
concrete.user.private_messages.throttle_max | 20 |
concrete.user.private_messages.throttle_max_timespan | 15 |
concrete.spam.whitelist_group | 0 |
concrete.spam.notify_email | |
concrete.security.session.invalidate_on_user_agent_mismatch | true |
concrete.security.session.invalidate_on_ip_mismatch | true |
concrete.security.ban.ip.enabled | true |
concrete.security.ban.ip.attempts | 5 |
concrete.security.ban.ip.time | 300 |
concrete.security.ban.ip.length | 10 |
concrete.security.misc.x_frame_options | SAMEORIGIN |
concrete.permissions.forward_to_login | true |
concrete.permissions.model | simple |
concrete.seo.tracking.code | |
concrete.seo.tracking.code_position | top |
concrete.seo.exclude_words | a, an, as, at, before, but, by, for, from, is, in, into, like, of, off, on, onto, per, since, than, the, this, that, to, up, via, with |
concrete.seo.url_rewriting | true |
concrete.seo.url_rewriting_all | false |
concrete.seo.redirect_to_canonical_url | 0 |
concrete.seo.canonical_url | |
concrete.seo.canonical_url_alternative | null |
concrete.seo.trailing_slash | false |
concrete.seo.title_format | %2$s :: %1$s |
concrete.seo.title_segment_separator | :: |
concrete.seo.page_path_separator | - |
concrete.seo.group_name_separator | / |
concrete.seo.segment_max_length | 128 |
concrete.seo.paging_string | ccm_paging_p |
concrete.seo.canonical_ssl_url | |
concrete.statistics.track_downloads | true |
concrete.limits.sitemap_pages | 100 |
concrete.limits.delete_pages | 100 |
concrete.limits.copy_pages | 10 |
concrete.limits.page_search_index_batch | 200 |
concrete.limits.job_queue_batch | 10 |
concrete.limits.style_customizer.size_min | -50 |
concrete.limits.style_customizer.size_max | 200 |
concrete.page.search.always_reindex | false |
concrete.site | ATM |
concrete.version_db_installed | 20170802000000 |
concrete.maintenance.version_job_page_num | 407 |
Key | Value |
_sf2_attributes | Array ( [uGroups] => Array ( [1] => 1 ) [accessEntities] => Array ( [0] => Concrete\Core\Permission\Access\Entity\GroupEntity Object ( [group:protected] => Concrete\Core\User\Group\Group Object ( [ctID] => [permissionSet] => [permissions:Concrete\Core\User\Group\Group:private] => Array ( ) [error] => [gID] => 1 [gName] => Guest [gDescription] => The guest group represents unregistered visitors to your site. [gUserExpirationIsEnabled] => 0 [gUserExpirationMethod] => [gUserExpirationSetDateTime] => [gUserExpirationInterval] => 0 [gUserExpirationAction] => [gIsBadge] => 0 [gBadgeFID] => 0 [gBadgeDescription] => [gBadgeCommunityPointValue] => 0 [gIsAutomated] => 0 [gCheckAutomationOnRegister] => 0 [gCheckAutomationOnLogin] => 0 [gCheckAutomationOnJobRun] => 0 [gPath] => /Guest [pkgID] => 0 ) [error] => [petID] => 1 [peID] => 3 [petHandle] => group [label] => Guest ) ) [accessEntitiesUpdated] => 1710837542 ) |
_sf2_flashes | Array ( ) |
_sf2_meta | Array ( [u] => 1710837541 [c] => 1710837541 [l] => 0 ) |
Key | Value |
CONTEXT_DOCUMENT_ROOT | /home/atmetrai/public_html/australiantraining.com.au |
CONTEXT_PREFIX | |
DOCUMENT_ROOT | /home/atmetrai/public_html/australiantraining.com.au |
GATEWAY_INTERFACE | CGI/1.1 |
HTTPS | on |
HTTP_ACCEPT | */* |
HTTP_HOST | www.australiantraining.com.au |
HTTP_USER_AGENT | claudebot |
HTTP_X_HTTPS | 1 |
PATH | /bin:/usr/bin |
PHP_INI_SCAN_DIR | /opt/cpanel/ea-php56/root/etc:/opt/cpanel/ea-php56/root/etc/php.d:. |
QUERY_STRING | |
REDIRECT_HTTPS | on |
REDIRECT_SCRIPT_URI | https://www.australiantraining.com.au/courses/high-risk-work/rigging-basic-level |
REDIRECT_SCRIPT_URL | /courses/high-risk-work/rigging-basic-level |
REDIRECT_SSL_TLS_SNI | www.australiantraining.com.au |
REDIRECT_STATUS | 200 |
REDIRECT_UNIQUE_ID | ZflPJMj4v5d8aydB6HFHzQAAAA0 |
REDIRECT_URL | /courses/high-risk-work/rigging-basic-level |
REMOTE_ADDR | 34.236.152.203 |
REMOTE_PORT | 53008 |
REQUEST_METHOD | GET |
REQUEST_SCHEME | https |
REQUEST_URI | /courses/high-risk-work/rigging-basic-level |
SCRIPT_FILENAME | /home/atmetrai/public_html/australiantraining.com.au/index.php |
SCRIPT_NAME | /index.php |
SCRIPT_URI | https://www.australiantraining.com.au/courses/high-risk-work/rigging-basic-level |
SCRIPT_URL | /courses/high-risk-work/rigging-basic-level |
SERVER_ADDR | 45.32.189.162 |
SERVER_ADMIN | webmaster@australiantraining.atmetraining.com |
SERVER_NAME | www.australiantraining.com.au |
SERVER_PORT | 443 |
SERVER_PROTOCOL | HTTP/1.1 |
SERVER_SIGNATURE | |
SERVER_SOFTWARE | Apache |
SSL_TLS_SNI | www.australiantraining.com.au |
TZ | Australia/Hobart |
UNIQUE_ID | ZflPJMj4v5d8aydB6HFHzQAAAA0 |
PHP_SELF | /index.php |
REQUEST_TIME_FLOAT | 1710837541.01 |
REQUEST_TIME | 1710837541 |
argv | Array ( ) |
argc | 0 |
Key | Value |
CONTEXT_DOCUMENT_ROOT | /home/atmetrai/public_html/australiantraining.com.au |
CONTEXT_PREFIX | |
DOCUMENT_ROOT | /home/atmetrai/public_html/australiantraining.com.au |
GATEWAY_INTERFACE | CGI/1.1 |
HTTPS | on |
HTTP_ACCEPT | */* |
HTTP_HOST | www.australiantraining.com.au |
HTTP_USER_AGENT | claudebot |
HTTP_X_HTTPS | 1 |
PATH | /bin:/usr/bin |
PHP_INI_SCAN_DIR | /opt/cpanel/ea-php56/root/etc:/opt/cpanel/ea-php56/root/etc/php.d:. |
QUERY_STRING | |
REDIRECT_HTTPS | on |
REDIRECT_SCRIPT_URI | https://www.australiantraining.com.au/courses/high-risk-work/rigging-basic-level |
REDIRECT_SCRIPT_URL | /courses/high-risk-work/rigging-basic-level |
REDIRECT_SSL_TLS_SNI | www.australiantraining.com.au |
REDIRECT_STATUS | 200 |
REDIRECT_UNIQUE_ID | ZflPJMj4v5d8aydB6HFHzQAAAA0 |
REDIRECT_URL | /courses/high-risk-work/rigging-basic-level |
REMOTE_ADDR | 34.236.152.203 |
REMOTE_PORT | 53008 |
REQUEST_METHOD | GET |
REQUEST_SCHEME | https |
REQUEST_URI | /courses/high-risk-work/rigging-basic-level |
SCRIPT_FILENAME | /home/atmetrai/public_html/australiantraining.com.au/index.php |
SCRIPT_NAME | /index.php |
SCRIPT_URI | https://www.australiantraining.com.au/courses/high-risk-work/rigging-basic-level |
SCRIPT_URL | /courses/high-risk-work/rigging-basic-level |
SERVER_ADDR | 45.32.189.162 |
SERVER_ADMIN | webmaster@australiantraining.atmetraining.com |
SERVER_NAME | www.australiantraining.com.au |
SERVER_PORT | 443 |
SERVER_PROTOCOL | HTTP/1.1 |
SERVER_SIGNATURE | |
SERVER_SOFTWARE | Apache |
SSL_TLS_SNI | www.australiantraining.com.au |
TZ | Australia/Hobart |
UNIQUE_ID | ZflPJMj4v5d8aydB6HFHzQAAAA0 |