160 lines
		
	
	
		
			6.8 KiB
		
	
	
	
		
			PHP
		
	
	
	
	
	
			
		
		
	
	
			160 lines
		
	
	
		
			6.8 KiB
		
	
	
	
		
			PHP
		
	
	
	
	
	
| <?php
 | |
| /**
 | |
|  * @package         Conditions
 | |
|  * @version         24.11.1459
 | |
|  * 
 | |
|  * @author          Peter van Westen <info@regularlabs.com>
 | |
|  * @link            https://regularlabs.com
 | |
|  * @copyright       Copyright © 2024 Regular Labs All Rights Reserved
 | |
|  * @license         GNU General Public License version 2 or later
 | |
|  */
 | |
| 
 | |
| defined('_JEXEC') or die;
 | |
| 
 | |
| use Joomla\CMS\Factory as JFactory;
 | |
| use Joomla\CMS\Filter\OutputFilter as JFilterOutput;
 | |
| use Joomla\CMS\HTML\HTMLHelper as JHtml;
 | |
| use Joomla\CMS\Language\Text as JText;
 | |
| use Joomla\CMS\Layout\LayoutHelper as JLayout;
 | |
| use Joomla\CMS\Router\Route as JRoute;
 | |
| use RegularLabs\Library\Document as RL_Document;
 | |
| use RegularLabs\Library\Input as RL_Input;
 | |
| use RegularLabs\Library\StringHelper as RL_String;
 | |
| 
 | |
| $extension     = RL_Input::getCmd('extension');
 | |
| $item_id       = RL_Input::getInt('item_id');
 | |
| $table         = RL_Input::getCmd('table');
 | |
| $name_column   = RL_Input::getCmd('name_column');
 | |
| $enabled_types = RL_Input::getString('enabled_types');
 | |
| $message       = RL_Input::get('message', '');
 | |
| 
 | |
| if (empty($extension))
 | |
| {
 | |
|     JFactory::getApplication()->enqueueMessage(
 | |
|         JText::_('Direct access forbidden.'),
 | |
|         'error'
 | |
|     );
 | |
| 
 | |
|     return;
 | |
| }
 | |
| 
 | |
| RL_Document::style('regularlabs.admin-form');
 | |
| 
 | |
| $listOrder = RL_String::escape($this->state->get('list.ordering'));
 | |
| $listDirn  = RL_String::escape($this->state->get('list.direction'));
 | |
| $ordering  = ($listOrder == 'a.name');
 | |
| 
 | |
| $user       = JFactory::getApplication()->getIdentity() ?: JFactory::getUser();
 | |
| $canCreate  = $user->authorise('core.create', 'com_conditions');
 | |
| $canEdit    = $user->authorise('core.edit', 'com_conditions');
 | |
| $canChange  = $user->authorise('core.edit.state', 'com_conditions');
 | |
| $canCheckin = $user->authorise('core.manage', 'com_checkin');
 | |
| 
 | |
| $form_url = 'index.php?option=com_conditions&view=items'
 | |
|     . '&layout=modal&tmpl=component'
 | |
|     . '&extension=' . $extension
 | |
|     . '&item_id=' . $item_id
 | |
|     . '&table=' . $table
 | |
|     . '&enabled_types=' . $enabled_types
 | |
|     . '&message=' . $message
 | |
|     . '&name_column=' . $name_column;
 | |
| $link_url = 'index.php?option=com_conditions&view=item'
 | |
|     . '&task=item.map'
 | |
|     . '&extension=' . $extension
 | |
|     . '&item_id=' . $item_id
 | |
|     . '&table=' . $table
 | |
|     . '&enabled_types=' . $enabled_types
 | |
|     . '&message=' . $message
 | |
|     . '&name_column=' . $name_column;
 | |
| 
 | |
| $this->filterForm->removeField('state', 'filter');
 | |
| 
 | |
| ?>
 | |
| <form action="<?php echo JRoute::_($form_url); ?>"
 | |
|       method="post" name="adminForm" id="adminForm" enctype="multipart/form-data">
 | |
|     <?php
 | |
|     // Search tools bar
 | |
|     echo JLayout::render('joomla.searchtools.default', ['view' => $this]);
 | |
|     ?>
 | |
|     <table class="table table-striped" id="itemList">
 | |
|         <thead>
 | |
|             <tr>
 | |
|                 <th scope="col" class="">
 | |
|                     <?php echo JHtml::_('searchtools.sort', 'JGLOBAL_TITLE', 'a.name', $listDirn, $listOrder); ?>
 | |
|                 </th>
 | |
