File manager - Edit - /home/verseaumee/ptitsanes/libraries/gantry5/src/classes/Gantry/Joomla/Module/ModuleFinder.php
Back
<?php /** * @package Gantry5 * @author RocketTheme http://www.rockettheme.com * @copyright Copyright (C) 2007 - 2021 RocketTheme, LLC * @license GNU/GPLv2 and later * * http://www.gnu.org/licenses/gpl-2.0.html */ namespace Gantry\Joomla\Module; use Gantry\Joomla\Object\Finder; use Joomla\CMS\Application\CMSApplication; use Joomla\CMS\Factory; /** * Class ModuleFinder * @package Gantry\Joomla\Module */ class ModuleFinder extends Finder { /** @var string */ protected $table = '#__modules'; /** @var bool */ protected $readonly = true; /** @var array */ protected $state = []; /** @var array */ protected $published = [0, 1]; /** @var int */ protected $limit = 0; /** * Makes all created objects as readonly. * * @param bool $readonly * @return $this */ public function readonly($readonly = true) { $this->readonly = (bool)$readonly; return $this; } /** * @param bool $object * @return array|\Gantry\Joomla\Object\Collection */ public function find($object = true) { $ids = parent::find(); if (!$object) { return $ids; } return Module::getInstances($ids, $this->readonly); } /** * @param int|int[] $ids * @param bool $include * @return $this */ public function id($ids, $include = true) { return $this->addToGroup('a.id', $ids, $include); } /** * @param string|int|bool $language * @return $this */ public function language($language = true) { if (!$language) { return $this; } if ($language === true || is_numeric($language)) { /** @var CMSApplication $application */ $application = Factory::getApplication(); $language = $application->getLanguage()->getTag(); } return $this->where('a.language', 'IN', [$language, '*']); } /** * @param int|int[] $published * @return $this */ public function published($published = 1) { if (!\is_array($published)) { $published = [(int)$published]; } $this->published = $published; return $this; } /** * @return ModuleFinder */ public function particle() { return $this->where('a.module', '=', 'mod_gantry5_particle'); } /** * @param bool $authorised * @return $this */ public function authorised($authorised = true) { if (!$authorised) { return $this; } /** @var CMSApplication $application */ $application = Factory::getApplication(); $user = $application->getIdentity(); $groups = $user ? $user->getAuthorisedViewLevels() : []; if (!$groups) { $this->skip = true; return $this; } return $this->where('a.access', 'IN', $groups); } /** * @param string $key * @param int|int[] $ids * @param bool $include * @return $this */ protected function addToGroup($key, $ids, $include = true) { $op = $include ? 'IN' : 'NOT IN'; if (isset($this->state[$key][$op])) { $this->state[$key][$op] = array_merge($this->state[$key][$op], $ids); } else { $this->state[$key][$op] = $ids; } return $this; } protected function prepare() { $this->where('client_id', '=', 0)->where('published', 'IN', $this->published)->order('position')->order('ordering'); foreach ($this->state as $key => $list) { foreach ($list as $op => $group) { $this->where($key, $op, array_unique($group)); } } } }
| ver. 1.4 |
Github
|
.
| PHP 8.5.7 | Generation time: 0 |
proxy
|
phpinfo
|
Settings