case '1146': return new Exception\TableNotFoundException($message, $exception); case '1216': case '1217': case '1451': case '1452': case '1701': return new Exception\ForeignKeyConstraintViolationException($message, $exception); case '1062': case '1557': case '1569': case '1586': return new Exception\UniqueConstraintViolationException($message, $exception); case '1054': case '1166': case '1611': return new Exception\InvalidFieldNameException($message, $exception); case '1052': case '1060': case '1110': return new Exception\NonUniqueFieldNameException($message, $exception); case '1064': case '1149': case '1287': case '1341': case '1342': case '1343': case '1344': case '1382': case '1479': case '1541': case '1554': case '1626': return new Exception\SyntaxErrorException($message, $exception);
} /** * @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);
if ($logger) { $logger->startQuery($query, $params, $types); } try { if ($params) { list($query, $params, $types) = SQLParserUtils::expandListParameters($query, $params, $types); $stmt = $this->_conn->prepare($query); if ($types) { $this->_bindTypedValues($stmt, $params, $types); $stmt->execute(); } else { $stmt->execute($params); } } else { $stmt = $this->_conn->query($query); } } catch (\Exception $ex) { throw DBALException::driverExceptionDuringQuery($this->_driver, $ex, $query, $this->resolveParams($params, $types)); } $stmt->setFetchMode($this->defaultFetchMode); if ($logger) { $logger->stopQuery(); } return $stmt; } /** * Executes a caching query. * * @param string $query The SQL query to execute. * @param array $params The parameters to bind to the query, if any. * @param array $types The types the previous parameters are in. * @param \Doctrine\DBAL\Cache\QueryCacheProfile $qcp The query cache profile. * * @return \Doctrine\DBAL\Driver\ResultStatement
public function closeCursor() { try { return parent::closeCursor(); } catch (\PDOException $exception) { // Exceptions not allowed by the interface. // In case driver implementations do not adhere to the interface, silence exceptions here. return true; } } /** * {@inheritdoc} */ public function execute($params = null) { try { return parent::execute($params); } catch (\PDOException $exception) { throw new PDOException($exception); } } /** * {@inheritdoc} */ public function fetch($fetchMode = null, $cursorOrientation = null, $cursorOffset = null) { try { if ($fetchMode === null && $cursorOrientation === null && $cursorOffset === null) { return parent::fetch(); } if ($cursorOrientation === null && $cursorOffset === null) { return parent::fetch($fetchMode); } if ($cursorOffset === null) { return parent::fetch($fetchMode, $cursorOrientation); }
* {@inheritdoc} */ public function closeCursor() { try { return parent::closeCursor(); } catch (\PDOException $exception) { // Exceptions not allowed by the interface. // In case driver implementations do not adhere to the interface, silence exceptions here. return true; } } /** * {@inheritdoc} */ public function execute($params = null) { try { return parent::execute($params); } catch (\PDOException $exception) { throw new PDOException($exception); } } /** * {@inheritdoc} */ public function fetch($fetchMode = null, $cursorOrientation = null, $cursorOffset = null) { try { if ($fetchMode === null && $cursorOrientation === null && $cursorOffset === null) { return parent::fetch(); } if ($cursorOrientation === null && $cursorOffset === null) { return parent::fetch($fetchMode); } if ($cursorOffset === null) {
* {@inheritdoc} */ public function closeCursor() { try { return parent::closeCursor(); } catch (\PDOException $exception) { // Exceptions not allowed by the interface. // In case driver implementations do not adhere to the interface, silence exceptions here. return true; } } /** * {@inheritdoc} */ public function execute($params = null) { try { return parent::execute($params); } catch (\PDOException $exception) { throw new PDOException($exception); } } /** * {@inheritdoc} */ public function fetch($fetchMode = null, $cursorOrientation = null, $cursorOffset = null) { try { if ($fetchMode === null && $cursorOrientation === null && $cursorOffset === null) { return parent::fetch(); } if ($cursorOrientation === null && $cursorOffset === null) { return parent::fetch($fetchMode); } if ($cursorOffset === null) {
{ if ($qcp !== null) { return $this->executeCacheQuery($query, $params, $types, $qcp); } $this->connect(); $logger = $this->_config->getSQLLogger(); if ($logger) { $logger->startQuery($query, $params, $types); } try { if ($params) { list($query, $params, $types) = SQLParserUtils::expandListParameters($query, $params, $types); $stmt = $this->_conn->prepare($query); if ($types) { $this->_bindTypedValues($stmt, $params, $types); $stmt->execute(); } else { $stmt->execute($params); } } else { $stmt = $this->_conn->query($query); } } catch (\Exception $ex) { throw DBALException::driverExceptionDuringQuery($this->_driver, $ex, $query, $this->resolveParams($params, $types)); } $stmt->setFetchMode($this->defaultFetchMode); if ($logger) { $logger->stopQuery(); } return $stmt; } /**
} /** * {@inheritdoc} */ public function getOwningTable($fieldName) { return $this->class->getTableName(); } /** * {@inheritdoc} */ public function load(array $criteria, $entity = null, $assoc = null, array $hints = array(), $lockMode = null, $limit = null, array $orderBy = null) { $this->switchPersisterContext(null, $limit); $sql = $this->getSelectSQL($criteria, $assoc, $lockMode, $limit, null, $orderBy); list($params, $types) = $this->expandParameters($criteria); $stmt = $this->conn->executeQuery($sql, $params, $types); if ($entity !== null) { $hints[Query::HINT_REFRESH] = true; $hints[Query::HINT_REFRESH_ENTITY] = $entity; } $hydrator = $this->em->newHydrator($this->currentPersisterContext->selectJoinSql ? Query::HYDRATE_OBJECT : Query::HYDRATE_SIMPLEOBJECT); $entities = $hydrator->hydrateAll($stmt, $this->currentPersisterContext->rsm, $hints); return $entities ? $entities[0] : null; } /** * {@inheritdoc} */ public function loadById(array $identifier, $entity = null) { return $this->load($identifier, $entity); }
list($params, $types) = $this->expandParameters($criteria); $stmt = $this->conn->executeQuery($sql, $params, $types); if ($entity !== null) { $hints[Query::HINT_REFRESH] = true; $hints[Query::HINT_REFRESH_ENTITY] = $entity; } $hydrator = $this->em->newHydrator($this->currentPersisterContext->selectJoinSql ? Query::HYDRATE_OBJECT : Query::HYDRATE_SIMPLEOBJECT); $entities = $hydrator->hydrateAll($stmt, $this->currentPersisterContext->rsm, $hints); return $entities ? $entities[0] : null; } /** * {@inheritdoc} */ public function loadById(array $identifier, $entity = null) { return $this->load($identifier, $entity); } /** * {@inheritdoc} */ public function loadOneToOneEntity(array $assoc, $sourceEntity, array $identifier = array()) { if (($foundEntity = $this->em->getUnitOfWork()->tryGetById($identifier, $assoc['targetEntity'])) != false) { return $foundEntity; } $targetClass = $this->em->getClassMetadata($assoc['targetEntity']); if ($assoc['isOwningSide']) { $isInverseSingleValued = $assoc['inversedBy'] && ! $targetClass->isCollectionValuedAssociation($assoc['inversedBy']); // Mark inverse side as fetched in the hints, otherwise the UoW would // try to load it in a separate query (remember: to-one inverse sides can not be lazy). $hints = array();
throw OptimisticLockException::notVersioned($class->name); } $entity = $persister->load($sortedId); $unitOfWork->lock($entity, $lockMode, $lockVersion); return $entity; case LockMode::NONE === $lockMode: case LockMode::PESSIMISTIC_READ === $lockMode: case LockMode::PESSIMISTIC_WRITE === $lockMode: if ( ! $this->getConnection()->isTransactionActive()) { throw TransactionRequiredException::transactionRequired(); } return $persister->load($sortedId, null, null, array(), $lockMode); default: return $persister->loadById($sortedId); } } /** * {@inheritDoc} */ public function getReference($entityName, $id) { $class = $this->metadataFactory->getMetadataFor(ltrim($entityName, '\\')); if ( ! is_array($id)) { $id = array($class->identifier[0] => $id); } $sortedId = array(); foreach ($class->identifier as $identifier) { if ( ! isset($id[$identifier])) { throw ORMException::missingIdentifierField($class->name, $identifier); }
class Controller extends AttributeTypeController { public $helpers = ['form']; protected $searchIndexFieldDefinition = [ 'type' => 'integer', 'options' => [ 'default' => 0, 'notnull' => false, ] ]; protected function retrieveAttributeKeySettings() { return $this->entityManager->find(MetaDevodaSeoSettings::class, $this->attributeKey); } public function getAttributeValueObject() { return $this->entityManager->find(MetaDevodaSeoValue::class, $this->attributeValue->getGenericValue()); } public function createAttributeValue($data) { if ($data instanceof MetaDevodaSeoValue) { return $data; } extract($data); $av = new MetaDevodaSeoValue(); $metaRobots = ['robots_noodp', 'robots_noimageindex', 'robots_noarchive', 'robots_nosnippet', 'robots_notranslate']; $textInputs = [ 'open_graph_title', 'open_graph_description', // Open Graph 'twitter_title', 'twitter_description', // Twitter 'google_plus_title', 'google_plus_description', // Google+ ]; $imageInputs = ['open_graph_image', 'google_plus_image', 'twitter_image']; $metaRobotsAdvancedType = isset($data['robots_advanced_type']) && in_array($data['robots_advanced_type'], [0, 1]) ? $data['robots_advanced_type'] : 0; $av->setRobotsAdvancedType($metaRobotsAdvancedType); if ($metaRobotsAdvancedType == 1) { foreach ($metaRobots as $metaRobot) {
return $controller; } public function __destruct() { unset($this->attribute_key); } /** * @return \Concrete\Core\Entity\Attribute\Value\Value\Value */ final public function getValueObject() { if (isset($this->attribute_value)) { return $this->attribute_value; } if ($this->generic_value) { return $this->getController()->getAttributeValueObject(); } } public function getValue($mode = false) { if (!is_object($this->generic_value) && !isset($this->attribute_value)) { return null; } $value = $this->getValueObject(); // legacy if ($mode == 'displaySanitized' || $mode == 'display') { return $this->getDisplayValue(); } $controller = $this->getController(); if (method_exists($controller, 'getValue')) { // allow the controller to determine the value response. This is useful for attributes that use built in data types // like number but want to return special objects (e.g. a page object, an event object)
* @return \Concrete\Core\Entity\Attribute\Value\Value\Value */ final public function getValueObject() { if (isset($this->attribute_value)) { return $this->attribute_value; } if ($this->generic_value) { return $this->getController()->getAttributeValueObject(); } } public function getValue($mode = false) { if (!is_object($this->generic_value) && !isset($this->attribute_value)) { return null; } $value = $this->getValueObject(); // legacy if ($mode == 'displaySanitized' || $mode == 'display') { return $this->getDisplayValue(); } $controller = $this->getController(); if (method_exists($controller, 'getValue')) { // allow the controller to determine the value response. This is useful for attributes that use built in data types // like number but want to return special objects (e.g. a page object, an event object) return $controller->getValue(); } // Otherwise, we get the default "value" response for the attribute value type, which could be text, could be true/false, could be a // file object. if (is_object($value)) { return $value->getValue(); } }
trait ObjectTrait { /** * @return CategoryInterface */ abstract public function getObjectAttributeCategory(); /** * @param $ak * @param bool $createIfNotExists * * @return AttributeValue */ abstract public function getAttributeValueObject($ak, $createIfNotExists = false); public function getAttribute($ak, $mode = false) { $value = $this->getAttributeValueObject($ak); if (is_object($value)) { return $value->getValue($mode); } } /** * @param $ak * @return \Concrete\Core\Entity\Attribute\Value\Value */ public function getAttributeValue($ak) { $value = $this->getAttributeValueObject($ak); if (is_object($value)) { return $value; } } /** * @param AttributeKeyInterface | string $ak */ public function clearAttribute($ak) {
* @param string|false $displayMode makes The format of the attribute value * * @return mixed|null * * @example When you need the raw attribute value or object, use this: * <code> * $c = Page::getCurrentPage(); * $attributeValue = $c->getAttribute('attribute_handle'); * </code> * @example If you need the formatted output supported by some attribute, use this: * <code> * $c = Page::getCurrentPage(); * $attributeValue = $c->getAttribute('attribute_handle', 'display'); * </code> * @example An attribute type like "date" will then return the date in the correct format just like other attributes will show you a nicely formatted output and not just a simple value or object. */ public function getAttribute($akHandle, $displayMode = false) { if (is_object($this->vObj)) { return $this->vObj->getAttribute($akHandle, $displayMode); } } /** * Return the attribute value object with the handle $akHandle of the currently loaded version (if it's loaded). * * @param string|\Concrete\Core\Attribute\Key\CollectionKey $akHandle the attribute key (or its handle) * @param bool $createIfNotExists * * @return \Concrete\Core\Entity\Attribute\Value\PageValue|null */ public function getAttributeValueObject($akHandle, $createIfNotExists = false) { if (is_object($this->vObj)) { return $this->vObj->getAttributeValueObject($akHandle, $createIfNotExists); } } /** * Delete the values of the attributes associated to the currently loaded collection version.
if (($userID = $c->getCollectionUserID()) && ($userInfo = UserInfo::getByID($userID))) { $accountProfileLinks = $userInfo->getAttribute('account_profile_links'); if(is_object($accountProfileLinks) && method_exists($accountProfileLinks, 'getSelectedLinks')){ $links = $accountProfileLinks->getSelectedLinks(); foreach($links as $link){ $userProfileLinks[$link->getService()] = trim((string)$link->getAttributeValue()); } } } self::$pageUserProfileLinks[$cID] = $userProfileLinks; } // Check to see if we actually have a [xxx] link set in our profile links return isset(self::$pageUserProfileLinks[$cID][$type]) && trim(self::$pageUserProfileLinks[$cID][$type]) != '' ? self::$pageUserProfileLinks[$cID][$type] : false; } protected static function getPageSEO(Page $c) { $cID = $c->getCollectionID(); if (!isset(self::$pageSEO[$cID])) { self::$pageSEO[$cID] = $c->getAttribute('meta_devoda_seo'); } return self::$pageSEO[$cID]; } public static function getSocialMeta($pageTitle = null) { if ($pageTitle == null) { if (($c = self::getCurrentPage()) && !$c->isError()) { $pageTitle = (string)$c->getAttribute('meta_title'); if (!$pageTitle) { $pageTitle = $c->getCollectionName(); if ($c->isSystemPage()) { $pageTitle = t($pageTitle); } } } } $metaTags = array(); $th = Core::make('helper/text'); if (DevodaSeoConfig::get('social.twitter_card')) {
} $followPageValue = (string)$c->getAttribute('meta_robots_follow'); switch ($followPageValue) { case 'follow': // We should leave the follow on true break; case 'nofollow': // The page attribute value is leading, we can stop the checks $follow = false; break; case 'default': default: $pageTypeHandle = $c->getPageTypeHandle(); // page type value equals 'nofollow' OR if page type value is not set (or empty), we will take a look at the general setting if (($pageTypeHandle && ($indexPageTypeValue = DevodaSeoConfig::get('meta.pt_' . $pageTypeHandle . '_robots_follow')) && $indexPageTypeValue == 'nofollow') || ((!$pageTypeHandle || !$indexPageTypeValue || ($indexPageTypeValue && trim($indexPageTypeValue) == '')) && (($indexGeneralValue = DevodaSeoConfig::get('meta.robots_follow')) && $indexGeneralValue == 'nofollow'))) { $follow = false; } break; } $pageSEO = self::getPageSEO($c); if ($pageSEO && $pageSEO->getRobotsAdvancedType() == 1) { if ($pageSEO->getRobotsNoodp() == 1) { $advanced[] = 'noodp'; } if ($pageSEO->getRobotsNoimageindex() == 1) { $advanced[] = 'noimageindex'; } if ($pageSEO->getRobotsNoarchive() == 1) { $advanced[] = 'noarchive'; } if ($pageSEO->getRobotsNosnippet() == 1) { $advanced[] = 'nosnippet'; } if ($pageSEO->getRobotsNotranslate() == 1) { $advanced[] = 'notranslate'; } } else { if (DevodaSeoConfig::get('meta.robots_noodp')) { $advanced[] = 'noodp'; }
); } public function on_start() { Events::addListener('on_header_required_ready', function ($event) { /* @var $event \Symfony\Component\EventDispatcher\GenericEvent */ $defaultPageTitle = $event->hasArgument('defaultPageTitle') ? $event->getArgument('defaultPageTitle') : null; $metaTags = $event->hasArgument('metaTags') ? $event->getArgument('metaTags') : array(); if (($viewPort = DevodaSeoConfig::get('meta.viewport')) && trim($viewPort) != '') { $metaTags['viewport'] = DevodaSeo::getMetaTag('viewport', $viewPort); } if (isset($metaTags['generator']) && DevodaSeoConfig::get('meta.app_hidden_in_header')) { unset($metaTags['generator']); } // If meta keywords are set, but we don't want to use them, unset them if (isset($metaTags['keywords']) && !DevodaSeoConfig::get('meta.use_meta_keywords')) { unset($metaTags['keywords']); } $robots = DevodaSeo::getRobots(); // Robots could have already been set if (isset($metaTags['robots'])) { if (trim($robots) != '') { $metaTags['robots'] = $robots; } else { // unset them if we don't have robots according to this Add-On unset($metaTags['robots']); } } elseif (trim($robots) != '') { $metaTags['robots'] = $robots; } // Social media specific meta data like og:locale and twitter:card etc., but keep the CLEAN page title (instead of parsed with separator and maybe other stuff) if ($social = DevodaSeo::getSocialMeta($defaultPageTitle)) { $metaTags['social'] = $social; } // Homepage specific tags if ($beforeRenderHomepage = DevodaSeo::onBeforeRenderHomepage()) { $metaTags = $metaTags + $beforeRenderHomepage; } // Grab the alternative href languages
} } /** * Triggers the listeners of an event. * * This method can be overridden to add functionality that is executed * for each listener. * * @param callable[] $listeners The event listeners * @param string $eventName The name of the event to dispatch * @param Event $event The event object to pass to the event handlers/listeners */ protected function doDispatch($listeners, $eventName, Event $event) { foreach ($listeners as $listener) { if ($event->isPropagationStopped()) { break; } \call_user_func($listener, $event, $eventName, $this); } } /** * Sorts the internal list of listeners for the given event by priority. * * @param string $eventName The name of the event */ private function sortListeners($eventName) { krsort($this->listeners[$eventName]); $this->sorted[$eventName] = []; foreach ($this->listeners[$eventName] as $priority => $listeners) { foreach ($listeners as $k => $listener) { if (\is_array($listener) && isset($listener[0]) && $listener[0] instanceof \Closure) { $listener[0] = $listener[0](); $this->listeners[$eventName][$priority][$k] = $listener; } $this->sorted[$eventName][] = $listener;
* @author Jordi Boggiano <j.boggiano@seld.be> * @author Jordan Alliot <jordan.alliot@gmail.com> * @author Nicolas Grekas <p@tchwork.com> */ class EventDispatcher implements EventDispatcherInterface { private $listeners = []; private $sorted = []; /** * {@inheritdoc} */ public function dispatch($eventName, Event $event = null) { if (null === $event) { $event = new Event(); } if ($listeners = $this->getListeners($eventName)) { $this->doDispatch($listeners, $eventName, $event); } return $event; } /** * {@inheritdoc} */ public function getListeners($eventName = null) { if (null !== $eventName) { if (empty($this->listeners[$eventName])) { return []; } if (!isset($this->sorted[$eventName])) { $this->sortListeners($eventName); } return $this->sorted[$eventName];
$relatedID = $ms->getTranslatedPageID($c); if ($relatedID) { $relatedPage = Page::getByID($relatedID); if ($relatedPage && !$relatedPage->isError()) { $url = $urlManager->resolve([$relatedPage]); $alternateHreflangTags[] = '<link rel="alternate" hreflang="'.str_replace('_', '-', $ms->getLocale()).'" href="'.$url.'" />'; } } } } } // Generate and dispatch an event, to let other Add-Ons make use of the available (meta) tags/page title $event = new GenericEvent(); $event->setArgument('metaTags', $metaTags); $event->setArgument('linkTags', $linkTags); $event->setArgument('pageTitle', $pageTitle); $event->setArgument('defaultPageTitle', $defaultPageTitle); $event->setArgument('alternateHreflangTags', $alternateHreflangTags); $app->make('director')->dispatch('on_header_required_ready', $event); $metaTags = $event->getArgument('metaTags'); $linkTags = $event->getArgument('linkTags'); $pageTitle = $event->getArgument('pageTitle'); $alternateHreflangTags = $event->getArgument('alternateHreflangTags'); ?> <title><?php echo htmlspecialchars($pageTitle, ENT_COMPAT, APP_CHARSET); ?></title> <?php echo implode(PHP_EOL, $metaTags).PHP_EOL; if (!empty($linkTags)) { echo implode(PHP_EOL, $linkTags).PHP_EOL; } if (!empty($alternateHreflangTags)) { echo implode(PHP_EOL, $alternateHreflangTags).PHP_EOL; } ?> <script type="text/javascript"> var CCM_DISPATCHER_FILENAME = "<?php echo DIR_REL . '/' . DISPATCHER_FILENAME; ?>"; var CCM_CID = <?php echo $cID ? $cID : 0; ?>;
$_fs = $_app->make(Filesystem::class); $_locator = new FileLocator($_fs, $_app); if (isset($_theme) && is_object($_theme)) { $_locator->addLocation(new FileLocator\ThemeElementLocation($_theme)); } if ($_pkgHandle) { $_locator->addPackageLocation($_pkgHandle); } $_record = $_locator->getRecord(DIRNAME_ELEMENTS . '/' . $_file . '.php'); $_file = $_record->getFile(); unset($_record); unset($_app); unset($_fs); unset($_locator); unset($_theme); include $_file; } }
} public static function helper($service, $pkgHandle = false) { $app = Facade::getFacadeApplication(); if ($pkgHandle !== false) { return $app->make('/packages/' . $pkgHandle . '/helper/' . $service); } else { return $app->make('helper/' . $service); } } public static function packageElement($file, $pkgHandle, $args = null) { self::element($file, $args, $pkgHandle); } public static function element($_file, $args = null, $_pkgHandle = null) { return View::element($_file, $args, $_pkgHandle); } public static function model($model, $pkgHandle = false) { return false; } public static function library($library, $pkgHandle = false) { return false; } public static function controller($item) { if ($item instanceof \Page) { return $item->getController(); } $controller = '\\Concrete\\Controller\\' . camelcase($item); $app = Facade::getFacadeApplication();
<?php defined('C5_EXECUTE') or die("Access Denied."); ?> <!DOCTYPE html> <html lang="<?php echo Localization::activeLanguage()?>"> <head> <meta http-equiv="X-UA-Compatible" content="IE=Edge"/> <meta name="viewport" content="width=device-width, initial-scale=1"> <?php Loader::element('header_required'); ?> <!-- BOOTSTRAP --> <link href="<?php echo $view->getThemePath()?>/css/bootstrap.css" rel="stylesheet"> <?php echo $html->css($view->getStylesheet('main.less'))?> </head>
$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 defined('C5_EXECUTE') or die("Access Denied."); $this->inc('elements/header_top.php'); $collectiontype = $c->getPageTemplateObject(); if (is_object($collectiontype)) { $collectiontype = $collectiontype->getPageTemplateHandle(); } ?> <body id="preload" <?php if ($c->isEditMode()) { echo "class='editmode'"; }?>> <?php if($collectiontype != "home" && $collectiontype != "home_intro"){echo "<div style='display:none'>";}?> <?php $ios_fallback = $c->getAttribute('ios_fallback'); $ios_fallback ? ($ios_fallback = $ios_fallback->getVersion()->getRelativePath()) : $ios_fallback; $page_bg = $c->getAttribute('page_bg'); $page_bg ? ($page_ext = $page_bg->getVersion()->getExtension()) : $page_bg; $page_bg ? ($page_bg = $page_bg->getVersion()->getRelativePath()) : $page_bg; if($page_ext == "mp4" || $page_ext == "webm" || $page_ext == "mov"){ ?> <div class="fullwidth-video"> <video autoplay poster="<?php echo $page_bg ?>" id="bgvid" loop style="object-fit: cover;"> <source src="<?php echo $page_bg ?>" type="video/<?php echo $page_ext; ?>"> </video> </div> <div id="fallbackios" class="backgroundimage" style="display:none; background: url('<?php echo ($ios_fallback ? $ios_fallback : ""); ?>') no-repeat center center fixed; -webkit-background-size: cover; -moz-background-size: cover; -o-background-size: cover; background-size: cover;background-attachment: scroll"> </div> <?php }else{ ?> <div class="backgroundimage" style="background: url('<?php echo ($page_bg ? $page_bg : ""); ?>') no-repeat center center fixed; -webkit-background-size: cover; -moz-background-size: cover;
$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 defined('C5_EXECUTE') or die("Access Denied."); $this->inc('elements/header.php'); ?> <div id="innerwrapper"> <div class="container"> <div class="row"> <div class="col-md-12"> <?php Loader::element('system_errors', array('error' => $error)); print $innerContent; ?> </div> </div> </div> </div> <?php $this->inc('elements/footer.php'); ?>
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();
<?php namespace Concrete\Controller\SinglePage; use Concrete\Core\Http\Response; use Concrete\Core\Page\Controller\PageController; use Events; class PageNotFound extends PageController { public function validateRequest() { return true; } public function view() { $view = $this->getViewObject(); $contents = $view->render(); Events::dispatch('on_page_not_found'); return new Response($contents, 404); } public function __call($method, $arguments) { if (method_exists($this, $method)) { return call_user_func_array(array($this, $method), $arguments); } return $this->view(); } }
public function runTask($action, $parameters) { $this->runAction($action, $parameters); } /** * Perform an action of this controller (if shouldRunControllerTask returns true). * * @param string $action the action to be performed * @param array $parameters the action parameters * * @return mixed in case the action is executed, you'll receive the result of the action, or NULL otherwise */ public function runAction($action, $parameters = []) { $this->action = $action; $this->parameters = $parameters; if (is_callable([$this, $action])) { if ($this->shouldRunControllerTask()) { return call_user_func_array([$this, $action], $parameters); } } } /** * Get the whole $_REQUEST array or a specific requested value. * * @param string|null $key set to null to get the whole $_REQUEST array, or a string to get a specific value in $_GET or in $_POST * * @return mixed */ public function request($key = null) { return Request::request($key); } }
public function runTask($action, $parameters) { $this->runAction($action, $parameters); } /** * Perform an action of this controller (if shouldRunControllerTask returns true). * * @param string $action the action to be performed * @param array $parameters the action parameters * * @return mixed in case the action is executed, you'll receive the result of the action, or NULL otherwise */ public function runAction($action, $parameters = []) { $this->action = $action; $this->parameters = $parameters; if (is_callable([$this, $action])) { if ($this->shouldRunControllerTask()) { return call_user_func_array([$this, $action], $parameters); } } } /** * Get the whole $_REQUEST array or a specific requested value. * * @param string|null $key set to null to get the whole $_REQUEST array, or a string to get a specific value in $_GET or in $_POST * * @return mixed */ public function request($key = null) { return Request::request($key); } }
if ($controller instanceof PageController) { if ($controller->isReplaced()) { return $this->controller($controller->getReplacement(), $code, $headers); } $controller->setupRequestActionAndParameters($request); $response = $controller->validateRequest(); // If validaterequest returned a response if ($response instanceof \Symfony\Component\HttpFoundation\Response) { return $response; } else { // If validateRequest did not return true if ($response == false) { return $this->notFound('', Response::HTTP_NOT_FOUND, $headers); } } $requestTask = $controller->getRequestAction(); $requestParameters = $controller->getRequestActionParameters(); $response = $controller->runAction($requestTask, $requestParameters); if ($response instanceof \Symfony\Component\HttpFoundation\Response) { return $response; } if ($controller->isReplaced()) { return $this->controller($controller->getReplacement(), $code, $headers); } } else { 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) {
{ if ($this->app->make(Ajax::class)->isAjaxRequest($this->request)) { $this->localization->pushActiveContext(Localization::CONTEXT_SITE); $responseData = [ 'error' => t('Page not found'), 'errors' => [t('Page not found')], ]; $this->localization->popActiveContext(); return $this->json($responseData, $code, $headers); } $item = '/page_not_found'; $c = Page::getByPath($item); if (is_object($c) && !$c->isError()) { // Display not found $this->request->setCurrentPage($c); return $this->controller($c->getPageController(), $code, $headers); } $cnt = $this->app->make(PageForbidden::class); return $this->controller($cnt, $code, $headers); } /** * {@inheritdoc} */ public function error($content, $code = Response::HTTP_INTERNAL_SERVER_ERROR, $headers = []) { return $this->create($content, $code, $headers); } /** * {@inheritdoc} */ public function forbidden($requestUrl, $code = Response::HTTP_FORBIDDEN, $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(Page::getHomePageID()); $request->setCurrentPage($home); $homeController = $home->getPageController(); $homeController->setupRequestActionAndParameters($request); $response = $homeController->validateRequest(); if ($response instanceof \Symfony\Component\HttpFoundation\Response) { return $response; } elseif ($response === true) { return $this->controller($homeController); } else { return $this->notFound('', Response::HTTP_NOT_FOUND, $headers); } } }
return $this->view($view, $code, $headers); } finally { $this->localization->popActiveContext(); } } /** * {@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') { if (!isset($collection->cPathFetchIsCanonical) || !$collection->cPathFetchIsCanonical) { // Handle redirect URL (additional page paths) /** @var Url $url */ $url = $this->app->make('url/manager')->resolve([$collection]); $query = $url->getQuery(); $query->modify($request->getQueryString()); $url = $url->setQuery($query); return $this->redirect($url, Response::HTTP_MOVED_PERMANENTLY, $headers); } } // maintenance mode if ($collection->getCollectionPath() != '/login') {
new DispatcherDelegate($dispatcher) ); $stack->setApplication($this->app); foreach($route->getMiddlewares() as $middleware) { if (is_string($middleware->getMiddleware())) { $inflatedMiddleware = $this->app->make($middleware->getMiddleware()); } else { $inflatedMiddleware = $middleware->getMiddleware(); } $stack = $stack->withMiddleware( $inflatedMiddleware, $middleware->getPriority() ); } return $stack->process($request); } catch (ResourceNotFoundException $e) { } catch (MethodNotAllowedException $e) { } $c = \Page::getFromRequest($request); $response = $this->app->make(ResponseFactoryInterface::class)->collection($c); return $response; } /** * @param \Symfony\Component\Routing\RouteCollection $routes * @param string $path * * @return \Symfony\Component\Routing\RouteCollection */ private function filterRouteCollectionForPath(RouteCollection $routes, $path) { $result = new RouteCollection(); foreach ($routes->getResources() as $resource) { $result->addResource($resource); } foreach ($routes->all() as $name => $route) { $routePath = $route->getPath(); $p = strpos($routePath, '{'); $skip = false;
/** * @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() { $validator = $this->app->make(SessionValidator::class); if ($validator->hasActiveSession()) { $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 $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 \Concrete\Core\Config\Repository\Repository */ private $config; public function __construct(Repository $config) { $this->config = $config; } /** * 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 ($response && $this->app->isInstalled() && $this->config->get('concrete.misc.basic_thumbnailer_generation_strategy') == 'now') { $responseStatusCode = (int) $response->getStatusCode(); if ($responseStatusCode === 200 || $responseStatusCode === 404) { $database = $this->tryGetConnection(); if ($database !== null) { if ($responseStatusCode === 404) { $searchThumbnailPath = $request->getRequestUri(); } else { $searchThumbnailPath = null; } $thumbnail = $this->getThumbnailToGenerate($database, $searchThumbnailPath); if ($thumbnail !== null) { $this->markThumbnailAsBuilt($database, $thumbnail); if ($this->generateThumbnail($thumbnail)) { if ($this->couldBeTheRequestedThumbnail($thumbnail, $searchThumbnailPath)) { $response = $this->buildRedirectToThumbnailResponse($request); } } }
public function __construct( MiddlewareInterface $middleware, DelegateInterface $nextDelegate, HttpFoundationFactory $foundationFactory ) { $this->middleware = $middleware; $this->nextDelegate = $nextDelegate; $this->foundationFactory = $foundationFactory; } /** * Dispatch the next available middleware and return the response. * * @param Request $request * @return Response */ public function next(Request $request) { $response = $this->middleware->process($request, $this->nextDelegate); // Negotiate PSR7 responses if ($response instanceof ResponseInterface) { return $this->foundationFactory->createResponse($response); } return $response; } }
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; } }
public function __construct( MiddlewareInterface $middleware, DelegateInterface $nextDelegate, HttpFoundationFactory $foundationFactory ) { $this->middleware = $middleware; $this->nextDelegate = $nextDelegate; $this->foundationFactory = $foundationFactory; } /** * Dispatch the next available middleware and return the response. * * @param Request $request * @return Response */ public function next(Request $request) { $response = $this->middleware->process($request, $this->nextDelegate); // Negotiate PSR7 responses if ($response instanceof ResponseInterface) { return $this->foundationFactory->createResponse($response); } return $response; } }
* @var \Concrete\Core\Cookie\ResponseCookieJar */ private $responseCookieJar; /** * @param \Concrete\Core\Cookie\ResponseCookieJar $responseCookieJar */ public function __construct(ResponseCookieJar $responseCookieJar) { $this->responseCookieJar = $responseCookieJar; } /** * {@inheritdoc} * * @see \Concrete\Core\Http\Middleware\MiddlewareInterface::process() */ public function process(Request $request, DelegateInterface $frame) { $response = $frame->next($request); $cleared = $this->responseCookieJar->getClearedCookies(); foreach ($cleared as $cookie) { $response->headers->clearCookie($cookie, DIR_REL . '/'); } $cookies = $this->responseCookieJar->getCookies(); foreach ($cookies as $cookie) { $response->headers->setCookie($cookie); } return $response; } }
public function __construct( MiddlewareInterface $middleware, DelegateInterface $nextDelegate, HttpFoundationFactory $foundationFactory ) { $this->middleware = $middleware; $this->nextDelegate = $nextDelegate; $this->foundationFactory = $foundationFactory; } /** * Dispatch the next available middleware and return the response. * * @param Request $request * @return Response */ public function next(Request $request) { $response = $this->middleware->process($request, $this->nextDelegate); // Negotiate PSR7 responses if ($response instanceof ResponseInterface) { return $this->foundationFactory->createResponse($response); } return $response; } }
* 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); } }
public function __construct( MiddlewareInterface $middleware, DelegateInterface $nextDelegate, HttpFoundationFactory $foundationFactory ) { $this->middleware = $middleware; $this->nextDelegate = $nextDelegate; $this->foundationFactory = $foundationFactory; } /** * Dispatch the next available middleware and return the response. * * @param Request $request * @return Response */ public function next(Request $request) { $response = $this->middleware->process($request, $this->nextDelegate); // Negotiate PSR7 responses if ($response instanceof ResponseInterface) { return $this->foundationFactory->createResponse($response); } return $response; } }
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); } }
// Register legacy config values 'registerLegacyConfigValues', // Handle loading permission keys 'handlePermissionKeys', // Handle eventing 'handleEventing', ]); } else { $this->initializeSystemTimezone(); $this->preloadClassAliases(); } // 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. * ---------------------------------------------------------------------------- */ $app = require __DIR__ . '/bootstrap/start.php'; /** @var \Concrete\Core\Application\Application $app */ /* * ---------------------------------------------------------------------------- * Run the runtime. * ---------------------------------------------------------------------------- */ $runtime = $app->getRuntime(); if ($response = $runtime->run()) { /* * ------------------------------------------------------------------------ * Shut it down. * ------------------------------------------------------------------------ */ $app->shutdown(); } else { return $app; }
<?php require('concrete/dispatcher.php');
Key | Value |
Version | 8.5.4 |
Installed Version | 8.5.4 |
Key | Value |
concrete.version | 8.5.4 |
concrete.version_installed | 8.5.4 |
concrete.version_db | 20200609145307 |
concrete.installed | true |
concrete.locale | en_US |
concrete.charset | UTF-8 |
concrete.charset_bom | |
concrete.maintenance_mode | false |
concrete.debug.display_errors | true |
concrete.debug.detail | debug |
concrete.debug.error_reporting | null |
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.upload.extensions_blacklist | *.php;*.php2;*.php3;*.php4;*.php5;*.php7;*.php8;*.phtml;*.phar;*.htaccess;*.pl;*.phpsh;*.pht;*.shtml;*.cgi |
concrete.upload.chunking.enabled | true |
concrete.upload.chunking.chunkSize | null |
concrete.export.csv.include_bom | false |
concrete.export.csv.datetime_format | ATOM |
concrete.interface.panel.page_relations | false |
concrete.mail.method | smtp |
concrete.mail.methods.smtp.server | sub5.mail.dreamhost.com |
concrete.mail.methods.smtp.port | 587 |
concrete.mail.methods.smtp.username | webmaster@dev.wearethepractitioners.com |
concrete.mail.methods.smtp.password | JOEBLOW1 |
concrete.mail.methods.smtp.encryption | |
concrete.mail.methods.smtp.messages_per_connection | null |
concrete.cache.enabled | true |
concrete.cache.lifetime | 21600 |
concrete.cache.overrides | true |
concrete.cache.blocks | true |
concrete.cache.assets | true |
concrete.cache.theme_css | true |
concrete.cache.pages | all |
concrete.cache.doctrine_dev_mode | true |
concrete.cache.full_page_lifetime | default |
concrete.cache.full_page_lifetime_value | null |
concrete.cache.full_contents_assets_hash | false |
concrete.cache.directory | /home/dh_ngqsri/wearethepractitioners.com/application/files/cache |
concrete.cache.directory_relative | null |
concrete.cache.page.directory | /home/dh_ngqsri/wearethepractitioners.com/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/dh_ngqsri/wearethepractitioners.com/application/files/cache/overrides |
concrete.cache.levels.overrides.drivers.core_filesystem.options.dirPermissions | 493 |
concrete.cache.levels.overrides.drivers.core_filesystem.options.filePermissions | 420 |
concrete.cache.levels.overrides.drivers.redis.class | Concrete\Core\Cache\Driver\RedisStashDriver |
concrete.cache.levels.overrides.drivers.redis.options.prefix | c5_overrides |
concrete.cache.levels.overrides.drivers.redis.options.database | 0 |
concrete.cache.levels.overrides.preferred_driver | core_filesystem |
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/dh_ngqsri/wearethepractitioners.com/application/files/cache/expensive |
concrete.cache.levels.expensive.drivers.core_filesystem.options.dirPermissions | 493 |
concrete.cache.levels.expensive.drivers.core_filesystem.options.filePermissions | 420 |
concrete.cache.levels.expensive.drivers.redis.class | Concrete\Core\Cache\Driver\RedisStashDriver |
concrete.cache.levels.expensive.drivers.redis.options.prefix | c5_expensive |
concrete.cache.levels.expensive.drivers.redis.options.database | 0 |
concrete.cache.levels.expensive.preferred_driver | core_filesystem |
concrete.cache.levels.object.drivers.core_ephemeral.class | \Stash\Driver\Ephemeral |
concrete.cache.levels.object.drivers.redis.class | Concrete\Core\Cache\Driver\RedisStashDriver |
concrete.cache.levels.object.drivers.redis.options.prefix | c5_object |
concrete.cache.levels.object.drivers.redis.options.database | 0 |
concrete.cache.levels.object.preferred_driver | core_ephemeral |
concrete.cache.clear.thumbnails | false |
concrete.design.enable_custom | true |
concrete.design.enable_layouts | true |
concrete.log.emails | true |
concrete.log.errors | true |
concrete.log.spam | false |
concrete.log.api | false |
concrete.log.enable_dashboard_report | true |
concrete.log.configuration.mode | simple |
concrete.log.configuration.simple.core_logging_level | NOTICE |
concrete.log.configuration.simple.handler | database |
concrete.log.configuration.simple.file.file | |
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 | webmaster@wearethepractitioners.com |
concrete.email.default.name | webmaster@dev.wearethepractitioners.com |
concrete.email.form_block.address | false |
concrete.email.forgot_password.address | webmaster@wearethepractitioners.com |
concrete.email.forgot_password.name | webmaster@wearethepractitioners.com |
concrete.email.validate_registration.address | webmaster@wearethepractitioners.com |
concrete.email.validate_registration.name | webmaster@wearethepractitioners.com |
concrete.email.workflow_notification.address | null |
concrete.email.workflow_notification.name | null |
concrete.form.store_form_submissions | auto |
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 | true |
concrete.misc.user_timezones | false |
concrete.misc.package_backup_directory | /home/dh_ngqsri/wearethepractitioners.com/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.inplace_image_operations_limit | 4194304 |
concrete.misc.basic_thumbnailer_generation_strategy | now |
concrete.misc.help_overlay | true |
concrete.misc.require_version_comments | false |
concrete.misc.enable_move_blocktypes_across_sets | false |
concrete.misc.image_editor_cors_policy.enable_cross_origin | false |
concrete.misc.image_editor_cors_policy.anonymous_request | true |
concrete.misc.generator_tag_display_in_header | true |
concrete.misc.access_entity_updated | 1496430185 |
concrete.misc.latest_version | 8.5.12 |
concrete.misc.login_redirect | HOMEPAGE |
concrete.misc.do_page_reindex_check | false |
concrete.misc.login_redirect_cid | 0 |
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.updates.skip_core | false |
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 | 100 |
concrete.icons.file_manager_detail.handle | file_manager_detail |
concrete.icons.file_manager_detail.width | 400 |
concrete.icons.file_manager_detail.height | 400 |
concrete.icons.user_avatar.width | 80 |
concrete.icons.user_avatar.height | 80 |
concrete.icons.user_avatar.default | /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.images.create_high_dpi_thumbnails | true |
concrete.file_manager.images.preview_image_size | small |
concrete.file_manager.images.preview_image_popover | true |
concrete.file_manager.images.svg_sanitization.action | sanitize |
concrete.file_manager.images.svg_sanitization.allowed_tags | |
concrete.file_manager.images.svg_sanitization.allowed_attributes | |
concrete.file_manager.images.image_editor_save_area_background_color | |
concrete.file_manager.items_per_page_options.0 | 10 |
concrete.file_manager.items_per_page_options.1 | 25 |
concrete.file_manager.items_per_page_options.2 | 50 |
concrete.file_manager.items_per_page_options.3 | 100 |
concrete.file_manager.items_per_page_options.4 | 250 |
concrete.file_manager.results | 10 |
concrete.file_manager.restrict_uploaded_image_sizes | null |
concrete.file_manager.restrict_max_width | 1920 |
concrete.file_manager.restrict_max_height | 1080 |
concrete.file_manager.restrict_resize_quality | 100 |
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.auto_install_package_languages | true |
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.privacy_policy | //www.concrete5.org/legal/privacy-policy |
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.help.slack | https://www.concrete5.org/slack |
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.redis.database | 1 |
concrete.session.save_path | null |
concrete.session.max_lifetime | 7200 |
concrete.session.gc_probability | 1 |
concrete.session.gc_divisor | 100 |
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.session.cookie.cookie_raw | false |
concrete.session.cookie.cookie_samesite | null |
concrete.session.remember_me.lifetime | 1209600 |
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.display_confirm_password_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.allowed_characters.boundary | A-Za-z0-9 |
concrete.user.username.allowed_characters.middle | A-Za-z0-9_\. |
concrete.user.username.allowed_characters.requirement_string | A username may only contain letters, numbers, dots (not at the beginning/end), and underscores (not at the beginning/end). |
concrete.user.username.allowed_characters.error_string | A username may only contain letters, numbers, dots (not at the beginning/end), and underscores (not at the beginning/end). |
concrete.user.username.allow_spaces_migrated | true |
concrete.user.username.allow_spaces | true |
concrete.user.password.maximum | 128 |
concrete.user.password.minimum | 5 |
concrete.user.password.required_special_characters | 0 |
concrete.user.password.required_lower_case | 0 |
concrete.user.password.required_upper_case | 0 |
concrete.user.password.reuse | 0 |
concrete.user.password.hash_portable | false |
concrete.user.password.hash_cost_log2 | 12 |
concrete.user.password.legacy_salt | |
concrete.user.email.test_mx_record | false |
concrete.user.email.strict | true |
concrete.user.private_messages.throttle_max | 20 |
concrete.user.private_messages.throttle_max_timespan | 15 |
concrete.user.deactivation.enable_login_threshold_deactivation | false |
concrete.user.deactivation.login.threshold | 120 |
concrete.user.deactivation.authentication_failure.enabled | false |
concrete.user.deactivation.authentication_failure.amount | 5 |
concrete.user.deactivation.authentication_failure.duration | 300 |
concrete.user.deactivation.message | This user is inactive. Please contact us regarding this account. |
concrete.spam.whitelist_group | 0 |
concrete.spam.notify_email | |
concrete.calendar.colors.text | #ffffff |
concrete.calendar.colors.background | #3A87AD |
concrete.security.session.invalidate_on_user_agent_mismatch | true |
concrete.security.session.invalidate_on_ip_mismatch | false |
concrete.security.session.invalidate_inactive_users.enabled | false |
concrete.security.session.invalidate_inactive_users.time | 300 |
concrete.security.misc.x_frame_options | SAMEORIGIN |
concrete.security.ban.ip.enabled | 1 |
concrete.security.ban.ip.attempts | 5 |
concrete.security.ban.ip.time | 300 |
concrete.security.ban.ip.length | 10 |
concrete.permissions.forward_to_login | true |
concrete.permissions.model | advanced |
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 | false |
concrete.seo.url_rewriting_all | false |
concrete.seo.redirect_to_canonical_url | 0 |
concrete.seo.canonical_url | null |
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.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 | true |
concrete.composer.idle_timeout | 1 |
concrete.api.enabled | false |
concrete.api.grant_types.client_credentials | true |
concrete.api.grant_types.authorization_code | true |
concrete.api.grant_types.password_credentials | false |
concrete.api.grant_types.refresh_token | true |
concrete.mutex.semaphore.priority | 100 |
concrete.mutex.semaphore.class | Concrete\Core\System\Mutex\SemaphoreMutex |
concrete.mutex.file_lock.priority | 50 |
concrete.mutex.file_lock.class | Concrete\Core\System\Mutex\FileLockMutex |
concrete.site | We Are The Practitioners |
concrete.version_db_installed | 20200609145307 |
Key | Value |
PATH | /usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin |
CONTENT_LENGTH | 0 |
HTTP_CONNECTION | close |
PATH_TRANSLATED | redirect:/index.php/pages-waiting-editing/project-management/murphys-law |
PATH_INFO | /%21drafts/pages-waiting-editing/project-management/murphys-law |
SCRIPT_NAME | /index.php |
REQUEST_URI | /index.php/%2521drafts/pages-waiting-editing/project-management/murphys-law |
QUERY_STRING | |
REQUEST_METHOD | GET |
SERVER_PROTOCOL | HTTP/2.0 |
GATEWAY_INTERFACE | CGI/1.1 |
REMOTE_PORT | 42056 |
SCRIPT_FILENAME | /home/dh_ngqsri/wearethepractitioners.com/index.php |
SERVER_ADMIN | webmaster@wearethepractitioners.com |
CONTEXT_DOCUMENT_ROOT | /home/dh_ngqsri/wearethepractitioners.com |
CONTEXT_PREFIX | |
REQUEST_SCHEME | https |
DOCUMENT_ROOT | /home/dh_ngqsri/wearethepractitioners.com |
REMOTE_ADDR | 54.147.110.47 |
SERVER_PORT | 443 |
SERVER_ADDR | 69.163.249.170 |
SERVER_NAME | www.wearethepractitioners.com |
SERVER_SOFTWARE | Apache |
SERVER_SIGNATURE | |
HTTP_HOST | www.wearethepractitioners.com |
HTTP_USER_AGENT | claudebot |
HTTP_ACCEPT | */* |
SSL_TLS_SNI | www.wearethepractitioners.com |
HTTPS | on |
H2_STREAM_TAG | 10028-3 |
H2_STREAM_ID | 3 |
H2_PUSHED_ON | |
H2_PUSHED | |
H2_PUSH | off |
H2PUSH | off |
HTTP2 | on |
DH_USER | dh_ngqsri |
ds_id_34209832 | |
dsid | 34209832 |
SCRIPT_URI | https://www.wearethepractitioners.com/index.php/%21drafts/pages-waiting-editing/project-management/murphys-law |
SCRIPT_URL | /index.php/%21drafts/pages-waiting-editing/project-management/murphys-law |
QS_ConnectionId | 171171133833377985751023 |
UNIQUE_ID | Zgaka0icCcYj0y3Mwwz0RAAAAAM |
FCGI_ROLE | RESPONDER |
PHP_SELF | /index.php/%21drafts/pages-waiting-editing/project-management/murphys-law |
REQUEST_TIME_FLOAT | 1711711339.4173 |
REQUEST_TIME | 1711711339 |
Key | Value |
PATH | /usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin |
CONTENT_LENGTH | 0 |
HTTP_CONNECTION | close |
PATH_TRANSLATED | redirect:/index.php/pages-waiting-editing/project-management/murphys-law |
PATH_INFO | /%21drafts/pages-waiting-editing/project-management/murphys-law |
SCRIPT_NAME | /index.php |
REQUEST_URI | /index.php/%2521drafts/pages-waiting-editing/project-management/murphys-law |
QUERY_STRING | |
REQUEST_METHOD | GET |
SERVER_PROTOCOL | HTTP/2.0 |
GATEWAY_INTERFACE | CGI/1.1 |
REMOTE_PORT | 42056 |
SCRIPT_FILENAME | /home/dh_ngqsri/wearethepractitioners.com/index.php |
SERVER_ADMIN | webmaster@wearethepractitioners.com |
CONTEXT_DOCUMENT_ROOT | /home/dh_ngqsri/wearethepractitioners.com |
CONTEXT_PREFIX | |
REQUEST_SCHEME | https |
DOCUMENT_ROOT | /home/dh_ngqsri/wearethepractitioners.com |
REMOTE_ADDR | 54.147.110.47 |
SERVER_PORT | 443 |
SERVER_ADDR | 69.163.249.170 |
SERVER_NAME | www.wearethepractitioners.com |
SERVER_SOFTWARE | Apache |
SERVER_SIGNATURE | |
HTTP_HOST | www.wearethepractitioners.com |
HTTP_USER_AGENT | claudebot |
HTTP_ACCEPT | */* |
SSL_TLS_SNI | www.wearethepractitioners.com |
HTTPS | on |
H2_STREAM_TAG | 10028-3 |
H2_STREAM_ID | 3 |
H2_PUSHED_ON | |
H2_PUSHED | |
H2_PUSH | off |
H2PUSH | off |
HTTP2 | on |
DH_USER | dh_ngqsri |
ds_id_34209832 | |
dsid | 34209832 |
SCRIPT_URI | https://www.wearethepractitioners.com/index.php/%21drafts/pages-waiting-editing/project-management/murphys-law |
SCRIPT_URL | /index.php/%21drafts/pages-waiting-editing/project-management/murphys-law |
QS_ConnectionId | 171171133833377985751023 |
UNIQUE_ID | Zgaka0icCcYj0y3Mwwz0RAAAAAM |
FCGI_ROLE | RESPONDER |