Your IP : 216.73.216.182


Current Path : /var/www/html/plugins/osmembership/userfiles/src/Extension/
Upload File :
Current File : /var/www/html/plugins/osmembership/userfiles/src/Extension/UserFiles.php

<?php
/**
 * @package        Joomla
 * @subpackage     Membership Pro
 * @author         Tuan Pham Ngoc
 * @copyright      Copyright (C) 2012 - 2026 Ossolution Team
 * @license        GNU/GPL, see LICENSE.php
 */

namespace JoomDonation\MembershipPro\Plugin\MembershipPro\UserFiles\Extension;

use Joomla\CMS\Language\Text;
use Joomla\CMS\Plugin\CMSPlugin;
use Joomla\CMS\Plugin\PluginHelper;
use Joomla\Event\DispatcherInterface;
use Joomla\Event\Event;
use Joomla\Event\SubscriberInterface;
use MPFEventResult;

defined('_JEXEC') or die;

class UserFiles extends CMSPlugin implements SubscriberInterface
{
	use MPFEventResult;

	public static function getSubscribedEvents(): array
	{
		return [
			'onProfileDisplay' => 'onProfileDisplay',
		];
	}

	/**
	 * Constructor.
	 *
	 * @param   DispatcherInterface  $dispatcher  The dispatcher
	 * @param   array                $config      An optional associative array of configuration settings
	 */
	public function __construct(DispatcherInterface $dispatcher, array $config)
	{
		parent::__construct($dispatcher, $config);
	}

	/**
	 * Render setting form
	 *
	 * @param   Event  $event
	 *
	 * @return void
	 */
	public function onProfileDisplay(Event $event): void
	{
		/* @var \OSMembershipTableSubscriber $row */
		[$row] = array_values($event->getArguments());

		ob_start();
		$this->drawFiles($row);
		$form = ob_get_contents();
		ob_end_clean();

		$result = [
			'title' => Text::_('OSM_MY_FILES'),
			'form'  => $form,
		];

		$this->addResult($event, $result);
	}

	/**
	 * Display Display List of Documents which the current subscriber can download from his subscription
	 *
	 * @param   object  $row
	 */
	private function drawFiles($row)
	{
		\JLoader::register('OSMembershipModelUserfiles', JPATH_ROOT . '/components/com_osmembership/model/userfiles.php');

		/* @var \OSMembershipModelUserfiles $model */
		$model = \MPFModel::getTempInstance('Userfiles', 'OSMembershipModel');

		[$path, $files] = $model->getData();

		if ($this->params->get('sort_direction'))
		{
			rsort($files);
		}

		$Itemid = $this->getApplication()->getInput()->getInt('Itemid');

		require PluginHelper::getLayoutPath($this->_type, $this->_name, 'default');
	}
}