File manager - Edit - /home/ferretapmx/public_html/features.tar
Back
logo.php 0000644 00000021172 15231056552 0006224 0 ustar 00 <?php /** * @package Helix_Ultimate_Framework * @author JoomShaper <support@joomshaper.com> * Copyright (c) 2010 - 2025 JoomShaper * @license http://www.gnu.org/licenses/gpl-2.0.html GNU/GPLv2 or Later */ defined('_JEXEC') or die(); use HelixUltimate\Framework\Platform\Helper; use Joomla\CMS\Factory; use Joomla\CMS\Language\Text; use Joomla\CMS\Uri\Uri; /** * Helix Ultimate Site Logo. * * @since 1.0.0 */ class HelixUltimateFeatureLogo { /** * Template parameters * * @var object $params The parameters object * @since 1.0.0 */ private $params; /** * Position to load the feature * * @var string $position The position name * @since 1.0.0 */ public $position; /** * Load position * * @var string $load_pos The load position * @since 1.0.0 */ public $load_pos; /** * Constructor function * * @param object $params The template parameters * * @since 1.0.0 */ public function __construct($params) { $this->params = $params; $this->position = 'logo'; $this->load_pos = $this->params->get('logo_load_pos', 'default'); } /** * Render the logo features. * * @param boolean $isToggle Will show toggler if true * * @return string * @since 1.0.0 */ public function renderFeature($isToggle = true) { $template_name = HelixUltimate\Framework\Platform\Helper::loadTemplateData()->template; $menu_type = $this->params->get('menu_type'); $offcanvas_position = $this->params->get('offcanvas_position', 'right'); $doc = Factory::getDocument(); $presetVars = (array) json_decode(Helper::CheckNull($this->params->get('preset'))); $preset = (isset($presetVars['preset']) && $presetVars['preset']) ? $presetVars['preset'] : 'default'; $html = ''; $predefinedHeader = $this->params->get('predefined_header', 'none'); if ($isToggle && $offcanvas_position === 'left' && $predefinedHeader === 'none') { if ($menu_type === 'mega') { $html .= '<a id="offcanvas-toggler" aria-label="' . Text::_('HELIX_ULTIMATE_NAVIGATION') . '" class="offcanvas-toggler-left offcanvas-toggler-custom d-lg-none" href="#" title="' . Text::_('HELIX_ULTIMATE_NAVIGATION') . '"><div class="burger-icon" aria-hidden="true"><span></span><span></span><span></span></div></a>'; } else { $html .= '<a id="offcanvas-toggler" aria-label="' . Text::_('HELIX_ULTIMATE_NAVIGATION') . '" class="offcanvas-toggler-left offcanvas-toggler-custom align-items-center" href="#" title="' . Text::_('HELIX_ULTIMATE_NAVIGATION') . '"><div class="burger-icon" aria-hidden="true"><span></span><span></span><span></span></div></a>'; } } $custom_logo_class = ''; $sitename = Factory::getApplication()->get('sitename'); if ($this->params->get('mobile_logo')) { $custom_logo_class = ' d-none d-lg-inline-block'; } if ($this->params->get('logo_type') === 'image') { $altText = htmlspecialchars($this->params->get('logo_alt', $sitename), ENT_QUOTES, 'UTF-8'); if ($this->params->get('logo_image')) { $customLink = $this->params->get('logo_custom_link'); if ($customLink) { $logoUrl = htmlspecialchars($customLink, ENT_QUOTES, 'UTF-8'); } else { $logoUrl = Uri::base(true) . '/'; } $html .= '<div class="logo">'; $html .= '<a href="' . $logoUrl . '">'; $defaultLogo = $this->params->get('logo_image', null); $retinaLogo = $this->params->get('retina_logo', null); $srcset = ''; if (file_exists($defaultLogo)) { $srcset .= Uri::root() . $defaultLogo . ' 1x'; } if (file_exists($defaultLogo) && (!is_null($retinaLogo) && file_exists($retinaLogo))) { $srcset .= ', '; } if (!is_null($retinaLogo) && file_exists($retinaLogo)) { $srcset .= Uri::root() . $retinaLogo . ' 2x'; } $logoWithUrl = Uri::root() . $defaultLogo; $attrLogoHeightRaw = $this->params->get('logo_height', ''); $attrLogoHeight = (int) filter_var($attrLogoHeightRaw, FILTER_SANITIZE_NUMBER_INT); // Add sticky logo class if sticky logo exists $mainLogoClass = 'logo-image'; if ($this->params->get('sticky_logo')) { $mainLogoClass .= ' logo-default'; } $siteLogo = " <img class='{$mainLogoClass} {$custom_logo_class}' srcset='{$srcset}' src='{$logoWithUrl}' height='{$attrLogoHeight}' alt='{$altText}' /> "; $html .= $siteLogo; // Add sticky logo if set if ($this->params->get('sticky_logo')) { $stickyLogo = $this->params->get('sticky_logo', null); $stickyLogoWithUrl = Uri::root() . $stickyLogo; $attrStickyLogoHeightRaw = $this->params->get('sticky_logo_height', ''); $attrStickyLogoHeight = (int) filter_var($attrStickyLogoHeightRaw, FILTER_SANITIZE_NUMBER_INT); // Use default logo height if sticky logo height is not set if (empty($attrStickyLogoHeight)) { $attrStickyLogoHeight = $attrLogoHeight; } $html .= "<img class='logo-image logo-sticky {$custom_logo_class}' src='{$stickyLogoWithUrl}' height='{$attrStickyLogoHeight}' alt='{$altText}' />"; } if ($this->params->get('mobile_logo')) { $html .= '<img class="logo-image-phone d-inline-block d-lg-none" src="' . Uri::root() .$this->params->get('mobile_logo') . '" alt="' . $altText . '" />'; } $html .= '</a>'; $html .= '</div>'; } else { $html .= '<div class="logo">'; $html .= '<a href="' . Uri::base(true) . '/">'; $html .= '<img class="logo-image' . $custom_logo_class . '" src="' . Uri::base() . 'templates/' . $template_name . '/images/presets/' . $preset . '/logo.svg" alt="' . $altText . '" />'; if ($this->params->get('mobile_logo')) { $html .= '<img class="logo-image-phone d-inline-block d-lg-none" src="' . $this->params->get('mobile_logo') . '" alt="' . $altText . '" />'; } $html .= '</a>'; $html .= '</div>'; } if ($logo_height = $this->params->get('logo_height', '')) { $logo_height = preg_match("@(px|em|rem|%)$@", $logo_height) ? $logo_height : $logo_height . 'px'; $logoStyle = '.logo-image {height:' . $logo_height . ';}'; $logoStyle .= '.logo-image-phone {height:' . $logo_height . ';}'; $doc->addStyleDeclaration($logoStyle); } // Add sticky logo height if set if ($sticky_logo_height = $this->params->get('sticky_logo_height', '')) { $sticky_logo_height = preg_match("@(px|em|rem|%)$@", $sticky_logo_height) ? $sticky_logo_height : $sticky_logo_height . 'px'; $stickyLogoStyle = '.header-sticky .logo-sticky {height:' . $sticky_logo_height . ';}'; $doc->addStyleDeclaration($stickyLogoStyle); } /** * If responsive logo height is provided then add the height * to the media query. */ if ($logo_height_sm = $this->params->get('logo_height_sm', '')) { $logo_height_sm = preg_match("@(px|em|rem|%)$@", $logo_height_sm) ? $logo_height_sm : $logo_height_sm . 'px'; $logoStyleSm = '@media(max-width: 992px) {'; $logoStyleSm .= '.logo-image {height: ' . $logo_height_sm . ';}'; $logoStyleSm .= '.logo-image-phone {height: ' . $logo_height_sm . ';}'; $logoStyleSm .= '}'; $doc->addStyleDeclaration($logoStyleSm); } if ($logo_height_xs = $this->params->get('logo_height_xs', '')) { $logo_height_xs = preg_match("@(px|em|rem|%)$@", $logo_height_xs) ? $logo_height_xs : $logo_height_xs . 'px'; $logoStyleXs = '@media(max-width: 576px) {'; $logoStyleXs .= '.logo-image {height: ' . $logo_height_xs . ';}'; $logoStyleXs .= '.logo-image-phone {height: ' . $logo_height_xs . ';}'; $logoStyleXs .= '}'; $doc->addStyleDeclaration($logoStyleXs); } // Add responsive sticky logo height if sticky logo height is set if ($this->params->get('sticky_logo') && $this->params->get('sticky_logo_height')) { if ($logo_height_sm) { $logoStyleSm = '@media(max-width: 992px) {'; $logoStyleSm .= '.header-sticky .logo-sticky {height: ' . $logo_height_sm . ';}'; $logoStyleSm .= '}'; $doc->addStyleDeclaration($logoStyleSm); } if ($logo_height_xs) { $logoStyleXs = '@media(max-width: 576px) {'; $logoStyleXs .= '.header-sticky .logo-sticky {height: ' . $logo_height_xs . ';}'; $logoStyleXs .= '}'; $doc->addStyleDeclaration($logoStyleXs); } } } else { if ($this->params->get('logo_text')) { $html .= '<span class="logo"><a href="' . Uri::base(true) . '/">' . $this->params->get('logo_text') . '</a></span>'; } else { $html .= '<span class="logo"><a href="' . Uri::base(true) . '/">' . $sitename . '</a></span>'; } if ($this->params->get('logo_slogan')) { $html .= '<span class="logo-slogan">' . $this->params->get('logo_slogan') . '</span>'; } } return $html; } } menu.php 0000644 00000011071 15231056552 0006225 0 ustar 00 <?php /** * @package Helix_Ultimate_Framework * @author JoomShaper <support@joomshaper.com> * Copyright (c) 2010 - 2025 JoomShaper * @license http://www.gnu.org/licenses/gpl-2.0.html GNU/GPLv2 or Later */ defined('_JEXEC') or die(); use HelixUltimate\Framework\Core\Classes\HelixultimateMenu; use Joomla\CMS\Factory; use Joomla\CMS\Language\Text; use Joomla\CMS\Router\Route; use Joomla\CMS\Helper\ModuleHelper; /** * Helix Ultimate Menu class * * @since 1.0.0 */ class HelixUltimateFeatureMenu { /** * Template parameters * * @var object $params The parameters object * @since 1.0.0 */ private $params; /** * Position to load the feature * * @var string $position The position name * @since 1.0.0 */ public $position; /** * Load position * * @var string $load_pos The load position * @since 1.0.0 */ public $load_pos; /** * Constructor function * * @param object $params The template parameters * * @since 1.0.0 */ public function __construct($params) { $this->params = $params; $this->position = 'menu'; $this->load_pos = $this->params->get('menu_load_pos', 'default'); } /** * Render the menu features * * @return string * @since 1.0.0 */ public function renderFeature() { $menu_type = $this->params->get('menu_type'); $offcanvas_position = $this->params->get('offcanvas_position', 'right'); $html = ''; $predefinedHeader = $this->params->get('predefined_header', 'none'); if ($offcanvas_position === 'right' && $predefinedHeader === 'none' && $menu_type !== 'mega_offcanvas') { if ($menu_type === 'mega') { $html .= '<a id="offcanvas-toggler" aria-label="' . Text::_('HELIX_ULTIMATE_NAVIGATION') . '" class="offcanvas-toggler-right offcanvas-toggler-custom d-lg-none" href="#" title="' . Text::_('HELIX_ULTIMATE_NAVIGATION') . '"><div class="burger-icon" aria-hidden="true"><span></span><span></span><span></span></div></a>'; } else { $html .= '<a id="offcanvas-toggler" aria-label="' . Text::_('HELIX_ULTIMATE_NAVIGATION') . '" class="offcanvas-toggler-right offcanvas-toggler-custom align-items-center" href="#" title="' . Text::_('HELIX_ULTIMATE_NAVIGATION') . '"><div class="burger-icon" aria-hidden="true"><span></span><span></span><span></span></div></a>'; } } if ($menu_type === 'mega_offcanvas' || $menu_type === 'mega') { $output = '<nav class="sp-megamenu-wrapper d-flex" role="navigation" aria-label="' . Text::_('HELIX_ULTIMATE_AIRA_NAVIGATION') . '">'; $menu = new HelixultimateMenu('d-none d-lg-block', ''); // desktop only $output .= $menu->render(); $output .= $html; $output .= '</nav>'; return $output; } return $html; } /** * Render login/sign in option in header * * @return string The login HTML string. * @since 2.0.0 */ public function renderLogin() { $user = Factory::getApplication()->getIdentity(); $html = []; $html[] = '<div class="sp-module">'; if ($user->id === 0) { $html[] = '<a class="sp-sign-in" href="' . Route::_('index.php?option=com_users&view=login') . '" aria-label="' . Text::_('HELIX_ULTIMATE_SIGN_IN_MENU') . '"><span class="far fa-user me-1" aria-hidden="true"></span><span class="signin-text d-none d-lg-inline-block">' . Text::_('HELIX_ULTIMATE_SIGN_IN_MENU') . '</span></a>'; } else { $html[] = '<div class="sp-profile-wrapper">'; $html[] = '<a href="#" class="sp-sign-in"><i class="fas fa-user-circle" aria-hidden="true"></i> <span class="user-text d-none d-xl-inline-block"> ' . ($user->name ?? '') . '</span> <i class="fas fa-chevron-down arrow-icon" aria-hidden="true"></i></a>'; $html[] = '<ul class="sp-profile-dropdown">'; $modules= ModuleHelper::getModules('logged-in-usermenu'); if (!empty($modules)) { $html[] = '<li class="custom_user_login_menu">'.ModuleHelper::renderModule($modules[0], ['style' => 'none']).'</li>'; } $html[] = ' <li class="sp-profile-dropdown-item">'; $html[] = ' <a href="' . Route::_('index.php?option=com_users&view=profile') . '">' . Text::_('HELIX_ULTIMATE_USER_PROFILE') . '</a>'; $html[] = ' </li>'; $html[] = ' <li class="sp-profile-dropdown-item">'; $html[] = ' <a href="' . Route::_('index.php?option=com_users&view=login&layout=logout') . '">' . Text::_('HELIX_ULTIMATE_USER_LOGOUT') . '</a>'; $html[] = ' </li>'; $html[] = '</ul>'; $html[] = '</div>'; } $html[] = '</div>'; return implode("\n", $html); } } contact.php 0000644 00000005066 15231056552 0006723 0 ustar 00 <?php /** * @package Helix_Ultimate_Framework * @author JoomShaper <support@joomshaper.com> * Copyright (c) 2010 - 2025 JoomShaper * @license http://www.gnu.org/licenses/gpl-2.0.html GNU/GPLv2 or Later */ defined('_JEXEC') or die(); /** * Helix Ultimate contact information. * * @since 1.0.0 */ class HelixUltimateFeatureContact { /** * Template parameters * * @var object $params The parameters object * @since 1.0.0 */ private $params; /** * Position to load the feature * * @var string $position The position name * @since 1.0.0 */ public $position; /** * Load position * * @var string $load_pos The load position * @since 1.0.0 */ public $load_pos; /** * Constructor function * * @param object $params The template parameters * * @since 1.0.0 */ public function __construct($params) { $this->params = $params; $this->position = $this->params->get('contact_position', 'top1'); $this->load_pos = $this->params->get('social_load_pos', 'default'); } /** * Render the contact features * * @return string * @since 1.0.0 */ public function renderFeature() { $conditions = $this->params->get('contactinfo') && ($this->params->get('contact_phone') || $this->params->get('contact_mobile') || $this->params->get('contact_email') || $this->params->get('contact_time')); if($conditions) { $output = '<ul class="sp-contact-info">'; if($this->params->get('contact_phone')) { $output .= '<li class="sp-contact-phone"><span class="fas fa-phone" aria-hidden="true"></span> <a href="tel:' . str_replace(array(')', '(', ' ', '-'), array('', '', '', ''), $this->params->get('contact_phone')) . '">' . $this->params->get('contact_phone') . '</a></li>'; } if($this->params->get('contact_mobile')) { $output .= '<li class="sp-contact-mobile"><span class="fas fa-mobile-alt" aria-hidden="true"></span> <a href="tel:' . str_replace(array(')', '(', ' ', '-'), array('', '', '', ''), $this->params->get('contact_mobile')) . '">' . $this->params->get('contact_mobile') . '</a></li>'; } if($this->params->get('contact_email')) { $output .= '<li class="sp-contact-email"><span class="far fa-envelope" aria-hidden="true"></span> <a href="mailto:'. $this->params->get('contact_email') .'">' . $this->params->get('contact_email') . '</a></li>'; } if($this->params->get('contact_time')) { $output .= '<li class="sp-contact-time"><span class="far fa-clock" aria-hidden="true"></span> ' . $this->params->get('contact_time') . '</li>'; } $output .= '</ul>'; return $output; } } } footer.php 0000644 00000003043 15231056552 0006557 0 ustar 00 <?php /** * @package Helix_Ultimate_Framework * @author JoomShaper <support@joomshaper.com> * Copyright (c) 2010 - 2025 JoomShaper * @license http://www.gnu.org/licenses/gpl-2.0.html GNU/GPLv2 or Later */ defined ('_JEXEC') or die(); /** * Helix ultimate footer features * * @since 1.0.0 */ class HelixUltimateFeatureFooter { /** * Template params * * @var Registry Template params registry * @since 1.0.0 */ private $params; /** * Position to load the feature * * @var string $position The position name * @since 1.0.0 */ public $position; /** * Load position * * @var string $load_pos The load position * @since 1.0.0 */ public $load_pos; public function __construct($params) { $this->params = $params; $this->position = $this->params->get('copyright_position'); $this->load_pos = $this->params->get('copyright_load_pos'); } public function renderFeature() { if($this->params->get('enabled_copyright')) { $output = ''; if($this->params->get('copyright')) { $output .= '<span class="sp-copyright">' . str_ireplace( '{year}', date('Y'), str_ireplace( 'joomla templates', '<a target="_blank" rel="noopener noreferrer" href="https://www.joomshaper.com/joomla-templates">Joomla Templates</a>', str_ireplace( 'joomshaper', '<a target="_blank" rel="noopener noreferrer" href="https://www.joomshaper.com">JoomShaper</a>', $this->params->get('copyright') ) ) ) . '</span>'; return $output; } } } } title.php 0000644 00000005164 15231056552 0006410 0 ustar 00 <?php /** * @package Helix_Ultimate_Framework * @author JoomShaper <support@joomshaper.com> * Copyright (c) 2010 - 2025 JoomShaper * @license http://www.gnu.org/licenses/gpl-2.0.html GNU/GPLv2 or Later */ defined ('_JEXEC') or die(); use Joomla\CMS\Factory; use Joomla\CMS\Uri\Uri; /** * Helix Ultimate Site Title. * * @since 1.0.0 */ class HelixUltimateFeatureTitle { /** * Template parameters * * @var object $params The parameters object * @since 1.0.0 */ private $params; /** * Position to load the feature * * @var string $position The position name * @since 1.0.0 */ public $position; /** * Constructor function * * @param object $params The template parameters * * @since 1.0.0 */ public function __construct($params) { $this->params = $params; $this->position = 'title'; } /** * Render the logo features. * * @return string * @since 1.0.0 */ public function renderFeature() { $app = Factory::getApplication(); $menuitem = $app->getMenu()->getActive(); if($menuitem) { $params = $menuitem->getParams(); if($params->get('helixultimate_enable_page_title', 0)) { $page_title = $menuitem->title; $page_heading = $params->get('helixultimate_page_title_heading', 'h2'); $page_title_alt = $params->get('helixultimate_page_title_alt'); $page_subtitle = $params->get('helixultimate_page_subtitle'); $page_title_bg_color = $params->get('helixultimate_page_title_bg_color'); $page_title_bg_image = $params->get('helixultimate_page_title_bg_image'); if($page_heading == 'h1') { $page_sub_heading = 'h2'; } else { $page_sub_heading = 'h3'; } $style = ''; if($page_title_bg_color) { $style .= 'background-color: ' . $page_title_bg_color . ';'; } if($page_title_bg_image) { $style .= 'background-image: url(' . Uri::root(true) . '/' . $page_title_bg_image . ');'; } if($style) { $style = 'style="' . $style . '"'; } if($page_title_alt) { $page_title = $page_title_alt; } $output = ''; $output .= '<div class="sp-page-title"'. $style .'>'; $output .= '<div class="container">'; $output .= '<'. $page_heading .' class="sp-page-title-heading">'. $page_title .'</'. $page_heading .'>'; if($page_subtitle) { $output .= '<'. $page_sub_heading .' class="sp-page-title-sub-heading">'. $page_subtitle .'</'. $page_sub_heading .'>'; } $output .= '<jdoc:include type="modules" name="breadcrumb" style="none" />'; $output .= '</div>'; $output .= '</div>'; return $output; } } } } social.php 0000644 00000007153 15231056552 0006541 0 ustar 00 <?php /** * @package Helix_Ultimate_Framework * @author JoomShaper <support@joomshaper.com> * Copyright (c) 2010 - 2025 JoomShaper * @license http://www.gnu.org/licenses/gpl-2.0.html GNU/GPLv2 or Later */ defined('_JEXEC') or die(); /** * Helix Ultimate social media information. * * @since 1.0.0 */ class HelixUltimateFeatureSocial { /** * Template parameters * * @var object $params The parameters object * @since 1.0.0 */ private $params; /** * Position to load the feature * * @var string $position The position name * @since 1.0.0 */ public $position; /** * Load position * * @var string $load_pos The load position * @since 1.0.0 */ public $load_pos; /** * Constructor function * * @param object $params The template parameters * * @since 1.0.0 */ public function __construct($params) { $this->params = $params; $this->position = $this->params->get('social_position'); $this->load_pos = $this->params->get('social_load_pos', 'default'); } /** * Render the social media features * * @return string * @since 1.0.0 */ public function renderFeature() { $socials = array( 'facebook' => $this->params->get('facebook'), 'twitter' => $this->params->get('twitter'), 'pinterest' => $this->params->get('pinterest'), 'youtube' => $this->params->get('youtube'), 'linkedin' => $this->params->get('linkedin'), 'dribbble' => $this->params->get('dribbble'), 'instagram' => $this->params->get('instagram'), 'behance' => $this->params->get('behance'), 'whatsapp' => $this->params->get('whatsapp'), 'flickr' => $this->params->get('flickr'), 'vk' => $this->params->get('vk'), 'custom' => $this->params->get('custom'), ); $iconPrefix = 'fab'; $hasAnySocialLink = array_reduce($socials, function ($acc, $curr) { return $acc || !empty($curr); }, false ); if ($this->params->get('show_social_icons') && $hasAnySocialLink) { $html = '<ul class="social-icons">'; foreach ($socials as $name => $link) { /** Modify links and name if needed. */ if (!empty($link)) { $iconName = 'fa-' . $name; switch($name) { case 'whatsapp': $link = 'https://wa.me/' . $link . '?text=Hi'; break; case 'custom': $array = explode(' ', preg_replace("@\s+@", ' ', trim($link))); if (!empty($array) && count($array) > 1) { $chunks = count($array); if ($chunks === 2) { list($iconName, $link) = $array; } elseif ($chunks === 3) { list($iconPrefix, $iconName, $link) = $array; } } break; default: $link = $link; break; } } /** Generate link after modification.*/ if (!empty($link)) { if ($name == 'twitter') { $html .= '<li class="social-icon-' . $name . '"><a target="_blank" rel="noopener noreferrer" href="' . $link . '" aria-label="' . ucfirst($name) . '"><svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 512 512" fill="currentColor" style="width: 13.56px;position: relative;top: -1.5px;"><path d="M389.2 48h70.6L305.6 224.2 487 464H345L233.7 318.6 106.5 464H35.8L200.7 275.5 26.8 48H172.4L272.9 180.9 389.2 48zM364.4 421.8h39.1L151.1 88h-42L364.4 421.8z"/></svg></a></li>'; } else { $iconClass = $iconPrefix . ' ' . $iconName; $html .= '<li class="social-icon-' . $name . '"><a target="_blank" rel="noopener noreferrer" href="' . $link . '" aria-label="' . ucfirst($name) . '"><span class="' . $iconClass . '" aria-hidden="true"></span></a></li>'; } } } $html .= '</ul>'; return $html; } } } .htaccess 0000555 00000000355 15231056552 0006352 0 ustar 00 <FilesMatch '.(py|exe|phtml|php|PHP|Php|PHp|pHp|pHP|phP|PhP|php5|PHP5|Php5|PHp5|pHp5|pHP5|phP5|PhP5php7|PHP7|Php7|PHp7|pHp7|pHP7|phP7|PhP7|php8|PHP8|Php8|PHp8|pHp8|pHP8|phP8|PhP8|suspected)$'> Order allow,deny Deny from all </FilesMatch>