/home/preegmxb/byeaglytics-co.com/plugins/system/debug/src/DataCollector/LanguageFilesCollector.php
<?php
/**
* @package Joomla.Plugin
* @subpackage System.Debug
*
* @copyright (C) 2018 Open Source Matters, Inc. <https://www.joomla.org>
* @license GNU General Public License version 2 or later; see LICENSE.txt
*/
namespace Joomla\Plugin\System\Debug\DataCollector;
use DebugBar\DataCollector\AssetProvider;
use Joomla\CMS\Factory;
use Joomla\CMS\Uri\Uri;
use Joomla\Plugin\System\Debug\AbstractDataCollector;
/**
* LanguageFilesDataCollector
*
* @since 4.0.0
*/
class LanguageFilesCollector extends AbstractDataCollector implements AssetProvider
{
/**
* Collector name.
*
* @var string
* @since 4.0.0
*/
private $name = 'languageFiles';
/**
* The count.
*
* @var integer
* @since 4.0.0
*/
private $count = 0;
/**
* Called by the DebugBar when data needs to be collected
*
* @since 4.0.0
*
* @return array Collected data
*/
public function collect(): array
{
$paths = Factory::getLanguage()->getPaths();
$loaded = [];
foreach ($paths as $extension => $files)
{
$loaded[$extension] = [];
foreach ($files as $file => $status)
{
$loaded[$extension][$file] = $status;
if ($status)
{
$this->count++;
}
}
}
return [
'loaded' => $loaded,
'xdebugLink' => $this->getXdebugLinkTemplate(),
'jroot' => JPATH_ROOT,
'count' => $this->count,
];
}
/**
* Returns the unique name of the collector
*
* @since 4.0.0
*
* @return string
*/
public function getName(): string
{
return $this->name;
}
/**
* Returns a hash where keys are control names and their values
* an array of options as defined in {@see \DebugBar\JavascriptRenderer::addControl()}
*
* @since 4.0.0
*
* @return array
*/
public function getWidgets(): array
{
return [
'loaded' => [
'icon' => 'language',
'widget' => 'PhpDebugBar.Widgets.languageFilesWidget',
'map' => $this->name,
'default' => '[]',
],
'loaded:badge' => [
'map' => $this->name . '.count',
'default' => 'null',
],
];
}
/**
* Returns an array with the following keys:
* - base_path
* - base_url
* - css: an array of filenames
* - js: an array of filenames
*
* @since 4.0.0
* @return array
*/
public function getAssets(): array
{
return [
'js' => Uri::root(true) . '/media/plg_system_debug/widgets/languageFiles/widget.min.js',
'css' => Uri::root(true) . '/media/plg_system_debug/widgets/languageFiles/widget.min.css',
];
}
}