Merge pull request #703 from DanielOaks/more_tag_category_integration

More tag category integration
This commit is contained in:
Shish 2020-03-23 12:14:13 +00:00 committed by GitHub
commit 1d6ad6cb09
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
2 changed files with 37 additions and 1 deletions

View File

@ -127,6 +127,27 @@ class TagCategories extends Extension
return $tc_keyed_dict; return $tc_keyed_dict;
} }
public function getTagHtml(string $h_tag, $tag_category_dict, string $extra_text = '')
{
$h_tag_no_underscores = str_replace("_", " ", $h_tag);
// we found a tag, see if it's valid!
$h_tag_split = explode(':', $h_tag, 2);
if ((count($h_tag_split) > 1) and array_key_exists($h_tag_split[0], $tag_category_dict)) {
$category = $h_tag_split[0];
$h_tag = $h_tag_split[1];
$tag_category_css = ' tag_category_'.$category;
$tag_category_style = 'style="color:'.html_escape($tag_category_dict[$category]['color']).';" ';
$h_tag_no_underscores = str_replace("_", " ", $h_tag);
$h_tag_no_underscores = '<span class="'.$tag_category_css.'" '.$tag_category_style.'>'.$h_tag_no_underscores.$extra_text.'</span>';
} else {
$h_tag_no_underscores .= $extra_text;
}
return $h_tag_no_underscores;
}
public function page_update() public function page_update()
{ {
global $user, $database; global $user, $database;

View File

@ -288,6 +288,10 @@ class TagList extends Extension
if ($config->get_bool(TagListConfig::PAGES)) { if ($config->get_bool(TagListConfig::PAGES)) {
$html .= $this->build_az(); $html .= $this->build_az();
} }
if (class_exists('TagCategories')) {
$this->tagcategories = new TagCategories;
$tag_category_dict = $this->tagcategories->getKeyedDict();
}
foreach ($tag_data as $row) { foreach ($tag_data as $row) {
$h_tag = html_escape($row['tag']); $h_tag = html_escape($row['tag']);
$size = sprintf("%.2f", (float)$row['scaled']); $size = sprintf("%.2f", (float)$row['scaled']);
@ -296,6 +300,9 @@ class TagList extends Extension
$size = 0.5; $size = 0.5;
} }
$h_tag_no_underscores = str_replace("_", " ", $h_tag); $h_tag_no_underscores = str_replace("_", " ", $h_tag);
if (class_exists('TagCategories')) {
$h_tag_no_underscores = $this->tagcategories->getTagHtml($h_tag, $tag_category_dict);
}
$html .= "&nbsp;<a style='font-size: ${size}em' href='$link'>$h_tag_no_underscores</a>&nbsp;\n"; $html .= "&nbsp;<a style='font-size: ${size}em' href='$link'>$h_tag_no_underscores</a>&nbsp;\n";
} }
@ -347,6 +354,11 @@ class TagList extends Extension
*/ */
mb_internal_encoding('UTF-8'); mb_internal_encoding('UTF-8');
if (class_exists('TagCategories')) {
$this->tagcategories = new TagCategories;
$tag_category_dict = $this->tagcategories->getKeyedDict();
}
$lastLetter = ""; $lastLetter = "";
# postres utf8 string sort ignores punctuation, so we get "aza, a-zb, azc" # postres utf8 string sort ignores punctuation, so we get "aza, a-zb, azc"
# which breaks down into "az, a-, az" :( # which breaks down into "az, a-, az" :(
@ -361,7 +373,10 @@ class TagList extends Extension
} }
$link = $this->theme->tag_link($tag); $link = $this->theme->tag_link($tag);
$h_tag = html_escape($tag); $h_tag = html_escape($tag);
$html .= "<a href='$link'>$h_tag&nbsp;($count)</a>\n"; if (class_exists('TagCategories')) {
$h_tag = $this->tagcategories->getTagHtml($h_tag, $tag_category_dict, "&nbsp;($count)");
}
$html .= "<a href='$link'>$h_tag</a>\n";
} }
if (SPEED_HAX) { if (SPEED_HAX) {