<?php if($page->hasNextVisible() ): ?> <strong>Nächster</strong> <br /> <a href="<?= $page->next('', 'desc')->url(); ?>" class="h1 al"><?= $page->next('', 'desc')->title(); ?></a> → <?php else: ?> <strong>Das war's</strong> <br /> <a href="<?= $site->url(); ?>" class="h1 al">Zur Startseite</a> → <?php endif; ?>
/** * Tpl * * Super simple template engine * * @package Kirby Toolkit * @author Bastian Allgeier <bastian@getkirby.com> * @link http://getkirby.com * @copyright Bastian Allgeier * @license http://www.opensource.org/licenses/mit-license.php MIT License */ class Tpl extends Silo { public static $data = array(); public static function load($_file, $_data = array(), $_return = true) { if(!file_exists($_file)) return false; ob_start(); extract(array_merge(static::$data, (array)$_data)); require($_file); $_content = ob_get_contents(); ob_end_clean(); if($_return) return $_content; echo $_content; } }
* Returns a snippet file path by name * * @param string $name * @return string */ public function file($name) { return $this->kirby->roots()->snippets() . DS . str_replace('/', DS, $name) . '.php'; } /** * Renders the snippet with the given data * * @param string $name * @param array $data * @param boolean $return * @return string */ public function render($name, $data = [], $return = false) { if(is_object($data)) $data = ['item' => $data]; return tpl::load($this->kirby->registry->get('snippet', $name), $data, $return); } }
<?php /** * Embeds a snippet from the snippet folder * * @param string $file * @param mixed $data array or object * @param boolean $return * @return string */ function snippet($file, $data = array(), $return = false) { return kirby::instance()->component('snippet')->render($file, $data, $return); } /** * Builds a css link tag for relative or absolute urls * * @param string $url * @param string|array $media Either a media string or an array of attributes * @return string */ function css() { return call([kirby::instance()->component('css'), 'tag'], func_get_args()); } /** * Builds a script tag for relative or absolute links * * @param string $src * @param boolean|array $async Either true for the async attribute or an array of attributes * @return string */ function js() { return call([kirby::instance()->component('js'), 'tag'], func_get_args()); } /** * Global markdown parser shortcut * * @param string $text
<div class="text"> <?= $page->text()->kirbytext() ?> </div> </article> <?php if( page('archive/presse') ): ?> <?php if($page->hasNextVisible() ): ?> <strong>Read Next</strong> <br /> <a href="<?= $page->nextVisible()->url(); ?>" class="h1"><?= $page->nextVisible()->title(); ?></a> → <?php else: ?> <strong>End.</strong> <br /> <a href="<?= $site->url(); ?>" class="h1">Start over</a> → <?php endif; ?> <?php endif; ?> <!-- <?php snippet('prevnext'); ?> --> </div><!-- wrapper --> <?php snippet('footer') ?>
/** * Tpl * * Super simple template engine * * @package Kirby Toolkit * @author Bastian Allgeier <bastian@getkirby.com> * @link http://getkirby.com * @copyright Bastian Allgeier * @license http://www.opensource.org/licenses/mit-license.php MIT License */ class Tpl extends Silo { public static $data = array(); public static function load($_file, $_data = array(), $_return = true) { if(!file_exists($_file)) return false; ob_start(); extract(array_merge(static::$data, (array)$_data)); require($_file); $_content = ob_get_contents(); ob_end_clean(); if($_return) return $_content; echo $_content; } }
if($template instanceof Page) { $page = $template; $file = $page->templateFile(); $data = $this->data($page, $data); } else { $file = $template; $data = $this->data(null, $data); } // check for an existing template if(!file_exists($file)) { throw new Exception('The template could not be found'); } // merge and register the template data globally $tplData = tpl::$data; tpl::$data = array_merge(tpl::$data, $data); // load the template $result = tpl::load($file, null, $return); // reset the template data tpl::$data = $tplData; return $result; } }
} return $template; } // return a fresh template return $this->template($page, $data); } /** * Template configuration * * @param Page $page * @param array $data * @return string */ public function template(Page $page, $data = array()) { return $this->component('template')->render($page, $data); } public function request() { if(!is_null($this->request)) return $this->request; return $this->request = new Request($this); } public function router() { return $this->router; } public function route() { return $this->route; } /** * Starts the router, renders the page and returns the response * * @return mixed */
} } // try to fetch the template from cache $template = $this->cache()->get($cacheId); // fetch fresh content if the cache is empty if(empty($template)) { $template = $this->template($page, $data); // store the result for the next round $this->cache()->set($cacheId, $template); } return $template; } // return a fresh template return $this->template($page, $data); } /** * Template configuration * * @param Page $page * @param array $data * @return string */ public function template(Page $page, $data = array()) { return $this->component('template')->render($page, $data); } public function request() { if(!is_null($this->request)) return $this->request; return $this->request = new Request($this); } public function router() {
* @link http://getkirby.com * @copyright Bastian Allgeier * @license http://getkirby.com/license */ class Response extends \Kirby\Component { /** * Builds and return the response by various input * * @param mixed $response * @return mixed */ public function make($response) { if(is_string($response)) { return $this->kirby->render(page($response)); } else if(is_array($response)) { return $this->kirby->render(page($response[0]), $response[1]); } else if(is_a($response, 'Page')) { return $this->kirby->render($response); } else if(is_a($response, 'Response')) { return $response; } else { return null; } } }
// check for a valid route if(is_null($this->route)) { header::status('500'); header::type('json'); die(json_encode(array( 'status' => 'error', 'message' => 'Invalid route or request method' ))); } // call the router action with all arguments from the pattern $response = call($this->route->action(), $this->route->arguments()); // load all language variables // this can only be loaded once the router action has been called // otherwise the current language is not yet available $this->localize(); // build the response $this->response = $this->component('response')->make($response); // store the current language in the session if( $this->option('language.detect') && $this->site()->multilang() && $this->site()->language() ) { s::set('kirby_language', $this->site()->language()->code()); } return $this->response; } /** * Register a new hook * * @param string/array $hook The name of the hook * @param closure $callback */
<?php define('DS', DIRECTORY_SEPARATOR); // load kirby require(__DIR__ . DS . 'kirby' . DS . 'bootstrap.php'); // check for a custom site.php if(file_exists(__DIR__ . DS . 'site.php')) { require(__DIR__ . DS . 'site.php'); } else { $kirby = kirby(); } // render echo $kirby->launch();
Key | Value |
Kirby Toolkit | v2.5.7 |
Kirby CMS | v2.5.7 |
Key | Value |
kirby_session_fingerprint | 383032f95b19b9ab6eef22b15702a989cf8b7ca7 |
kirby_session_activity | 1711706096 |
device_class | desktop |
Key | Value |
REDIRECT_REDIRECT_UNIQUE_ID | ZgaP7wfdrMezBZd7-j_K2gAAABU |
REDIRECT_REDIRECT_WAAS_MODE | 0 |
REDIRECT_REDIRECT_SCRIPT_URL | /archiv/presse/weihnachtsmarkt-2017 |
REDIRECT_REDIRECT_SCRIPT_URI | http://schuetzenbruderschaft-schoenstein.de/archiv/presse/weihnachtsmarkt-2017 |
REDIRECT_REDIRECT_DOCUMENT_ROOT | /kunden/homepages/22/d66630700/htdocs |
REDIRECT_REDIRECT_UI_SUEXEC_DEFAULT_CHROOT_ID | 14 |
REDIRECT_REDIRECT_UI_SUEXEC_FSTATD_UNIXSOCKET | /run/ui-fstatd.suexec.socket |
REDIRECT_REDIRECT_UI_SUEXEC_STATISTICS_UNIXSOCKET | /homepages/sclientMF/http.sock.bin |
REDIRECT_REDIRECT_DBENTRY__RSCLVL_CPU | 60 |
REDIRECT_REDIRECT_DBENTRY__RSCLVL_MEM | 896 |
REDIRECT_REDIRECT_DBENTRY__RSCLVL_PROCSOFT | 25 |
REDIRECT_REDIRECT_DBENTRY__RSCLVL_PROCHARD | 37 |
REDIRECT_REDIRECT_DBENTRY__RSCLVL_JIMDO | 800 |
REDIRECT_REDIRECT_DBENTRY__RSCLVL_CPU_JIMDO | 60 |
REDIRECT_REDIRECT_DBENTRY__RSCLVL_MEM_JIMDO | 768 |
REDIRECT_REDIRECT_DBENTRY__RSCLVL_PROCSOFT_JIMDO | 24 |
REDIRECT_REDIRECT_DBENTRY__RSCLVL_PROCHARD_JIMDO | 24 |
REDIRECT_REDIRECT_DBENTRY_HOST | schuetzenbruderschaft-schoenstein.de |
REDIRECT_REDIRECT_DBENTRY_VALUE | /kunden/homepages/22/d66630700/htdocs:d0000#CPU 60 #MEM 524288 #CGI 524618 #NPROC 20 #TAID 33736898 #LANG 0 #PARKING 1 #RSCLVL 500 #STAT 1 #CHROOT 14 |
REDIRECT_REDIRECT_DBENTRY_DOCROOT | /kunden/homepages/22/d66630700/htdocs |
REDIRECT_REDIRECT_DBENTRY_HASH | d0000 |
REDIRECT_REDIRECT_DBENTRY__CPU | 60 |
REDIRECT_REDIRECT_DBENTRY__MEM | 524288 |
REDIRECT_REDIRECT_DBENTRY__CGI | 524618 |
REDIRECT_REDIRECT_DBENTRY__NPROC | 20 |
REDIRECT_REDIRECT_DBENTRY__TAID | 33736898 |
REDIRECT_REDIRECT_DBENTRY__LANG | 0 |
REDIRECT_REDIRECT_DBENTRY__PARKING | 1 |
REDIRECT_REDIRECT_DBENTRY__RSCLVL | 500 |
REDIRECT_REDIRECT_DBENTRY__STAT | 1 |
REDIRECT_REDIRECT_DBENTRY__CHROOT | 14 |
REDIRECT_REDIRECT_DBENTRY | /kunden/homepages/22/d66630700/htdocs:d0000#CPU 60 #MEM 524288 #CGI 524618 #NPROC 20 #TAID 33736898 #LANG 0 #PARKING 1 #RSCLVL 500 #STAT 1 #CHROOT 14 |
REDIRECT_REDIRECT_STATUS | 200 |
REDIRECT_UNIQUE_ID | ZgaP7wfdrMezBZd7-j_K2gAAABU |
REDIRECT_SCRIPT_URL | /archiv/presse/weihnachtsmarkt-2017 |
REDIRECT_SCRIPT_URI | http://schuetzenbruderschaft-schoenstein.de/archiv/presse/weihnachtsmarkt-2017 |
REDIRECT_DOCUMENT_ROOT | /kunden/homepages/22/d66630700/htdocs |
REDIRECT_HANDLER | x-mapp-php5.5 |
REDIRECT_STATUS | 200 |
UNIQUE_ID | ZgaP7wfdrMezBZd7-j_K2gAAABU |
SCRIPT_URL | /archiv/presse/weihnachtsmarkt-2017 |
SCRIPT_URI | http://schuetzenbruderschaft-schoenstein.de/archiv/presse/weihnachtsmarkt-2017 |
HTTP_HOST | schuetzenbruderschaft-schoenstein.de |
HTTP_CONNECTION | close |
HTTP_ACCEPT | */* |
HTTP_USER_AGENT | claudebot |
PATH | /bin:/usr/bin |
SERVER_SIGNATURE | |
SERVER_SOFTWARE | Apache |
SERVER_NAME | schuetzenbruderschaft-schoenstein.de |
SERVER_ADDR | 82.165.81.215 |
SERVER_PORT | 80 |
REMOTE_ADDR | 3.238.198.167 |
DOCUMENT_ROOT | /kunden/homepages/22/d66630700/htdocs |
REQUEST_SCHEME | http |
CONTEXT_PREFIX | /system-bin/ |
CONTEXT_DOCUMENT_ROOT | /kunden/usr/lib/cgi-bin/ |
SERVER_ADMIN | webmaster@schuetzenbruderschaft-schoenstein.de |
SCRIPT_FILENAME | /kunden/homepages/22/d66630700/htdocs/index.php |
REMOTE_PORT | 26216 |
REDIRECT_URL | /index.php |
GATEWAY_INTERFACE | CGI/1.1 |
SERVER_PROTOCOL | HTTP/1.1 |
REQUEST_METHOD | GET |
QUERY_STRING | |
REQUEST_URI | /archiv/presse/weihnachtsmarkt-2017 |
SCRIPT_NAME | /index.php |
STATUS | 200 |
ORIG_PATH_INFO | /index.php |
ORIG_PATH_TRANSLATED | /kunden/homepages/22/d66630700/htdocs/index.php |
PHP_SELF | /index.php |
REQUEST_TIME_FLOAT | 1711706096.0085 |
REQUEST_TIME | 1711706096 |
argv | Array ( ) |
argc | 0 |
Key | Value |
REDIRECT_REDIRECT_UNIQUE_ID | ZgaP7wfdrMezBZd7-j_K2gAAABU |
REDIRECT_REDIRECT_WAAS_MODE | 0 |
REDIRECT_REDIRECT_SCRIPT_URL | /archiv/presse/weihnachtsmarkt-2017 |
REDIRECT_REDIRECT_SCRIPT_URI | http://schuetzenbruderschaft-schoenstein.de/archiv/presse/weihnachtsmarkt-2017 |
REDIRECT_REDIRECT_DOCUMENT_ROOT | /kunden/homepages/22/d66630700/htdocs |
REDIRECT_REDIRECT_UI_SUEXEC_DEFAULT_CHROOT_ID | 14 |
REDIRECT_REDIRECT_UI_SUEXEC_FSTATD_UNIXSOCKET | /run/ui-fstatd.suexec.socket |
REDIRECT_REDIRECT_UI_SUEXEC_STATISTICS_UNIXSOCKET | /homepages/sclientMF/http.sock.bin |
REDIRECT_REDIRECT_DBENTRY__RSCLVL_CPU | 60 |
REDIRECT_REDIRECT_DBENTRY__RSCLVL_MEM | 896 |
REDIRECT_REDIRECT_DBENTRY__RSCLVL_PROCSOFT | 25 |
REDIRECT_REDIRECT_DBENTRY__RSCLVL_PROCHARD | 37 |
REDIRECT_REDIRECT_DBENTRY__RSCLVL_JIMDO | 800 |
REDIRECT_REDIRECT_DBENTRY__RSCLVL_CPU_JIMDO | 60 |
REDIRECT_REDIRECT_DBENTRY__RSCLVL_MEM_JIMDO | 768 |
REDIRECT_REDIRECT_DBENTRY__RSCLVL_PROCSOFT_JIMDO | 24 |
REDIRECT_REDIRECT_DBENTRY__RSCLVL_PROCHARD_JIMDO | 24 |
REDIRECT_REDIRECT_DBENTRY_HOST | schuetzenbruderschaft-schoenstein.de |
REDIRECT_REDIRECT_DBENTRY_VALUE | /kunden/homepages/22/d66630700/htdocs:d0000#CPU 60 #MEM 524288 #CGI 524618 #NPROC 20 #TAID 33736898 #LANG 0 #PARKING 1 #RSCLVL 500 #STAT 1 #CHROOT 14 |
REDIRECT_REDIRECT_DBENTRY_DOCROOT | /kunden/homepages/22/d66630700/htdocs |
REDIRECT_REDIRECT_DBENTRY_HASH | d0000 |
REDIRECT_REDIRECT_DBENTRY__CPU | 60 |
REDIRECT_REDIRECT_DBENTRY__MEM | 524288 |
REDIRECT_REDIRECT_DBENTRY__CGI | 524618 |
REDIRECT_REDIRECT_DBENTRY__NPROC | 20 |
REDIRECT_REDIRECT_DBENTRY__TAID | 33736898 |
REDIRECT_REDIRECT_DBENTRY__LANG | 0 |
REDIRECT_REDIRECT_DBENTRY__PARKING | 1 |
REDIRECT_REDIRECT_DBENTRY__RSCLVL | 500 |
REDIRECT_REDIRECT_DBENTRY__STAT | 1 |
REDIRECT_REDIRECT_DBENTRY__CHROOT | 14 |
REDIRECT_REDIRECT_DBENTRY | /kunden/homepages/22/d66630700/htdocs:d0000#CPU 60 #MEM 524288 #CGI 524618 #NPROC 20 #TAID 33736898 #LANG 0 #PARKING 1 #RSCLVL 500 #STAT 1 #CHROOT 14 |
REDIRECT_REDIRECT_STATUS | 200 |
REDIRECT_UNIQUE_ID | ZgaP7wfdrMezBZd7-j_K2gAAABU |
REDIRECT_SCRIPT_URL | /archiv/presse/weihnachtsmarkt-2017 |
REDIRECT_SCRIPT_URI | http://schuetzenbruderschaft-schoenstein.de/archiv/presse/weihnachtsmarkt-2017 |
REDIRECT_DOCUMENT_ROOT | /kunden/homepages/22/d66630700/htdocs |
REDIRECT_HANDLER | x-mapp-php5.5 |
REDIRECT_STATUS | 200 |
UNIQUE_ID | ZgaP7wfdrMezBZd7-j_K2gAAABU |
SCRIPT_URL | /archiv/presse/weihnachtsmarkt-2017 |
SCRIPT_URI | http://schuetzenbruderschaft-schoenstein.de/archiv/presse/weihnachtsmarkt-2017 |
HTTP_HOST | schuetzenbruderschaft-schoenstein.de |
HTTP_CONNECTION | close |
HTTP_ACCEPT | */* |
HTTP_USER_AGENT | claudebot |
PATH | /bin:/usr/bin |
SERVER_SIGNATURE | |
SERVER_SOFTWARE | Apache |
SERVER_NAME | schuetzenbruderschaft-schoenstein.de |
SERVER_ADDR | 82.165.81.215 |
SERVER_PORT | 80 |
REMOTE_ADDR | 3.238.198.167 |
DOCUMENT_ROOT | /kunden/homepages/22/d66630700/htdocs |
REQUEST_SCHEME | http |
CONTEXT_PREFIX | /system-bin/ |
CONTEXT_DOCUMENT_ROOT | /kunden/usr/lib/cgi-bin/ |
SERVER_ADMIN | webmaster@schuetzenbruderschaft-schoenstein.de |
SCRIPT_FILENAME | /kunden/homepages/22/d66630700/htdocs/index.php |
REMOTE_PORT | 26216 |
REDIRECT_URL | /index.php |
GATEWAY_INTERFACE | CGI/1.1 |
SERVER_PROTOCOL | HTTP/1.1 |
REQUEST_METHOD | GET |
QUERY_STRING | |
REQUEST_URI | /archiv/presse/weihnachtsmarkt-2017 |
SCRIPT_NAME | /index.php |
STATUS | 200 |
ORIG_PATH_INFO | /index.php |
ORIG_PATH_TRANSLATED | /kunden/homepages/22/d66630700/htdocs/index.php |