Skip to content

Commit

Permalink
Return sensible default from 'FileSystem - Local' plugin.
Browse files Browse the repository at this point in the history
  • Loading branch information
pjdevries committed Jun 2, 2021
1 parent 7477fd7 commit 03c8872
Showing 1 changed file with 34 additions and 9 deletions.
43 changes: 34 additions & 9 deletions plugins/filesystem/local/local.php
Original file line number Diff line number Diff line change
Expand Up @@ -9,6 +9,7 @@

defined('_JEXEC') or die;

use Joomla\CMS\Component\ComponentHelper;
use Joomla\CMS\Language\Text;
use Joomla\CMS\Plugin\CMSPlugin;
use Joomla\Component\Media\Administrator\Event\MediaProviderEvent;
Expand Down Expand Up @@ -79,16 +80,8 @@ public function getDisplayName()
public function getAdapters()
{
$adapters = [];
$directories = $this->params->get('directories', '[{"directory": "images"}]');

// Do a check if default settings are not saved by user
// If not initialize them manually
if (is_string($directories))
{
$directories = json_decode($directories);
}

foreach ($directories as $directoryEntity)
foreach ($this->getDirectories() as $directoryEntity)
{
if ($directoryEntity->directory)
{
Expand All @@ -105,4 +98,36 @@ public function getAdapters()

return $adapters;
}

/**
* Return plugin directory paramater settings or sensible default
*
* @return array
*
* @since 4.0
*/
private function getDirectories()
{
// Get plugin directories parameter and makes sure it's an array.
$directories = (array) $this->params->get('directories');

// Filter out empty entries.
$directories = array_filter($directories, function ($directoryEntity)
{
return !empty($directoryEntity->directory);
});

// If directories have been configured, return them.
if (count($directories))
{
return $directories;
}

// Return Media Manager's file path setting.
$comMediaParams = ComponentHelper::getParams('com_media');
$defaultDirectory = new \stdClass();
$defaultDirectory->directory = $comMediaParams->get('file_path', 'images');;

return [$defaultDirectory];
}
}

0 comments on commit 03c8872

Please sign in to comment.