uawdijnntqw1x1x1
IP : 216.73.216.219
Hostname : webm015.cluster127.gra.hosting.ovh.net
Kernel : Linux webm015.cluster127.gra.hosting.ovh.net 5.15.206-ovh-vps-grsec-zfs-classid #1 SMP Fri May 15 02:41:25 UTC 2026 x86_64
Disable Function : _dyuweyrj4,_dyuweyrj4r,dl
OS : Linux
PATH:
/
home
/
pteabiscqq
/
www
/
administrator
/
components
/
com_advportfoliopro
/
models
/
.
/
imagehandler.php
/
/
<?php /** * @copyright Copyright (c) 2013 Skyline Technology Ltd (http://extstore.com). All rights reserved. * @license http://www.gnu.org/licenses/gpl-2.0.html GNU/GPL */ // No direct access. defined('_JEXEC') or die; jimport('joomla.filesystem.folder'); jimport('joomla.filesystem.file'); /** * Class supporting a list of images. * * @package Joomla.Administrator * @subpakage ExtStore.AdvPortfolioPro */ class AdvPortfolioProModelImageHandler extends JModelList { /** * Constructor. * * @param array An optional associative array of configuration settings. * @see JControllerLegacy */ public function __construct($config = array()) { parent::__construct($config); } /** * Method to auto-populate the model state. * * Note. Calling getState in this method will result in recursion. */ protected function populateState($ordering = null, $direction = null) { $app = JFactory::getApplication(); // Load the filter state. $search = $this->getUserStateFromRequest($this->context . '.filter.search', 'filter_search'); $this->setState('filter.search', $search); // folder $folder = $this->getUserStateFromRequest($this->context . '.folder', 'folder'); $filter = new JFilterInput(); $folder = $filter->clean($folder, 'path'); $this->setState('folder', $folder); // List state information. parent::populateState(); } /** * Method to get a store id based on model configuration state. * * This is necessary because the model is used by the component and different modules * that might need different sets of data or different ordering requirements. * * @param string $id A prefix for the store id. * @return string A store id. */ protected function getStoreId($id = '') { // compile the store id. $id .= ':' . $this->getState('filter.search'); $id .= ':' . $this->getState('folder'); return parent::getStoreId($id); } /** * Get list of folders. */ public function getFolders() { $store = $this->getStoreId(); if (isset($this->cache[$store . '-folder'])) { return $this->cache[$store . '-folder']; } // initialize variables $params = JComponentHelper::getParams('com_advportfoliopro'); $basePath = str_replace('{root}', JPATH_ROOT, $params->get('image_upload_path', '{root}/images/advportfoliopro/images')) . '/'; $folder = $this->getState('folder'); if ($folder) { $basePath = $basePath . '/' . $folder . '/'; } $items = JFolder::folders($basePath); $folders = array(); foreach ($items as $item) { $tmp = new stdClass(); $tmp->name = $item; $tmp->path = JPath::clean($basePath . $item); $folders[] = $tmp; } $this->cache[$store . '-folder'] = $folders; return $this->cache[$store . '-folder']; } /** * Method to get images. */ public function getItems() { // Get a storage key. $store = $this->getStoreId(); // Try to load the data from internal storage. if (isset($this->cache[$store])) { return $this->cache[$store]; } $list = $this->getList(); $images = array(); $limit = $this->getState('list.limit'); if ($limit == 0) { $limit = $this->getState('list.total'); $s = 1; } else { $s = $this->getState('list.start') + 1; } // get only a part of list images for ($i = ($s - 1), $n = $s - 1 + $limit, $total = $this->getState('list.total'); $i < $n; $i++) { if ($i + 1 <= $total) { $list[$i]->size = AdvPortfolioProHelper::fileSize(filesize($list[$i]->path)); $images[] = $list[$i]; } } $this->cache[$store] = $images; return $this->cache[$store]; } /** * Method to get list of images */ protected function getList() { static $list; // only process the list once per request if (is_array($list)) { return $list; } // get search from state $search = $this->getState('filter.search'); $params = JComponentHelper::getParams('com_advportfoliopro'); $basePath = str_replace('{root}', JPATH_ROOT, $params->get('image_upload_path', '{root}/images/advportfoliopro/images')) . '/'; // Security if (!JFile::exists($basePath . '.htaccess')) { $text = 'Options -Indexes'; JFile::write($basePath . '.htaccess', $text); } // initialize variables $folder = $this->getState('folder'); if ($folder) { $basePath = $basePath . $folder . '/'; } $images = array(); // get the list of files and folders from the given folder jimport('joomla.filesystem.folder'); $files = JFolder::files($basePath, '^(.)*((\.jpg)|(\.jpeg)|(\.gif)|(\.png))$'); if ($files !== false) { foreach ($files as $file) { if (is_file($basePath . '/' . $file) && substr($file, 0, 1) != '.') { if ($search == '' || stristr($file, $search)) { $tmp = new JObject(); $tmp->name = $file; $tmp->path = JPath::clean(($basePath . $file)); $images[] = $tmp; } } } } $list = $images; $this->setState('list.total', count($images)); return $images; } /** * Method to get a pagination object for list images. */ public function getPagination() { // Get a storage key. $store = $this->getStoreId('getPagination'); // Try to load the data from internal storage. if (isset($this->cache[$store])) { return $this->cache[$store]; } // Create the pagination object. jimport('joomla.html.pagination'); $page = new JPagination($this->getTotal(), $this->getStart(), $this->getState('list.limit')); // Add the object to the internal cache. $this->cache[$store] = $page; return $this->cache[$store]; } /** * Method to get total of images. */ public function getTotal() { $this->getList(); return $this->getState('list.total'); } }
/home/pteabiscqq/www/administrator/components/com_advportfoliopro/models/./imagehandler.php