FringeController :: fringesitePage
Request
GET Parameters
None
POST Parameters
None
Uploaded Files
None
Request Attributes
| Key | Value |
|---|---|
| _controller | "Ops\OpsFrontendOutdoorBundle\Controller\FringeController::fringesitePage" |
| _firewall_context | "security.firewall.map.context.secured_area" |
| _remove_csp_headers | true |
| _route | "frooh_page_316" |
| _route_params | [ "id" => 316 ] |
| _security_authenticators | [] |
| _security_firewall_run | "_security_secured_area" |
| _security_skipped_authenticators | [ Symfony\Component\Security\Http\Authenticator\FormLoginAuthenticator {#334 -options: [ "username_parameter" => "_username" "password_parameter" => "_password" "check_path" => "login_check" "post_only" => true "form_only" => false "enable_csrf" => false "csrf_parameter" => "_csrf_token" "csrf_token_id" => "authenticate" "login_path" => "login_route" "use_forward" => false ] -httpKernel: ? Symfony\Component\HttpKernel\HttpKernelInterface -httpUtils: Symfony\Component\Security\Http\HttpUtils {#310 …} -userProvider: Ops\OpsFrontendBundle\Security\WebserviceUserProvider {#329 …} -successHandler: Symfony\Component\Security\Http\Authentication\DefaultAuthenticationSuccessHandler {#311 …} -failureHandler: Symfony\Component\Security\Http\Authentication\DefaultAuthenticationFailureHandler {#320 …} } ] |
| _stopwatch_token | "c6fcce" |
| id | 316 |
Request Headers
| Header | Value |
|---|---|
| accept | "*/*" |
| accept-encoding | "gzip, br, deflate" |
| from | "gptbot(at)openai.com" |
| host | "78.129.140.211" |
| user-agent | "Mozilla/5.0 AppleWebKit/537.36 (KHTML, like Gecko; compatible; GPTBot/1.3; +https://openai.com/gptbot)" |
| x-https | "1" |
| x-openai-host-hash | "439390935" |
| x-php-ob-level | "0" |
Request Content
Request content not available (it was retrieved as a resource).
Response
Response Headers
| Header | Value |
|---|---|
| cache-control | "no-cache, private" |
| content-type | "text/html; charset=UTF-8" |
| date | "Thu, 11 Dec 2025 15:52:53 GMT" |
| x-debug-exception | "Key%20%22selecttype%22%20for%20sequence%2Fmapping%20with%20keys%20%22typeid%2C%20friendlyname%2C%20processes%2C%20productid%2C%20active%2C%20ispackaging%2C%20type%22%20does%20not%20exist." |
| x-debug-exception-file | "%2Fhome%2Foutofhand%2Fpublic_html%2Fopsfrontendoutdoorbundle%2FOpsFrontendOutdoorBundle%2Fsrc%2Ftemplates%2Ffringe%2Fpage.html.twig:296" |
| x-debug-token | "fbd861" |
| x-debug-token-link | "https://78.129.140.211/_profiler/e01bb8" |
| x-previous-debug-token | "e01bb8" |
| x-robots-tag | "noindex" |
Cookies
Request Cookies
No request cookies
Response Cookies
No response cookies
Session 8
Session Metadata
| Key | Value |
|---|---|
| Created | "Thu, 11 Dec 25 15:52:52 +0000" |
| Last used | "Thu, 11 Dec 25 15:52:52 +0000" |
| Lifetime | 0 |
Session Attributes
No session attributes
Session Usage
8
Usages
Stateless check enabled
| Usage |
|---|
Ops\OpsFrontendBundle\Services\SessionIdleHandler:59
[
[
"file" => "/home/outofhand/public_html/opsfrontendbundle/OpsFrontendBundle/src/Services/SessionIdleHandler.php"
"line" => 59
"function" => "start"
"class" => "Symfony\Component\HttpFoundation\Session\Session"
"type" => "->"
]
[
"file" => "/home/outofhand/public_html/vendor/symfony/event-dispatcher/Debug/WrappedListener.php"
"line" => 115
"function" => "onKernelRequest"
"class" => "Ops\OpsFrontendBundle\Services\SessionIdleHandler"
"type" => "->"
]
[
"file" => "/home/outofhand/public_html/vendor/symfony/event-dispatcher/EventDispatcher.php"
"line" => 206
"function" => "__invoke"
"class" => "Symfony\Component\EventDispatcher\Debug\WrappedListener"
"type" => "->"
]
[
"file" => "/home/outofhand/public_html/vendor/symfony/event-dispatcher/EventDispatcher.php"
"line" => 56
"function" => "callListeners"
"class" => "Symfony\Component\EventDispatcher\EventDispatcher"
"type" => "->"
]
[
"file" => "/home/outofhand/public_html/vendor/symfony/event-dispatcher/Debug/TraceableEventDispatcher.php"
"line" => 122
"function" => "dispatch"
"class" => "Symfony\Component\EventDispatcher\EventDispatcher"
"type" => "->"
]
[
"file" => "/home/outofhand/public_html/vendor/symfony/http-kernel/HttpKernel.php"
"line" => 159
"function" => "dispatch"
"class" => "Symfony\Component\EventDispatcher\Debug\TraceableEventDispatcher"
"type" => "->"
]
[
"file" => "/home/outofhand/public_html/vendor/symfony/http-kernel/HttpKernel.php"
"line" => 76
"function" => "handleRaw"
"class" => "Symfony\Component\HttpKernel\HttpKernel"
"type" => "->"
]
[
"file" => "/home/outofhand/public_html/vendor/symfony/http-kernel/Kernel.php"
"line" => 182
"function" => "handle"
"class" => "Symfony\Component\HttpKernel\HttpKernel"
"type" => "->"
]
[
"file" => "/home/outofhand/public_html/vendor/symfony/runtime/Runner/Symfony/HttpKernelRunner.php"
"line" => 35
"function" => "handle"
"class" => "Symfony\Component\HttpKernel\Kernel"
"type" => "->"
]
[
"file" => "/home/outofhand/public_html/vendor/autoload_runtime.php"
"line" => 29
"function" => "run"
"class" => "Symfony\Component\Runtime\Runner\Symfony\HttpKernelRunner"
"type" => "->"
]
[
"file" => "/home/outofhand/public_html/public/index.php"
"line" => 5
"args" => [
"/home/outofhand/public_html/vendor/autoload_runtime.php"
]
"function" => "require_once"
]
]
|
Ops\OpsFrontendBundle\Services\SessionIdleHandler:60
[
[
"file" => "/home/outofhand/public_html/opsfrontendbundle/OpsFrontendBundle/src/Services/SessionIdleHandler.php"
"line" => 60
"function" => "getMetadataBag"
"class" => "Symfony\Component\HttpFoundation\Session\Session"
"type" => "->"
]
[
"file" => "/home/outofhand/public_html/vendor/symfony/event-dispatcher/Debug/WrappedListener.php"
"line" => 115
"function" => "onKernelRequest"
"class" => "Ops\OpsFrontendBundle\Services\SessionIdleHandler"
"type" => "->"
]
[
"file" => "/home/outofhand/public_html/vendor/symfony/event-dispatcher/EventDispatcher.php"
"line" => 206
"function" => "__invoke"
"class" => "Symfony\Component\EventDispatcher\Debug\WrappedListener"
"type" => "->"
]
[
"file" => "/home/outofhand/public_html/vendor/symfony/event-dispatcher/EventDispatcher.php"
"line" => 56
"function" => "callListeners"
"class" => "Symfony\Component\EventDispatcher\EventDispatcher"
"type" => "->"
]
[
"file" => "/home/outofhand/public_html/vendor/symfony/event-dispatcher/Debug/TraceableEventDispatcher.php"
"line" => 122
"function" => "dispatch"
"class" => "Symfony\Component\EventDispatcher\EventDispatcher"
"type" => "->"
]
[
"file" => "/home/outofhand/public_html/vendor/symfony/http-kernel/HttpKernel.php"
"line" => 159
"function" => "dispatch"
"class" => "Symfony\Component\EventDispatcher\Debug\TraceableEventDispatcher"
"type" => "->"
]
[
"file" => "/home/outofhand/public_html/vendor/symfony/http-kernel/HttpKernel.php"
"line" => 76
"function" => "handleRaw"
"class" => "Symfony\Component\HttpKernel\HttpKernel"
"type" => "->"
]
[
"file" => "/home/outofhand/public_html/vendor/symfony/http-kernel/Kernel.php"
"line" => 182
"function" => "handle"
"class" => "Symfony\Component\HttpKernel\HttpKernel"
"type" => "->"
]
[
"file" => "/home/outofhand/public_html/vendor/symfony/runtime/Runner/Symfony/HttpKernelRunner.php"
"line" => 35
"function" => "handle"
"class" => "Symfony\Component\HttpKernel\Kernel"
"type" => "->"
]
[
"file" => "/home/outofhand/public_html/vendor/autoload_runtime.php"
"line" => 29
"function" => "run"
"class" => "Symfony\Component\Runtime\Runner\Symfony\HttpKernelRunner"
"type" => "->"
]
[
"file" => "/home/outofhand/public_html/public/index.php"
"line" => 5
"args" => [
"/home/outofhand/public_html/vendor/autoload_runtime.php"
]
"function" => "require_once"
]
]
|
Symfony\Component\Security\Core\Authentication\Token\Storage\UsageTrackingTokenStorage:39
[
[
"file" => "/home/outofhand/public_html/vendor/symfony/security-core/Authentication/Token/Storage/UsageTrackingTokenStorage.php"
"line" => 39
"function" => "getMetadataBag"
"class" => "Symfony\Component\HttpFoundation\Session\Session"
"type" => "->"
]
[
"file" => "/home/outofhand/public_html/vendor/symfony/twig-bridge/AppVariable.php"
"line" => 92
"function" => "getToken"
"class" => "Symfony\Component\Security\Core\Authentication\Token\Storage\UsageTrackingTokenStorage"
"type" => "->"
]
[
"file" => "/home/outofhand/public_html/vendor/twig/twig/src/Extension/CoreExtension.php"
"line" => 1882
"function" => "getUser"
"class" => "Symfony\Bridge\Twig\AppVariable"
"type" => "->"
]
[
"file" => "/home/outofhand/public_html/var/cache/dev/twig/c5/c542d70fc2780ba51e52f2e65e85f047.php"
"line" => 90
"function" => "getAttribute"
"class" => "Twig\Extension\CoreExtension"
"type" => "::"
]
[
"file" => "/home/outofhand/public_html/vendor/twig/twig/src/Template.php"
"line" => 388
"function" => "doDisplay"
"class" => "__TwigTemplate_1476d50daf1628d0e450d84217054ae1"
"type" => "->"
]
[
"file" => "/home/outofhand/public_html/var/cache/dev/twig/4e/4eb2e85ffddbec708c7bfdeffe4287f3.php"
"line" => 206
"function" => "yield"
"class" => "Twig\Template"
"type" => "->"
]
[
"file" => "/home/outofhand/public_html/vendor/twig/twig/src/Template.php"
"line" => 388
"function" => "doDisplay"
"class" => "__TwigTemplate_6783d89ff22877bdf921f1fbfe5be8a0"
"type" => "->"
]
[
"file" => "/home/outofhand/public_html/var/cache/dev/twig/6a/6ade674db8279ccca9fb5a0515fefc11.php"
"line" => 56
"function" => "yield"
"class" => "Twig\Template"
"type" => "->"
]
[
"file" => "/home/outofhand/public_html/vendor/twig/twig/src/Template.php"
"line" => 388
"function" => "doDisplay"
"class" => "__TwigTemplate_609cccc83431ac5cfff65c59fe1c5c95"
"type" => "->"
]
[
"file" => "/home/outofhand/public_html/var/cache/dev/twig/64/6443f2d97083ae03c623eba4f99ca1a9.php"
"line" => 87
"function" => "yield"
"class" => "Twig\Template"
"type" => "->"
]
[
"file" => "/home/outofhand/public_html/vendor/twig/twig/src/Template.php"
"line" => 388
"function" => "doDisplay"
"class" => "__TwigTemplate_f289247b9b91ae844c0fd860e0fdf528"
"type" => "->"
]
[
"file" => "/home/outofhand/public_html/vendor/twig/twig/src/Template.php"
"line" => 344
"function" => "yield"
"class" => "Twig\Template"
"type" => "->"
]
[
"file" => "/home/outofhand/public_html/vendor/twig/twig/src/Template.php"
"line" => 359
"function" => "display"
"class" => "Twig\Template"
"type" => "->"
]
[
"file" => "/home/outofhand/public_html/vendor/twig/twig/src/TemplateWrapper.php"
"line" => 51
"function" => "render"
"class" => "Twig\Template"
"type" => "->"
]
[
"file" => "/home/outofhand/public_html/vendor/twig/twig/src/Environment.php"
"line" => 334
"function" => "render"
"class" => "Twig\TemplateWrapper"
"type" => "->"
]
[
"file" => "/home/outofhand/public_html/vendor/symfony/framework-bundle/Controller/AbstractController.php"
"line" => 431
"function" => "render"
"class" => "Twig\Environment"
"type" => "->"
]
[
"file" => "/home/outofhand/public_html/vendor/symfony/framework-bundle/Controller/AbstractController.php"
"line" => 436
"function" => "doRenderView"
"class" => "Symfony\Bundle\FrameworkBundle\Controller\AbstractController"
"type" => "->"
]
[
"file" => "/home/outofhand/public_html/vendor/symfony/framework-bundle/Controller/AbstractController.php"
"line" => 250
"function" => "doRender"
"class" => "Symfony\Bundle\FrameworkBundle\Controller\AbstractController"
"type" => "->"
]
[
"file" => "/home/outofhand/public_html/opsfrontendoutdoorbundle/OpsFrontendOutdoorBundle/src/Controller/FringeController.php"
"line" => 144
"function" => "render"
"class" => "Symfony\Bundle\FrameworkBundle\Controller\AbstractController"
"type" => "->"
]
[
"file" => "/home/outofhand/public_html/vendor/symfony/http-kernel/HttpKernel.php"
"line" => 183
"function" => "fringesitePage"
"class" => "Ops\OpsFrontendOutdoorBundle\Controller\FringeController"
"type" => "->"
]
[
"file" => "/home/outofhand/public_html/vendor/symfony/http-kernel/HttpKernel.php"
"line" => 76
"function" => "handleRaw"
"class" => "Symfony\Component\HttpKernel\HttpKernel"
"type" => "->"
]
[
"file" => "/home/outofhand/public_html/vendor/symfony/http-kernel/Kernel.php"
"line" => 182
"function" => "handle"
"class" => "Symfony\Component\HttpKernel\HttpKernel"
"type" => "->"
]
[
"file" => "/home/outofhand/public_html/vendor/symfony/runtime/Runner/Symfony/HttpKernelRunner.php"
"line" => 35
"function" => "handle"
"class" => "Symfony\Component\HttpKernel\Kernel"
"type" => "->"
]
[
"file" => "/home/outofhand/public_html/vendor/autoload_runtime.php"
"line" => 29
"function" => "run"
"class" => "Symfony\Component\Runtime\Runner\Symfony\HttpKernelRunner"
"type" => "->"
]
[
"file" => "/home/outofhand/public_html/public/index.php"
"line" => 5
"args" => [
"/home/outofhand/public_html/vendor/autoload_runtime.php"
]
"function" => "require_once"
]
]
|
Symfony\Component\HttpKernel\DataCollector\RequestDataCollector:68
[
[
"file" => "/home/outofhand/public_html/vendor/symfony/http-kernel/DataCollector/RequestDataCollector.php"
"line" => 68
"function" => "getMetadataBag"
"class" => "Symfony\Component\HttpFoundation\Session\Session"
"type" => "->"
]
[
"file" => "/home/outofhand/public_html/vendor/symfony/http-kernel/Profiler/Profiler.php"
"line" => 158
"function" => "collect"
"class" => "Symfony\Component\HttpKernel\DataCollector\RequestDataCollector"
"type" => "->"
]
[
"file" => "/home/outofhand/public_html/vendor/symfony/http-kernel/EventListener/ProfilerListener.php"
"line" => 102
"function" => "collect"
"class" => "Symfony\Component\HttpKernel\Profiler\Profiler"
"type" => "->"
]
[
"file" => "/home/outofhand/public_html/vendor/symfony/event-dispatcher/Debug/WrappedListener.php"
"line" => 115
"function" => "onKernelResponse"
"class" => "Symfony\Component\HttpKernel\EventListener\ProfilerListener"
"type" => "->"
]
[
"file" => "/home/outofhand/public_html/vendor/symfony/event-dispatcher/EventDispatcher.php"
"line" => 206
"function" => "__invoke"
"class" => "Symfony\Component\EventDispatcher\Debug\WrappedListener"
"type" => "->"
]
[
"file" => "/home/outofhand/public_html/vendor/symfony/event-dispatcher/EventDispatcher.php"
"line" => 56
"function" => "callListeners"
"class" => "Symfony\Component\EventDispatcher\EventDispatcher"
"type" => "->"
]
[
"file" => "/home/outofhand/public_html/vendor/symfony/event-dispatcher/Debug/TraceableEventDispatcher.php"
"line" => 122
"function" => "dispatch"
"class" => "Symfony\Component\EventDispatcher\EventDispatcher"
"type" => "->"
]
[
"file" => "/home/outofhand/public_html/vendor/symfony/http-kernel/HttpKernel.php"
"line" => 216
"function" => "dispatch"
"class" => "Symfony\Component\EventDispatcher\Debug\TraceableEventDispatcher"
"type" => "->"
]
[
"file" => "/home/outofhand/public_html/vendor/symfony/http-kernel/HttpKernel.php"
"line" => 204
"function" => "filterResponse"
"class" => "Symfony\Component\HttpKernel\HttpKernel"
"type" => "->"
]
[
"file" => "/home/outofhand/public_html/vendor/symfony/http-kernel/HttpKernel.php"
"line" => 76
"function" => "handleRaw"
"class" => "Symfony\Component\HttpKernel\HttpKernel"
"type" => "->"
]
[
"file" => "/home/outofhand/public_html/vendor/symfony/http-kernel/EventListener/ErrorListener.php"
"line" => 97
"function" => "handle"
"class" => "Symfony\Component\HttpKernel\HttpKernel"
"type" => "->"
]
[
"file" => "/home/outofhand/public_html/vendor/symfony/event-dispatcher/Debug/WrappedListener.php"
"line" => 115
"function" => "onKernelException"
"class" => "Symfony\Component\HttpKernel\EventListener\ErrorListener"
"type" => "->"
]
[
"file" => "/home/outofhand/public_html/vendor/symfony/event-dispatcher/EventDispatcher.php"
"line" => 206
"function" => "__invoke"
"class" => "Symfony\Component\EventDispatcher\Debug\WrappedListener"
"type" => "->"
]
[
"file" => "/home/outofhand/public_html/vendor/symfony/event-dispatcher/EventDispatcher.php"
"line" => 56
"function" => "callListeners"
"class" => "Symfony\Component\EventDispatcher\EventDispatcher"
"type" => "->"
]
[
"file" => "/home/outofhand/public_html/vendor/symfony/event-dispatcher/Debug/TraceableEventDispatcher.php"
"line" => 122
"function" => "dispatch"
"class" => "Symfony\Component\EventDispatcher\EventDispatcher"
"type" => "->"
]
[
"file" => "/home/outofhand/public_html/vendor/symfony/http-kernel/HttpKernel.php"
"line" => 241
"function" => "dispatch"
"class" => "Symfony\Component\EventDispatcher\Debug\TraceableEventDispatcher"
"type" => "->"
]
[
"file" => "/home/outofhand/public_html/vendor/symfony/http-kernel/HttpKernel.php"
"line" => 91
"function" => "handleThrowable"
"class" => "Symfony\Component\HttpKernel\HttpKernel"
"type" => "->"
]
[
"file" => "/home/outofhand/public_html/vendor/symfony/http-kernel/Kernel.php"
"line" => 182
"function" => "handle"
"class" => "Symfony\Component\HttpKernel\HttpKernel"
"type" => "->"
]
[
"file" => "/home/outofhand/public_html/vendor/symfony/runtime/Runner/Symfony/HttpKernelRunner.php"
"line" => 35
"function" => "handle"
"class" => "Symfony\Component\HttpKernel\Kernel"
"type" => "->"
]
[
"file" => "/home/outofhand/public_html/vendor/autoload_runtime.php"
"line" => 29
"function" => "run"
"class" => "Symfony\Component\Runtime\Runner\Symfony\HttpKernelRunner"
"type" => "->"
]
[
"file" => "/home/outofhand/public_html/public/index.php"
"line" => 5
"args" => [
"/home/outofhand/public_html/vendor/autoload_runtime.php"
]
"function" => "require_once"
]
]
|
Symfony\Component\HttpKernel\DataCollector\RequestDataCollector:69
[
[
"file" => "/home/outofhand/public_html/vendor/symfony/http-kernel/DataCollector/RequestDataCollector.php"
"line" => 69
"function" => "getMetadataBag"
"class" => "Symfony\Component\HttpFoundation\Session\Session"
"type" => "->"
]
[
"file" => "/home/outofhand/public_html/vendor/symfony/http-kernel/Profiler/Profiler.php"
"line" => 158
"function" => "collect"
"class" => "Symfony\Component\HttpKernel\DataCollector\RequestDataCollector"
"type" => "->"
]
[
"file" => "/home/outofhand/public_html/vendor/symfony/http-kernel/EventListener/ProfilerListener.php"
"line" => 102
"function" => "collect"
"class" => "Symfony\Component\HttpKernel\Profiler\Profiler"
"type" => "->"
]
[
"file" => "/home/outofhand/public_html/vendor/symfony/event-dispatcher/Debug/WrappedListener.php"
"line" => 115
"function" => "onKernelResponse"
"class" => "Symfony\Component\HttpKernel\EventListener\ProfilerListener"
"type" => "->"
]
[
"file" => "/home/outofhand/public_html/vendor/symfony/event-dispatcher/EventDispatcher.php"
"line" => 206
"function" => "__invoke"
"class" => "Symfony\Component\EventDispatcher\Debug\WrappedListener"
"type" => "->"
]
[
"file" => "/home/outofhand/public_html/vendor/symfony/event-dispatcher/EventDispatcher.php"
"line" => 56
"function" => "callListeners"
"class" => "Symfony\Component\EventDispatcher\EventDispatcher"
"type" => "->"
]
[
"file" => "/home/outofhand/public_html/vendor/symfony/event-dispatcher/Debug/TraceableEventDispatcher.php"
"line" => 122
"function" => "dispatch"
"class" => "Symfony\Component\EventDispatcher\EventDispatcher"
"type" => "->"
]
[
"file" => "/home/outofhand/public_html/vendor/symfony/http-kernel/HttpKernel.php"
"line" => 216
"function" => "dispatch"
"class" => "Symfony\Component\EventDispatcher\Debug\TraceableEventDispatcher"
"type" => "->"
]
[
"file" => "/home/outofhand/public_html/vendor/symfony/http-kernel/HttpKernel.php"
"line" => 204
"function" => "filterResponse"
"class" => "Symfony\Component\HttpKernel\HttpKernel"
"type" => "->"
]
[
"file" => "/home/outofhand/public_html/vendor/symfony/http-kernel/HttpKernel.php"
"line" => 76
"function" => "handleRaw"
"class" => "Symfony\Component\HttpKernel\HttpKernel"
"type" => "->"
]
[
"file" => "/home/outofhand/public_html/vendor/symfony/http-kernel/EventListener/ErrorListener.php"
"line" => 97
"function" => "handle"
"class" => "Symfony\Component\HttpKernel\HttpKernel"
"type" => "->"
]
[
"file" => "/home/outofhand/public_html/vendor/symfony/event-dispatcher/Debug/WrappedListener.php"
"line" => 115
"function" => "onKernelException"
"class" => "Symfony\Component\HttpKernel\EventListener\ErrorListener"
"type" => "->"
]
[
"file" => "/home/outofhand/public_html/vendor/symfony/event-dispatcher/EventDispatcher.php"
"line" => 206
"function" => "__invoke"
"class" => "Symfony\Component\EventDispatcher\Debug\WrappedListener"
"type" => "->"
]
[
"file" => "/home/outofhand/public_html/vendor/symfony/event-dispatcher/EventDispatcher.php"
"line" => 56
"function" => "callListeners"
"class" => "Symfony\Component\EventDispatcher\EventDispatcher"
"type" => "->"
]
[
"file" => "/home/outofhand/public_html/vendor/symfony/event-dispatcher/Debug/TraceableEventDispatcher.php"
"line" => 122
"function" => "dispatch"
"class" => "Symfony\Component\EventDispatcher\EventDispatcher"
"type" => "->"
]
[
"file" => "/home/outofhand/public_html/vendor/symfony/http-kernel/HttpKernel.php"
"line" => 241
"function" => "dispatch"
"class" => "Symfony\Component\EventDispatcher\Debug\TraceableEventDispatcher"
"type" => "->"
]
[
"file" => "/home/outofhand/public_html/vendor/symfony/http-kernel/HttpKernel.php"
"line" => 91
"function" => "handleThrowable"
"class" => "Symfony\Component\HttpKernel\HttpKernel"
"type" => "->"
]
[
"file" => "/home/outofhand/public_html/vendor/symfony/http-kernel/Kernel.php"
"line" => 182
"function" => "handle"
"class" => "Symfony\Component\HttpKernel\HttpKernel"
"type" => "->"
]
[
"file" => "/home/outofhand/public_html/vendor/symfony/runtime/Runner/Symfony/HttpKernelRunner.php"
"line" => 35
"function" => "handle"
"class" => "Symfony\Component\HttpKernel\Kernel"
"type" => "->"
]
[
"file" => "/home/outofhand/public_html/vendor/autoload_runtime.php"
"line" => 29
"function" => "run"
"class" => "Symfony\Component\Runtime\Runner\Symfony\HttpKernelRunner"
"type" => "->"
]
[
"file" => "/home/outofhand/public_html/public/index.php"
"line" => 5
"args" => [
"/home/outofhand/public_html/vendor/autoload_runtime.php"
]
"function" => "require_once"
]
]
|
Symfony\Component\HttpKernel\DataCollector\RequestDataCollector:70
[
[
"file" => "/home/outofhand/public_html/vendor/symfony/http-kernel/DataCollector/RequestDataCollector.php"
"line" => 70
"function" => "getMetadataBag"
"class" => "Symfony\Component\HttpFoundation\Session\Session"
"type" => "->"
]
[
"file" => "/home/outofhand/public_html/vendor/symfony/http-kernel/Profiler/Profiler.php"
"line" => 158
"function" => "collect"
"class" => "Symfony\Component\HttpKernel\DataCollector\RequestDataCollector"
"type" => "->"
]
[
"file" => "/home/outofhand/public_html/vendor/symfony/http-kernel/EventListener/ProfilerListener.php"
"line" => 102
"function" => "collect"
"class" => "Symfony\Component\HttpKernel\Profiler\Profiler"
"type" => "->"
]
[
"file" => "/home/outofhand/public_html/vendor/symfony/event-dispatcher/Debug/WrappedListener.php"
"line" => 115
"function" => "onKernelResponse"
"class" => "Symfony\Component\HttpKernel\EventListener\ProfilerListener"
"type" => "->"
]
[
"file" => "/home/outofhand/public_html/vendor/symfony/event-dispatcher/EventDispatcher.php"
"line" => 206
"function" => "__invoke"
"class" => "Symfony\Component\EventDispatcher\Debug\WrappedListener"
"type" => "->"
]
[
"file" => "/home/outofhand/public_html/vendor/symfony/event-dispatcher/EventDispatcher.php"
"line" => 56
"function" => "callListeners"
"class" => "Symfony\Component\EventDispatcher\EventDispatcher"
"type" => "->"
]
[
"file" => "/home/outofhand/public_html/vendor/symfony/event-dispatcher/Debug/TraceableEventDispatcher.php"
"line" => 122
"function" => "dispatch"
"class" => "Symfony\Component\EventDispatcher\EventDispatcher"
"type" => "->"
]
[
"file" => "/home/outofhand/public_html/vendor/symfony/http-kernel/HttpKernel.php"
"line" => 216
"function" => "dispatch"
"class" => "Symfony\Component\EventDispatcher\Debug\TraceableEventDispatcher"
"type" => "->"
]
[
"file" => "/home/outofhand/public_html/vendor/symfony/http-kernel/HttpKernel.php"
"line" => 204
"function" => "filterResponse"
"class" => "Symfony\Component\HttpKernel\HttpKernel"
"type" => "->"
]
[
"file" => "/home/outofhand/public_html/vendor/symfony/http-kernel/HttpKernel.php"
"line" => 76
"function" => "handleRaw"
"class" => "Symfony\Component\HttpKernel\HttpKernel"
"type" => "->"
]
[
"file" => "/home/outofhand/public_html/vendor/symfony/http-kernel/EventListener/ErrorListener.php"
"line" => 97
"function" => "handle"
"class" => "Symfony\Component\HttpKernel\HttpKernel"
"type" => "->"
]
[
"file" => "/home/outofhand/public_html/vendor/symfony/event-dispatcher/Debug/WrappedListener.php"
"line" => 115
"function" => "onKernelException"
"class" => "Symfony\Component\HttpKernel\EventListener\ErrorListener"
"type" => "->"
]
[
"file" => "/home/outofhand/public_html/vendor/symfony/event-dispatcher/EventDispatcher.php"
"line" => 206
"function" => "__invoke"
"class" => "Symfony\Component\EventDispatcher\Debug\WrappedListener"
"type" => "->"
]
[
"file" => "/home/outofhand/public_html/vendor/symfony/event-dispatcher/EventDispatcher.php"
"line" => 56
"function" => "callListeners"
"class" => "Symfony\Component\EventDispatcher\EventDispatcher"
"type" => "->"
]
[
"file" => "/home/outofhand/public_html/vendor/symfony/event-dispatcher/Debug/TraceableEventDispatcher.php"
"line" => 122
"function" => "dispatch"
"class" => "Symfony\Component\EventDispatcher\EventDispatcher"
"type" => "->"
]
[
"file" => "/home/outofhand/public_html/vendor/symfony/http-kernel/HttpKernel.php"
"line" => 241
"function" => "dispatch"
"class" => "Symfony\Component\EventDispatcher\Debug\TraceableEventDispatcher"
"type" => "->"
]
[
"file" => "/home/outofhand/public_html/vendor/symfony/http-kernel/HttpKernel.php"
"line" => 91
"function" => "handleThrowable"
"class" => "Symfony\Component\HttpKernel\HttpKernel"
"type" => "->"
]
[
"file" => "/home/outofhand/public_html/vendor/symfony/http-kernel/Kernel.php"
"line" => 182
"function" => "handle"
"class" => "Symfony\Component\HttpKernel\HttpKernel"
"type" => "->"
]
[
"file" => "/home/outofhand/public_html/vendor/symfony/runtime/Runner/Symfony/HttpKernelRunner.php"
"line" => 35
"function" => "handle"
"class" => "Symfony\Component\HttpKernel\Kernel"
"type" => "->"
]
[
"file" => "/home/outofhand/public_html/vendor/autoload_runtime.php"
"line" => 29
"function" => "run"
"class" => "Symfony\Component\Runtime\Runner\Symfony\HttpKernelRunner"
"type" => "->"
]
[
"file" => "/home/outofhand/public_html/public/index.php"
"line" => 5
"args" => [
"/home/outofhand/public_html/vendor/autoload_runtime.php"
]
"function" => "require_once"
]
]
|
Symfony\Component\HttpKernel\DataCollector\RequestDataCollector:71
[
[
"file" => "/home/outofhand/public_html/vendor/symfony/http-kernel/DataCollector/RequestDataCollector.php"
"line" => 71
"function" => "all"
"class" => "Symfony\Component\HttpFoundation\Session\Session"
"type" => "->"
]
[
"file" => "/home/outofhand/public_html/vendor/symfony/http-kernel/Profiler/Profiler.php"
"line" => 158
"function" => "collect"
"class" => "Symfony\Component\HttpKernel\DataCollector\RequestDataCollector"
"type" => "->"
]
[
"file" => "/home/outofhand/public_html/vendor/symfony/http-kernel/EventListener/ProfilerListener.php"
"line" => 102
"function" => "collect"
"class" => "Symfony\Component\HttpKernel\Profiler\Profiler"
"type" => "->"
]
[
"file" => "/home/outofhand/public_html/vendor/symfony/event-dispatcher/Debug/WrappedListener.php"
"line" => 115
"function" => "onKernelResponse"
"class" => "Symfony\Component\HttpKernel\EventListener\ProfilerListener"
"type" => "->"
]
[
"file" => "/home/outofhand/public_html/vendor/symfony/event-dispatcher/EventDispatcher.php"
"line" => 206
"function" => "__invoke"
"class" => "Symfony\Component\EventDispatcher\Debug\WrappedListener"
"type" => "->"
]
[
"file" => "/home/outofhand/public_html/vendor/symfony/event-dispatcher/EventDispatcher.php"
"line" => 56
"function" => "callListeners"
"class" => "Symfony\Component\EventDispatcher\EventDispatcher"
"type" => "->"
]
[
"file" => "/home/outofhand/public_html/vendor/symfony/event-dispatcher/Debug/TraceableEventDispatcher.php"
"line" => 122
"function" => "dispatch"
"class" => "Symfony\Component\EventDispatcher\EventDispatcher"
"type" => "->"
]
[
"file" => "/home/outofhand/public_html/vendor/symfony/http-kernel/HttpKernel.php"
"line" => 216
"function" => "dispatch"
"class" => "Symfony\Component\EventDispatcher\Debug\TraceableEventDispatcher"
"type" => "->"
]
[
"file" => "/home/outofhand/public_html/vendor/symfony/http-kernel/HttpKernel.php"
"line" => 204
"function" => "filterResponse"
"class" => "Symfony\Component\HttpKernel\HttpKernel"
"type" => "->"
]
[
"file" => "/home/outofhand/public_html/vendor/symfony/http-kernel/HttpKernel.php"
"line" => 76
"function" => "handleRaw"
"class" => "Symfony\Component\HttpKernel\HttpKernel"
"type" => "->"
]
[
"file" => "/home/outofhand/public_html/vendor/symfony/http-kernel/EventListener/ErrorListener.php"
"line" => 97
"function" => "handle"
"class" => "Symfony\Component\HttpKernel\HttpKernel"
"type" => "->"
]
[
"file" => "/home/outofhand/public_html/vendor/symfony/event-dispatcher/Debug/WrappedListener.php"
"line" => 115
"function" => "onKernelException"
"class" => "Symfony\Component\HttpKernel\EventListener\ErrorListener"
"type" => "->"
]
[
"file" => "/home/outofhand/public_html/vendor/symfony/event-dispatcher/EventDispatcher.php"
"line" => 206
"function" => "__invoke"
"class" => "Symfony\Component\EventDispatcher\Debug\WrappedListener"
"type" => "->"
]
[
"file" => "/home/outofhand/public_html/vendor/symfony/event-dispatcher/EventDispatcher.php"
"line" => 56
"function" => "callListeners"
"class" => "Symfony\Component\EventDispatcher\EventDispatcher"
"type" => "->"
]
[
"file" => "/home/outofhand/public_html/vendor/symfony/event-dispatcher/Debug/TraceableEventDispatcher.php"
"line" => 122
"function" => "dispatch"
"class" => "Symfony\Component\EventDispatcher\EventDispatcher"
"type" => "->"
]
[
"file" => "/home/outofhand/public_html/vendor/symfony/http-kernel/HttpKernel.php"
"line" => 241
"function" => "dispatch"
"class" => "Symfony\Component\EventDispatcher\Debug\TraceableEventDispatcher"
"type" => "->"
]
[
"file" => "/home/outofhand/public_html/vendor/symfony/http-kernel/HttpKernel.php"
"line" => 91
"function" => "handleThrowable"
"class" => "Symfony\Component\HttpKernel\HttpKernel"
"type" => "->"
]
[
"file" => "/home/outofhand/public_html/vendor/symfony/http-kernel/Kernel.php"
"line" => 182
"function" => "handle"
"class" => "Symfony\Component\HttpKernel\HttpKernel"
"type" => "->"
]
[
"file" => "/home/outofhand/public_html/vendor/symfony/runtime/Runner/Symfony/HttpKernelRunner.php"
"line" => 35
"function" => "handle"
"class" => "Symfony\Component\HttpKernel\Kernel"
"type" => "->"
]
[
"file" => "/home/outofhand/public_html/vendor/autoload_runtime.php"
"line" => 29
"function" => "run"
"class" => "Symfony\Component\Runtime\Runner\Symfony\HttpKernelRunner"
"type" => "->"
]
[
"file" => "/home/outofhand/public_html/public/index.php"
"line" => 5
"args" => [
"/home/outofhand/public_html/vendor/autoload_runtime.php"
]
"function" => "require_once"
]
]
|
Symfony\Component\HttpKernel\DataCollector\RequestDataCollector:72
[
[
"file" => "/home/outofhand/public_html/vendor/symfony/http-kernel/DataCollector/RequestDataCollector.php"
"line" => 72
"function" => "getFlashBag"
"class" => "Symfony\Component\HttpFoundation\Session\Session"
"type" => "->"
]
[
"file" => "/home/outofhand/public_html/vendor/symfony/http-kernel/Profiler/Profiler.php"
"line" => 158
"function" => "collect"
"class" => "Symfony\Component\HttpKernel\DataCollector\RequestDataCollector"
"type" => "->"
]
[
"file" => "/home/outofhand/public_html/vendor/symfony/http-kernel/EventListener/ProfilerListener.php"
"line" => 102
"function" => "collect"
"class" => "Symfony\Component\HttpKernel\Profiler\Profiler"
"type" => "->"
]
[
"file" => "/home/outofhand/public_html/vendor/symfony/event-dispatcher/Debug/WrappedListener.php"
"line" => 115
"function" => "onKernelResponse"
"class" => "Symfony\Component\HttpKernel\EventListener\ProfilerListener"
"type" => "->"
]
[
"file" => "/home/outofhand/public_html/vendor/symfony/event-dispatcher/EventDispatcher.php"
"line" => 206
"function" => "__invoke"
"class" => "Symfony\Component\EventDispatcher\Debug\WrappedListener"
"type" => "->"
]
[
"file" => "/home/outofhand/public_html/vendor/symfony/event-dispatcher/EventDispatcher.php"
"line" => 56
"function" => "callListeners"
"class" => "Symfony\Component\EventDispatcher\EventDispatcher"
"type" => "->"
]
[
"file" => "/home/outofhand/public_html/vendor/symfony/event-dispatcher/Debug/TraceableEventDispatcher.php"
"line" => 122
"function" => "dispatch"
"class" => "Symfony\Component\EventDispatcher\EventDispatcher"
"type" => "->"
]
[
"file" => "/home/outofhand/public_html/vendor/symfony/http-kernel/HttpKernel.php"
"line" => 216
"function" => "dispatch"
"class" => "Symfony\Component\EventDispatcher\Debug\TraceableEventDispatcher"
"type" => "->"
]
[
"file" => "/home/outofhand/public_html/vendor/symfony/http-kernel/HttpKernel.php"
"line" => 204
"function" => "filterResponse"
"class" => "Symfony\Component\HttpKernel\HttpKernel"
"type" => "->"
]
[
"file" => "/home/outofhand/public_html/vendor/symfony/http-kernel/HttpKernel.php"
"line" => 76
"function" => "handleRaw"
"class" => "Symfony\Component\HttpKernel\HttpKernel"
"type" => "->"
]
[
"file" => "/home/outofhand/public_html/vendor/symfony/http-kernel/EventListener/ErrorListener.php"
"line" => 97
"function" => "handle"
"class" => "Symfony\Component\HttpKernel\HttpKernel"
"type" => "->"
]
[
"file" => "/home/outofhand/public_html/vendor/symfony/event-dispatcher/Debug/WrappedListener.php"
"line" => 115
"function" => "onKernelException"
"class" => "Symfony\Component\HttpKernel\EventListener\ErrorListener"
"type" => "->"
]
[
"file" => "/home/outofhand/public_html/vendor/symfony/event-dispatcher/EventDispatcher.php"
"line" => 206
"function" => "__invoke"
"class" => "Symfony\Component\EventDispatcher\Debug\WrappedListener"
"type" => "->"
]
[
"file" => "/home/outofhand/public_html/vendor/symfony/event-dispatcher/EventDispatcher.php"
"line" => 56
"function" => "callListeners"
"class" => "Symfony\Component\EventDispatcher\EventDispatcher"
"type" => "->"
]
[
"file" => "/home/outofhand/public_html/vendor/symfony/event-dispatcher/Debug/TraceableEventDispatcher.php"
"line" => 122
"function" => "dispatch"
"class" => "Symfony\Component\EventDispatcher\EventDispatcher"
"type" => "->"
]
[
"file" => "/home/outofhand/public_html/vendor/symfony/http-kernel/HttpKernel.php"
"line" => 241
"function" => "dispatch"
"class" => "Symfony\Component\EventDispatcher\Debug\TraceableEventDispatcher"
"type" => "->"
]
[
"file" => "/home/outofhand/public_html/vendor/symfony/http-kernel/HttpKernel.php"
"line" => 91
"function" => "handleThrowable"
"class" => "Symfony\Component\HttpKernel\HttpKernel"
"type" => "->"
]
[
"file" => "/home/outofhand/public_html/vendor/symfony/http-kernel/Kernel.php"
"line" => 182
"function" => "handle"
"class" => "Symfony\Component\HttpKernel\HttpKernel"
"type" => "->"
]
[
"file" => "/home/outofhand/public_html/vendor/symfony/runtime/Runner/Symfony/HttpKernelRunner.php"
"line" => 35
"function" => "handle"
"class" => "Symfony\Component\HttpKernel\Kernel"
"type" => "->"
]
[
"file" => "/home/outofhand/public_html/vendor/autoload_runtime.php"
"line" => 29
"function" => "run"
"class" => "Symfony\Component\Runtime\Runner\Symfony\HttpKernelRunner"
"type" => "->"
]
[
"file" => "/home/outofhand/public_html/public/index.php"
"line" => 5
"args" => [
"/home/outofhand/public_html/vendor/autoload_runtime.php"
]
"function" => "require_once"
]
]
|
Flashes
Flashes
No flash messages were created.
Server Parameters
Server Parameters
Defined in .env
| Key | Value |
|---|---|
| API_CLIENTID | "0" |
| API_COMPANY | "printops" |
| API_DOMAIN | "https://mirror.print-ops.com" |
| API_KEY_PUBLIC | "pNZFkqUylYSO6PSTYeME5jS1DJha5Cy75r9wXOcJ" |
| APP_ENV | "dev" |
| APP_SECRET | "2ca64f8d83b9e89f5f19d672841d6bb8" |
| CDN_DOMAIN | "https://ops.print-ops.com" |
| COMPANY_NAME | "Out of Hand" |
| CONTACT_EMAIL | "istvan@jamjarprint.co.uk" |
| EWZ_RECAPTCHA_SECRET | "6LdVvBYUAAAAAK1D_3LqwdaN1u6puXSMcopZ6nJU" |
| EWZ_RECAPTCHA_SITE_KEY | "6LdVvBYUAAAAAItsdWYH6hBPCXB8dOel5poFMAbj" |
| GOOGLE_RECAPTCHA_SECRET | "6LdVvBYUAAAAAK1D_3LqwdaN1u6puXSMcopZ6nJU" |
| GOOGLE_RECAPTCHA_SITE_KEY | "6LdVvBYUAAAAAItsdWYH6hBPCXB8dOel5poFMAbj" |
| HAS_BLOG | "1" |
| LOCK_DSN | "flock" |
| MAILER_DSN | "native://default" |
Defined as regular env variables
| Key | Value |
|---|---|
| APP_DEBUG | "1" |
| CONTEXT_DOCUMENT_ROOT | "/home/outofhand/public_html/public" |
| CONTEXT_PREFIX | "" |
| DOCUMENT_ROOT | "/home/outofhand/public_html/public" |
| FCGI_ROLE | "RESPONDER" |
| GATEWAY_INTERFACE | "CGI/1.1" |
| HOME | "/home/outofhand" |
| HTTPS | "on" |
| HTTP_ACCEPT | "*/*" |
| HTTP_ACCEPT_ENCODING | "gzip, br, deflate" |
| HTTP_FROM | "gptbot(at)openai.com" |
| HTTP_HOST | "78.129.140.211" |
| HTTP_USER_AGENT | "Mozilla/5.0 AppleWebKit/537.36 (KHTML, like Gecko; compatible; GPTBot/1.3; +https://openai.com/gptbot)" |
| HTTP_X_HTTPS | "1" |
| HTTP_X_OPENAI_HOST_HASH | "439390935" |
| PATH | "/usr/local/jdk/bin:/usr/kerberos/sbin:/usr/kerberos/bin:/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin:/usr/X11R6/bin:/usr/local/bin:/usr/X11R6/bin:/root/bin:/opt/bin" |
| PHP_SELF | "/index.php" |
| QUERY_STRING | "" |
| REDIRECT_HTTPS | "on" |
| REDIRECT_SCRIPT_URI | "https://78.129.140.211/fringe/venue-wayfinding-arrows" |
| REDIRECT_SCRIPT_URL | "/fringe/venue-wayfinding-arrows" |
| REDIRECT_STATUS | "200" |
| REDIRECT_URL | "/fringe/venue-wayfinding-arrows" |
| REMOTE_ADDR | "74.7.227.48" |
| REMOTE_PORT | "39246" |
| REQUEST_METHOD | "GET" |
| REQUEST_SCHEME | "https" |
| REQUEST_TIME | 1765468372 |
| REQUEST_TIME_FLOAT | 1765468372.9577 |
| REQUEST_URI | "/fringe/venue-wayfinding-arrows" |
| SCRIPT_FILENAME | "/home/outofhand/public_html/public/index.php" |
| SCRIPT_NAME | "/index.php" |
| SCRIPT_URI | "https://78.129.140.211/fringe/venue-wayfinding-arrows" |
| SCRIPT_URL | "/fringe/venue-wayfinding-arrows" |
| SERVER_ADDR | "78.129.140.211" |
| SERVER_ADMIN | "webmaster@dev.outofhand.co.uk" |
| SERVER_NAME | "78.129.140.211" |
| SERVER_PORT | "443" |
| SERVER_PROTOCOL | "HTTP/1.1" |
| SERVER_SIGNATURE | "" |
| SERVER_SOFTWARE | "Apache" |
| SYMFONY_DOTENV_PATH | "/home/outofhand/public_html/.env" |
| SYMFONY_DOTENV_VARS | "APP_ENV,APP_SECRET,MAILER_DSN,GOOGLE_RECAPTCHA_SITE_KEY,GOOGLE_RECAPTCHA_SECRET,EWZ_RECAPTCHA_SITE_KEY,EWZ_RECAPTCHA_SECRET,API_DOMAIN,API_KEY_PUBLIC,API_COMPANY,COMPANY_NAME,CDN_DOMAIN,API_CLIENTID,CONTACT_EMAIL,HAS_BLOG,LOCK_DSN" |
| USER | "outofhand" |
| argc | 0 |
| argv | [] |
| proxy-nokeepalive | "1" |
Sub Requests 1
ErrorController (token = e01bb8)
| Key | Value |
|---|---|
| _controller | "error_controller" |
| _stopwatch_token | "23f1fe" |
| exception | Twig\Error\RuntimeError {#630 #message: "Key "selecttype" for sequence/mapping with keys "typeid, friendlyname, processes, productid, active, ispackaging, type" does not exist." #code: 0 #file: "/home/outofhand/public_html/opsfrontendoutdoorbundle/OpsFrontendOutdoorBundle/src/templates/fringe/page.html.twig" #line: 296 -lineno: 296 -name: "@ops_frontend_outdoor_bundle/fringe/page.html.twig" -rawMessage: "Key "selecttype" for sequence/mapping with keys "typeid, friendlyname, processes, productid, active, ispackaging, type" does not exist." -sourcePath: "/home/outofhand/public_html/opsfrontendoutdoorbundle/OpsFrontendOutdoorBundle/src/templates/fringe/page.html.twig" -sourceCode: """ {% extends 'template.html.twig' %}\n \n {% block htmltitle %}{{ page.htmltitle }}{% endblock %}\n {% block metadesc %}{{ page.metadesc }}{% endblock %}\n {% block metakeywords %}{{ page.metakeywords }}{% endblock %}\n \n {% set pageimage = 'noimage.png' %}\n {% if page.images is not null %}\n {% if page.images|length == 1 %}\n {% set pageimage = page.images[0].image %}\n {% else %}\n {% for image in page.images %}\n {% if '1' in image.imageflag %}\n {% set pageimage = image.image %}\n {% endif %}\n {% endfor %}\n {% endif %}\n {% endif %}\n \n {% block extrameta %}\n <meta property="og:url" content="{{ app.request.getUri }}" />\n <meta property="og:title" content="{{ page.pagename }}" />\n <meta property="og:description" content="{{ page.blurb|striptags|raw }}" />\n <meta property="og:image" content="{{ cdn_domain }}/assets/images/pages/{{ pageimage}}"/>\n <meta name="twitter:card" content="summary" />\n <meta name="twitter:image:src" content="{{ cdn_domain }}/assets/images/pages/{{ pageimage}}">\n <meta name="twitter:site" content="@jamjarprint" />\n <meta property="twitter:url" content="{{ app.request.getUri }}" />\n <meta name="twitter:title" content="{{ page.pagename }}" />\n <meta name="twitter:description" content="{{ page.blurb|striptags|raw }}" />\n {% endblock %}\n {% block css %}\n <style>\n select option[disabled] {\n display: none;\n }\n .chosen-container .chosen-results li.disabled-result {\n display: none !important;\n }\n </style>\n {% endblock %}\n {% block headjavascripts %}\n {% endblock %}\n \n {% block contentcontainerstart %}\n <div class="container-fluid p-0">\n {% endblock %}\n \n {% block contentcontainerend %}\n </div>\n {% endblock %}\n \n {% block body %}\n \n {% if page.pageblurb4 is not null and page.pageblurb4 is not empty %}\n {% set productfeatures = page.pageblurb4|split(',') %}\n {% else %}\n {% set productfeatures = " " %}\n {% endif %}\n \n <div class="fringe-23 product-page">\n <div class="container mt-5">\n <div class="row">\n <div class="col-sm-12 col-md-6">\n <div class="single-images">\n {% if page.images is not empty %}\n {% set mainimage = page.images[0].image %}\n {% for image in page.images %}\n {% if '1' in image.imageflag %}\n {% set mainimage = image.image %}\n {% endif %}\n {% endfor %}\n <a class="popup-image" href="{{ cdn_domain }}/assets/images/pages/{{ mainimage }}"><img class="main-image" src="{{ cdn_domain }}/assets/images/pages/{{ mainimage }}" alt="{{ page.pagename }}"/></a>\n <div class="single-product-thumbnails">\n {% for image in page.images %}\n {% if '2' not in image.imageflag %}\n <span {% if loop.index == 0 %}class="selected" {% endif %}data-image_full="{{ cdn_domain }}/assets/images/pages/{{ image.image }}"><img src="{{ cdn_domain }}/assets/images/pages/{{ image.image }}" width="76"/></span>\n {% endif %}\n {% endfor %}\n </div>\n {% endif %}\n </div>\n <div class="clearfix"></div>\n </div>\n <div class="col-sm-12 col-md-6">\n <div class="summary entry-summary">\n <div class="product-icon">{% if productfeatures|length > 1 %}<img src="{{ productfeatures.2 }}" />{% endif %}</div>\n <h1 {% if productfeatures|length > 1 %}style="color:{{ productfeatures.1 }};"{% endif %}>{{ page.pagename }}</h1>\n <h5 {% if productfeatures|length > 1 %}style="color:{{ productfeatures.1 }};"{% endif %}>{{ page.pageblurb3|raw }}</h5>\n \n {% if packages|length+prices|length == 1 %}\n {#has only one thing linked-which is a price or a package#}\n {% if prices|length == 1 %}\n {% for price in prices %}\n {% set stocklevel = price.productvariation.stocklevel %}\n {% if price.productvariation.slotstocklevel is defined and price.productvariation.stocklevelused == 1 %}\n {% set stocklevel = price.productvariation.slotstocklevel %}\n {% endif %}\n <div class="col-sm-12 col-md-12">\n <p class="price">\n <ins><span class="amount">£{{ price.price|number_format(2) }}{% if price.productprice.singlequantity == 1 %} each{% endif %}</span></ins>\n </p>\n {% if stocklevel > 0 %}\n <span class="in-stock"><i class="fa fa-check-circle-o"></i> We have <span id="stocklevel{{ price.priceid }}">{{ stocklevel }}</span> in stock</span>\n {% else %}\n <span class="in-stock"><i class="fa fa-times-circle-o"></i> Sorry, we are out of stock</span>\n {% endif %}\n </div>\n <div class="col-sm-12 col-md-12">\n <hr>\n {% if stocklevel > 0 %}\n {% set restrictbylocation = 0 %}\n {% set restrictbyzone = 0 %}\n {% set restrictbycampaign = 0 %}\n {% set restrictbycampaignpriceid = 0 %}\n {% if price.productvariation.product.restrictions is defined %}\n {% if price.productvariation.product.restrictions.bylocation is not null %}\n {% set restrictbylocation = price.productvariation.product.restrictions.bylocation %}\n {% endif %}\n {% if price.productvariation.product.restrictions.byzone is not null %}\n {% set restrictbyzone = price.productvariation.product.restrictions.byzone %}\n {% endif %}\n {% if price.productvariation.product.restrictions.bycampaign is not null %}\n {% set restrictbycampaign = price.productvariation.product.restrictions.bycampaign %}\n {% endif %}\n {% set restrictbycampaignpriceid = price.priceid %}\n {% endif %}\n <div class="cart_totals">\n <p>\n <button type="button" class="single_add_to_cart_button button-23 button-23-green button-23-icon no-margin add-fringe-campaign-item" data-price="{{ price.price }}" data-priceid="{{ price.priceid }}" data-stocklevel="{{ stocklevel }}" data-restrictbylocation="{{ restrictbylocation }}" data-restrictbyzone="{{ restrictbyzone }}" data-restrictbycampaign="{{ restrictbycampaign }}" data-restrictbycampaignpriceid="{{ restrictbycampaignpriceid }}"><span class="icon"><svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 41.255 36.663"><use href="{{ asset('assets/images/2023/icon-basket.svg') }}#icon-basket"></use></svg></span><span class="label">Buy Now</span></button>\n </p>\n </div>\n <hr>\n {% endif %}\n </div>\n {% endfor %}\n {% else %}\n {% if packages|length == 1 %}\n {% set package = packages[0] %}\n {% set stocklevel = 0 %}\n {% set singlequantity = 0 %}\n {% set restrictbylocation = 0 %}\n {% set restrictbyzone = 0 %}\n {% set restrictbycampaign = 0 %}\n {% set restrictbycampaignpriceid = 0 %}\n {% set productvariation = null %}\n {% for price in package.productpackage.packageprices %}\n {% if price.categoryid == 3 %}\n {% for variation in variations %}\n {% if price.variation.variationid == variation.variationid %}\n {% set productvariation = variation %}\n {% endif %}\n {% endfor %}\n {% set stocklevel = productvariation.stocklevel %}\n {% set singlequantity = price.productprice.singlequantity %}\n {% if productvariation.product.restrictions is defined %}\n {% if productvariation.product.restrictions.bylocation is not null %}\n {% set restrictbylocation = productvariation.product.restrictions.bylocation %}\n {% endif %}\n {% if productvariation.product.restrictions.byzone is not null %}\n {% set restrictbyzone = productvariation.product.restrictions.byzone %}\n {% endif %}\n {% if productvariation.product.restrictions.bycampaign is not null %}\n {% set restrictbycampaign = productvariation.product.restrictions.bycampaign %}\n {% endif %}\n {% set restrictbycampaignpriceid = price.priceid %}\n {% endif %}\n {% if productvariation.slotstocklevel is defined and productvariation.stocklevelused == 1 %}\n {% set stocklevel = productvariation.slotstocklevel %}\n {% endif %}\n {% endif %}\n {% if price.categoryid == 6 %}\n {% set stocklevel = price.variation.stocklevel %}\n {% endif %}\n {% endfor %}\n <div class="col-sm-12 col-md-12">\n <p class="price">\n <ins><span class="amount">£{{ package.productpackage.price|number_format(2) }} each</span></ins>\n </p>\n {% if stocklevel > 0 %}\n <span class="in-stock"><i class="fa fa-check-circle-o"></i> We have <span id="stocklevel{{ package.packageid }}">{{ stocklevel }}</span> in stock</span>\n {% else %}\n <span class="in-stock"><i class="fa fa-times-circle-o"></i> Sorry, we are out of stock</span>\n {% endif %}\n </div>\n <div class="col-sm-12 col-md-12">\n <hr>\n {% if stocklevel > 0 %}\n <div class="cart_totals">\n <button type="button" class="single_add_to_cart_button button-23 button-23-green button-23-icon no-margin add-fringe-package-item" data-packageid="{{ package.packageid }}" data-stocklevel="{{ stocklevel }}" data-restrictbylocation="{{ restrictbylocation }}" data-restrictbyzone="{{ restrictbyzone }}" data-restrictbycampaign="{{ restrictbycampaign }}" data-restrictbycampaignpriceid="{{ restrictbycampaignpriceid }}"><span class="icon"><svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 41.255 36.663"><use href="{{ asset('assets/images/2023/icon-basket.svg') }}#icon-basket"></use></svg></span><span class="label">Buy Now</span></button>\n </div>\n <hr>\n {% endif %}\n </div>\n {% endif %}\n {% endif %}\n {% else %}\n <div class="login">\n <select class="form-control" id="pricetabselect" autocomplete="off">\n {% for package in packages|sort %}\n <option value="package-{{ package.packageid }}">{{ package.productpackage.productname }}</option>\n {% endfor %}\n {% for price in prices|sort %}\n <option value="price-{{ price.priceid }}">{{ price.productvariation.friendlyname }}</option>\n {% endfor %}\n </select>\n </div>\n {% set displayed = 0 %}\n {% for package in packages|sort %}\n {% set id = package.packageid %}\n {% set currprice = package.productpackage.price %}\n {% set singlequantity = 0 %}\n {% set stocklevel = 0 %}\n {% set restrictbylocation = 0 %}\n {% set restrictbyzone = 0 %}\n {% set restrictbycampaign = 0 %}\n {% set restrictbycampaignpriceid = 0 %}\n {% for price in package.productpackage.packageprices %}\n {% if price.categoryid == 3 %}\n {% set singlequantity = price.productprice.singlequantity %}\n {% for variation in variations %}\n {% if price.variation.variationid == variation.variationid %}\n {% set stocklevel = variation.stocklevel %}\n {% if variation.product.restrictions is defined %}\n {% if variation.product.restrictions.bylocation is not null %}\n {% set restrictbylocation = variation.product.restrictions.bylocation %}\n {% endif %}\n {% if variation.product.restrictions.byzone is not null %}\n {% set restrictbyzone = variation.product.restrictions.byzone %}\n {% endif %}\n {% if variation.product.restrictions.bycampaign is not null %}\n {% set restrictbycampaign = variation.product.restrictions.bycampaign %}\n {% endif %}\n {% endif %}\n {% if variation.slotstocklevel is defined and variation.stocklevelused == 1 %}\n {% set stocklevel = variation.slotstocklevel %}\n {% endif %}\n {% endif %}\n {% endfor %}\n {% endif %}\n {% endfor %}\n <div id="priceforpackage-{{ id }}" class="pricetab" {% if displayed == 1 %}style="display: none"{% else %}{% set displayed = 1 %}{% endif %}>\n <div class="col-sm-12 col-md-12">\n <p class="price">\n <ins><span class="amount">£{{ currprice|number_format(2) }} {% if singlequantity == 1 %} each{% endif %}</span></ins>\n </p>\n {% if stocklevel > 0 %}\n <span class="in-stock"><i class="fa fa-check-circle-o"></i> We have <span id="stocklevel{{ id }}">{{ stocklevel }}</span> in stock</span>\n {% else %}\n <span class="in-stock"><i class="fa fa-times-circle-o"></i> Sorry, we are out of stock</span>\n {% endif %}\n </div>\n <div class="col-sm-12 col-md-12">\n <hr>\n {% if stocklevel > 0 %}\n <div class="cart_totals">\n <button type="button" class="single_add_to_cart_button button-23 button-23-green button-23-icon no-margin add-fringe-package-item" data-packageid="{{ package.packageid }}" data-stocklevel="{{ stocklevel }}" data-restrictbylocation="{{ restrictbylocation }}" data-restrictbyzone="{{ restrictbyzone }}" data-restrictbycampaign="{{ restrictbycampaign }}" data-restrictbycampaignpriceid="{{ restrictbycampaignpriceid }}"><span class="icon"><svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 41.255 36.663"><use href="{{ asset('assets/images/2023/icon-basket.svg') }}#icon-basket"></use></svg></span><span class="label">Buy Now</span></button>\n </div>\n <hr>\n {% endif %}\n </div>\n </div>\n {% endfor %}\n {% for price in prices|sort %}\n {% set id = price.priceid %}\n {% set currprice = price.price %}\n {% set singlequantity = 0 %}\n {% set quantity = 0 %}\n {% set stocklevel = 0 %}\n {% set selecttype = 0 %} {# 0-zone,1-location,2-none#}\n {% set structuretype = 0 %}\n {% set restrictbylocation = 0 %}\n {% set restrictbyzone = 0 %}\n {% set restrictbycampaign = 0 %}\n {% set restrictbycampaignpriceid = 0 %}\n {% for variation in variations %}\n {% if variation.variationid == price.variationid %}\n {% set id = price.priceid %}\n {% set currprice = price.price %}\n {% set singlequantity = price.productprice.singlequantity %}\n {% set stocklevel = variation.stocklevel %}\n {% if variation.product.restrictions is defined %}\n {% if variation.product.restrictions.bylocation is not null %}\n {% set restrictbylocation = variation.product.restrictions.bylocation %}\n {% endif %}\n {% if variation.product.restrictions.byzone is not null %}\n {% set restrictbyzone = variation.product.restrictions.byzone %}\n {% endif %}\n {% if variation.product.restrictions.bycampaign is not null %}\n {% set restrictbycampaign = variation.product.restrictions.bycampaign %}\n {% endif %}\n {% set restrictbycampaignpriceid = price.priceid %}\n {% endif %}\n \n {% set stocklevel = variation.stocklevel %}\n {% set selecttype = variation.product.selecttype %} {# 0-zone,1-location,2-none#}\n {% set structuretype = variation.product.structuretypeid %}\n {% if variation.product.restrictions is defined %}\n {% set restrictbylocation = variation.product.restrictions.bylocation %}\n {% set restrictbycampaign = variation.product.restrictions.bycampaign %}\n {% set restrictbyzone = variation.product.restrictions.byzone %}\n {% endif %}\n \n {% if variation.slotstocklevel is defined and variation.stocklevelused == 1 %}\n {% set stocklevel = variation.slotstocklevel %}\n {% endif %}\n {% endif %}\n {% endfor %}\n <div id="priceforprice-{{ id }}" class="pricetab" {% if displayed == 1 %}style="display: none"{% else %}{% set displayed = 1 %}{% endif %}>\n <div class="col-sm-12 col-md-12">\n <p class="price">\n <ins><span class="amount">£{{ currprice|number_format(2) }} {% if singlequantity == 1 %} each{% endif %}</span></ins>\n </p>\n {% if stocklevel > 0 %}\n <span class="in-stock"><i class="fa fa-check-circle-o"></i> We have <span id="stocklevel{{ id }}">{{ stocklevel }}</span> in stock</span>\n {% else %}\n <span class="in-stock"><i class="fa fa-times-circle-o"></i> Sorry, we are out of stock</span>\n {% endif %}\n </div>\n <div class="col-sm-12 col-md-12">\n <hr>\n {% if stocklevel > 0 %}\n <div class="cart_totals">\n <p>\n <button type="button" class="single_add_to_cart_button button-23 button-23-green button-23-icon no-margin add-fringe-campaign-item" data-price="{{ price.price }}" data-priceid="{{ price.priceid }}" data-stocklevel="{{ stocklevel }}" data-restrictbylocation="{{ restrictbylocation }}" data-restrictbyzone="{{ restrictbyzone }}" data-restrictbycampaign="{{ restrictbycampaign }}" data-restrictbycampaignpriceid="{{ restrictbycampaignpriceid }}"><span class="icon"><svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 41.255 36.663"><use href="{{ asset('assets/images/2023/icon-basket.svg') }}#icon-basket"></use></svg></span><span class="label">Buy Now</span></button>\n </p>\n </div>\n <hr>\n {% endif %}\n </div>\n </div>\n {% endfor %}\n {% endif %}\n \n <div class="clearfix"></div>\n {# <div class="text-center text-uppercase" style="">\n Price Includes 10% Earlybird Discount\n <hr>\n </div>#}\n <div class="description text-justify">\n {{ page.blurb|raw }}\n </div>\n </div>\n </div>\n </div>\n </div>\n \n <div class="section-intro">\n <div class="row">\n <div class="container">\n <div class="row">\n {% if productfeatures|length > 1 and productfeatures.0 == "Zone" %}\n <div class="col-md-4">\n <h3>This is a <span class="highlight-red">zone</span><br>Based product</h3>\n </div>\n <div class="col-md-8">\n <div>\n <h3>Zone</h3>\n <p>We have divided the city into four zones to create a zonal booking structure for selected formats. Posters will be placed on general distribution across all the advertising sites we have available for each format within that zone, e.g. if you book 10 x 4-sheets in Zone One which has 10 different sites for that format, one poster will go on each site. So, if you only want to target the area around the Pleasance Courtyard, now you can! When you book, out of your total order, please specify how many posters you want in each zone.</p>\n </div>\n </div>\n {% elseif productfeatures|length > 1 and productfeatures.0 == "Replacement" %}\n <div class="col-md-4">\n <h3>This is a <span class="highlight-red">Replacement</span><br> product</h3>\n </div>\n <div class="col-md-8">\n <div>\n <p>Purchase spare replacement posters in case of damage during Fringe, your design printed onto correx. We suggest 10% extra on top of your total booking - e.g if you book 10 boards, we need 1 extra board.</p>\n </div>\n </div>\n {% elseif productfeatures|length > 1 and productfeatures.0 == "Design" %}\n <div class="col-md-4">\n <h3>This is a <span class="highlight-red">Design</span><br> service</h3>\n </div>\n <div class="col-md-8">\n <div>\n <h3>Creative Design Package</h3>\n <p>You supply the text, but no photos / images. We use a suitable photo from Stock Library. </p>\n </div>\n <div>\n <h3>Image Supplied Package</h3>\n <p>You supply high resolution photos, text, logos and brief of what you'd like. </p>\n </div>\n </div>\n {% else %}\n <div class="col-md-4">\n <h3>This is a <span class="highlight-red">Location</span><br>Based product</h3>\n </div>\n <div class="col-md-8">\n <div>\n <h3>Location</h3>\n <p>A majority of our advertising formats are booked by specific location – just refer to our map at www.outofhand.co.uk for each format and pick the exact location you’d like to book your poster advertising, and it will be fitted in that location.</p>\n </div>\n </div>\n {% endif %}\n </div>\n </div>\n </div>\n </div>\n \n <div class="container section-margin-bottom">\n <div id="addFringePackageItemDiv">\n \n </div>\n </div>\n \n \n \n <div id="product-checkout-popup" style="display:none;">\n <div class="row">\n <div class="col">\n <h4 class="lower-case text-center">You've added {{ page.pagename }}<span class="popup-fringe"></span> to the basket.</h4>\n </div>\n </div>\n <hr>\n \n <div class="section product-popup-summary row gy-3 px-2 px-sm-5 mb-5">\n <div class="product-image col-sm-2"><img class="img-fluid rounded" src="{{ cdn_domain }}/assets/images/pages/{{ mainimage }}" alt="4 Sheet Correx"></div>\n <div class="product-info col-sm-10">\n <div class="product-icon float-end" style="width: 50px">{% if productfeatures|length > 1 %}<img src="{{ productfeatures.2 }}" />{% endif %}</div>\n <h2 {% if productfeatures|length > 1 %}style="color:{{ productfeatures.1 }};"{% endif %}>{{ page.pagename }}</h2>\n <h5 class="lower-case" {% if productfeatures|length > 1 %}style="color:{{ productfeatures.1 }};"{% endif %}>{{ page.pageblurb3|raw }}</h5>\n <h6 class="popup-campaign"></h6>\n </div>\n </div>\n \n {#\n {% if (productfeatures|length > 1) and (productfeatures.3 is defined) and (productfeatures.3 == "high") %}\n <div class="section-intro no-margin">\n <div class="risk col-md-4 text-center">\n <span class="icon"><svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 89.652 98.717"><use href="/assets/images/2023/icon-fringe-replacements.svg#icon-fringe-replacements"></use></svg></span>\n <h4>SPARES</h4>\n </div>\n <div class="col-md-8 text-center">\n <h6>Consider buying spares for this product.</h6>\n <h4 class="risk-type"><span class="icon"><svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 70.449 60.24"><use href="/assets/images/2023/icon-high-risk.svg#icon-high-risk"></use></svg></span>High<br>Damage Risk</h4>\n <p>There is a HIGH risk this format may get damaged during the Fringe, please order spares in case the original posters get damaged.</p>\n {% if productfeatures.4 is defined %}\n <a href="{{ productfeatures.4 }}" class="button-23 button-23-green button-23-icon no-margin" ><span class="icon"><svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 89.652 98.717"><use href="{{ asset('assets/images/2023/icon-fringe-replacements.svg') }}#icon-fringe-replacements"></use></svg></span><span class="label">Buy Spares for this product</span></a>\n {% endif %}\n </div>\n </div>\n {% endif %}\n #}\n \n {% if (productfeatures|length > 1) and (productfeatures.3 is defined) and (productfeatures.3 == "high" or productfeatures.3 == "medium" or productfeatures.3 == "low") %}\n <div class="section row px-2 px-sm-5 py-4 bg-body-secondary">\n <div class="col-md-2 text-center d-flex flex-column justify-content-center align-items-center pb-3 pb-sm-0">\n <span class="icon d-inline-block mb-2" style="width: 70px"><svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 89.652 98.717"><use href="/assets/images/2023/icon-fringe-replacements.svg#icon-fringe-replacements"></use></svg></span>\n <h4>SPARES</h4>\n </div>\n <div class="col-md-10 text-center">\n <div class="row px-2 px-sm-5">\n <div class="col-12 mb-3">\n <h6>Consider buying spares for this product.</h6>\n </div>\n <div class="col-12 mb-3">\n {% if productfeatures.3 == "medium" %}\n <h4 class="risk-type d-inline-flex mb-4"><svg class="d-inline-block me-3" style="width: 50px" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 70.449 60.24"><use href="/assets/images/2023/icon-medium-risk.svg#icon-medium-risk"></use></svg>Medium<br>Damage Risk</h4>\n <p>There is a MEDIUM risk this format may get damaged during the Fringe, please order spares in case the original posters get damaged.</p>\n {% elseif productfeatures.3 == "high" %}\n <h4 class="risk-type d-inline-flex mb-4"><svg class="d-inline-block me-3" style="width: 50px" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 70.449 60.24"><use href="/assets/images/2023/icon-high-risk.svg#icon-high-risk"></use></svg>High<br>Damage Risk</h4>\n <p>There is a HIGH risk this format may get damaged during the Fringe, please order spares in case the original posters get damaged.</p>\n {% elseif productfeatures.3 == "low" %}\n <h4 class="risk-type d-inline-flex mb-4"><svg class="d-inline-block me-3" style="width: 50px" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 70.449 60.24"><use href="/assets/images/2023/icon-low-risk.svg#icon-low-risk"></use></svg>Low<br>Damage Risk</h4>\n <p>There is a LOW risk this format may get damaged during the Fringe.</p>\n {% endif %}\n </div>\n {% if productfeatures.4 is defined %}\n <div class="col-12">\n <a href="{{ productfeatures.4 }}" class="button-23 button-23-green button-23-icon no-margin" ><span class="icon"><svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 89.652 98.717"><use href="{{ asset('assets/images/2023/icon-fringe-replacements.svg') }}#icon-fringe-replacements"></use></svg></span><span class="label">Buy Spares for this product</span></a>\n </div>\n {% endif %}\n </div>\n </div>\n </div>\n {% endif %}\n {#\n {% if (productfeatures|length > 1) and (productfeatures.3 is defined) and (productfeatures.3 == "low") %}\n <div class="section-intro no-margin">\n <div class="risk col-md-4">\n <span class="icon"><svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 89.652 98.717"><use href="/assets/images/2023/icon-fringe-replacements.svg#icon-fringe-replacements"></use></svg></span>\n <h4>SPARES</h4>\n </div>\n <div class="col-md-8 text-center">\n <h6>Consider buying spares for this product.</h6>\n <h4 class="risk-type"><span class="icon"><svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 70.449 60.24"><use href="/assets/images/2023/icon-low-risk.svg#icon-low-risk"></use></svg></span>Low<br>Damage Risk</h4>\n <p>There is a LOW risk this format may get damaged during the Fringe.</p>\n {% if productfeatures.4 is defined %}\n <a href="{{ productfeatures.4 }}" class="button-23 button-23-green button-23-icon no-margin" ><span class="icon"><svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 89.652 98.717"><use href="{{ asset('assets/images/2023/icon-fringe-replacements.svg') }}#icon-fringe-replacements"></use></svg></span><span class="label">Buy Spares for this product</span></a>\n {% endif %}\n </div>\n </div>\n {% endif %}\n #}\n \n <div class="no-margin text-center">\n <a href="/fringe/order-by-product" class="button-23 button-23-orange button-23-icon no-margin" ><span class="icon"><svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 41.255 36.663"><use href="{{ asset('assets/images/2023/icon-basket.svg') }}#icon-basket"></use></svg></span><span class="label">Continue Shopping</span></a>\n \n <a href="/basket-campaigns" class="button-23 button-23-green button-23-icon mt-4 mb-0" ><span class="icon"><svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 26.374 21.786"><use href="{{ asset('assets/images/2023/icon-basket-check.svg') }}#icon-basket-check"></use></svg></span><span class="label">Checkout</span></a>\n </div>\n </div>\n \n \n \n {% if page.pageblurb2|length > 1 %}\n \n <h3 class="text-center section-margin-top">We also recommend</h3>\n <div class="product-listing-wrapper container">\n <div class="recommended-products row g-lg-5">\n {{ page.pageblurb2|raw }}\n </div>\n </div>\n \n {% endif %}\n </div>\n \n {% include '@ops_frontend_outdoor_bundle/blocks/campaigns.html.twig' %}\n {% endblock%}\n \n {% block javascripts %}\n <script>\n $(document).ready(function () {\n $('body').addClass('fringe-body fringe-23 page-{{ page.friendlyurl }}');\n \n company.addFringeItemListener();\n setProductPagePadding();\n \n if(sessionStorage.getItem("fringepackageidafterlogin") !== null){\n let pck = JSON.parse(sessionStorage.getItem("fringepackageidafterlogin"));\n company.addFringePackageItem(pck.packageid,pck.stocklevel,pck.restrictbylocation,pck.restrictbyzone,pck.restrictbycampaign,pck.restrictbycampaignpriceid);\n sessionStorage.removeItem("fringepackageidafterlogin");\n }\n \n $('#pricetabselect').on('change',function () {\n $('.pricetab').each(function () {\n $(this).css('display','none');\n });\n \n $('#pricefor'+this.value).css('display','block');\n });\n \n {% if saledisabled_fringe == 1 %}\n {% set disable = 1 %}\n {% if app.user %}\n {% if app.user.customerid in fringe_users %}\n {% set disable = 0 %}\n {% endif %}\n {% endif %}\n {% if disable == 1 %}\n $('.add-fringe-campaign-item').each(function (){\n $(this).attr('disabled',true).addClass('btn-disabled');\n $(this)[0].onclick = false;\n });\n $('.add-fringe-package-item').each(function (){\n $(this).attr('disabled',true).addClass('btn-disabled');\n $(this)[0].onclick = false;\n });\n {% endif %}\n {% endif %}\n });\n </script>\n {% endblock %} """ : { { Twig\Extension\CoreExtension::getAttribute(Environment $env, Source $source, $object, $item, array $arguments = [], $type = Template::ANY_CALL, $isDefinedTest = false, $ignoreStrictCheck = false, $sandboxed = false, int $lineno = -1) … › |
| logger | Symfony\Bridge\Monolog\Processor\DebugProcessor {#101 -records: [ 2 => [ [ "timestamp" => 1765468372 "timestamp_rfc3339" => "2025-12-11T15:52:52.972+00:00" "message" => "Matched route "{route}"." "priority" => 200 "priorityName" => "INFO" "context" => [ "route" => "frooh_page_316" "route_parameters" => [ "_route" => "frooh_page_316" "_controller" => "Ops\OpsFrontendOutdoorBundle\Controller\FringeController::fringesitePage" "id" => 316 ] "request_uri" => "https://78.129.140.211/fringe/venue-wayfinding-arrows" "method" => "GET" ] "channel" => "request" ] [ "timestamp" => 1765468372 "timestamp_rfc3339" => "2025-12-11T15:52:52.974+00:00" "message" => "Checking for authenticator support." "priority" => 100 "priorityName" => "DEBUG" "context" => [ "firewall_name" => "secured_area" "authenticators" => 1 ] "channel" => "security" ] [ "timestamp" => 1765468372 "timestamp_rfc3339" => "2025-12-11T15:52:52.974+00:00" "message" => "Checking support on authenticator." "priority" => 100 "priorityName" => "DEBUG" "context" => [ "firewall_name" => "secured_area" "authenticator" => "Symfony\Component\Security\Http\Authenticator\FormLoginAuthenticator" ] "channel" => "security" ] [ "timestamp" => 1765468372 "timestamp_rfc3339" => "2025-12-11T15:52:52.974+00:00" "message" => "Authenticator does not support the request." "priority" => 100 "priorityName" => "DEBUG" "context" => [ "firewall_name" => "secured_area" "authenticator" => "Symfony\Component\Security\Http\Authenticator\FormLoginAuthenticator" ] "channel" => "security" ] [ "timestamp" => 1765468372 "timestamp_rfc3339" => "2025-12-11T15:52:52.975+00:00" "message" => "Notified event "{event}" to listener "{listener}"." "priority" => 100 "priorityName" => "DEBUG" "context" => [ "event" => "kernel.request" "listener" => "Symfony\Component\HttpKernel\EventListener\DebugHandlersListener::configure" ] "channel" => "event" ] [ "timestamp" => 1765468372 "timestamp_rfc3339" => "2025-12-11T15:52:52.975+00:00" "message" => "Notified event "{event}" to listener "{listener}"." "priority" => 100 "priorityName" => "DEBUG" "context" => [ "event" => "kernel.request" "listener" => "Symfony\Component\HttpKernel\EventListener\ValidateRequestListener::onKernelRequest" ] "channel" => "event" ] [ "timestamp" => 1765468372 "timestamp_rfc3339" => "2025-12-11T15:52:52.975+00:00" "message" => "Notified event "{event}" to listener "{listener}"." "priority" => 100 "priorityName" => "DEBUG" "context" => [ "event" => "kernel.request" "listener" => "Symfony\Component\HttpKernel\EventListener\SessionListener::onKernelRequest" ] "channel" => "event" ] [ "timestamp" => 1765468372 "timestamp_rfc3339" => "2025-12-11T15:52:52.975+00:00" "message" => "Notified event "{event}" to listener "{listener}"." "priority" => 100 "priorityName" => "DEBUG" "context" => [ "event" => "kernel.request" "listener" => "Symfony\Component\HttpKernel\EventListener\LocaleListener::setDefaultLocale" ] "channel" => "event" ] [ "timestamp" => 1765468372 "timestamp_rfc3339" => "2025-12-11T15:52:52.975+00:00" "message" => "Notified event "{event}" to listener "{listener}"." "priority" => 100 "priorityName" => "DEBUG" "context" => [ "event" => "kernel.request" "listener" => "Symfony\Component\HttpKernel\EventListener\FragmentListener::onKernelRequest" ] "channel" => "event" ] [ "timestamp" => 1765468372 "timestamp_rfc3339" => "2025-12-11T15:52:52.975+00:00" "message" => "Notified event "{event}" to listener "{listener}"." "priority" => 100 "priorityName" => "DEBUG" "context" => [ "event" => "kernel.request" "listener" => "Symfony\Component\HttpKernel\EventListener\RouterListener::onKernelRequest" ] "channel" => "event" ] [ "timestamp" => 1765468372 "timestamp_rfc3339" => "2025-12-11T15:52:52.975+00:00" "message" => "Notified event "{event}" to listener "{listener}"." "priority" => 100 "priorityName" => "DEBUG" "context" => [ "event" => "kernel.request" "listener" => "Symfony\Component\HttpKernel\EventListener\LocaleListener::onKernelRequest" ] "channel" => "event" ] [ "timestamp" => 1765468372 "timestamp_rfc3339" => "2025-12-11T15:52:52.975+00:00" "message" => "Notified event "{event}" to listener "{listener}"." "priority" => 100 "priorityName" => "DEBUG" "context" => [ "event" => "kernel.request" "listener" => "Symfony\Component\HttpKernel\EventListener\LocaleAwareListener::onKernelRequest" ] "channel" => "event" ] [ "timestamp" => 1765468372 "timestamp_rfc3339" => "2025-12-11T15:52:52.975+00:00" "message" => "Notified event "{event}" to listener "{listener}"." "priority" => 100 "priorityName" => "DEBUG" "context" => [ "event" => "kernel.request" "listener" => "Symfony\Bundle\SecurityBundle\Debug\TraceableFirewallListener::configureLogoutUrlGenerator" ] "channel" => "event" ] [ "timestamp" => 1765468372 "timestamp_rfc3339" => "2025-12-11T15:52:52.975+00:00" "message" => "Notified event "{event}" to listener "{listener}"." "priority" => 100 "priorityName" => "DEBUG" "context" => [ "event" => "kernel.request" "listener" => "Symfony\Bundle\SecurityBundle\Debug\TraceableFirewallListener::onKernelRequest" ] "channel" => "event" ] [ "timestamp" => 1765468372 "timestamp_rfc3339" => "2025-12-11T15:52:52.975+00:00" "message" => "Notified event "{event}" to listener "{listener}"." "priority" => 100 "priorityName" => "DEBUG" "context" => [ "event" => "kernel.request" "listener" => "Ops\OpsFrontendBundle\Services\SessionIdleHandler::onKernelRequest" ] "channel" => "event" ] [ "timestamp" => 1765468372 "timestamp_rfc3339" => "2025-12-11T15:52:52.975+00:00" "message" => "Notified event "{event}" to listener "{listener}"." "priority" => 100 "priorityName" => "DEBUG" "context" => [ "event" => "kernel.request" "listener" => "Ops\OpsFrontendOutdoorBundle\Services\FringeSessionIdleHandler::onKernelRequest" ] "channel" => "event" ] [ "timestamp" => 1765468372 "timestamp_rfc3339" => "2025-12-11T15:52:52.980+00:00" "message" => "Notified event "{event}" to listener "{listener}"." "priority" => 100 "priorityName" => "DEBUG" "context" => [ "event" => "kernel.controller" "listener" => "Symfony\Bundle\FrameworkBundle\DataCollector\RouterDataCollector::onKernelController" ] "channel" => "event" ] [ "timestamp" => 1765468372 "timestamp_rfc3339" => "2025-12-11T15:52:52.980+00:00" "message" => "Notified event "{event}" to listener "{listener}"." "priority" => 100 "priorityName" => "DEBUG" "context" => [ "event" => "kernel.controller" "listener" => "Ops\OpsFrontendBundle\Services\TwigGlobalsExtension::onKernelController" ] "channel" => "event" ] [ "timestamp" => 1765468372 "timestamp_rfc3339" => "2025-12-11T15:52:52.980+00:00" "message" => "Notified event "{event}" to listener "{listener}"." "priority" => 100 "priorityName" => "DEBUG" "context" => [ "event" => "kernel.controller" "listener" => "Ops\OpsFrontendOutdoorBundle\Services\TwigGlobalsExtension::onKernelController" ] "channel" => "event" ] [ "timestamp" => 1765468372 "timestamp_rfc3339" => "2025-12-11T15:52:52.980+00:00" "message" => "Notified event "{event}" to listener "{listener}"." "priority" => 100 "priorityName" => "DEBUG" "context" => [ "event" => "kernel.controller" "listener" => "Symfony\Component\HttpKernel\DataCollector\RequestDataCollector::onKernelController" ] "channel" => "event" ] [ "timestamp" => 1765468372 "timestamp_rfc3339" => "2025-12-11T15:52:52.981+00:00" "message" => "Notified event "{event}" to listener "{listener}"." "priority" => 100 "priorityName" => "DEBUG" "context" => [ "event" => "kernel.controller_arguments" "listener" => "Symfony\Component\Security\Http\EventListener\IsGrantedAttributeListener::onKernelControllerArguments" ] "channel" => "event" ] [ "timestamp" => 1765468372 "timestamp_rfc3339" => "2025-12-11T15:52:52.981+00:00" "message" => "Notified event "{event}" to listener "{listener}"." "priority" => 100 "priorityName" => "DEBUG" "context" => [ "event" => "kernel.controller_arguments" "listener" => "Symfony\Component\HttpKernel\EventListener\CacheAttributeListener::onKernelControllerArguments" ] "channel" => "event" ] [ "timestamp" => 1765468372 "timestamp_rfc3339" => "2025-12-11T15:52:52.981+00:00" "message" => "Notified event "{event}" to listener "{listener}"." "priority" => 100 "priorityName" => "DEBUG" "context" => [ "event" => "kernel.controller_arguments" "listener" => "Symfony\Component\HttpKernel\EventListener\ErrorListener::onControllerArguments" ] "channel" => "event" ] [ "timestamp" => 1765468373 "timestamp_rfc3339" => "2025-12-11T15:52:53.055+00:00" "message" => "Uncaught PHP Exception Twig\Error\RuntimeError: "Key "selecttype" for sequence/mapping with keys "typeid, friendlyname, processes, productid, active, ispackaging, type" does not exist." at page.html.twig line 296" "priority" => 500 "priorityName" => "CRITICAL" "context" => [ "exception" => Twig\Error\RuntimeError {#630 #message: "Key "selecttype" for sequence/mapping with keys "typeid, friendlyname, processes, productid, active, ispackaging, type" does not exist." #code: 0 #file: "/home/outofhand/public_html/opsfrontendoutdoorbundle/OpsFrontendOutdoorBundle/src/templates/fringe/page.html.twig" #line: 296 -lineno: 296 -name: "@ops_frontend_outdoor_bundle/fringe/page.html.twig" -rawMessage: "Key "selecttype" for sequence/mapping with keys "typeid, friendlyname, processes, productid, active, ispackaging, type" does not exist." -sourcePath: "/home/outofhand/public_html/opsfrontendoutdoorbundle/OpsFrontendOutdoorBundle/src/templates/fringe/page.html.twig" -sourceCode: """ {% extends 'template.html.twig' %}\n \n {% block htmltitle %}{{ page.htmltitle }}{% endblock %}\n {% block metadesc %}{{ page.metadesc }}{% endblock %}\n {% block metakeywords %}{{ page.metakeywords }}{% endblock %}\n \n {% set pageimage = 'noimage.png' %}\n {% if page.images is not null %}\n {% if page.images|length == 1 %}\n {% set pageimage = page.images[0].image %}\n {% else %}\n {% for image in page.images %}\n {% if '1' in image.imageflag %}\n {% set pageimage = image.image %}\n {% endif %}\n {% endfor %}\n {% endif %}\n {% endif %}\n \n {% block extrameta %}\n <meta property="og:url" content="{{ app.request.getUri }}" />\n <meta property="og:title" content="{{ page.pagename }}" />\n <meta property="og:description" content="{{ page.blurb|striptags|raw }}" />\n <meta property="og:image" content="{{ cdn_domain }}/assets/images/pages/{{ pageimage}}"/>\n <meta name="twitter:card" content="summary" />\n <meta name="twitter:image:src" content="{{ cdn_domain }}/assets/images/pages/{{ pageimage}}">\n <meta name="twitter:site" content="@jamjarprint" />\n <meta property="twitter:url" content="{{ app.request.getUri }}" />\n <meta name="twitter:title" content="{{ page.pagename }}" />\n <meta name="twitter:description" content="{{ page.blurb|striptags|raw }}" />\n {% endblock %}\n {% block css %}\n <style>\n select option[disabled] {\n display: none;\n }\n .chosen-container .chosen-results li.disabled-result {\n display: none !important;\n }\n </style>\n {% endblock %}\n {% block headjavascripts %}\n {% endblock %}\n \n {% block contentcontainerstart %}\n <div class="container-fluid p-0">\n {% endblock %}\n \n {% block contentcontainerend %}\n </div>\n {% endblock %}\n \n {% block body %}\n \n {% if page.pageblurb4 is not null and page.pageblurb4 is not empty %}\n {% set productfeatures = page.pageblurb4|split(',') %}\n {% else %}\n {% set productfeatures = " " %}\n {% endif %}\n \n <div class="fringe-23 product-page">\n <div class="container mt-5">\n <div class="row">\n <div class="col-sm-12 col-md-6">\n <div class="single-images">\n {% if page.images is not empty %}\n {% set mainimage = page.images[0].image %}\n {% for image in page.images %}\n {% if '1' in image.imageflag %}\n {% set mainimage = image.image %}\n {% endif %}\n {% endfor %}\n <a class="popup-image" href="{{ cdn_domain }}/assets/images/pages/{{ mainimage }}"><img class="main-image" src="{{ cdn_domain }}/assets/images/pages/{{ mainimage }}" alt="{{ page.pagename }}"/></a>\n <div class="single-product-thumbnails">\n {% for image in page.images %}\n {% if '2' not in image.imageflag %}\n <span {% if loop.index == 0 %}class="selected" {% endif %}data-image_full="{{ cdn_domain }}/assets/images/pages/{{ image.image }}"><img src="{{ cdn_domain }}/assets/images/pages/{{ image.image }}" width="76"/></span>\n {% endif %}\n {% endfor %}\n </div>\n {% endif %}\n </div>\n <div class="clearfix"></div>\n </div>\n <div class="col-sm-12 col-md-6">\n <div class="summary entry-summary">\n <div class="product-icon">{% if productfeatures|length > 1 %}<img src="{{ productfeatures.2 }}" />{% endif %}</div>\n <h1 {% if productfeatures|length > 1 %}style="color:{{ productfeatures.1 }};"{% endif %}>{{ page.pagename }}</h1>\n <h5 {% if productfeatures|length > 1 %}style="color:{{ productfeatures.1 }};"{% endif %}>{{ page.pageblurb3|raw }}</h5>\n \n {% if packages|length+prices|length == 1 %}\n {#has only one thing linked-which is a price or a package#}\n {% if prices|length == 1 %}\n {% for price in prices %}\n {% set stocklevel = price.productvariation.stocklevel %}\n {% if price.productvariation.slotstocklevel is defined and price.productvariation.stocklevelused == 1 %}\n {% set stocklevel = price.productvariation.slotstocklevel %}\n {% endif %}\n <div class="col-sm-12 col-md-12">\n <p class="price">\n <ins><span class="amount">£{{ price.price|number_format(2) }}{% if price.productprice.singlequantity == 1 %} each{% endif %}</span></ins>\n </p>\n {% if stocklevel > 0 %}\n <span class="in-stock"><i class="fa fa-check-circle-o"></i> We have <span id="stocklevel{{ price.priceid }}">{{ stocklevel }}</span> in stock</span>\n {% else %}\n <span class="in-stock"><i class="fa fa-times-circle-o"></i> Sorry, we are out of stock</span>\n {% endif %}\n </div>\n <div class="col-sm-12 col-md-12">\n <hr>\n {% if stocklevel > 0 %}\n {% set restrictbylocation = 0 %}\n {% set restrictbyzone = 0 %}\n {% set restrictbycampaign = 0 %}\n {% set restrictbycampaignpriceid = 0 %}\n {% if price.productvariation.product.restrictions is defined %}\n {% if price.productvariation.product.restrictions.bylocation is not null %}\n {% set restrictbylocation = price.productvariation.product.restrictions.bylocation %}\n {% endif %}\n {% if price.productvariation.product.restrictions.byzone is not null %}\n {% set restrictbyzone = price.productvariation.product.restrictions.byzone %}\n {% endif %}\n {% if price.productvariation.product.restrictions.bycampaign is not null %}\n {% set restrictbycampaign = price.productvariation.product.restrictions.bycampaign %}\n {% endif %}\n {% set restrictbycampaignpriceid = price.priceid %}\n {% endif %}\n <div class="cart_totals">\n <p>\n <button type="button" class="single_add_to_cart_button button-23 button-23-green button-23-icon no-margin add-fringe-campaign-item" data-price="{{ price.price }}" data-priceid="{{ price.priceid }}" data-stocklevel="{{ stocklevel }}" data-restrictbylocation="{{ restrictbylocation }}" data-restrictbyzone="{{ restrictbyzone }}" data-restrictbycampaign="{{ restrictbycampaign }}" data-restrictbycampaignpriceid="{{ restrictbycampaignpriceid }}"><span class="icon"><svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 41.255 36.663"><use href="{{ asset('assets/images/2023/icon-basket.svg') }}#icon-basket"></use></svg></span><span class="label">Buy Now</span></button>\n </p>\n </div>\n <hr>\n {% endif %}\n </div>\n {% endfor %}\n {% else %}\n {% if packages|length == 1 %}\n {% set package = packages[0] %}\n {% set stocklevel = 0 %}\n {% set singlequantity = 0 %}\n {% set restrictbylocation = 0 %}\n {% set restrictbyzone = 0 %}\n {% set restrictbycampaign = 0 %}\n {% set restrictbycampaignpriceid = 0 %}\n {% set productvariation = null %}\n {% for price in package.productpackage.packageprices %}\n {% if price.categoryid == 3 %}\n {% for variation in variations %}\n {% if price.variation.variationid == variation.variationid %}\n {% set productvariation = variation %}\n {% endif %}\n {% endfor %}\n {% set stocklevel = productvariation.stocklevel %}\n {% set singlequantity = price.productprice.singlequantity %}\n {% if productvariation.product.restrictions is defined %}\n {% if productvariation.product.restrictions.bylocation is not null %}\n {% set restrictbylocation = productvariation.product.restrictions.bylocation %}\n {% endif %}\n {% if productvariation.product.restrictions.byzone is not null %}\n {% set restrictbyzone = productvariation.product.restrictions.byzone %}\n {% endif %}\n {% if productvariation.product.restrictions.bycampaign is not null %}\n {% set restrictbycampaign = productvariation.product.restrictions.bycampaign %}\n {% endif %}\n {% set restrictbycampaignpriceid = price.priceid %}\n {% endif %}\n {% if productvariation.slotstocklevel is defined and productvariation.stocklevelused == 1 %}\n {% set stocklevel = productvariation.slotstocklevel %}\n {% endif %}\n {% endif %}\n {% if price.categoryid == 6 %}\n {% set stocklevel = price.variation.stocklevel %}\n {% endif %}\n {% endfor %}\n <div class="col-sm-12 col-md-12">\n <p class="price">\n <ins><span class="amount">£{{ package.productpackage.price|number_format(2) }} each</span></ins>\n </p>\n {% if stocklevel > 0 %}\n <span class="in-stock"><i class="fa fa-check-circle-o"></i> We have <span id="stocklevel{{ package.packageid }}">{{ stocklevel }}</span> in stock</span>\n {% else %}\n <span class="in-stock"><i class="fa fa-times-circle-o"></i> Sorry, we are out of stock</span>\n {% endif %}\n </div>\n <div class="col-sm-12 col-md-12">\n <hr>\n {% if stocklevel > 0 %}\n <div class="cart_totals">\n <button type="button" class="single_add_to_cart_button button-23 button-23-green button-23-icon no-margin add-fringe-package-item" data-packageid="{{ package.packageid }}" data-stocklevel="{{ stocklevel }}" data-restrictbylocation="{{ restrictbylocation }}" data-restrictbyzone="{{ restrictbyzone }}" data-restrictbycampaign="{{ restrictbycampaign }}" data-restrictbycampaignpriceid="{{ restrictbycampaignpriceid }}"><span class="icon"><svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 41.255 36.663"><use href="{{ asset('assets/images/2023/icon-basket.svg') }}#icon-basket"></use></svg></span><span class="label">Buy Now</span></button>\n </div>\n <hr>\n {% endif %}\n </div>\n {% endif %}\n {% endif %}\n {% else %}\n <div class="login">\n <select class="form-control" id="pricetabselect" autocomplete="off">\n {% for package in packages|sort %}\n <option value="package-{{ package.packageid }}">{{ package.productpackage.productname }}</option>\n {% endfor %}\n {% for price in prices|sort %}\n <option value="price-{{ price.priceid }}">{{ price.productvariation.friendlyname }}</option>\n {% endfor %}\n </select>\n </div>\n {% set displayed = 0 %}\n {% for package in packages|sort %}\n {% set id = package.packageid %}\n {% set currprice = package.productpackage.price %}\n {% set singlequantity = 0 %}\n {% set stocklevel = 0 %}\n {% set restrictbylocation = 0 %}\n {% set restrictbyzone = 0 %}\n {% set restrictbycampaign = 0 %}\n {% set restrictbycampaignpriceid = 0 %}\n {% for price in package.productpackage.packageprices %}\n {% if price.categoryid == 3 %}\n {% set singlequantity = price.productprice.singlequantity %}\n {% for variation in variations %}\n {% if price.variation.variationid == variation.variationid %}\n {% set stocklevel = variation.stocklevel %}\n {% if variation.product.restrictions is defined %}\n {% if variation.product.restrictions.bylocation is not null %}\n {% set restrictbylocation = variation.product.restrictions.bylocation %}\n {% endif %}\n {% if variation.product.restrictions.byzone is not null %}\n {% set restrictbyzone = variation.product.restrictions.byzone %}\n {% endif %}\n {% if variation.product.restrictions.bycampaign is not null %}\n {% set restrictbycampaign = variation.product.restrictions.bycampaign %}\n {% endif %}\n {% endif %}\n {% if variation.slotstocklevel is defined and variation.stocklevelused == 1 %}\n {% set stocklevel = variation.slotstocklevel %}\n {% endif %}\n {% endif %}\n {% endfor %}\n {% endif %}\n {% endfor %}\n <div id="priceforpackage-{{ id }}" class="pricetab" {% if displayed == 1 %}style="display: none"{% else %}{% set displayed = 1 %}{% endif %}>\n <div class="col-sm-12 col-md-12">\n <p class="price">\n <ins><span class="amount">£{{ currprice|number_format(2) }} {% if singlequantity == 1 %} each{% endif %}</span></ins>\n </p>\n {% if stocklevel > 0 %}\n <span class="in-stock"><i class="fa fa-check-circle-o"></i> We have <span id="stocklevel{{ id }}">{{ stocklevel }}</span> in stock</span>\n {% else %}\n <span class="in-stock"><i class="fa fa-times-circle-o"></i> Sorry, we are out of stock</span>\n {% endif %}\n </div>\n <div class="col-sm-12 col-md-12">\n <hr>\n {% if stocklevel > 0 %}\n <div class="cart_totals">\n <button type="button" class="single_add_to_cart_button button-23 button-23-green button-23-icon no-margin add-fringe-package-item" data-packageid="{{ package.packageid }}" data-stocklevel="{{ stocklevel }}" data-restrictbylocation="{{ restrictbylocation }}" data-restrictbyzone="{{ restrictbyzone }}" data-restrictbycampaign="{{ restrictbycampaign }}" data-restrictbycampaignpriceid="{{ restrictbycampaignpriceid }}"><span class="icon"><svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 41.255 36.663"><use href="{{ asset('assets/images/2023/icon-basket.svg') }}#icon-basket"></use></svg></span><span class="label">Buy Now</span></button>\n </div>\n <hr>\n {% endif %}\n </div>\n </div>\n {% endfor %}\n {% for price in prices|sort %}\n {% set id = price.priceid %}\n {% set currprice = price.price %}\n {% set singlequantity = 0 %}\n {% set quantity = 0 %}\n {% set stocklevel = 0 %}\n {% set selecttype = 0 %} {# 0-zone,1-location,2-none#}\n {% set structuretype = 0 %}\n {% set restrictbylocation = 0 %}\n {% set restrictbyzone = 0 %}\n {% set restrictbycampaign = 0 %}\n {% set restrictbycampaignpriceid = 0 %}\n {% for variation in variations %}\n {% if variation.variationid == price.variationid %}\n {% set id = price.priceid %}\n {% set currprice = price.price %}\n {% set singlequantity = price.productprice.singlequantity %}\n {% set stocklevel = variation.stocklevel %}\n {% if variation.product.restrictions is defined %}\n {% if variation.product.restrictions.bylocation is not null %}\n {% set restrictbylocation = variation.product.restrictions.bylocation %}\n {% endif %}\n {% if variation.product.restrictions.byzone is not null %}\n {% set restrictbyzone = variation.product.restrictions.byzone %}\n {% endif %}\n {% if variation.product.restrictions.bycampaign is not null %}\n {% set restrictbycampaign = variation.product.restrictions.bycampaign %}\n {% endif %}\n {% set restrictbycampaignpriceid = price.priceid %}\n {% endif %}\n \n {% set stocklevel = variation.stocklevel %}\n {% set selecttype = variation.product.selecttype %} {# 0-zone,1-location,2-none#}\n {% set structuretype = variation.product.structuretypeid %}\n {% if variation.product.restrictions is defined %}\n {% set restrictbylocation = variation.product.restrictions.bylocation %}\n {% set restrictbycampaign = variation.product.restrictions.bycampaign %}\n {% set restrictbyzone = variation.product.restrictions.byzone %}\n {% endif %}\n \n {% if variation.slotstocklevel is defined and variation.stocklevelused == 1 %}\n {% set stocklevel = variation.slotstocklevel %}\n {% endif %}\n {% endif %}\n {% endfor %}\n <div id="priceforprice-{{ id }}" class="pricetab" {% if displayed == 1 %}style="display: none"{% else %}{% set displayed = 1 %}{% endif %}>\n <div class="col-sm-12 col-md-12">\n <p class="price">\n <ins><span class="amount">£{{ currprice|number_format(2) }} {% if singlequantity == 1 %} each{% endif %}</span></ins>\n </p>\n {% if stocklevel > 0 %}\n <span class="in-stock"><i class="fa fa-check-circle-o"></i> We have <span id="stocklevel{{ id }}">{{ stocklevel }}</span> in stock</span>\n {% else %}\n <span class="in-stock"><i class="fa fa-times-circle-o"></i> Sorry, we are out of stock</span>\n {% endif %}\n </div>\n <div class="col-sm-12 col-md-12">\n <hr>\n {% if stocklevel > 0 %}\n <div class="cart_totals">\n <p>\n <button type="button" class="single_add_to_cart_button button-23 button-23-green button-23-icon no-margin add-fringe-campaign-item" data-price="{{ price.price }}" data-priceid="{{ price.priceid }}" data-stocklevel="{{ stocklevel }}" data-restrictbylocation="{{ restrictbylocation }}" data-restrictbyzone="{{ restrictbyzone }}" data-restrictbycampaign="{{ restrictbycampaign }}" data-restrictbycampaignpriceid="{{ restrictbycampaignpriceid }}"><span class="icon"><svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 41.255 36.663"><use href="{{ asset('assets/images/2023/icon-basket.svg') }}#icon-basket"></use></svg></span><span class="label">Buy Now</span></button>\n </p>\n </div>\n <hr>\n {% endif %}\n </div>\n </div>\n {% endfor %}\n {% endif %}\n \n <div class="clearfix"></div>\n {# <div class="text-center text-uppercase" style="">\n Price Includes 10% Earlybird Discount\n <hr>\n </div>#}\n <div class="description text-justify">\n {{ page.blurb|raw }}\n </div>\n </div>\n </div>\n </div>\n </div>\n \n <div class="section-intro">\n <div class="row">\n <div class="container">\n <div class="row">\n {% if productfeatures|length > 1 and productfeatures.0 == "Zone" %}\n <div class="col-md-4">\n <h3>This is a <span class="highlight-red">zone</span><br>Based product</h3>\n </div>\n <div class="col-md-8">\n <div>\n <h3>Zone</h3>\n <p>We have divided the city into four zones to create a zonal booking structure for selected formats. Posters will be placed on general distribution across all the advertising sites we have available for each format within that zone, e.g. if you book 10 x 4-sheets in Zone One which has 10 different sites for that format, one poster will go on each site. So, if you only want to target the area around the Pleasance Courtyard, now you can! When you book, out of your total order, please specify how many posters you want in each zone.</p>\n </div>\n </div>\n {% elseif productfeatures|length > 1 and productfeatures.0 == "Replacement" %}\n <div class="col-md-4">\n <h3>This is a <span class="highlight-red">Replacement</span><br> product</h3>\n </div>\n <div class="col-md-8">\n <div>\n <p>Purchase spare replacement posters in case of damage during Fringe, your design printed onto correx. We suggest 10% extra on top of your total booking - e.g if you book 10 boards, we need 1 extra board.</p>\n </div>\n </div>\n {% elseif productfeatures|length > 1 and productfeatures.0 == "Design" %}\n <div class="col-md-4">\n <h3>This is a <span class="highlight-red">Design</span><br> service</h3>\n </div>\n <div class="col-md-8">\n <div>\n <h3>Creative Design Package</h3>\n <p>You supply the text, but no photos / images. We use a suitable photo from Stock Library. </p>\n </div>\n <div>\n <h3>Image Supplied Package</h3>\n <p>You supply high resolution photos, text, logos and brief of what you'd like. </p>\n </div>\n </div>\n {% else %}\n <div class="col-md-4">\n <h3>This is a <span class="highlight-red">Location</span><br>Based product</h3>\n </div>\n <div class="col-md-8">\n <div>\n <h3>Location</h3>\n <p>A majority of our advertising formats are booked by specific location – just refer to our map at www.outofhand.co.uk for each format and pick the exact location you’d like to book your poster advertising, and it will be fitted in that location.</p>\n </div>\n </div>\n {% endif %}\n </div>\n </div>\n </div>\n </div>\n \n <div class="container section-margin-bottom">\n <div id="addFringePackageItemDiv">\n \n </div>\n </div>\n \n \n \n <div id="product-checkout-popup" style="display:none;">\n <div class="row">\n <div class="col">\n <h4 class="lower-case text-center">You've added {{ page.pagename }}<span class="popup-fringe"></span> to the basket.</h4>\n </div>\n </div>\n <hr>\n \n <div class="section product-popup-summary row gy-3 px-2 px-sm-5 mb-5">\n <div class="product-image col-sm-2"><img class="img-fluid rounded" src="{{ cdn_domain }}/assets/images/pages/{{ mainimage }}" alt="4 Sheet Correx"></div>\n <div class="product-info col-sm-10">\n <div class="product-icon float-end" style="width: 50px">{% if productfeatures|length > 1 %}<img src="{{ productfeatures.2 }}" />{% endif %}</div>\n <h2 {% if productfeatures|length > 1 %}style="color:{{ productfeatures.1 }};"{% endif %}>{{ page.pagename }}</h2>\n <h5 class="lower-case" {% if productfeatures|length > 1 %}style="color:{{ productfeatures.1 }};"{% endif %}>{{ page.pageblurb3|raw }}</h5>\n <h6 class="popup-campaign"></h6>\n </div>\n </div>\n \n {#\n {% if (productfeatures|length > 1) and (productfeatures.3 is defined) and (productfeatures.3 == "high") %}\n <div class="section-intro no-margin">\n <div class="risk col-md-4 text-center">\n <span class="icon"><svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 89.652 98.717"><use href="/assets/images/2023/icon-fringe-replacements.svg#icon-fringe-replacements"></use></svg></span>\n <h4>SPARES</h4>\n </div>\n <div class="col-md-8 text-center">\n <h6>Consider buying spares for this product.</h6>\n <h4 class="risk-type"><span class="icon"><svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 70.449 60.24"><use href="/assets/images/2023/icon-high-risk.svg#icon-high-risk"></use></svg></span>High<br>Damage Risk</h4>\n <p>There is a HIGH risk this format may get damaged during the Fringe, please order spares in case the original posters get damaged.</p>\n {% if productfeatures.4 is defined %}\n <a href="{{ productfeatures.4 }}" class="button-23 button-23-green button-23-icon no-margin" ><span class="icon"><svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 89.652 98.717"><use href="{{ asset('assets/images/2023/icon-fringe-replacements.svg') }}#icon-fringe-replacements"></use></svg></span><span class="label">Buy Spares for this product</span></a>\n {% endif %}\n </div>\n </div>\n {% endif %}\n #}\n \n {% if (productfeatures|length > 1) and (productfeatures.3 is defined) and (productfeatures.3 == "high" or productfeatures.3 == "medium" or productfeatures.3 == "low") %}\n <div class="section row px-2 px-sm-5 py-4 bg-body-secondary">\n <div class="col-md-2 text-center d-flex flex-column justify-content-center align-items-center pb-3 pb-sm-0">\n <span class="icon d-inline-block mb-2" style="width: 70px"><svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 89.652 98.717"><use href="/assets/images/2023/icon-fringe-replacements.svg#icon-fringe-replacements"></use></svg></span>\n <h4>SPARES</h4>\n </div>\n <div class="col-md-10 text-center">\n <div class="row px-2 px-sm-5">\n <div class="col-12 mb-3">\n <h6>Consider buying spares for this product.</h6>\n </div>\n <div class="col-12 mb-3">\n {% if productfeatures.3 == "medium" %}\n <h4 class="risk-type d-inline-flex mb-4"><svg class="d-inline-block me-3" style="width: 50px" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 70.449 60.24"><use href="/assets/images/2023/icon-medium-risk.svg#icon-medium-risk"></use></svg>Medium<br>Damage Risk</h4>\n <p>There is a MEDIUM risk this format may get damaged during the Fringe, please order spares in case the original posters get damaged.</p>\n {% elseif productfeatures.3 == "high" %}\n <h4 class="risk-type d-inline-flex mb-4"><svg class="d-inline-block me-3" style="width: 50px" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 70.449 60.24"><use href="/assets/images/2023/icon-high-risk.svg#icon-high-risk"></use></svg>High<br>Damage Risk</h4>\n <p>There is a HIGH risk this format may get damaged during the Fringe, please order spares in case the original posters get damaged.</p>\n {% elseif productfeatures.3 == "low" %}\n <h4 class="risk-type d-inline-flex mb-4"><svg class="d-inline-block me-3" style="width: 50px" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 70.449 60.24"><use href="/assets/images/2023/icon-low-risk.svg#icon-low-risk"></use></svg>Low<br>Damage Risk</h4>\n <p>There is a LOW risk this format may get damaged during the Fringe.</p>\n {% endif %}\n </div>\n {% if productfeatures.4 is defined %}\n <div class="col-12">\n <a href="{{ productfeatures.4 }}" class="button-23 button-23-green button-23-icon no-margin" ><span class="icon"><svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 89.652 98.717"><use href="{{ asset('assets/images/2023/icon-fringe-replacements.svg') }}#icon-fringe-replacements"></use></svg></span><span class="label">Buy Spares for this product</span></a>\n </div>\n {% endif %}\n </div>\n </div>\n </div>\n {% endif %}\n {#\n {% if (productfeatures|length > 1) and (productfeatures.3 is defined) and (productfeatures.3 == "low") %}\n <div class="section-intro no-margin">\n <div class="risk col-md-4">\n <span class="icon"><svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 89.652 98.717"><use href="/assets/images/2023/icon-fringe-replacements.svg#icon-fringe-replacements"></use></svg></span>\n <h4>SPARES</h4>\n </div>\n <div class="col-md-8 text-center">\n <h6>Consider buying spares for this product.</h6>\n <h4 class="risk-type"><span class="icon"><svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 70.449 60.24"><use href="/assets/images/2023/icon-low-risk.svg#icon-low-risk"></use></svg></span>Low<br>Damage Risk</h4>\n <p>There is a LOW risk this format may get damaged during the Fringe.</p>\n {% if productfeatures.4 is defined %}\n <a href="{{ productfeatures.4 }}" class="button-23 button-23-green button-23-icon no-margin" ><span class="icon"><svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 89.652 98.717"><use href="{{ asset('assets/images/2023/icon-fringe-replacements.svg') }}#icon-fringe-replacements"></use></svg></span><span class="label">Buy Spares for this product</span></a>\n {% endif %}\n </div>\n </div>\n {% endif %}\n #}\n \n <div class="no-margin text-center">\n <a href="/fringe/order-by-product" class="button-23 button-23-orange button-23-icon no-margin" ><span class="icon"><svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 41.255 36.663"><use href="{{ asset('assets/images/2023/icon-basket.svg') }}#icon-basket"></use></svg></span><span class="label">Continue Shopping</span></a>\n \n <a href="/basket-campaigns" class="button-23 button-23-green button-23-icon mt-4 mb-0" ><span class="icon"><svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 26.374 21.786"><use href="{{ asset('assets/images/2023/icon-basket-check.svg') }}#icon-basket-check"></use></svg></span><span class="label">Checkout</span></a>\n </div>\n </div>\n \n \n \n {% if page.pageblurb2|length > 1 %}\n \n <h3 class="text-center section-margin-top">We also recommend</h3>\n <div class="product-listing-wrapper container">\n <div class="recommended-products row g-lg-5">\n {{ page.pageblurb2|raw }}\n </div>\n </div>\n \n {% endif %}\n </div>\n \n {% include '@ops_frontend_outdoor_bundle/blocks/campaigns.html.twig' %}\n {% endblock%}\n \n {% block javascripts %}\n <script>\n $(document).ready(function () {\n $('body').addClass('fringe-body fringe-23 page-{{ page.friendlyurl }}');\n \n company.addFringeItemListener();\n setProductPagePadding();\n \n if(sessionStorage.getItem("fringepackageidafterlogin") !== null){\n let pck = JSON.parse(sessionStorage.getItem("fringepackageidafterlogin"));\n company.addFringePackageItem(pck.packageid,pck.stocklevel,pck.restrictbylocation,pck.restrictbyzone,pck.restrictbycampaign,pck.restrictbycampaignpriceid);\n sessionStorage.removeItem("fringepackageidafterlogin");\n }\n \n $('#pricetabselect').on('change',function () {\n $('.pricetab').each(function () {\n $(this).css('display','none');\n });\n \n $('#pricefor'+this.value).css('display','block');\n });\n \n {% if saledisabled_fringe == 1 %}\n {% set disable = 1 %}\n {% if app.user %}\n {% if app.user.customerid in fringe_users %}\n {% set disable = 0 %}\n {% endif %}\n {% endif %}\n {% if disable == 1 %}\n $('.add-fringe-campaign-item').each(function (){\n $(this).attr('disabled',true).addClass('btn-disabled');\n $(this)[0].onclick = false;\n });\n $('.add-fringe-package-item').each(function (){\n $(this).attr('disabled',true).addClass('btn-disabled');\n $(this)[0].onclick = false;\n });\n {% endif %}\n {% endif %}\n });\n </script>\n {% endblock %} """ : { { Twig\Extension\CoreExtension::getAttribute(Environment $env, Source $source, $object, $item, array $arguments = [], $type = Template::ANY_CALL, $isDefinedTest = false, $ignoreStrictCheck = false, $sandboxed = false, int $lineno = -1) … › |