</div>
<div class="gallery-mobile-controls u-mv">
<div class="gallery-mobile-controls-container js-gallery-slider-controls">
<div class="gallery-mobile-controls-ctrl"><i class="icon icon-arrow icon-arrow--prev"></i></div>
<div class="gallery-mobile-controls-ctrl"><i class="icon icon-arrow icon-arrow--next"></i></div>
</div>
<div class="gallery-mobile-controls-indicator js-gallery-slider-indicator ft--navigation-caps">
0/0
</div>
</div>
</div>
<div class="inner desktop-only">
<div class="o-grid">
<?php foreach ($imageColumns as $column) : ?>
<div class="o-grid__col u-4/12@ts">
<div class="col">
<div class="col__inner">
<?php foreach ($column as $i => $image) : ?>
<div class="image u-pb">
<a href="<?= $image["sizes"]["teaser"] ?>" class="js-cursor-trigger" data-cursor="plus">
<?= picture($image)->default($format[$i%count($format)]); ?>
</a>
</div>
<?php endforeach; ?>
</div>
</div>
</div>
<?php
$format[3] = $format[2];
$format[2] = $format[1];
$format[1] = $format[0];
$format[0] = $format[3];
?>
<?php endforeach; ?>
</div>
</div>
</div>
</div>
"Trying to access array offset on false"
</div>
<div class="gallery-mobile-controls u-mv">
<div class="gallery-mobile-controls-container js-gallery-slider-controls">
<div class="gallery-mobile-controls-ctrl"><i class="icon icon-arrow icon-arrow--prev"></i></div>
<div class="gallery-mobile-controls-ctrl"><i class="icon icon-arrow icon-arrow--next"></i></div>
</div>
<div class="gallery-mobile-controls-indicator js-gallery-slider-indicator ft--navigation-caps">
0/0
</div>
</div>
</div>
<div class="inner desktop-only">
<div class="o-grid">
<?php foreach ($imageColumns as $column) : ?>
<div class="o-grid__col u-4/12@ts">
<div class="col">
<div class="col__inner">
<?php foreach ($column as $i => $image) : ?>
<div class="image u-pb">
<a href="<?= $image["sizes"]["teaser"] ?>" class="js-cursor-trigger" data-cursor="plus">
<?= picture($image)->default($format[$i%count($format)]); ?>
</a>
</div>
<?php endforeach; ?>
</div>
</div>
</div>
<?php
$format[3] = $format[2];
$format[2] = $format[1];
$format[1] = $format[0];
$format[0] = $format[3];
?>
<?php endforeach; ?>
</div>
</div>
</div>
</div>
print $content;
wp_reset_postdata();
}
}
private function getModuleHtml($layout, $variables)
{
$fileName = sprintf('%s.php', $layout);
$filePath = sprintf('%s/%s/%s', get_template_directory(), $this->layoutDir, $fileName);
if (!file_exists($filePath)) {
print 'MODULE LAYOUT NOT FOUND IN: ' . $filePath;
return;
}
extract($variables);
include($filePath);
}
private function getDebugHtml($layout, $variables)
{
if (!isset($_GET['debug-modules'])) {
return;
}
printf("<div>");
print '<pre>';
print_r($variables);
print '</pre>';
printf("</div>");
}
private function getModules()
{
return \get_field($this->acfModulesFieldKey) ?: [];
}
private function getLayoutName($module)
"/var/www/vhosts/zteisner.at/www/content/themes/eisnerzt/includes/layouts/gallery.php"
private $layoutDir = './';
public function build()
{
$modules = $this->getModules();
foreach ($modules as $module) {
$layout = $this->getLayoutName($module);
$variables = $module;
unset($variables[$this->acfLayoutFieldKey]);
$variables['layout'] = $layout;
$baseClassName = $this->moduleClassName;
$layoutClassName = $baseClassName . "--" . $layout;
ob_start();
printf("<div class=\"%s %s\">\n", $baseClassName, $layoutClassName);
$this->getDebugHtml($layout, $variables);
$this->getModuleHtml($layout, $variables);
print("</div>\n");
$content = ob_get_clean();
print $content;
wp_reset_postdata();
}
}
private function getModuleHtml($layout, $variables)
{
$fileName = sprintf('%s.php', $layout);
$filePath = sprintf('%s/%s/%s', get_template_directory(), $this->layoutDir, $fileName);
if (!file_exists($filePath)) {
print 'MODULE LAYOUT NOT FOUND IN: ' . $filePath;
return;
<?php
get_header('single-project');
$Modules = new \Probots\Modules\Builder;
$Modules
->setModulesFieldKey('modules')
->setLayoutFieldKey('acf_fc_layout')
->setModuleClassName('layout')
->setLayoutSubDirectory('includes/layouts');
$Modules->build();
get_footer();
*/
$template = apply_filters( 'template_include', $template );
$is_stringy = is_string( $template ) || ( is_object( $template ) && method_exists( $template, '__toString' ) );
$template = $is_stringy ? realpath( (string) $template ) : null;
if (
is_string( $template ) &&
( str_ends_with( $template, '.php' ) || str_ends_with( $template, '.html' ) ) &&
is_file( $template ) &&
is_readable( $template )
) {
/**
* Fires immediately before including the template.
*
* @since 6.9.0
*
* @param string $template The path of the template about to be included.
*/
do_action( 'wp_before_include_template', $template );
include $template;
} elseif ( current_user_can( 'switch_themes' ) ) {
$theme = wp_get_theme();
if ( $theme->errors() ) {
wp_die( $theme->errors() );
}
}
return;
}
"/var/www/vhosts/zteisner.at/www/content/themes/eisnerzt/single-project.php"
<?php
/**
* Loads the WordPress environment and template.
*
* @package WordPress
*/
if ( ! isset( $wp_did_header ) ) {
$wp_did_header = true;
// Load the WordPress library.
require_once __DIR__ . '/wp-load.php';
// Set up the WordPress query.
wp();
// Load the theme template.
require_once ABSPATH . WPINC . '/template-loader.php';
}
"/var/www/vhosts/zteisner.at/www/wp/wp-includes/template-loader.php"
<?php
/**
* Front to the WordPress application. This file doesn't do anything, but loads
* wp-blog-header.php which does and tells WordPress to load the theme.
*
* @package WordPress
*/
/**
* Tells WordPress to load the WordPress theme and output it.
*
* @var bool
*/
define('WP_USE_THEMES', true);
/** Loads the WordPress Environment and Template */
require( dirname( __FILE__ ) . '/wp/wp-blog-header.php' );
"/var/www/vhosts/zteisner.at/www/wp/wp-blog-header.php"
| Key | Value |
| SERVER_SOFTWARE | "Apache"
|
| REQUEST_URI | "/projekt/siemens-rise-wollsdorf/"
|
| USER | "zteisner.at"
|
| HOME | "/var/www/vhosts/zteisner.at"
|
| SCRIPT_NAME | "/index.php"
|
| QUERY_STRING | "" |
| REQUEST_METHOD | "GET"
|
| SERVER_PROTOCOL | "HTTP/1.1"
|
| GATEWAY_INTERFACE | "CGI/1.1"
|
| REDIRECT_URL | "/projekt/siemens-rise-wollsdorf/"
|
| REMOTE_PORT | "53790"
|
| SCRIPT_FILENAME | "/var/www/vhosts/zteisner.at/www/index.php"
|
| SERVER_ADMIN | "webmaster@zteisner.at"
|
| CONTEXT_DOCUMENT_ROOT | "/var/www/vhosts/zteisner.at/www"
|
| CONTEXT_PREFIX | "" |
| REQUEST_SCHEME | "https"
|
| DOCUMENT_ROOT | "/var/www/vhosts/zteisner.at/www"
|
| REMOTE_ADDR | "18.97.14.82"
|
| SERVER_PORT | "443"
|
| SERVER_ADDR | "193.107.158.11"
|
| SERVER_NAME | "zteisner.at"
|
| SERVER_SIGNATURE | "" |
| PATH | "/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/snap/bin"
|
| HTTP_CONNECTION | "Keep-Alive"
|
| HTTP_HOST | "zteisner.at"
|
| HTTP_ACCEPT_ENCODING | "zstd, br, gzip"
|
| HTTP_IF_MODIFIED_SINCE | "Fri, 10 Jul 2026 11:26:28 GMT"
|
| HTTP_ACCEPT_LANGUAGE | "en-US,en;q=0.5"
|
| HTTP_ACCEPT | "text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8"
|
| HTTP_USER_AGENT | "CCBot/2.0 (https://commoncrawl.org/faq/)"
|
| SSL_TLS_SNI | "zteisner.at"
|
| HTTPS | "on"
|
| HTTP_AUTHORIZATION | "" |
| QS_ConnectionId | "1792030121624864102633801"
|
| QS_AllConn | "3"
|
| QS_IPConn | "1"
|
| QS_SrvConn | "3"
|
| REDIRECT_STATUS | "200"
|
| REDIRECT_SSL_TLS_SNI | "zteisner.at"
|
| REDIRECT_HTTPS | "on"
|
| REDIRECT_HTTP_AUTHORIZATION | "" |
| REDIRECT_QS_ConnectionId | "1792030121624864102633801"
|
| REDIRECT_QS_AllConn | "3"
|
| REDIRECT_QS_IPConn | "1"
|
| REDIRECT_QS_SrvConn | "3"
|
| FCGI_ROLE | "RESPONDER"
|
| PHP_SELF | "/index.php"
|
| REQUEST_TIME_FLOAT | 1792030121.629
|
| REQUEST_TIME | 1792030121
|
| ENVIRONMENT | "production"
|
| DEBUG | "false"
|
| LIVE_RELOAD | "false"
|
| SSL | "true"
|
| NETWORK | "probots"
|
| VIRTUAL_HOST | "www2.zteisner.at"
|
| PORT_WP | "80"
|
| PORT_WPS | "443"
|
| PORT_DB | "3306"
|
| DB_IMAGE | "mysql:5.7"
|
| DB_HOST | "localhost"
|
| DB_ROOT_PASS | "WBhyaLDpqIMsJPD"
|
| DB_NAME | "zteisner"
|
| DB_USER | "zteisner.at"
|
| DB_PASSWORD | "5xeGMDJ9gsfEtwT"
|
| WP_THEME_NAME | "eisnerzt"
|
| WP_TABLE_PREFIX | "wp_"
|
| WP_MEDIA_URL | "https://www2.zteisner.at/media"
|
| BACKUP_REGION | "AMS3"
|
| BACKUP_KEY | "null"
|
| BACKUP_SECRET | "null"
|
| BACKUP_KEEP_DAYS | "7"
|
| BACKUP_PATTERN | "false"
|
| BUGHERD | "null"
|
| GOOGLE_MAPS | "AIzaSyAD9gOri1tHcxT2N3dKjdzW05koifF8YBc"
|
| SMTP_AUTH | "false"
|
| SMTP_SECURE | "none"
|
| SMTP_HOST | "smtp.westnet.at"
|
| SMTP_PORT | "25"
|
| SMTP_USER | "postmaster@mg.probots.io"
|
| SMTP_PASS | "01d0965beb739826029b3e24322c2a43-9c988ee3-7ffd6c4c"
|
| SMTP_FROM_EMAIL | "postmaster@mg.probots.io"
|
| SMTP_FROM_NAME | "Probots-Digital-Unit"
|
| TAGMANAGER | "GTM-PB73M2J"
|
| DB_PORT | "3306"
|
| Key | Value |
| ENVIRONMENT | "production"
|
| DEBUG | "false"
|
| LIVE_RELOAD | "false"
|
| SSL | "true"
|
| NETWORK | "probots"
|
| VIRTUAL_HOST | "www2.zteisner.at"
|
| PORT_WP | "80"
|
| PORT_WPS | "443"
|
| PORT_DB | "3306"
|
| DB_IMAGE | "mysql:5.7"
|
| DB_HOST | "localhost"
|
| DB_ROOT_PASS | "WBhyaLDpqIMsJPD"
|
| DB_NAME | "zteisner"
|
| DB_USER | "zteisner.at"
|
| DB_PASSWORD | "5xeGMDJ9gsfEtwT"
|
| WP_THEME_NAME | "eisnerzt"
|
| WP_TABLE_PREFIX | "wp_"
|
| WP_MEDIA_URL | "https://www2.zteisner.at/media"
|
| BACKUP_REGION | "AMS3"
|
| BACKUP_KEY | "null"
|
| BACKUP_SECRET | "null"
|
| BACKUP_KEEP_DAYS | "7"
|
| BACKUP_PATTERN | "false"
|
| BUGHERD | "null"
|
| GOOGLE_MAPS | "AIzaSyAD9gOri1tHcxT2N3dKjdzW05koifF8YBc"
|
| SMTP_AUTH | "false"
|
| SMTP_SECURE | "none"
|
| SMTP_HOST | "smtp.westnet.at"
|
| SMTP_PORT | "25"
|
| SMTP_USER | "postmaster@mg.probots.io"
|
| SMTP_PASS | "01d0965beb739826029b3e24322c2a43-9c988ee3-7ffd6c4c"
|
| SMTP_FROM_EMAIL | "postmaster@mg.probots.io"
|
| SMTP_FROM_NAME | "Probots-Digital-Unit"
|
| TAGMANAGER | "GTM-PB73M2J"
|
| DB_PORT | "3306"
|