File size: 2.96Kb
<?php
namespace xenMade\ACPE\XF\Admin\Controller;
use XF\Mvc\ParameterBag;
use XF\Mvc\Reply\AbstractReply;
class Index extends XFCP_Index
{
public function actionIndex()
{
\XF::app()->offsetSet('acpe_bypass', true);
$reply = parent::actionIndex();
if ($reply instanceof \XF\Mvc\Reply\View && !\XF::options()->acpe_DisableAddOnListIndex)
{
$upgradeable = [];
$installed = [];
$installable = [];
$legacy = [];
$skippable = [];
$disabled = [];
foreach ($this->app->addOnManager()->getAllAddOns() AS $id => $addOn)
{
if (isset($skippable[$id]))
{
continue;
}
if ($addOn->canUpgrade())
{
$skip = $addOn->legacy_addon_id;
if ($skip)
{
$skippable[$skip] = $skip;
unset($legacy[$skip]);
}
$upgradeable[$id] = $addOn;
}
else if ($addOn->isLegacy())
{
$legacy[$id] = $addOn;
}
else if (!$addOn->isActive() && $addOn->isInstalled())
{
$disabled[$id] = $addOn;
}
else if ($addOn->isInstalled())
{
$installed[$id] = $addOn;
}
else if ($addOn->canInstall())
{
$installable[$id] = $addOn;
}
}
$reply->setParam('upgradeable', $upgradeable);
$reply->setParam('installable', $installable);
$reply->setParam('installed', $installed);
$reply->setParam('legacy', $legacy);
$reply->setParam('disabled_addons', $disabled);
$tab = $this->filter('tab', 'str');
if(!$tab)
{
switch ($reply)
{
case (!empty($reply->getParam('upgradeable')) ? $tab = 'upgradeable' : '');
break;
case (!$tab && !empty($reply->getParam('installable')) ? $tab = 'installable' : '');
break;
case (!$tab && !empty($reply->getParam('installed')) ? $tab = 'installed' : '');
break;
case (!$tab && !empty($reply->getParam('legacy')) ? $tab = 'legacy' : '');
break;
case (!$tab && !empty($reply->getParam('disabled')) ? $tab = 'disabled' : '');
break;
}
}
$reply->setParam('tab', $tab);
}
return $reply;
}
}
if (false)
{
class XFCP_Index extends \XF\Admin\Controller\Index {}
}