Version 5.0.0 beta 1

This commit is contained in:
Neo committed 2025-12-19 16:27:35 -08:00
1 parent 25ddeb65d6
commit 15c7beabc5
6736 files changed
+627902 -497943

No files matched your search

@@ -0,0 +1,104 @@
<?php
namespace IPS\nexus\extensions\core\UserMenu;
/* To prevent PHP errors (extending class does not exist) revealing path */
use IPS\Application\Module;
use IPS\Helpers\Menu\Link;
use IPS\Helpers\Menu\MenuItem;
use IPS\Http\Url;
use IPS\Member;
use IPS\Output\UI\MenuExtension;
use IPS\Settings;
use IPS\Theme;
use function count;
use function defined;
if ( !defined( '\IPS\SUITE_UNIQUE_KEY' ) )
{
header( ( $_SERVER['SERVER_PROTOCOL'] ?? 'HTTP/1.0' ) . ' 403 Forbidden' );
exit;
}
/**
* @brief UserMenu extension: Store
*/
class Store extends MenuExtension
{
/**
* Used to add additional links to the user account menu
*
* @param string $position ( can be content, settings, logout )
* @return array<MenuItem>
*/
public function accountMenu( string $position = 'content' ): array
{
$return = [];
if( $position == 'settings' )
{
if( Settings::i()->nexus_subs_enabled )
{
$return[] = new Link( Url::internal( "app=nexus&module=subscriptions&controller=subscriptions", "front", "nexus_subscriptions" ), 'nexus_manage_subscriptions', icon: 'fa-solid fa-arrows-rotate', identifier: 'subscriptions' );
}
}
return $return;
}
/**
* Used to add items to the mobile navigation Menu
*
* @param string $position ( can be content, settings, logout )
* @return array<MenuItem>
*/
public function mobileMenu( string $position = 'content' ) : array
{
$return = [];
if( Settings::i()->nexus_subs_enabled and $position == 'content' )
{
$return[] = new Link( Url::internal( "app=nexus&module=subscriptions&controller=subscriptions", "front", "nexus_subscriptions" ), 'nexus_manage_subscriptions', "", icon: 'fa-solid fa-arrows-rotate', identifier: 'subscriptions' );
}
return $return;
}
/**
* Used to add additional content to userbar
*
* @return string
*/
public function userNav(): string
{
if( Member::loggedIn()->canAccessModule( Module::get( 'nexus', 'store' ) ) )
{
return Theme::i()->getTemplate( 'global', 'nexus' )->userNav();
}
return '';
}
/**
* Used to add content to the mobile navigation header
*
* @param string $position (header/footer)
* @param string $iconLocation
* @return string
*/
public function mobileNav( string $position, string $iconLocation = 'footer' ) : string
{
if( Member::loggedIn()->canAccessModule( Module::get( 'nexus', 'store' ) ) )
{
if( $position == 'footer' and $iconLocation == 'footer' )
{
return Theme::i()->getTemplate( 'global', 'nexus' )->mobileFooterBar();
}
elseif( $position == 'header' and $iconLocation == 'header' )
{
return Theme::i()->getTemplate( 'global', 'nexus' )->mobileHeaderBar();
}
}
return "";
}
}