Error
Call to a member function parent() on null Error thrown with message "Call to a member function parent() on null" Stacktrace: #6 Error in /var/www/newmedia/site/templates/project.php:37 #5 require in /var/www/newmedia/kirby/src/Toolkit/Tpl.php:39 #4 Kirby\Toolkit\Tpl:load in /var/www/newmedia/kirby/src/Cms/Template.php:164 #3 Kirby\Cms\Template:render in /var/www/newmedia/kirby/src/Cms/Page.php:1124 #2 Kirby\Cms\Page:render in /var/www/newmedia/kirby/src/Cms/App.php:522 #1 Kirby\Cms\App:io in /var/www/newmedia/kirby/src/Cms/App.php:779 #0 Kirby\Cms\App:render in /var/www/newmedia/index.php:5
Stack frames (7)
6
Error
/
var
/
www
/
newmedia
/
site
/
templates
/
project.php
37
5
require
/
src
/
Toolkit
/
Tpl.php
39
4
Kirby
\
Toolkit
\
Tpl
load
/
src
/
Cms
/
Template.php
164
3
Kirby
\
Cms
\
Template
render
/
src
/
Cms
/
Page.php
1124
2
Kirby
\
Cms
\
Page
render
/
src
/
Cms
/
App.php
522
1
Kirby
\
Cms
\
App
io
/
src
/
Cms
/
App.php
779
0
Kirby
\
Cms
\
App
render
/
var
/
www
/
newmedia
/
index.php
5
/
var
/
www
/
newmedia
/
site
/
templates
/
project.php
          <a class="project block<?php e($project->isOpen(), ' active') ?>" href="<?= page('projects')->url() . "/" . $semester->id() . "/" . $project->project_slug() ?>">
<?php if($project->files()->template('thumb')->count()): ?>
            <img class="thumb" src="<?= $project->files()->template('thumb')->first()->url() ?>" alt="preview image of <?= $project->project() ?>">
<?php else: ?>
            <img class="thumb placeholder" src="/assets/img/thumb.svg" alt="random placeholder preview image for <?= $project->project() ?>">
<?php endif ?>
            <div>
              <h2><?= $project->parent()->name() ?></h2>
              <h3 class="bold"><?= strip_tags($project->project()->kirbytext()) ?></h3>
            </div>
          </a>
<?php endforeach ?>
        </div>
      </section>
      <section id="two" class="right" aria-expanded="true">
        <div class="project">
<?php if(page('students')->grandChildren()->filterBy('semester', $param_semester)->count() > 0): ?>
<?php $project = page('students')->grandChildren()->filterBy('semester', $param_semester)->findBy('project_slug', $param_project) ?>
          <div class="headline">
            <h2><a href="<?= page('students')->url() . "/" . $project->parent()->student_slug() ?>"><?= $project->parent()->name() ?></a>&thinsp;&mdash;&thinsp;<span class="bold"><?= strip_tags($project->project()->kirbytext()) ?></span></h2>
<?php if($semester->id() != '00XX-free'): ?>
            <h3 class="italic"><a href="<?= page('projects')->url() . "/" . $semester->id() ?>"><?= $semester->topic() ?></a>&thinsp;&mdash;&thinsp;<?= $semester->semester() ?></h3>
<?php else: ?>
            <h3 class="italic"><a href="<?= page('projects')->url() . "/" . $semester->id() ?>"><?= $semester->topic() ?></a></h3>
<?php endif ?>
          </div>
          <div class="project-text">
            <?= $project->text()->kirbytext() ?>
 
          </div>
        </div>
        <hr>
        <div class="gallery">
<?php if($project->vimeo()->isNotEmpty()): ?>
<?php foreach($project->vimeo()->toStructure() as $video): ?>
          <div class="iframe">
            <?= html::vimeo($video->video()->url()) ?>
 
          </div>
<?php endforeach ?>
/
var
/
www
/
newmedia
/
kirby
/
src
/
Toolkit
/
Tpl.php
    /**
     * Renders the template
     *
     * @param string $__file
     * @param array $__data
     * @return string
     */
    public static function load(string $__file = null, array $__data = []): string
    {
        if (file_exists($__file) === false) {
            return '';
        }
 
        $exception = null;
 
        ob_start();
        extract($__data);
 
        try {
            require $__file;
        } catch (Throwable $e) {
            $exception = $e;
        }
 
        $content = ob_get_contents();
        ob_end_clean();
 
        if ($exception === null) {
            return $content;
        }
 
        throw $exception;
    }
}
 
