AnonSec Shell
Server IP : 46.105.57.169  /  Your IP : 216.73.217.8
Web Server : Apache
System : Linux webd003.cluster120.gra.hosting.ovh.net 6.18.42-ovh-vps-grsec-zfs+ #1 SMP PREEMPT_DYNAMIC Wed Aug 5 15:59:48 CEST 2026 x86_64
User : maitricfuz ( 93378)
PHP Version : 8.4.22
Disable Function : _dyuweyrj4,_dyuweyrj4r,dl
MySQL : OFF  |  cURL : ON  |  WGET : ON  |  Perl : ON  |  Python : ON  |  Sudo : OFF  |  Pkexec : OFF
Directory :  /home/m/a/i/maitricfuz/www/saint-martin-lg/libraries/regularlabs/src/

Upload File :
current_dir [ Writeable ] document_root [ Writeable ]

 

Command :


[ HOME ]     

Current File : /home/m/a/i/maitricfuz/www/saint-martin-lg/libraries/regularlabs/src/Route.php
<?php

/**
 * @package         Regular Labs Library
 * @version         26.7.20176
 * 
 * @author          Peter van Westen <info@regularlabs.com>
 * @link            https://regularlabs.com
 * @copyright       Copyright © 2026 Regular Labs All Rights Reserved
 * @license         GNU General Public License version 2 or later
 */
namespace RegularLabs\Library;

defined('_JEXEC') or die;
use Joomla\CMS\Router\Route as JRoute;
use Joomla\Component\Content\Site\Helper\RouteHelper as JContentHelperRoute;
class Route
{
    public static function getArticleRoute(array|object $article): string
    {
        $id = self::getArticleSlug($article);
        if (empty($id)) {
            return '';
        }
        $url = JContentHelperRoute::getArticleRoute($id, self::getValue($article, 'catid', 0), self::getValue($article, 'language', '*'));
        $item_id = self::getArticleRouteMenuItemId($article);
        if ($item_id) {
            $url .= '&Itemid=' . $item_id;
        }
        return $url;
    }
    public static function getArticleUrl(array|object $article, bool $xhtml = \true, int $tls = JRoute::TLS_IGNORE, bool $absolute = \false): string
    {
        $route = self::getArticleRoute($article);
        if (empty($route)) {
            return '';
        }
        return \RegularLabs\Library\Uri::getSiteRoute($route, $xhtml, $tls, $absolute);
    }
    public static function getCategoryRoute(array|object|int|string $category, ?string $language = null): string
    {
        $id = self::getCategoryId($category);
        if (empty($id)) {
            return '';
        }
        $language ??= is_array($category) || is_object($category) ? self::getValue($category, 'language', '*') : '*';
        $url = JContentHelperRoute::getCategoryRoute($id, $language);
        $item_id = self::getCategoryRouteMenuItemId($id, $language);
        if ($item_id) {
            $url .= '&Itemid=' . $item_id;
        }
        return $url;
    }
    public static function getCategoryUrl(array|object|int|string $category, ?string $language = null, bool $xhtml = \true, int $tls = JRoute::TLS_IGNORE, bool $absolute = \false): string
    {
        $route = self::getCategoryRoute($category, $language);
        if (empty($route)) {
            return '';
        }
        return \RegularLabs\Library\Uri::getSiteRoute($route, $xhtml, $tls, $absolute);
    }
    private static function getArticleRouteMenuItemId(array|object $article): int
    {
        $article_id = (int) self::getValue($article, 'id', 0);
        if (empty($article_id)) {
            return 0;
        }
        $language = self::getValue($article, 'language', '*');
        $article_link = 'index.php?option=com_content&view=article&id=' . $article_id;
        $item_id = self::getMenuItemIdByLinkAndLanguage($article_link, $language);
        if ($item_id) {
            return $item_id;
        }
        $category_id = (int) self::getValue($article, 'catid', 0);
        if (empty($category_id)) {
            return 0;
        }
        return self::getCategoryRouteMenuItemId($category_id, $language);
    }
    private static function getArticleSlug(array|object $article): string
    {
        $id = self::getValue($article, 'id', '');
        if (empty($id)) {
            return '';
        }
        $alias = self::getValue($article, 'alias', '');
        return $alias ? $id . ':' . $alias : (string) $id;
    }
    private static function getCategoryId(array|object|int|string $category): int|string
    {
        if (is_array($category) || is_object($category)) {
            return self::getValue($category, 'id', '');
        }
        return $category;
    }
    private static function getCategoryRouteMenuItemId(int|string $category_id, string $language = '*'): int
    {
        $category_link = 'index.php?option=com_content&view=category&id=' . (int) $category_id;
        return self::getMenuItemIdByLinkAndLanguage($category_link, $language);
    }
    private static function getMenuItemIdByLinkAndLanguage(string $link, string $language = '*'): int
    {
        $menu = self::getSiteMenu();
        if (empty($menu)) {
            return 0;
        }
        foreach (self::getMenuItemLanguages($language) as $menu_language) {
            $menu_item = $menu->getItems(['link', 'language'], [$link, $menu_language], \true);
            if (!empty($menu_item->id)) {
                return (int) $menu_item->id;
            }
        }
        return 0;
    }
    private static function getMenuItemLanguages(string $language): array
    {
        if (empty($language) || $language === '*') {
            return ['*'];
        }
        return [$language, '*'];
    }
    private static function getSiteMenu(): ?object
    {
        return \RegularLabs\Library\Menu::get();
    }
    private static function getValue(array|object $data, string $key, mixed $default = null): mixed
    {
        if (is_array($data)) {
            return $data[$key] ?? $default;
        }
        return $data->{$key} ?? $default;
    }
}

Anon7 - 2022
AnonSec Team