RuntimeException
calling ::renderTemplate with a .configurable.php is deprecated: templates/custom/hal18/blocks/servicecontact.configurable.php RuntimeException thrown with message "calling ::renderTemplate with a .configurable.php is deprecated: templates/custom/hal18/blocks/servicecontact.configurable.php" Stacktrace: #12 RuntimeException in /var/hpwsites/u_050media_html/website/html/private/zilver/deploy/releases/10/classes/DeprecationService.php:30 #11 ZilverCMS\classes\DeprecationService:trigger in /var/hpwsites/u_050media_html/website/html/private/zilver/deploy/releases/10/classes/LegacyRenderEngine.class.php:215 #10 LegacyRenderEngine:renderTemplate in /var/hpwsites/u_050media_html/website/html/private/zilver/deploy/releases/10/classes/RenderEngine.class.php:33 #9 RenderEngine:renderTemplate in /var/hpwsites/u_050media_html/website/html/private/zilver/deploy/releases/10/classes/TemplateFactory.class.php:280 #8 TemplateFactory:getDynamicContents in /var/hpwsites/u_050media_html/website/html/private/zilver/deploy/releases/10/classes/TemplateFactory.class.php:133 #7 TemplateFactory:renderFrontend in /var/hpwsites/u_050media_html/website/html/private/zilver/deploy/releases/10/models/pagetree/PagetreePage.class.php:329 #6 PagetreePage:property_content in /var/hpwsites/u_050media_html/website/html/private/zilver/deploy/releases/10/controllers/frontend/pagetree/PagetreeFrontendController.php:179 #5 ZilverCMS\controllers\frontend\pagetree\PagetreeFrontendController:handlePath in /var/hpwsites/u_050media_html/website/html/private/zilver/deploy/releases/10/controllers/frontend/FrontendController.php:139 #4 ZilverCMS\controllers\frontend\FrontendController:handlePath in /var/hpwsites/u_050media_html/website/html/private/zilver/deploy/releases/10/controllers/ApplicationController.php:72 #3 ZilverCMS\controllers\ApplicationController:__invoke in /var/hpwsites/u_050media_html/website/html/private/zilver/deploy/releases/10/vendor/php-di/invoker/src/Invoker.php:82 #2 call_user_func_array in /var/hpwsites/u_050media_html/website/html/private/zilver/deploy/releases/10/vendor/php-di/invoker/src/Invoker.php:82 #1 Invoker\Invoker:call in /var/hpwsites/u_050media_html/website/html/private/zilver/deploy/releases/10/vendor/php-di/php-di/src/Container.php:279 #0 DI\Container:call in /var/hpwsites/u_050media_html/website/html/private/zilver/deploy/releases/10/index.php:45
Stack frames (13)
12
RuntimeException
/classes/DeprecationService.php30
11
ZilverCMS\classes\DeprecationService trigger
/classes/LegacyRenderEngine.class.php215
10
LegacyRenderEngine renderTemplate
/classes/RenderEngine.class.php33
9
RenderEngine renderTemplate
/classes/TemplateFactory.class.php280
8
TemplateFactory getDynamicContents
/classes/TemplateFactory.class.php133
7
TemplateFactory renderFrontend
/models/pagetree/PagetreePage.class.php329
6
PagetreePage property_content
/controllers/frontend/pagetree/PagetreeFrontendController.php179
5
ZilverCMS\controllers\frontend\pagetree\PagetreeFrontendController handlePath
/controllers/frontend/FrontendController.php139
4
ZilverCMS\controllers\frontend\FrontendController handlePath
/controllers/ApplicationController.php72
3
ZilverCMS\controllers\ApplicationController __invoke
/vendor/php-di/invoker/src/Invoker.php82
2
call_user_func_array
/vendor/php-di/invoker/src/Invoker.php82
1
Invoker\Invoker call
/vendor/php-di/php-di/src/Container.php279
0
DI\Container call
/index.php45
/var/hpwsites/u_050media_html/website/html/private/zilver/deploy/releases/10/classes/DeprecationService.php
    private static $enabled = false;
 
    public static function setEnabled($enabled)
    {
        self::$enabled = $enabled;
    }
 
    /**
     * @param string $message
     */
    public static function trigger($message = "")
    {
        if (!self::$enabled) {
            return;
        }
        if ($message === "") {
            list($originFuction, $originFile, $originLine) = self::unpackBacktrace();
            $message = "Hit deprecated method \"{$originFuction}\" in file \"{$originFile}\" on line {$originLine}";
        }
        throw new RuntimeException($message);
    }
 
    /**
     * @return array
     */
    private static function unpackBacktrace()
    {
        $backtrace = debug_backtrace(DEBUG_BACKTRACE_IGNORE_ARGS, 3);
        if (count($backtrace) > 2) {
            $originFuction = $backtrace[2]['function'];
            $originFile = $backtrace[2]['file'] ?? '';
            $originLine = $backtrace[2]['line'] ?? '';
        } else {
            $originFuction = '##UNDEFINED##';
            $originFile = $backtrace[1]['file'] ?? '';
            $originLine = $backtrace[1]['line'] ?? '';
        }
        return array($originFuction, $originFile, $originLine);
    }
}
/var/hpwsites/u_050media_html/website/html/private/zilver/deploy/releases/10/classes/LegacyRenderEngine.class.php
                    'templates/' . $this->configuration->getFrontend(),
                    'templates/frontenddefaults',
                    $template_name
                );
            }
 
            require_once($template_name);
            $parts = explode('/', $template_name);
            $name = array_pop($parts); // het laatste path item
            $parts = explode('.', $name);
            $name = array_shift($parts); // het eerste woord voor '.template.php'
            $name = ucfirst($name) . 'Template';
 
            $page_template = $this->templateService->getDynamicContent(
                $this->container->get($name),
                'getHtml',
                [$values]
            );
        } elseif (strcmp('.configurable.php', substr($template_name, -17)) === 0) {
            \ZilverCMS\classes\DeprecationService::trigger('calling ::renderTemplate with a .configurable.php is deprecated: ' . $template_name);
            if (!file_exists($template_name)) { // de template bestaat niet, dus er moet een failback gezocht worden
                $template_name = str_replace(
                    'templates/' . $this->configuration->getFrontend(),
                    'templates/frontenddefaults',
                    $template_name
                );
            }
            require_once($template_name);
            $parts = explode('/', $template_name);
            $name = array_pop($parts); // het laatste path item
            $parts = explode('.', $name);
            $name = array_shift($parts); // het eerste woord voor '.template.php'
            $name = ucfirst($name) . 'Configurable';
 
            /** @var ConfigurableBlock $templateInstance */
            $templateInstance = $this->container->get($name);
            $templateInstance->setVariables($values);
            $page_template = $this->templateService->getDynamicContent(
                $templateInstance,
                'render'
/var/hpwsites/u_050media_html/website/html/private/zilver/deploy/releases/10/classes/RenderEngine.class.php
    private $legacyRenderEngine;
 
    public function __construct(LegacyRenderEngine $legacyRenderEngine)
    {
        $this->legacyRenderEngine = $legacyRenderEngine;
    }
 
    public static function setTemplate($tpl, $content)
    {
        self::instance()->legacyRenderEngine->setTemplate($tpl, $content);
    }
 
    public static function setResolveLinks($resolve)
    {
        self::instance()->legacyRenderEngine->setResolveLinks($resolve);
    }
 
    public static function renderTemplate($template_name, $values = null, $replaceVars = true)
    {
        return self::instance()->legacyRenderEngine->renderTemplate($template_name, $values, $replaceVars);
    }
}
 
/var/hpwsites/u_050media_html/website/html/private/zilver/deploy/releases/10/classes/TemplateFactory.class.php
     * template:webshop/product.tpl)
     */
    public function getDynamicContents($block)
    {
        if (array_key_exists('dynamiceditor', $block) && $block['dynamiceditor'] != 'textarea') {
            $view = PagetreeModel::instance()->getDynamicBlockView(
                $block['dynamiceditor'] . ".dyn",
                $block['id'],
                'FRONTENDVIEW'
            );
            return $view['code'];
        }
        $key = $block['contents'];
 
        if (preg_match('/^template:(.*)$/', $key, $matches)) {
            $exploded_matches = explode('#', $matches[1]);
            $template_key = array_shift($exploded_matches);
            return RenderEngine::renderTemplate(
                'templates/' . $this->configuration->getFrontend() . '/' . $matches[1],
                $this->getDynamicKeysByArray($exploded_matches)
            );
        }
        return $key;
    }
 
    /**
     * Geef layout aan een blok opgemaakte tekst
     */
    public function encapsulateBlock($txt)
    {
        return RenderEngine::renderTemplate(
            'templates/' . $this->configuration->getFrontend() . '/layouts/block_encapsulator.tpl',
            [
                'content' => $txt
            ]
        );
    }
 
    /**
     * Expects a array with key:value-elements, split them to a hash
/var/hpwsites/u_050media_html/website/html/private/zilver/deploy/releases/10/classes/TemplateFactory.class.php
        // second pass: voeg de content van de blokken in de areas
        foreach ($areas as $tr_area) {
            $key = $tr_area->area;
            $loc = $tr_area->location;
 
            // hier moeten area-commands ontleed en geactiveerd worden
            $areacommands = [];
            $areacode = 'L' . mb_strtoupper($loc) . '_AREA_' . mb_strtoupper($key);
            if (preg_match("/##{$areacode}((#[a-z]+)*)##/", $tpl, $matches)) {
                $areacommands = ltrim($matches[1], '#');
                $areacommands = explode('#', $areacommands);
            }
 
            $content = '';
            if (isset($blocks[$key])) {
                $first = true;
                foreach ($blocks[$key] as $idx => $bl) {
                    if (array_key_exists('isdynamic', $bl) && $bl['isdynamic']) {
                        // dynamische blokken kunnen alleen in een PAGE bestaan
                        $content .= $this->encapsulateDynamic($this->getDynamicContents($bl));
                    } else {
                        $prefix = '';
                        $contents = stripslashes($bl['contents']);
                        $content .= $this->encapsulateBlock($prefix . $contents);
                    }
                    $first = false;
                }
            }
            $tpl = str_replace(
                '##L' . mb_strtoupper($loc) . '_LOCKEDAREA_' . mb_strtoupper($key) . '##',
                $content,
                $tpl
            );
 
            $tpl = str_replace(
                '##L' . mb_strtoupper($loc) . '_SINGLEAREA_' . mb_strtoupper($key) . '##',
                $content,
                $tpl
            );
 
/var/hpwsites/u_050media_html/website/html/private/zilver/deploy/releases/10/models/pagetree/PagetreePage.class.php
        return $blocks;
    }
 
    public function default_property_blocks_content()
    {
        return '<p class="PagetreePage">Hier kunt u uw tekst invullen</p>'; // multitaal string to translate
    }
 
    /**
     * de samengestelde content van block en layout voor de frontend
     */
    public function property_content()
    {
        $parameters = [
            'headertitle' => $this->property_headertitle(),
        ];
        $blocks = $this->property_blocks();
        $layoutkey = $this->property_layoutkey();
        return $this->templateFactory->renderFrontend(
            $blocks,
            $layoutkey,
            $parameters
        );
    }
 
    /**
     * bepaal de kinderen van deze pagina, de paginas die deze als parent hebben of die een pagina
     * met een voorouder gelijk aan deze pagina
     */
    public static function successor_ids($id)
    {
        $db = Database::instance();
 
        $childids = [];
        $query = "SELECT `id` FROM `pagetree_page` WHERE `parent_id` = {$id}";
        $result = $db->query($query);
 
        while ($row = $db->fetch_row($result)) {
            $childids[] = $row[0];
            $childids = array_merge($childids, self::successor_ids($row[0]));
/var/hpwsites/u_050media_html/website/html/private/zilver/deploy/releases/10/controllers/frontend/pagetree/PagetreeFrontendController.php
        }
 
        // get link
        $link = $page->headerlink;
        $link = str_replace("linktopage:", "", $link);
        if (is_numeric($link)) {
            $p = $this->pagetreeModel->getPage($link);
            $link = "##PATHPREFIX##" . $p->seo_urlkey;
            $this->legacyRenderEngine->setTemplate(
                'IMAGEHEADER',
                '<a href="' . $link . '" id="imageheader">' . $img . "</a>"
            );
        } else {
            $link = "";
            $this->legacyRenderEngine->setTemplate('IMAGEHEADER', $img);
        }
 
        $this->legacyRenderEngine->setTemplate('HEADERLINK', $link);
 
        $content = $page->property_content();
        $this->legacyRenderEngine->setTemplate('PAGETITLE', $page->property_displaytitle());
        $this->legacyRenderEngine->setTemplate('PAGEHEADER', $page->property_headertitle());
        $this->legacyRenderEngine->setTemplate('SEODESCRIPTION', $page->seo_description);
 
        // speciaal voor beveiligde pagina's
        if ($page->isSecured()) {
            if ('access' !=
                $this->session->getPartialVar('authenticated_page_access', 'access', null) ||
                !($this->session->getPartialVar('authenticated_page_access', 'time', null) > time())
            ) {
                if (strcasecmp($this->request->getRealMethod(), 'POST') === 0) {
                    if ($page->isAuthenticated($_POST['auth_username'], $_POST['auth_password'])) {
                        $this->session->setPartialVar(
                            'authenticated_page_access',
                            'access',
                            'access'
                        );
                        $this->session->setPartialVar(
                            'authenticated_page_access',
                            'time',
/var/hpwsites/u_050media_html/website/html/private/zilver/deploy/releases/10/controllers/frontend/FrontendController.php
                $this->response->setStatus(301);
                $this->response->setLocation("/account/login/");
                $this->session->setErrorMessage("U bent niet meer ingelogd");
                return true;
            }
        }
 
        $controllerName = $this->getControllerNameForUri($currentPathSegment);
        if ($controllerName === null) {
            throw new UrlNotFoundException(
                "FrontendController: path [{$this->request->getUri()}] kan niet verwerkt worden"
            );
        }
 
        $moduleName = $this->getModuleNameForController($controllerName);
        $this->request->setModule($moduleName);
 
        $result = false;
        if ($this->container->has($controllerName)) {
            $result = $this->container->make($controllerName)->handlePath($path);
        }
 
        if ($result === false) {
            throw new UrlNotFoundException('Pagina niet gevonden');
        }
 
        if ($this->response->isRedirect()) {
            return true;
        }
 
        // redirecting trailing slash after calling controller's handlePath can be a bit inefficient due to actual rendering,
        // but only then can a redirect result from the controller be detected
        if (!$this->request->isPost() && preg_match('#/$#', $this->request->getScriptUrl()) !== 1) {
            $url = $this->request->getScriptUrl() . '/';
            if (!empty($queryParams = $this->request->getGet())) {
                $url .= '?' . http_build_query($queryParams);
            }
            $this->response->setLocation($url);
            $this->response->setStatus(301);
            return true;
/var/hpwsites/u_050media_html/website/html/private/zilver/deploy/releases/10/controllers/ApplicationController.php
     * Execute a run based on the path given. Convention is that this function
     * will return a boolean or a View class. For now there is no telling what
     * it will return.
     *
     * @return bool|ResponseInterface|Response|View|ControllerInterface
     * @throws UrlNotFoundException
     */
    public function __invoke()
    {
        try {
            $serverRequest = $this->container->get(ServerRequestInterface::class);
            if (($path = $serverRequest->getUri()->getPath()) !== '/') {
                // make sure URLs with and without trailing slash work on the same route
                $serverRequest = $serverRequest->withUri($serverRequest->getUri()->withPath(rtrim($path, '/')));
            }
            return $this->container->get(RequestHandlerInterface::class)->handle($serverRequest);
        } catch (\League\Route\Http\Exception\NotFoundException $nfe) {
            try {
                $path = $this->container->get(Path::class);
                return $this->getLegacyControllerForPath($path)->handlePath($path);
            } catch (UrlNotFoundException $e) {
                $configurationReader = $this->container->get(ConfigurationReader::class);
                if ($configurationReader->isAddonEnabled(AddonDictionary::NOT_FOUND_PAGE)) {
                    $twigEnvironment = $this->container->get(Environment::class);
                    return new Response(
                        $twigEnvironment->render('404.twig'),
                        Response::HTTP_NOT_FOUND
                    );
                }
                if ($configurationReader->isDebugEnabled()) {
                    throw $e;
                }
                return new RedirectResponse('/', 301);
            }
        }
    }
 
    /**
     * @param Path $path
     * @return ControllerInterface
/var/hpwsites/u_050media_html/website/html/private/zilver/deploy/releases/10/vendor/php-di/invoker/src/Invoker.php
        $callableReflection = CallableReflection::create($callable);
 
        $args = $this->parameterResolver->getParameters($callableReflection, $parameters, array());
 
        // Sort by array key because call_user_func_array ignores numeric keys
        ksort($args);
 
        // Check all parameters are resolved
        $diff = array_diff_key($callableReflection->getParameters(), $args);
        if (! empty($diff)) {
            /** @var \ReflectionParameter $parameter */
            $parameter = reset($diff);
            throw new NotEnoughParametersException(sprintf(
                'Unable to invoke the callable because no value was given for parameter %d ($%s)',
                $parameter->getPosition() + 1,
                $parameter->name
            ));
        }
 
        return call_user_func_array($callable, $args);
    }
 
    /**
     * Create the default parameter resolver.
     *
     * @return ParameterResolver
     */
    private function createParameterResolver()
    {
        return new ResolverChain(array(
            new NumericArrayResolver,
            new AssociativeArrayResolver,
            new DefaultValueResolver,
        ));
    }
 
    /**
     * @return ParameterResolver By default it's a ResolverChain
     */
    public function getParameterResolver()
/var/hpwsites/u_050media_html/website/html/private/zilver/deploy/releases/10/vendor/php-di/invoker/src/Invoker.php
        $callableReflection = CallableReflection::create($callable);
 
        $args = $this->parameterResolver->getParameters($callableReflection, $parameters, array());
 
        // Sort by array key because call_user_func_array ignores numeric keys
        ksort($args);
 
        // Check all parameters are resolved
        $diff = array_diff_key($callableReflection->getParameters(), $args);
        if (! empty($diff)) {
            /** @var \ReflectionParameter $parameter */
            $parameter = reset($diff);
            throw new NotEnoughParametersException(sprintf(
                'Unable to invoke the callable because no value was given for parameter %d ($%s)',
                $parameter->getPosition() + 1,
                $parameter->name
            ));
        }
 
        return call_user_func_array($callable, $args);
    }
 
    /**
     * Create the default parameter resolver.
     *
     * @return ParameterResolver
     */
    private function createParameterResolver()
    {
        return new ResolverChain(array(
            new NumericArrayResolver,
            new AssociativeArrayResolver,
            new DefaultValueResolver,
        ));
    }
 
    /**
     * @return ParameterResolver By default it's a ResolverChain
     */
    public function getParameterResolver()
/var/hpwsites/u_050media_html/website/html/private/zilver/deploy/releases/10/vendor/php-di/php-di/src/Container.php
        $this->definitionResolver->resolve($definition);
 
        return $instance;
    }
 
    /**
     * Call the given function using the given parameters.
     *
     * Missing parameters will be resolved from the container.
     *
     * @param callable $callable   Function to call.
     * @param array    $parameters Parameters to use. Can be indexed by the parameter names
     *                             or not indexed (same order as the parameters).
     *                             The array can also contain DI definitions, e.g. DI\get().
     *
     * @return mixed Result of the function.
     */
    public function call($callable, array $parameters = [])
    {
        return $this->getInvoker()->call($callable, $parameters);
    }
 
    /**
     * Define an object or a value in the container.
     *
     * @param string $name Entry name
     * @param mixed|DefinitionHelper $value Value, use definition helpers to define objects
     */
    public function set(string $name, $value)
    {
        if ($value instanceof DefinitionHelper) {
            $value = $value->getDefinition($name);
        } elseif ($value instanceof \Closure) {
            $value = new FactoryDefinition($name, $value);
        }
 
        if ($value instanceof ValueDefinition) {
            $this->resolvedEntries[$name] = $value->getValue();
        } elseif ($value instanceof Definition) {
            $value->setName($name);
/var/hpwsites/u_050media_html/website/html/private/zilver/deploy/releases/10/index.php
        || @file_get_contents(sprintf('%s/tenants/fallback/flush.flag', __DIR__)) === '1')) {
    apcu_delete(\ZilverCMS\classes\DiContainerBuilder::getCacheAPCUIterator(__DIR__, $tenant));
}
 
$container = \ZilverCMS\classes\DiContainerBuilder::initialize(
    getenv('DISABLE_DI_COMPILATION') !== '1',
    $enableDiCache,
    $tenant,
    __DIR__ . '/di_base.php',
    [
        __DIR__ . '/di.php',
        __DIR__ . '/di_autowire.php',
    ]
);
 
$container->get(\Whoops\Run::class)->register();
 
\ZilverCMS\classes\DeprecationService::setEnabled($container->get('configuration.debug'));
 
$controllerResponse = $container->call(\ZilverCMS\controllers\ApplicationController::class);
 
if ($controllerResponse instanceof \Symfony\Component\HttpFoundation\Response) {
    $controllerResponse->send();
} elseif ($controllerResponse instanceof \Psr\Http\Message\ResponseInterface) {
    $container->get(\ZilverCMS\classes\Http\ResponseEmitter::class)->emit($controllerResponse);
} else {
    echo $container->get(OutgoingResponse::class)->send();
}
 

Environment & details:

empty
empty
empty
empty
empty
Key Value
HONEYBADGER_API_KEY hbp_tNxvuUDDUZCkEjtVLtVa4Klf7yj4SC1tVzdU
TEMP /var/hpwsites/u_050media_html/tmp/
TMPDIR /var/hpwsites/u_050media_html/tmp/
TMP /var/hpwsites/u_050media_html/tmp/
HOSTNAME html.050media.nl
USER u_050media_html
HOME /var/hpwsites/u_050media_html/home
HTTP_USER_AGENT claudebot
HTTP_ACCEPT */*
HTTP_CONNECTION close
HTTP_X_WEBROOT hal18.nl
HTTP_X_FORWARDED_PROTO https
HTTP_X_FORWARDED_FOR 54.81.185.66
HTTP_X_REAL_IP 54.81.185.66
HTTPS on
GEOIP_CITY_NAME Timbuktu
GEOIP_COUNTRY_NAME United States
GEOIP_COUNTRY_CODE US
SCRIPT_FILENAME /var/hpwsites/u_050media_html/website/html/private/zilver/deploy/releases/10/index.php
HTTP_HOST www.hal18.nl
REDIRECT_STATUS 200
SERVER_NAME _
SERVER_PORT 80
SERVER_ADDR 172.31.32.6
REMOTE_PORT
REMOTE_ADDR 54.81.185.66
SERVER_SOFTWARE nginx/1.25.3
GATEWAY_INTERFACE CGI/1.1
REQUEST_SCHEME http
SERVER_PROTOCOL HTTP/1.1
DOCUMENT_ROOT /var/hpwsites/u_050media_html/website/html/webroot/hal18.nl
DOCUMENT_URI /index.php
REQUEST_URI /verhuur-lease-kantoormeubelen/
SCRIPT_NAME /index.php
CONTENT_LENGTH
CONTENT_TYPE
REQUEST_METHOD GET
QUERY_STRING
FCGI_ROLE RESPONDER
PHP_SELF /index.php
REQUEST_TIME_FLOAT 1710823850.762
REQUEST_TIME 1710823850
empty
0. Whoops\Handler\PrettyPageHandler