Update funciones.php

This commit is contained in:
Jordan
2026-04-09 18:28:54 +01:00
parent d64957cb6a
commit dfc5b7bc75

View File

@@ -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>';
}
?>