* @copyright 2024 Eddy Prosperi * @license GNU General Public License versione 2 o successiva; vedi LICENSE.txt */ namespace Pcrt\Component\Circolari\Administrator\View\Firmetipi; // No direct access defined('_JEXEC') or die; use \Joomla\CMS\MVC\View\HtmlView as BaseHtmlView; use \Pcrt\Component\Circolari\Administrator\Helper\CircolariHelper; use \Joomla\CMS\Toolbar\Toolbar; use \Joomla\CMS\Toolbar\ToolbarHelper; use \Joomla\CMS\Language\Text; use \Joomla\Component\Content\Administrator\Extension\ContentComponent; use \Joomla\CMS\Form\Form; use \Joomla\CMS\HTML\Helpers\Sidebar; /** * View class HtmlView a list of Firmetipi. * * @since 1.0.0 */ class HtmlView extends BaseHtmlView { protected $items; protected $pagination; protected $state; /** * Display the view * * @param string $tpl Template name * * @return void * * @throws Exception */ public function display($tpl = null) { $this->state = $this->get('State'); $this->items = $this->get('Items'); $this->pagination = $this->get('Pagination'); $this->filterForm = $this->get('FilterForm'); $this->activeFilters = $this->get('ActiveFilters'); // Check for errors. if (count($errors = $this->get('Errors'))) { throw new \Exception(implode("\n", $errors)); } $this->addToolbar(); $this->sidebar = Sidebar::render(); parent::display($tpl); } /** * Add the page title and toolbar. * * @return void * * @since 1.0.0 */ protected function addToolbar() { $state = $this->get('State'); $canDo = CircolariHelper::getActions(); ToolbarHelper::title(Text::_('Firme'), "generic"); $toolbar = Toolbar::getInstance('toolbar'); // Check if the form exists before showing the add/edit buttons $formPath = JPATH_COMPONENT_ADMINISTRATOR . '/src/View/Firmetipi'; if (file_exists($formPath)) { if ($canDo->get('core.create')) { $toolbar->addNew('firmatipo.add'); } } if ($canDo->get('core.edit.state')) { $dropdown = $toolbar->dropdownButton('status-group') ->text('JTOOLBAR_CHANGE_STATUS') ->toggleSplit(false) ->icon('fas fa-ellipsis-h') ->buttonClass('btn btn-action') ->listCheck(true); $childBar = $dropdown->getChildToolbar(); if (isset($this->items[0]->state)) { $childBar->publish('firmetipi.publish')->listCheck(true); $childBar->unpublish('firmetipi.unpublish')->listCheck(true); $childBar->archive('firmetipi.archive')->listCheck(true); } $childBar->standardButton('duplicate') ->text('JTOOLBAR_DUPLICATE') ->icon('fas fa-copy') ->task('firmetipi.duplicate') ->listCheck(true); if (isset($this->items[0]->checked_out)) { $childBar->checkin('firmetipi.checkin')->listCheck(true); } if (isset($this->items[0]->state)) { $childBar->trash('firmetipi.trash')->listCheck(true); } } // Show trash and delete for components that uses the state field if (isset($this->items[0]->state)) { if ($this->state->get('filter.state') == ContentComponent::CONDITION_TRASHED && $canDo->get('core.delete')) { $toolbar->delete('firmetipi.delete') ->text('JTOOLBAR_EMPTY_TRASH') ->message('JGLOBAL_CONFIRM_DELETE') ->listCheck(true); } } if ($canDo->get('core.admin')) { $toolbar->preferences('com_circolari'); } // Set sidebar action Sidebar::setAction('index.php?option=com_circolari&view=firmetipi'); } /** * Method to order fields * * @return void */ protected function getSortFields() { return array( 'a.`id`' => Text::_('JGRID_HEADING_ID'), 'a.`state`' => Text::_('JSTATUS'), 'a.`ordering`' => Text::_('JGRID_HEADING_ORDERING'), 'a.`nome`' => Text::_('COM_HIGHLIGHTS_ETICHETTE_NOME'), 'a.`lingua`' => Text::_('COM_HIGHLIGHTS_ETICHETTE_LINGUA'), ); } /** * Check if state is set * * @param mixed $state State * * @return bool */ public function getState($state) { return isset($this->state->{$state}) ? $this->state->{$state} : false; } }