| Current Path : /var/www/html/libraries/noboss/src/Form/Field/ |
| Current File : /var/www/html/libraries/noboss/src/Form/Field/NbMenuItemField.php |
<?php
/**
* @package No Boss Extensions
* @subpackage No Boss Library
* @author No Boss Technology <contact@nobosstechnology.com>
* @copyright Copyright (C) 2026 No Boss Technology. All rights reserved.
* @license GNU Lesser General Public License version 3 or later; see <https://www.gnu.org/licenses/lgpl-3.0.en.html>
*/
namespace Noboss\Library\Form\Field;
use Joomla\CMS\Form\Field\MenuitemField;
use Joomla\CMS\Factory;
use Joomla\CMS\Language\Text;
use Joomla\Database\DatabaseInterface;
// phpcs:disable PSR1.Files.SideEffects
\defined('_JEXEC') or die;
// phpcs:enable PSR1.Files.SideEffects
class NbMenuItemField extends MenuitemField{
protected function getInput(){
// Busca no banco o total de items de menu cadastrados
$db = Factory::getContainer()->get(DatabaseInterface::class);
$query = $db->getQuery(true);
$query->select('count(*)')
->from('#__menu');
$db->setQuery($query);
$total = $db->loadResult();
// Armazena maximo de itens aceitaveis
$limiteItens = 700;
// Se tiver mais do que xx itens, impede de usar o campo para não ter problema de performance
if($total > $limiteItens){
return Text::sprintf("LIB_NOBOSS_FIELD_NOBOSSITEMMENU_MESSAGE_LIMIT", $limiteItens);
}
else{
return parent::getInput();
}
}
}