|                 <th scope="col" class="d-none d-md-table-cell">
 | |
|                     <?php echo JHtml::_('searchtools.sort', 'JGLOBAL_DESCRIPTION', 'a.description', $listDirn, $listOrder); ?>
 | |
|                 </th>
 | |
|                 <th scope="col" class="w-1 text-nowrap text-center d-none d-md-table-cell">
 | |
|                     <?php echo JText::_('CON_USAGE'); ?>
 | |
|                 </th>
 | |
|                 <th scope="col" class="w-1 text-nowrap text-center d-none d-md-table-cell">
 | |
|                     <?php echo JHtml::_('searchtools.sort', 'JGRID_HEADING_ID', 'a.id', $listDirn, $listOrder); ?>
 | |
|                 </th>
 | |
|             </tr>
 | |
|         </thead>
 | |
|         <tbody>
 | |
|             <?php if (empty($this->items)): ?>
 | |
|                 <tr>
 | |
|                     <td colspan="4">
 | |
|                         <?php echo JText::_('RL_NO_ITEMS_FOUND'); ?>
 | |
|                     </td>
 | |
|                 </tr>
 | |
|             <?php else: ?>
 | |
|                 <?php foreach ($this->items as $i => $item) : ?>
 | |
|                     <?php
 | |
|                     $canCheckinItem = ($canCheckin || $item->checked_out == 0 || $item->checked_out == $user->get('id'));
 | |
|                     $canChangeItem  = ($canChange && $canCheckinItem);
 | |
|                     $isPublished    = $item->published === 1;
 | |
| 
 | |
|                     $description = explode('---', $item->description);
 | |
|                     ?>
 | |
|                     <tr class="row<?php echo $i % 2; ?><?php echo $isPublished ? '' : ' muted'; ?>" data-draggable-group="<?php echo JFilterOutput::stringURLSafe($item->category) ?: 'no-group'; ?>">
 | |
|                         <td>
 | |
|                             <?php if ($isPublished) : ?>
 | |
|                                 <a class="btn btn-primary" title="<?php echo JText::sprintf('JFIELD_ALIAS_LABEL', RL_String::escape($item->alias)); ?>"
 | |
|                                    href="<?php echo JRoute::_($link_url . '&id=' . $item->id); ?>">
 | |
|                                     <?php echo RL_String::escape($item->name); ?>
 | |
|                                 </a>
 | |
|                             <?php else: ?>
 | |
|                                 <?php echo RL_String::escape($item->name); ?>
 | |
|                             <?php endif; ?>
 | |
| 
 | |
|                             <div class="small break-word">
 | |
|                                 <?php echo JText::sprintf('JGLOBAL_LIST_ALIAS', RL_String::escape($item->alias)); ?>
 | |
|                             </div>
 | |
|                             <?php if ($item->category) : ?>
 | |
|                                 <div class="small">
 | |
|                                     <?php echo JText::_('JCATEGORY') . ': '; ?>
 | |
|                                     <span class="badge bg-info rl-badge">
 | |
|                                         <?php echo RL_String::escape($item->category); ?>
 | |
|                                     </span>
 | |
|                                 </div>
 | |
|                             <?php endif; ?>
 | |
|                         </td>
 | |
|                         <td class="d-none d-md-table-cell">
 | |
|                             <span><?php echo nl2br(RL_String::escape(trim($description[0]))); ?></span>
 | |
|                             <?php if ( ! empty($description[1])) : ?>
 | |
|                                 <div role="tooltip"><?php echo nl2br(RL_String::escape(trim($description[1]))); ?></div>
 | |
|                             <?php endif; ?>
 | |
|                         </td>
 | |
|                         <td class="text-center d-none d-md-table-cell">
 | |
|                             <span class="badge bg-secondary<?php echo ! $item->nr_of_uses ? ' opacity-50' : ''; ?>">
 | |
|                                 <?php echo $item->nr_of_uses; ?>
 | |
|                             </span>
 | |
|                         </td>
 | |
|                         <td class="text-center d-none d-md-table-cell">
 | |
|                             <?php echo (int) $item->id; ?>
 | |
|                         </td>
 | |
|                     </tr>
 | |
|                 <?php endforeach; ?>
 | |
|             <?php endif; ?>
 | |
|         </tbody>
 | |
|     </table>
 | |
| 
 | |
|     <?php // load the pagination. ?>
 | |
|     <?php echo $this->pagination->getListFooter(); ?>
 | |
| 
 | |
|     <?php echo JHtml::_('form.token'); ?>
 | |
| </form>
 |