breadcrumbs con microformat o RDF piccolo aiutino..

otto9due

Utente Attivo
22 Feb 2014
529
21
28
In pratica vorrei andare ad integrare uno tra i due microformat o RDF in questa funzione php..
Ho provato in diversi modi ma nessuno di questi produce il risultato sperato.. Qualcuno mi da una mano?
Vi posto la funzione..

PHP:
<?php
function breadcrumbs($separator = ' &raquo; ', $home = 'Home') {

    $path = array_filter(explode('/', parse_url($_SERVER['REQUEST_URI'], PHP_URL_PATH)));
    $base_url = substr($_SERVER['SERVER_PROTOCOL'], 0, strpos($_SERVER['SERVER_PROTOCOL'], '/')) . '://' . $_SERVER['HTTP_HOST'] . '/';
    $breadcrumbs = array("<a href=\"$base_url\">$home</a>");
    $tmp = array_keys($path);
    $last = end($tmp);
    unset($tmp);

    foreach ($path as $x => $crumb) {
        $title = ucwords(str_replace(array('.php', '_'), array('', ' '), $crumb));
	if ($x == 1){
	        $breadcrumbs[]  = "<a href=\"$base_url$crumb\">$title</a>";
	}elseif ($x > 1 && $x < $last){
		$tmp = "<a href=\"$base_url";
		for($i = 1; $i <= $x; $i++){
			$tmp .= $path[$i] . '/';
		}
                $tmp .= "\">$title</a>";
		$breadcrumbs[] = $tmp;
		unset($tmp);
        }else{
                $breadcrumbs[] = "$title";
	}
    }

    return implode($separator, $breadcrumbs);
}	
echo breadcrumbs();

?>

Questo è il link che spiega come implementare questi formati..
https://support.google.com/webmasters/answer/185417?hl=it
Non mi trovo con l'alberatura in maniera dinamica..
 

otto9due

Utente Attivo
22 Feb 2014
529
21
28
In questo modo funziona.. Ma vorrei che funzionasse nella modalità child ovvero se una pagina ha più breadcrumb trail..
In pratica il priblema principale sta nel chiudere gli <span> ovvero metterne tanti quanti ne servono alla fine per chiudere quelli aperti. In totale dovrebbero essere 2 per ogni esecuzione del ciclo for -1 ( perchè la home ha solo uno span ) :p
Vi posto quanto ho fatto fino ad ora.. Potrebbe comunque essere utile per modellarlo:

PHP:
/* Inizio funzione breadcrumbs*/
function breadcrumbs($separator = ' <i class="fa fa-angle-right"></i> ', $home = '<i class="fa fa-home"></i> Home') {

    $path = array_filter(explode('/', parse_url($_SERVER['REQUEST_URI'], PHP_URL_PATH)));
	$finalurl="http://".$_SERVER['HTTP_HOST'].$_SERVER['REQUEST_URI'];
    $base_url = substr($_SERVER['SERVER_PROTOCOL'], 0, strpos($_SERVER['SERVER_PROTOCOL'], '/')) . '://' . $_SERVER['HTTP_HOST'] . '/';
    $breadcrumbs = array("<span typeof='v:Breadcrumb'><a href=\"$base_url\" rel='v:url' property='v:title'>$home</a>");
    $tmp = array_keys($path);
    $last = end($tmp);
    unset($tmp);

    foreach ($path as $x => $crumb) {
        $title = ucwords(str_replace(array('.php', '_'), array('', ' '), $crumb));
	if ($x == 1){
	        $breadcrumbs[]  = "<span typeof='v:Breadcrumb'><a href=\"$base_url$crumb\" rel='v:url' property='v:title'>$title</a></span>";
	}elseif ($x > 1 && $x < $last){
		$tmp = "<span typeof='v:Breadcrumb'><a href=\"$base_url";
		for($i = 1; $i <= $x; $i++){
			$tmp .= $path[$i] . '/';
		}
                $tmp .= "\" rel='v:url' property='v:title'>$title</a></span>";
		$breadcrumbs[] = $tmp;
		unset($tmp);
        }else{
                $breadcrumbs[] = "<span typeof='v:Breadcrumb'><a href=\"$finalurl\" rel='v:url' property='v:title'>$title</a></span>";
	}
    }

    return implode($separator, $breadcrumbs);
}	

/* Fine funzione breadcrumbs*/
 

otto9due