/
var
/
www
/
newmedia
/
kirby
/
src
/
Cms
/
Template.php
        }
    }
 
    /**
     * Returns the template name
     *
     * @return string
     */
    public function name(): string
    {
        return $this->name;
    }
 
    /**
     * @param array $data
     * @return string
     */
    public function render(array $data = []): string
    {
        return Tpl::load($this->file(), $data);
    }
 
    /**
     * Returns the root to the templates directory
     *
     * @return string
     */
    public function root(): string
    {
        return App::instance()->root($this->store());
    }
 
    /**
     * Returns the template type
     *
     * @return string
     */
    public function type(): string
    {
        return $this->type;
/
var
/
www
/
newmedia
/
kirby
/
src
/
Cms
/
Page.php
        }
 
        // fetch the page regularly
        if ($html === null) {
            $kirby->data = $this->controller($data, $contentType);
 
            if ($contentType === 'html') {
                $template = $this->template();
            } else {
                $template = $this->representation($contentType);
            }
 
            if ($template->exists() === false) {
                throw new NotFoundException([
                    'key' => 'template.default.notFound'
                ]);
            }
 
            // render the page
            $html = $template->render($kirby->data);
 
            // convert the response configuration to an array
            $response = $kirby->response()->toArray();
 
            // cache the result
            if ($cache !== null) {
                $cache->set($cacheId, [
                    'html'     => $html,
                    'response' => $response
                ]);
            }
        }
 
        return $html;
    }
 
    /**
     * @return Template
     */
    public function representation($type)
/
var
/
www
/
newmedia
/
kirby
/
src
/
Cms
/
App.php
        }
 
        // Empty input
        if (empty($input) === true) {
            return $this->io(new NotFoundException());
        }
 
        // Response Configuration
        if (is_a($input, 'Kirby\Cms\Responder') === true) {
            return $input->send();
        }
 
        // Responses
        if (is_a($input, 'Kirby\Http\Response') === true) {
            return $input;
        }
 
        // Pages
        if (is_a($input, 'Kirby\Cms\Page')) {
            $html = $input->render();
 
            if ($input->isErrorPage() === true) {
                if ($response->code() === null) {
                    $response->code(404);
                }
            }
 
            return $response->send($html);
        }
 
        // Files
        if (is_a($input, 'Kirby\Cms\File')) {
            return $response->redirect($input->mediaUrl(), 307)->send();
        }
 
        // Simple HTML response
        if (is_string($input) === true) {
            return $response->send($input);
        }
 
/
var
/
www
/
newmedia
/
kirby
/
src
/
Cms
/
App.php
 
        $requestUri  = '/' . $this->request()->url()->path();
        $scriptName  = $_SERVER['SCRIPT_NAME'];
        $scriptFile  = basename($scriptName);
        $scriptDir   = dirname($scriptName);
        $scriptPath  = $scriptFile === 'index.php' ? $scriptDir : $scriptName;
        $requestPath = preg_replace('!^' . preg_quote($scriptPath) . '!', '', $requestUri);
 
        return $this->setPath($requestPath)->path;
    }
 
    /**
     * Returns the Response object for the
     * current request
     *
     * @return Response
     */
    public function render(string $path = null, string $method = null)
    {
        return $this->io($this->call($path, $method));
    }
 
    /**
     * Returns the Request singleton
     *
     * @return Request
     */
    public function request(): Request
    {
        return $this->request = $this->request ?? new Request;
    }
 
    /**
     * Path resolver for the router
     *
     * @param string $path
     * @param string|null $language
     * @return mixed
     */
    public function resolve(string $path = null, string $language = null)
/
var
/
www
/
newmedia
/
index.php
<?php
 
require 'kirby/bootstrap.php';
 
echo (new Kirby)->render();
 

Environment & details:

empty
empty
empty
empty
empty
Key Value
REDIRECT_HTTP_AUTHORIZATION
REDIRECT_HTTPS on
REDIRECT_SSL_TLS_SNI newmedia.udk-berlin.de
REDIRECT_STATUS 200
HTTP_AUTHORIZATION
HTTPS on
SSL_TLS_SNI newmedia.udk-berlin.de
HTTP_ACCEPT */*
HTTP_USER_AGENT claudebot
HTTP_REFERER https://newmedia.medienhaus.udk-berlin.de/projects/2019-ws/schtzngrmm-v-20-20
HTTP_HOST newmedia.udk-berlin.de
PATH /usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin
SERVER_SIGNATURE
SERVER_SOFTWARE Apache/2.4.25 (Debian)
SERVER_NAME newmedia.udk-berlin.de
SERVER_ADDR 194.95.202.106
SERVER_PORT 443
REMOTE_ADDR 184.72.135.210
DOCUMENT_ROOT /var/www/newmedia
REQUEST_SCHEME https
CONTEXT_PREFIX
CONTEXT_DOCUMENT_ROOT /var/www/newmedia
SERVER_ADMIN [no address given]
SCRIPT_FILENAME /var/www/newmedia/index.php
REMOTE_PORT 46080
REDIRECT_URL /projects/2019-ws/schtzngrmm-v-20-20
GATEWAY_INTERFACE CGI/1.1
SERVER_PROTOCOL HTTP/1.1
REQUEST_METHOD GET
QUERY_STRING
REQUEST_URI /projects/2019-ws/schtzngrmm-v-20-20
SCRIPT_NAME /index.php
PHP_SELF /index.php
REQUEST_TIME_FLOAT 1711633939.5439
REQUEST_TIME 1711633939
empty
0. Whoops\Handler\PrettyPageHandler