Fix: color of category when showing full path must use color of last

element of path
This commit is contained in:
Laurent Destailleur 2016-02-19 03:32:02 +01:00
parent 16c44af690
commit 9e11fd988d
2 changed files with 36 additions and 8 deletions

View File

@ -1131,29 +1131,57 @@ class Categorie extends CommonObject
* Retourne les chemin de la categorie, avec les noms des categories
* separes par $sep (" >> " par defaut)
*
* @param string $sep Separator
* @param string $url Url
* @param string $sep Separator
* @param string $url Url
* @param int $nocolor 0
* @return array
*/
function print_all_ways($sep = " >> ", $url='')
function print_all_ways($sep = " >> ", $url='', $nocolor=0)
{
$ways = array();
foreach ($this->get_all_ways() as $way)
$allways = $this->get_all_ways(); // Load array of categories
foreach ($allways as $way)
{
$w = array();
$i = 0;
foreach ($way as $cat)
{
$i++;
if (empty($nocolor))
{
$forced_color='toreplace';
if ($i == count($way))
{
// Check contrast with background and correct text color
$forced_color='categtextwhite';
if ($cat->color)
{
$hex=$cat->color;
$r = hexdec($hex[0].$hex[1]);
$g = hexdec($hex[2].$hex[3]);
$b = hexdec($hex[4].$hex[5]);
$bright = (max($r, $g, $b) + min($r, $g, $b)) / 510.0; // HSL algorithm
if ($bright >= 0.5) $forced_color='categtextblack'; // Higher than 60%
}
}
}
if ($url == '')
{
$w[] = "<a href='".DOL_URL_ROOT."/categories/viewcat.php?id=".$cat->id."&amp;type=".$cat->type."'>".$cat->label."</a>";
$link = '<a href="'.DOL_URL_ROOT.'/categories/viewcat.php?id='.$cat->id.'&type='.$cat->type.'" class="'.$forced_color .'">';
$linkend='</a>';
$w[] = $link.$cat->label.$linkend;
}
else
{
$w[] = "<a href='".DOL_URL_ROOT."/$url?catid=".$cat->id."'>".$cat->label."</a>";
}
}
$ways[] = implode($sep, $w);
$newcategwithpath = preg_replace('/toreplace/', $forced_color, implode($sep, $w));
$ways[] = $newcategwithpath;
}
return $ways;
@ -1372,7 +1400,7 @@ class Categorie extends CommonObject
$g = hexdec($hex[2].$hex[3]);
$b = hexdec($hex[4].$hex[5]);
$bright = (max($r, $g, $b) + min($r, $g, $b)) / 510.0; // HSL algorithm
if ($bright > 0.6) $forced_color='categtextblack'; // Higher than 60%
if ($bright >= 0.5) $forced_color='categtextblack'; // Higher than 60%
}
$link = '<a href="'.DOL_URL_ROOT.'/categories/viewcat.php?id='.$this->id.'&type='.$this->type.'" title="'.dol_escape_htmltag($label, 1).'" class="classfortooltip '.$forced_color .'">';

View File

@ -189,7 +189,7 @@ print '<table border="0" width="100%" class="border">';
// Path of category
print '<tr><td width="20%" class="notopnoleft">';
$ways = $object->print_all_ways();
$ways = $object->print_all_ways(" &gt;&gt; ", '', 1);
print $langs->trans("Ref").'</td><td>';
print '<a href="'.DOL_URL_ROOT.'/categories/index.php?leftmenu=cat&type='.$type.'">'.$langs->trans("Root").'</a> >> ';
foreach ($ways as $way)