Your IP : 216.73.216.224


Current Path : /var/www/html/components/com_kunena/src/Controller/Widget/Login/
Upload File :
Current File : /var/www/html/components/com_kunena/src/Controller/Widget/Login/WidgetLoginDisplay.php

<?php

/**
 * Kunena Component
 *
 * @package         Kunena.Site
 * @subpackage      Controller.Widget
 *
 * @copyright       Copyright (C) 2008 - 2026 Kunena Team. All rights reserved.
 * @license         https://www.gnu.org/copyleft/gpl.html GNU/GPL
 * @link            https://www.kunena.org
 **/

namespace Kunena\Forum\Site\Controller\Widget\Login;

\defined('_JEXEC') or die();

use Exception;
use Joomla\CMS\Language\Text;
use Joomla\Registry\Registry;
use Kunena\Forum\Libraries\Controller\KunenaControllerDisplay;
use Kunena\Forum\Libraries\Date\KunenaDate;
use Kunena\Forum\Libraries\Factory\KunenaFactory;
use Kunena\Forum\Libraries\Forum\Announcement\KunenaAnnouncementHelper;
use Kunena\Forum\Libraries\Login\KunenaLogin;
use Kunena\Forum\Libraries\User\KunenaUserHelper;

/**
 * Class ComponentKunenaControllerWidgetLoginDisplay
 *
 * @since   Kunena 4.0
 */
class WidgetLoginDisplay extends KunenaControllerDisplay
{
    /**
     * @var     string
     * @since   Kunena 6.0
     */
    protected $name = 'Widget/Login';

    /**
     * @var     object
     * @since   Kunena 6.0
     */
    public $me;

    /**
     * @var     object
     * @since   Kunena 6.0
     */
    public $my;

    /**
     * @var     string
     * @since   Kunena 6.0
     */
    public $registrationUrl;

    /**
     * @var     string
     * @since   Kunena 6.0
     */
    public $resetPasswordUrl;

    /**
     * @var     string
     * @since   Kunena 6.0
     */
    public $remindUsernameUrl;

    /**
     * @var     string
     * @since   Kunena 6.0
     */
    public $rememberMe;

    /**
     * @var     integer
     * @since   Kunena 6.0
     */
    public $lastvisitDate;

    /**
     * @var     string
     * @since   Kunena 6.0
     */
    public $announcementsUrl;

    /**
     * @var     string
     * @since   Kunena 6.0
     */
    public $pm_link;

    /**
     * @var     integer
     * @since   Kunena 6.0
     */
    public $inboxCount;

    /**
     * @var     integer
     * @since   Kunena 6.0
     */
    public $inboxCountValue;

    /**
     * @var     string
     * @since   Kunena 6.0
     */
    public $profile_edit_url;

    /**
     * @var     object
     * @since   Kunena 5.1
     */
    public $plglogin;

    /**
     * Prepare login display.
     *
     * @return  boolean
     *
     * @since   Kunena 6.0
     *
     * @throws  Exception
     * @throws  null
     */
    protected function before()
    {
        parent::before();

        $login = KunenaLogin::getInstance();

        $params         = new Registry($login->getParams());
        $this->plglogin = $params->get('login', '1');

        if (!$login->enabled()) {
            return false;
        }

        $this->me   = KunenaUserHelper::getMyself();
        $this->name = ($this->me->exists() ? 'Widget/Login/Logout' : 'Widget/Login/Login');

        $this->my = $this->app->getIdentity();

        if ($this->my->guest) {
            $this->registrationUrl   = $login->getRegistrationUrl();
            $this->resetPasswordUrl  = $login->getResetUrl();
            $this->remindUsernameUrl = $login->getRemindUrl();
            $this->rememberMe        = $login->getRememberMe();
        } else {
            $this->lastvisitDate = KunenaDate::getInstance($this->my->lastvisitDate);

            $private = KunenaFactory::getPrivateMessaging();

            if ($private) {
                $this->inboxCountValue = $private->getUnreadCount($this->me->userid);
                $this->inboxCount      = $this->inboxCountValue ? Text::sprintf('COM_KUNENA_PMS_INBOX_NEW', $this->inboxCountValue) : Text::_('COM_KUNENA_PMS_INBOX');
                $this->pm_link         = $private->getInboxURL();
            }

            $profile = KunenaFactory::getProfile();

            $this->profile_edit_url = $profile->getEditProfileURL($this->me->userid);

            // Display announcements.
            if ($this->me->isModerator()) {
                $this->announcementsUrl = KunenaAnnouncementHelper::getUrl('listing');
            }
        }

        return true;
    }
}