[ Index ] |
PHP Cross Reference of Joomla 4.2.2 documentation |
[Summary view] [Print] [Text view]
1 <?php 2 /** 3 * @package Joomla.API 4 * @subpackage com_media 5 * 6 * @copyright (C) 2021 Open Source Matters, Inc. <https://www.joomla.org> 7 * @license GNU General Public License version 2 or later; see LICENSE.txt 8 */ 9 10 namespace Joomla\Component\Media\Api\Model; 11 12 \defined('_JEXEC') or die; 13 14 use Joomla\CMS\MVC\Model\BaseModel; 15 use Joomla\CMS\MVC\Model\ListModelInterface; 16 use Joomla\CMS\Pagination\Pagination; 17 use Joomla\Component\Media\Administrator\Provider\ProviderManagerHelperTrait; 18 19 /** 20 * Media web service model supporting lists of media adapters. 21 * 22 * @since 4.1.0 23 */ 24 class AdaptersModel extends BaseModel implements ListModelInterface 25 { 26 use ProviderManagerHelperTrait; 27 28 /** 29 * A hacky way to enable the standard jsonapiView::displayList() to create a Pagination object, 30 * since com_media's ApiModel does not support pagination as we know from regular ListModel derived models. 31 * 32 * @var int 33 * @since 4.1.0 34 */ 35 private $total = 0; 36 37 /** 38 * Method to get a list of files and/or folders. 39 * 40 * @return array An array of data items. 41 * 42 * @since 4.1.0 43 */ 44 public function getItems(): array 45 { 46 $adapters = []; 47 foreach ($this->getProviderManager()->getProviders() as $provider) 48 { 49 foreach ($provider->getAdapters() as $adapter) 50 { 51 $obj = new \stdClass(); 52 $obj->id = $provider->getID() . '-' . $adapter->getAdapterName(); 53 $obj->provider_id = $provider->getID(); 54 $obj->name = $adapter->getAdapterName(); 55 $obj->path = $provider->getID() . '-' . $adapter->getAdapterName() . ':/'; 56 57 $adapters[] = $obj; 58 } 59 } 60 61 // A hacky way to enable the standard jsonapiView::displayList() to create a Pagination object. 62 $this->total = \count($adapters); 63 64 return $adapters; 65 } 66 67 /** 68 * Method to get a \JPagination object for the data set. 69 * 70 * @return Pagination A Pagination object for the data set. 71 * 72 * @since 4.1.0 73 */ 74 public function getPagination(): Pagination 75 { 76 return new Pagination($this->getTotal(), $this->getStart(), 0); 77 } 78 79 /** 80 * Method to get the starting number of items for the data set. Because com_media's ApiModel 81 * does not support pagination as we know from regular ListModel derived models, 82 * we always start at the top. 83 * 84 * @return integer The starting number of items available in the data set. 85 * 86 * @since 4.1.0 87 */ 88 public function getStart(): int 89 { 90 return 0; 91 } 92 93 /** 94 * Method to get the total number of items for the data set. 95 * 96 * @return integer The total number of items available in the data set. 97 * 98 * @since 4.1.0 99 */ 100 public function getTotal(): int 101 { 102 return $this->total; 103 } 104 }
title
Description
Body
title
Description
Body
title
Description
Body
title
Body
Generated: Wed Sep 7 05:41:13 2022 | Chilli.vc Blog - For Webmaster,Blog-Writer,System Admin and Domainer |