JB's New Menu Using SVG Backgrounds

index.php

$srcFile => index.php


<?php 
  
/*
   file: "index.php"
  */ 
 
  
declare(strict_types=1);

  
ini_set('display_errors''1');
  
ini_set('display_startup_errors''1');
  
ini_set('error_log'__dir__.'/ERROR_LOG.php');
  
error_reporting(-1);

# DEFAULT TO ONLINE - NO TRAILING SLASH!
  
define('LOCALHOST''localhost'===$_SERVER['SERVER_NAME']);
  
define('js'"\n");
  
  require 
'incs/aa-class.php';
  
$aa = new aa;

// SET TITLE and TOP LINKS
  
$title  'JB\'s New Menu Using SVG Backgrounds';
  
$aTopLinks = [ 
    
'Home',
    
'Svg',
    
'ClipPath',
    
'Test',
    
'Source',
  ]; 

  
$aUrls      $aa->aGetUrls($aTopLinks);
  
$sTopLinks  $aa->aGetTopLinks($aTopLinks$aUrls);
  
$sSubLinks  $aa->aGetSubLinks($aTopLinks$aUrls);

# CSS MAYBE CRUNCH
  
$css     file_get_contents('incs/style.css');
  
$cssMenu file_get_contents('incs/style-paul.css');
  if( 
&& LOCALHOST): 
    
// DO NOT CRUNCH
  
else:  
    
$css     str_replace( ["  ""\n""\r""\t"], ' '$css); 
    
$cssMenu str_replace( ["  ""\n""\r""\t"], ' '$cssMenu); 
  endif;

$tmp = empty($aUrls[2]) ? ' &nbsp; NO-SUB-MENU' ' and ' $aUrls[2];
echo 
$heading = <<< ____TMP
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8" />
<title> 
$aUrls[1] $tmp </title>
<meta name="viewport" content="width=device-width, initial-scale=1.0"> 
<style>
  
$css 
  
$cssMenu
</style>
</head>
<body>
____TMP;

  require 
'views/view-' .$aUrls[1] .'.php';

# ====================================================
  
echo '<div class="w88 mga bg3 fg2 bd1 p42">';

# MAYBE SPASHFILE source =============================
    
$tmp = empty($aUrls[2]) ? '' '/' .$aUrls[2];
    
$splashFile 'views/' .$aUrls[1] .$tmp .'.php';  
    if( 
file_exists($splashFile) ):  
      echo 
'<h3> $splashFile ==> ' .$splashFile .'</h3>';
      echo 
'<hr>Contents:';
      require 
$splashFile;
    else:
      
# NOT FOR SOURCE or SVG
      
if('svg'===$aUrls[1] || 'source'===$aUrls[1] ):
        
// DO NOTHING
      
else:  
        echo 
$bodyTxt $aa->fileNotFound($splashFile);
      endif;
    endif;

# SOURCE FILES ========================================
    
$fff NULL;
    if(
'source'=== strtolowertrim($aUrls[1]) ) ):
      
$srcFile  'incs'===$aUrls[2
                ? 
$aUrls[2] .'/' .$aUrls[3
                : 
$aUrls[2];
      if( 
file_exists($srcFile) ):
        echo 
'<h1 class="ooo">$srcFile => ' trim($srcFile) .'</h1>';
        echo 
'<hr>';
        echo 
$bodyTxt highlight_file$srcFiletrue);
      endif;
    endif;

# SVGs ================================================
  
$svgFile 'svgs/'$aUrls['2'];
  
$fullUrl '<a href="' .$aUrls[0] .$svgFile .'">' .$svgFile .'</a>';
  if( 
file_exists$svgFile ) && ! is_dir($svgFile) ):
  
# SVG BACKGROUND
    
echo '<dl>';
      echo 
' <dt class="ooo">'
           
.   '<b> Background SVG using ==> </b>'
           
.     $fullUrl 
           
'</dt>'
        
$style = <<< ________TMP
          style="
            background-color:lime; 
            background-size: contain;
            background: url(
$aUrls[0]$svgFile); 
            height:5em;
          " 
________TMP;
        
        echo 
'<dd class="ooo bd1" ' .$style .'>';
          
# background should have $svgFile; 
        
echo '</dd>';
      echo 
'</dl>';

  
# RENDER AS IMAGE ==================================   
    
echo '<b> Display SVG ==> </b> ' .$fullUrl.'</b>';
    echo 
'<dl class="fs2 bg0 w88 mga XXXbd1 p42">';
        echo 
'<dd class="w42 mga bd1">';
          require 
$svgFile
        echo 
'</dd>';  
    echo 
'</dl>';  

# SVG SOURCE CODE ====================================
    
echo '<dl>';
      echo 
'<dt class="fs2 fwb">Source: ' .$fullUrl .'</dt>';
      echo 
'<dd class="bg0 bd1">';
        
highlight_file($svgFile);
      echo 
'</dd>';  
    echo 
'</dl>';  

    endif;

echo 
'</div>';  
# ================================================

  
require'incs/footer.php';  // pass ==> $fullUrl

echo '</body></html>';  


//===============================================
function fred($val='No $val'$title='No $title')
:
bool
{
  
$val print_r($valtrue);
    echo 
'<pre class="w88 mg2 bg1 fg1 fss p42 bd1">';
      echo 
$title .' ==> ' .$val;
    echo 
'</pre>';

  return 
false;
}


HTML Validator Jigsaw CSS Validator Wonderful place for a footer