Update funciones.php
This commit is contained in:
@@ -219,5 +219,65 @@ function parsea_enlace($txt) {
|
||||
return urlencode($enlace);
|
||||
}
|
||||
|
||||
function muestra_breadcrumb($record = array(), $previousLinks = array(),$class = "bg-gray-200 p-3 rounded font-sans w-full breadcrumb-v2") {
|
||||
global $TABLE_PREFIX;
|
||||
$enlaces = array();
|
||||
if (@$record) {
|
||||
array_unshift($enlaces, $record);
|
||||
}
|
||||
$cont = 0;
|
||||
$breadcrumbRecord = $record;
|
||||
|
||||
$idiomas = array_column(dame_idiomas(),"valor");
|
||||
$idiomas = array_map(function($i){
|
||||
return $i."/";
|
||||
},$idiomas);
|
||||
|
||||
|
||||
while (true && $cont++ <= 30) { // Contador de seguridad para evitar el bucle infinito (que en teoría nunca pasará, jaja)
|
||||
// Comprobamos si la tabla ha cambiado para no volver a cargar el schema
|
||||
if (@$breadcrumbRecord["tableName"] != @$tabla) {
|
||||
$tabla = $breadcrumbRecord["tableName"];
|
||||
$breadcrumbField = @$breadcrumbRecord["breadcrumbField"];
|
||||
}
|
||||
|
||||
if (!@$breadcrumbField || !@$breadcrumbRecord["optionsTablename"]) break;
|
||||
$breadcrumbRecord = dame_registros($breadcrumbRecord["optionsTablename"], $breadcrumbRecord["optionsValueField"]."=".mysql_real_escape_string($breadcrumbRecord[$breadcrumbField]));
|
||||
$breadcrumbRecord = @$breadcrumbRecord[0];
|
||||
|
||||
if (!@$breadcrumbRecord) break;
|
||||
array_unshift($enlaces, $breadcrumbRecord);
|
||||
}
|
||||
|
||||
if ($cont == 30) return; // Por si las moscas
|
||||
$i = 1;
|
||||
echo '<nav aria-label="Breadcrumb" class="'.$class.'">';
|
||||
echo '<ol itemscope itemtype="https://schema.org/BreadcrumbList" class="list-reset flex text-gray-700">';
|
||||
echo '<li itemprop="itemListElement" itemscope itemtype="https://schema.org/ListItem" class="text-black-500 font-bold"><a itemprop="item" href="'.RUTA_RAIZ.'/"><span itemprop="name">'.t_var("Inicio").'</span></a><meta itemprop="position" content="'.$i.'" /></li><li><span class="mx-2 text-gray-400">/</span></li>';
|
||||
$i++;
|
||||
if(!in_array($record["enlace"],$idiomas)){
|
||||
if (@$previousLinks) {
|
||||
foreach ($previousLinks as $link):
|
||||
if(strpos(t($link, "enlace"), "#") !== false) continue;
|
||||
echo '<li itemprop="itemListElement" itemscope itemtype="https://schema.org/ListItem"><a itemprop="item" href="'.t($link, "enlace").'"><span itemprop="name">'.acorta_texto($link["mainFieldBreadcrumb"], 4).'</span></a><meta itemprop="position" content="'.$i.'" /></li><li><span class="mx-2 text-gray-400">/</span></li>';
|
||||
$i++;
|
||||
endforeach;
|
||||
}
|
||||
foreach ($enlaces as $cont => $enlace):
|
||||
$enlace_parsed = @$enlace["enlace_breadcrumb"] ? $enlace["enlace_breadcrumb"] : t($enlace, "enlace");
|
||||
if(strpos($enlace_parsed, "#") !== false) continue;
|
||||
|
||||
if ($cont == count($enlaces)-1) {
|
||||
echo '<li itemprop="itemListElement" itemscope itemtype="https://schema.org/ListItem"><a itemprop="item" href="'.$enlace_parsed.'" aria-current="page"><span itemprop="name">'.acorta_texto(@$enlace["mainFieldBreadcrumb"], 4).'</span></a><meta itemprop="position" content="'.$i.'" /></li><li><span class="mx-2 text-gray-400">/</span></li>';
|
||||
}
|
||||
else {
|
||||
echo '<li itemprop="itemListElement" itemscope itemtype="https://schema.org/ListItem"><a itemprop="item" href="'.$enlace_parsed.'"><span itemprop="name">'.acorta_texto($enlace["mainFieldBreadcrumb"], 4).'</span></a><meta itemprop="position" content="'.$i.'" /></li><li><span class="mx-2 text-gray-400">/</span></li>';
|
||||
}
|
||||
$i++;
|
||||
endforeach;
|
||||
}
|
||||
|
||||
echo '</ol>';
|
||||
echo '</nav>';
|
||||
}
|
||||
?>
|
||||
|
||||
Reference in New Issue
Block a user