Utente Attivo
22 Feb 2014
529
21
28
Avevo pensato di aprire tutti gli <span>.. e poi chiuderli alla fine con un ciclo come questo..
PHP:
<?php
$cont = 1;
while ($cont <= $x) {
  echo "</span></span>";
  $cont++;
}
?>
Cioè aggingerne 2 ogni livello del link inserito.. Più uno che dovrebbe chiudere quello iniziale..
Ho provato in diversi modi ma ancora nulla.
La struttura da seguire sarebbe questa:

HTML:
<div xmlns:v="http://rdf.data-vocabulary.org/#"> 
  <span typeof="v:Breadcrumb">
    <a href="http://www.example.com/books" rel="v:url" property="v:title">
      
      Libri
    </a> ›
    <span rel="v:child">         
          
      <span typeof="v:Breadcrumb">
        <a href="http://www.example.com/books/authors" rel="v:url" property="v:title">
          
          Autori
        </a> ›
        <span rel="v:child">         
                   
          <span typeof="v:Breadcrumb">
            <a href="http://www.example.com/books/authors/stephenking" rel="v:url" property="v:title">
              
              Stephen King
            
            </a> ›   
<!-- Da qui si dovrebbe iniziale a chiudere aggiungendo 2  span per ogni livello del link. Aggiungendo il ciclo alla fine di ogni link mi appaiono stranamente dopo il link base del sito.. -->       
          </span>
        </span>
      </span>
    </span>
  </span>
</div>
 
Discussioni simili
Autore Titolo Forum Risposte Data
MarcoGrazia Breadcrumbs, menù a briciole di pane Snippet PHP 2
F Creare elementi html con javascript Javascript 0
R Problema query con ricerca id numerico PHP 2
R [C#] Quali dipendenze occorrono su progetto "Setup" con Access Database? .NET Framework 0
F Problema con risposta PHP 0
A Sottoquery con group by per mese MySQL 0
R Aggiornare record mysql con Ajax, jQuery e php Ajax 2
A Quale NVR con ingressi bnc ? IP Cam e Videosorveglianza 1
S problema con recupero dati tabella mysql PHP 2
Z Problema con il mio tp-l i nk Reti LAN e Wireless 0
T Film interattivo con linguaggi web Programmazione 7
A pulsante di update campo mysql con javascript Javascript 2
R Tutto su utf-8 ma ancora problemi con i caratteri speciali in mysql MySQL 1
Barierta Testo a comparsa con passaggio del mouse Javascript 13
M Estrarre valore con SELECT COUNT PHP 0
G VBA OpenForm con WhereCondition + LIKE su campi differenti MS Access 5
sara3 Offresi articolista con esperienza Offerte e Richieste di Lavoro e/o Collaborazione 2
L Problema RAM con Tomcat 8 Apache 0
S connesso, internet non disponibile ( con extebder tp-link850) Reti LAN e Wireless 0
L Menù con switch case C/C++ 1
Cosina Upload multiplo con invio allegati per email PHP 0
Cosina Upload multiplo con archiviazione in cartella PHP 16
B ciclare file xml con PHP PHP 1
napuleone problema con sort e asort PHP 4
F Group By con Alias condizionale MySQL 1
R [C#] Scrivere un post in grassetto con Selenium su FB Mobile .NET Framework 0
T cms con visualizzazione mind map Content Management System (CMS) 0
D Landing page con Wp Content Management System (CMS) 0
Z problemi con foreach insert into PHP 10
napuleone Con le date il codice da di matto o forse non è così Javascript 6
napuleone Con le date mi da di matto o forse è proprio così jQuery 1
R Aiuto con le query MS Access 2
Z Problema con INT MySQL PHP 1
B javascript per problemi con pdf e Safari Javascript 0
D menu con submenu orizzontale HTML e CSS 0
Z Problema database MySQL con XAMPP PHP 0
D Estrarre database con link esterno Database 10
M Un saluto a tutti con l'auguro di un buon di programmazione Presentati al Forum 0
M Problema con controllo form in real time jQuery 6
gandalf1959 document.getElementsByName con wild character Javascript 6
S impostare un testo e una img nella stessa riga con jsPDF Javascript 0
R Navigare sito con cURL, mi restituisce errore PHP 0
S Rallentamenti con monitor 4k Photoshop 0
Z Video protetto con PHP PHP 0
L File CSV con app inventor da errore Sviluppo app per Android 0
M Problemi con creazione maschere Presentati al Forum 1
Z Problema di sincronizzazione PAYPAL con PHP PHP 1
R Invio mail con allegati multipli PHP 0
M Tabella con riga più lunga HTML e CSS 6
A Mail con funzione mail() riconosciute come spam PHP 9

Discussioni simili