JB's New Menu Using SVG Backgrounds

incs and aa-class.php

$srcFile => incs/aa-class.php


<?php
/*
  file: incs/aa-class.php
*/

declare(strict_types=1);

//============================================
CLASS someTimeLater
{
STATIC PUBLIC function 
getNew()
{
  return new static;
}

}
//=========================================

//============================================
CLASS aa extends someTimeLater
{
 
//============================================
PUBLIC function aGetUrls($aTopLinks)
{
  
$aResult NULL;

# DEFAULTS 
# echo '<br><br><br><br><br><br><br><br><br><br>';  // /supiet.tk/public_html/
# fred($_SERVER["SCRIPT_NAME"], '$_SERVER["SCRIPT_NAME"]');


  
$_PATH  strstr($_SERVER["SCRIPT_NAME"], 'index.php'TRUE); // "/"
# fred($_PATH, '$_PATH');
  
$sUrl   $_SERVER["REQUEST_SCHEME"]
            . 
'://'
            
$_SERVER["HTTP_HOST"]
            . 
$_PATH
            
;


# fred($_SERVER["SCRIPT_NAME"], '$_SERVER["SCRIPT_NAME"]');
# fred($_SERVER["PHP_SELF"],    '$_SERVER["PHP_SELF"]');
  
$tmp      str_replace($_SERVER["SCRIPT_NAME"], ''$_SERVER["PHP_SELF"]); // "/"
  
$aUrls    explode('/'$tmp);
# fred($aUrls, '$aUrls'); // Array ( [0] => [1] => svg ) 

# fred('NOW TRY THIS', 'NOW TRY THIS');
# fred($_SERVER["PATH_INFO"],   '$_SERVER["PATH_INFO"]');
$tmp   =  $_SERVER["PATH_INFO"] ?? '/home/';
$aUrls explode('/'$tmp);
# fred($aUrls, '$tmp ==> PATH_INFO');


  
$aUrls[0] = $sUrl;
  
$aUrls[1] = empty($aUrls[1]) ? 'home' $aUrls[1];

  
array_push$aUrls'' );
  
array_push$aUrls'' );
  
array_push$aUrls'' );
  
array_push$aUrls'' );
# fred($aUrls, '$aUrls'); // Array ( [0] => http://localhost/supiet.tk/public_html/ [1] => svg [2] => [3] => )
# fred($_SERVER, '$_SERVER');

  
return $aUrls;
}
//


//============================================
PUBLIC function aGetTopLinks($aTopLinks$aUrls)
{
 
# $tmp      = empty($aUrls[2]) ? ' NO-SUB-MENU' : $aUrls[2];
 # $title    = ucfirst($aUrls[1] .$tmp);

  
$sTopLinks '';
  foreach(
$aTopLinks as $id => $tmp):
    
$current '';
    if(
$aUrls[1] === strtolower($tmp) ):
      
$current ' current'
    endif;    
    
$sTopLinks .= "\n\t" 
        
'<a href="' .strtolower($aUrls[0] .$tmp
        . 
'" class="' .$tmp .$current .'">' 
        
$tmp .'</a>';
  endforeach;  

  return 
$sTopLinks;
}
//


//============================================
PUBLIC function aGetSubLinks($aTopLinks$aUrls)
{
// sSubLinks  
  # echo $aUrls[1];die;
  
switch(strtolower($aUrls[1])):  
  case 
'svg':   
    
chdir('svgs');
      
$aFiles glob('*.svg'); // CASE-SENSITIVE
    
chdir('../');  
    
$aSubLinks $aFiles;
  break;

  case 
'source'
    
$aSubLinks = [
      
'.htaccess',
      
'index.php',
      
'incs/aa-class.php',
      
'incs/footer.php',
      
'incs/style.css',
      
'incs/style-paul.css',
    ];
  break;

  default:  
  case 
'home':  
  case 
'index':  
  case 
'first':  
  case 
'clippath':  
  case 
'third':  
    
$aSubLinks = [];
      for(
$i2=1$i2<11$i2++): 
        
$aSubLinks[] = ucfirst($aUrls[1]) .'-00' .$i2;
      endfor;
      
$aSubLinks array_slice($aSubLinks0mt_rand(6,9) );
  endswitch;    

# BUILD sSUBLINKS
  
$sSubLinks "\n" .'<ul class="subs w88 lsn tac">';
    foreach(
$aSubLinks as $subPage):
      
$ok false;
      if( ! empty(
$aUrls[3]) ):
        
$ok strpos($subPage$aUrls[3]);
      endif;

      
$current '';
      if( (
$subPage === $aUrls[2]) || $ok ):
        
$current ' class="bd1 bdr fwb fwb fg5" '
      endif;  
      
$sSubLinks .= "\n\t\t" 
        
.'<li ' .$current .'> <a href="' 
        
.   strtolower($aUrls[0] .$aUrls[1] .'/' .$subPage)
        .   
'" title="' .$subPage .'" ' 
        
' >' 
        
.   $subPage 
        
.'</a> </li>'
        
;
    endforeach;  
  
$sSubLinks .= "\n</ul>";  

  return 
$sSubLinks;  
}
//


//============================================
PUBLIC function fileNotFound($fff='Yes we have no file')
{
  
$result = <<< ____TMP
    <h4 class="ooo fwb">File NOT found ==> "$fff" :( </h4>
    <h5 class="ooo"> Please create and modify contents of above the file </h5>  
    <hr>
    <dl>
      <dt> <b class="fg1">meanwhile here is some DEBUG script </b> </dt>         
      <dd> 
        <table>
          <tr>
            <td> \$_SERVER["REQUEST_URI"] </td>
            <td> ==> </td>
            <td> 
{$_SERVER['REQUEST_URI']} </td>
          </tr><tr>
            <td> REQUEST_URI </td> 
            <td> ==> </td>
            <td>  
{$_SERVER['REQUEST_URI']} </td>
          </tr><tr>
            <td> HTTP_REFERER </td>
            <td> ==> </td>
            <td> 
{$_SERVER['HTTP_REFERER']} </td>
          </tr>  
        </table>
      </dd>        
    </dl>  
____TMP;

  return 
$result
}
//

//==========================================

HTML Validator Jigsaw CSS Validator Wonderful place for a footer