PHP хлебные крошки со списком путей - PullRequest
0 голосов
/ 12 февраля 2019

У меня есть скрипт хлебных крошек, который делит URL-адрес на / и связывает каждый из них по одному и тому же пути.Однако я сталкиваюсь с двумя проблемами:

  1. У меня есть старый веб-сайт, у которого во многих папках не было index.php, поэтому мне нужно добавить массив, для которого нужно перейти в этот файл для этой папки..
  2. Некоторые папки могут иметь одно и то же имя в разных местах ... поэтому может быть путь, например example.com/something/Samename, а другой - example.com/another/path/Samename, и мне нужно установить заголовок, который отображается в сухарях,так что это значимо больше, чем имена путей.

Поэтому я хочу добавить что-то вроде массива, чтобы сообщить ему, является ли путь /another/path/Samename ссылкой на thisfile.php, и если это другая папкассылка на другой файл ... и т. д., и если для этого пути нет массива, он обычно ссылается на имя папки, что означает, что у него есть index.php файл.

Мой текущий сценарий:

var path = "";
var href = document.location.href;
var s = href.split("/");
for (var i=2;i<(s.length-1);i++) {
path+="<A HREF=\""+href.substring(0,href.indexOf("/"+s[i])+s[i].length+1)+"/\">"+s[i]+"</A> / ";
}
i=s.length-1;
path+="<A HREF=\""+href.substring(0,href.indexOf(s[i])+s[i].length)+"\">"+s[i]+"</A>";
var url = window.location.protocol + "//" + path;
document.writeln(url);
//-->

И это еще один скрипт, который делает то же самое:

//this is a file named 'functions.php'
<?php
function breadcrumbs(){
  $bread = explode('/', $_SERVER['PHP_SELF']);
  $url = '/';
  $returnString = "<span class='bc0'><a href='$url'>home</a>";
  for($i=1;$i<count($bread)-1;$i++){
    $url.=$bread[$i].'/';
    $returnString .= " |</span> <span class='bc$i'><a href='$url'>$bread[$i]</a>";
  }
  echo $returnString.'</span>';
}
?>

//in header of path
<?php include ( $_SERVER['DOCUMENT_ROOT']  . 'functions.php'); ?>

//where the breadcrumbs show
<?php breadcrumbs(); ?>
...