2025-10-02 17:01:55 +02:00
< ? php
$startTime = microtime ( true );
$publicDir = realpath ( $_SERVER [ 'DOCUMENT_ROOT' ]);
$customCssPath = __DIR__ . '/../styles/base.css' ;
$defaultCssPath = __DIR__ . '/../../default/styles/base.css' ;
$cssPath = file_exists ( $customCssPath ) ? $customCssPath : $defaultCssPath ;
$cssUrl = file_exists ( $customCssPath ) ? '/app/styles/base.css' : '/app/default-styles/base.css' ;
$cssHash = file_exists ( $cssPath ) ? hash_file ( 'md5' , $cssPath ) : 'file_not_found' ;
if ( isset ( $GLOBALS [ '_SERVER' ][ 'SCRIPT_FILENAME' ])) { $includingFile = $_SERVER [ 'SCRIPT_FILENAME' ]; }
if ( ! empty ( $includingFile )) { $pageName = pathinfo ( $includingFile , PATHINFO_FILENAME ); }
if ( ! in_array ( basename ( dirname ( $includingFile )), [ 'latest' , 'live' , 'frozen' ]) && basename ( dirname ( $includingFile )) !== '' ) { $dirName = basename ( dirname ( $includingFile )); }
function getActiveClass ( $href ) { return rtrim ( parse_url ( $_SERVER [ 'REQUEST_URI' ], PHP_URL_PATH ), '/' ) === rtrim ( $href , '/' ) ? 'active' : '' ; }
?>
<! DOCTYPE html >
< html lang = " no " >
< head >
< meta charset = " UTF-8 " >
< meta name = " viewport " content = " width=device-width, initial-scale=1.0 " >
2025-11-04 23:01:36 +01:00
< ? php
// Prepare social media metadata
$siteTitle = 'Stopp lidelsen' ;
$fullTitle = ! empty ( $pageTitle ) ? htmlspecialchars ( $pageTitle ) . ' - ' . $siteTitle : $siteTitle ;
$description = ! empty ( $metaDescription ) ? htmlspecialchars ( $metaDescription ) : 'Vi arbeider for at pasienter som kan ha nytte av medisinsk cannabis skal motta likeverdig og trygg behandling med oppfølging fra lege.' ;
$currentUrl = ( isset ( $_SERVER [ 'HTTPS' ]) && $_SERVER [ 'HTTPS' ] === 'on' ? 'https' : 'http' ) . '://' . $_SERVER [ 'HTTP_HOST' ] . $_SERVER [ 'REQUEST_URI' ];
// Determine social media image
$socialImage = null ;
if ( ! empty ( $socialImageUrl )) {
// Use provided social image URL
$socialImage = $socialImageUrl ;
} elseif ( $_SERVER [ 'REQUEST_URI' ] === '/' || rtrim ( $_SERVER [ 'REQUEST_URI' ], '/' ) === '' ) {
// Use hero-bg.webp for frontpage
$socialImage = '/hero-bg.webp' ;
}
// Convert relative URLs to absolute for social media
if ( $socialImage && ! str_starts_with ( $socialImage , 'http' )) {
$socialImage = ( isset ( $_SERVER [ 'HTTPS' ]) && $_SERVER [ 'HTTPS' ] === 'on' ? 'https' : 'http' ) . '://' . $_SERVER [ 'HTTP_HOST' ] . $socialImage ;
}
?>
< title >< ? = $fullTitle ?> </title>
<!-- Standard metadata -->
< meta name = " description " content = " <?= $description ?> " >
2025-10-02 17:01:55 +02:00
< meta name = " fediverse:creator " content = " @stopplidelsen@oslo.town " >
2025-11-04 23:01:36 +01:00
<!-- Open Graph metadata ( Facebook , Mastodon , etc . ) -->
< meta property = " og:type " content = " website " >
< meta property = " og:site_name " content = " <?= $siteTitle ?> " >
< meta property = " og:title " content = " <?= $fullTitle ?> " >
< meta property = " og:description " content = " <?= $description ?> " >
< meta property = " og:url " content = " <?= htmlspecialchars( $currentUrl ) ?> " >
< ? php if ( $socialImage ) : ?>
< meta property = " og:image " content = " <?= htmlspecialchars( $socialImage ) ?> " >
< meta property = " og:image:alt " content = " <?= $fullTitle ?> " >
< ? php endif ; ?>
<!-- Twitter Card metadata -->
< meta name = " twitter:card " content = " <?= $socialImage ? 'summary_large_image' : 'summary' ?> " >
< meta name = " twitter:title " content = " <?= $fullTitle ?> " >
< meta name = " twitter:description " content = " <?= $description ?> " >
< ? php if ( $socialImage ) : ?>
< meta name = " twitter:image " content = " <?= htmlspecialchars( $socialImage ) ?> " >
< meta name = " twitter:image:alt " content = " <?= $fullTitle ?> " >
< ? php endif ; ?>
2025-10-02 17:01:55 +02:00
< link rel = " stylesheet " href = " <?= $cssUrl ?>?v=<?= $cssHash ?> " >
2025-11-03 23:10:09 +01:00
< ? php if ( ! empty ( $pageCssUrl )) : ?>
< link rel = " stylesheet " href = " <?= $pageCssUrl ?>?v=<?= $pageCssHash ?? '' ?> " >
< ? php endif ; ?>
2025-10-02 17:01:55 +02:00
< link rel = " icon " href = " /favicon.svg " type = " image/svg+xml " >
< link rel = " icon " href = " /favicon.png " type = " image/png " >
< link href = " /app/fonts/pt-serif/pt-serif.css " rel = " stylesheet " >
</ head >
< body class = " <?php if (isset( $dirName )) echo 'section-' . $dirName . ' '; ?><?php if (isset( $pageName )) echo 'page-' . $pageName ; ?> " >
< div class = " grid-container " >
< header class = " contain " >
< div >
< div class = " logo " >
2025-10-03 00:11:01 +02:00
< a href = " / " >< ? php include $publicDir . '/logo.svg' ; ?> </a>
2025-10-02 17:01:55 +02:00
</ div >
< nav >
< ul >
2025-11-03 22:34:30 +01:00
< li >< a href = " / " class = " button <?php echo getActiveClass('/'); ?> " >< ? = htmlspecialchars ( $homeLabel ? ? 'Forsiden' ) ?> </a></li>
2025-10-02 17:01:55 +02:00
< ? php if ( ! empty ( $navigation )) : ?>
< ? php foreach ( $navigation as $item ) : ?>
2025-11-03 22:34:30 +01:00
< li >< a href = " <?= htmlspecialchars( $item['url'] ) ?> " class = " button <?php echo getActiveClass( $item['url'] ); ?> " >< ? = htmlspecialchars ( $item [ 'title' ]) ?> </a></li>
2025-10-02 17:01:55 +02:00
< ? php endforeach ; ?>
< ? php endif ; ?>
</ ul >
</ nav >
</ div >
</ header >
< main >
< ? php echo $content ? ? '' ; ?>
</ main >
< footer >
< div class = " contain " >
2025-10-02 20:16:18 +02:00
< ? php if ( $currentLang === 'no' ) : ?>
2025-10-21 21:15:27 +02:00
< p > Følg oss på < a href = " https://www.facebook.com/StoppLidelsen/ " > Facebook </ a > , < a href = " https://www.instagram.com/stopplidelsen/ " > Instagram </ a > og < a rel = " me " href = " https://oslo.town/@stopplidelsen " > Mastodon </ a ></ p >
2025-10-02 20:16:18 +02:00
< ? php $endTime = microtime ( true ); $pageLoadTime = round (( $endTime - $startTime ) * 1000 , 2 ); ?>
< p class = " generated " > Nettsiden er håndkodet av Ruben Solvang ved hjelp av HTML , CSS og minimale doser PHP . Det tok < ? php echo $pageLoadTime ; ?> ms å generere siden.</p>
< ? php elseif ( $currentLang === 'en' ) : ?>
< p >< a rel = " me " href = " https://oslo.town/@stopplidelsen " > Follow us on Mastodon </ a ></ p >
< ? php $endTime = microtime ( true ); $pageLoadTime = round (( $endTime - $startTime ) * 1000 , 2 ); ?>
< p class = " generated " > This website was hand - coded by Ruben Solvang using HTML , CSS and minimal doses of PHP . It took < ? php echo $pageLoadTime ; ?> ms to generate this page.</p>
< ? php endif ; ?>
2025-10-02 17:01:55 +02:00
</ div >
</ footer >
</ div >
2025-11-01 23:42:13 +01:00
< img style = " display:none " src = " https://stopplidelsen.goatcounter.com/count?p=<?= htmlspecialchars( $_SERVER['REQUEST_URI'] ) ?> " >
2025-10-02 17:01:55 +02:00
</ body >
</ html >