Back to PhocacartTag class

Method getTagsRendered

public static string
getTagsRendered
(mixed $itemId, mixed $type = 0, mixed $separator = '')
Parameters
  • int $itemId
  • \number $type 0 ... nothing, 1 ... tags only, 2 ... labels only, 3 ... tags and labels
Returns
  • string

Method getTagsRendered - Source code

/**
 *
 * @param int $itemId
 * @param number $type 0 ... nothing, 1 ... tags only, 2 ... labels only, 3 ... tags and labels
 * @return string
 */
public static function getTagsRendered($itemId, $type = 0, $separator = '')
{
    if ($type == 1) {
        // Only tags
        $tags = self::getTags($itemId);
    } else {
        if ($type == 2) {
            // Only labels
            $tags = self::getTagLabels($itemId);
        } else {
            if ($type == 3) {
                // Tags and Labels together (they can be displayed as labels in category/items view)
                $t = self::getTags($itemId);
                $l = self::getTagLabels($itemId);
                $tags = array_merge($t, $l);
            } else {
                return '';
            }
        }
    }
    $db = Factory::getDBO();
    $p = PhocacartUtils::getComponentParameters();
    $s = PhocacartRenderStyle::getStyles();
    $tl = $p->get('tags_links', 0);
    $o = array();
    $i = 0;
    if (!empty($tags)) {
        foreach ($tags as $k => $v) {
            if ($type == 2 || $type == 3) {
                $o[$i] = '<div class="ph-corner-icon-wrapper"><div class="ph-corner-icon ph-corner-icon-' . htmlspecialchars(strip_tags($v->alias)) . '">';
            } else {
                $o[$i] = '<span class="' . $s['c']['label.label-info'] . '">';
            }
            $dO = htmlspecialchars(strip_tags($v->title));
            if ($v->display_format == 2) {
                if ($v->icon_class != '') {
                    $dO = '<span class="' . htmlspecialchars(strip_tags($v->icon_class)) . '"></span>';
                } else {
                    $dO = $v->title;
                }
            } else {
                if ($v->display_format == 3) {
                    if ($v->icon_class != '') {
                        $dO = '<span class="' . htmlspecialchars(strip_tags($v->icon_class)) . '"></span>';
                    }
                    $dO .= $v->title;
                }
            }
            if ($tl == 0) {
                $o[$i] .= $dO;
            } else {
                if ($tl == 1) {
                    if ($v->link_ext != '') {
                        $o[$i] .= '<a href="' . $v->link_ext . '">' . $dO . '</a>';
                    } else {
                        $o[$i] .= $dO;
                    }
                } else {
                    if ($tl == 2) {
                        if ($v->link_cat != '') {
                            $query = 'SELECT a.id, a.alias' . ' FROM #__phocacart_categories AS a' . ' WHERE a.id = ' . (int) $v->link_cat;
                            $db->setQuery($query, 0, 1);
                            $category = $db->loadObject();
                            if (isset($category->id) && isset($category->alias)) {
                                $link = PhocacartRoute::getCategoryRoute($category->id, $category->alias);
                                $o[$i] .= '<a href="' . $link . '">' . $dO . '</a>';
                            } else {
                                $o[$i] .= $dO;
                            }
                        } else {
                            $o[$i] .= $dO;
                        }
                    } else {
                        if ($tl == 3) {
                            $link = PhocacartRoute::getItemsRoute();
                            if ($type == 2 || $type == 3) {
                                $link = $link . PhocacartRoute::getItemsRouteSuffix('label', $v->id, $v->alias);
                            } else {
                                $link = $link . PhocacartRoute::getItemsRouteSuffix('tag', $v->id, $v->alias);
                            }
                            $o[$i] .= '<a href="' . Route::_($link) . '">' . $dO . '</a>';
                        }
                    }
                }
            }
            if ($type == 2 || $type == 3) {
                $o[$i] .= '</div></div>';
            } else {
                $o[$i] .= '</span>';
            }
            $i++;
        }
    }
    return implode($separator, $o);
}