first commit

This commit is contained in:
2026-02-08 21:16:11 +01:00
commit e17b7026fd
8881 changed files with 1160453 additions and 0 deletions

View File

@@ -0,0 +1,142 @@
<?php
/**
* @copyright Copyright (c) 2009-2022 Ryan Demmer. All rights reserved
* @license GNU/GPL 3 or later - http://www.gnu.org/licenses/old-licenses/gpl-2.0.html
* JCE is free software. This version may have been modified pursuant
* to the GNU General Public License, and as distributed it includes or
* is derivative of works licensed under the GNU General Public License or
* other free or open source software licenses
*/
defined('JPATH_PLATFORM') or die;
// Include the component HTML helpers.
JHtml::addIncludePath(JPATH_COMPONENT . '/helpers/html');
JHtml::_('behavior.multiselect');
$user = JFactory::getUser();
$listOrder = $this->escape($this->state->get('list.ordering'));
$listDirn = $this->escape($this->state->get('list.direction'));
$saveOrder = $listOrder == 'ordering';
if ($saveOrder)
{
$saveOrderingUrl = 'index.php?option=com_jce&task=profiles.saveOrderAjax&tmpl=component';
JHtml::_('sortablelist.sortable', 'profileList', 'adminForm', strtolower($listDirn), $saveOrderingUrl);
}
?>
<form action="<?php echo JRoute::_('index.php?option=com_jce&view=profiles'); ?>" method="post" enctype="multipart/form-data" name="adminForm" id="adminForm">
<div class="ui-jce row">
<?php if (!empty($this->sidebar)): ?>
<div id="j-sidebar-container" class="j-sidebar-container span2 col-md-2">
<?php echo $this->sidebar; ?>
</div>
<div class="col-md-10">
<div id="j-main-container" class="j-main-container span10">
<?php else: ?>
<div id="j-main-container" class="j-main-container span10">
<?php endif;?>
<?php echo JLayoutHelper::render('joomla.searchtools.default', array('view' => $this)); ?>
<?php if (empty($this->items)): ?>
<div class="alert alert-no-items">
<?php echo JText::_('JGLOBAL_NO_MATCHING_RESULTS'); ?>
</div>
<?php else : ?>
<table class="table table-striped" id="profileList">
<thead>
<tr>
<th width="1%" class="nowrap center hidden-phone text-center d-none d-md-table-cell">
<?php echo JHtml::_('searchtools.sort', '', 'ordering', $listDirn, $listOrder, null, 'asc', 'JGRID_HEADING_ORDERING', 'icon-menu-2'); ?>
</th>
<th style="width:1%" class="nowrap center text-center">
<?php echo JHtml::_('grid.checkall'); ?>
</th>
<th style="width:1%" class="nowrap center text-center">
<?php echo JHtml::_('searchtools.sort', 'JSTATUS', 'published', $listDirn, $listOrder); ?>
</th>
<th class="title">
<?php echo JHtml::_('searchtools.sort', 'JGLOBAL_TITLE', 'name', $listDirn, $listOrder); ?>
</th>
<th class="title hidden-phone">
<?php echo JText::_('JGLOBAL_DESCRIPTION'); ?>
</th>
<th style="width:5%" class="nowrap hidden-phone center d-none d-md-table-cell text-center">
<?php echo JHtml::_('searchtools.sort', 'JGRID_HEADING_ID', 'id', $listDirn, $listOrder); ?>
</th>
</tr>
</thead>
<tfoot>
<tr>
<td colspan="8">
<?php echo $this->pagination->getListFooter(); ?>
</td>
</tr>
</tfoot>
<tbody>
<?php foreach ($this->items as $i => $item) :
$ordering = ($listOrder == 'ordering');
$canEdit = $user->authorise('core.edit', 'com_jce');
$canCheckin = $user->authorise('core.manage', 'com_checkin') || $item->checked_out == $user->get('id') || $item->checked_out == 0;
$canChange = $user->authorise('core.edit.state', 'com_jce') && $canCheckin;
?>
<tr class="row<?php echo $i % 2; ?>">
<td class="order nowrap center hidden-phone text-center d-none d-md-table-cell">
<?php
$iconClass = '';
if (!$canChange)
{
$iconClass = ' inactive';
}
elseif (!$saveOrder)
{
$iconClass = ' inactive tip-top hasTooltip" title="' . JHtml::_('tooltipText', 'JORDERINGDISABLED');
}
?>
<span class="sortable-handler<?php echo $iconClass; ?>">
<span class="icon-menu" aria-hidden="true"></span>
</span>
<?php if ($canChange && $saveOrder) : ?>
<input type="text" style="display:none" name="order[]" size="5" value="<?php echo $item->ordering; ?>" class="width-20 text-area-order">
<?php endif; ?>
</td>
<td class="center text-center">
<?php echo JHtml::_('grid.id', $i, $item->id); ?>
</td>
<td class="center text-center">
<?php echo JHtml::_('jgrid.published', $item->published, $i, 'profiles.', $canChange); ?>
</td>
<td>
<?php if ($item->checked_out) : ?>
<?php echo JHtml::_('jgrid.checkedout', $i, $item->checked_out, $item->checked_out_time, 'profiles.', $canCheckin); ?>
<?php endif; ?>
<?php if ($canEdit) : ?>
<?php $editIcon = $item->checked_out ? '' : '<span class="mr-2" aria-hidden="true"></span>'; ?>
<a class="hasTooltip" href="<?php echo JRoute::_('index.php?option=com_jce&task=profile.edit&id=' . (int) $item->id); ?>" title="<?php echo JText::_('JACTION_EDIT'); ?> <?php echo $this->escape(addslashes($item->name)); ?>">
<?php echo $editIcon; ?><?php echo $item->name; ?></a>
<?php else : ?>
<?php echo $item->name; ?>
<?php endif; ?>
</td>
<td class="nowrap hidden-phone d-none d-md-table-cell text-left">
<?php echo $this->escape($item->description); ?>
</td>
<td class="nowrap center hidden-phone d-none d-md-table-cell text-center">
<?php echo (int) $item->id; ?>
</td>
</tr>
<?php endforeach; ?>
</tbody>
</table>
<?php endif; ?>
<input type="hidden" name="task" value="" />
<input type="hidden" name="boxchecked" value="0" />
<?php echo JHtml::_('form.token'); ?>
</div>
</div>
</div>
</form>

View File

@@ -0,0 +1,8 @@
<?xml version="1.0" encoding="utf-8"?>
<metadata>
<layout title="COM_JCE_PROFILES_VIEW_DEFAULT_TITLE">
<message>
<![CDATA[COM_JCE_PROFILES_VIEW_DEFAULT_DESC]]>
</message>
</layout>
</metadata>

View File

@@ -0,0 +1,120 @@
<?php
// Check to ensure this file is included in Joomla!
defined('JPATH_PLATFORM') or die;
class JceViewProfiles extends JViewLegacy
{
protected $items;
protected $pagination;
protected $state;
protected function isEmpty()
{
// Create a new query object.
$db = JFactory::getDbo();
$query = $db->getQuery(true);
// Select the required fields from the table.
$query->select('COUNT(id)')->from($db->quoteName('#__wf_profiles'));
$db->setQuery($query);
return $db->loadResult() == 0;
}
/**
* Display the view.
*/
public function display($tpl = null)
{
$this->items = $this->get('Items');
$this->pagination = $this->get('Pagination');
$this->state = $this->get('State');
$this->filterForm = $this->get('FilterForm');
$this->activeFilters = $this->get('ActiveFilters');
$this->params = JComponentHelper::getParams('com_jce');
// Check for errors.
if (count($errors = $this->get('Errors'))) {
JError::raiseError(500, implode("\n", $errors));
return false;
}
if ($this->isEmpty()) {
$link = JHTML::link('index.php?option=com_jce&task=profiles.repair&' . JSession::getFormToken() . '=1', JText::_('WF_DB_CREATE_RESTORE'), array('class' => 'wf-profiles-repair'));
JFactory::getApplication()->enqueueMessage(JText::_('WF_DB_PROFILES_ERROR') . ' - ' . $link, 'error');
}
JHtml::_('jquery.framework');
// only in Joomla 3.x
if (version_compare(JVERSION, '4', 'lt')) {
JHtml::_('formbehavior.chosen', 'select');
}
$document = JFactory::getDocument();
$document->addScript(JURI::root(true) . '/media/com_jce/js/profiles.min.js');
$document->addStyleSheet(JURI::root(true) . '/media/com_jce/css/profiles.min.css');
$this->addToolbar();
$this->sidebar = JHtmlSidebar::render();
parent::display($tpl);
}
/**
* Add the page title and toolbar.
*
* @since 1.6
*/
protected function addToolbar()
{
$state = $this->get('State');
$user = JFactory::getUser();
JToolbarHelper::title('JCE - ' . JText::_('WF_PROFILES'), 'users');
$bar = JToolBar::getInstance('toolbar');
if ($user->authorise('jce.profiles', 'com_jce')) {
JToolbarHelper::addNew('profile.add');
JToolbarHelper::custom('profiles.copy', 'copy', 'copy', 'WF_PROFILES_COPY', true);
// Instantiate a new JLayoutFile instance and render the layout
$layout = new JLayoutFile('toolbar.uploadprofile');
$bar->appendButton('Custom', $layout->render(array()), 'upload');
JToolbarHelper::custom('profiles.export', 'download', 'download', 'WF_PROFILES_EXPORT', true);
JToolbarHelper::publish('profiles.publish', 'JTOOLBAR_PUBLISH', true);
JToolbarHelper::unpublish('profiles.unpublish', 'JTOOLBAR_UNPUBLISH', true);
JToolbarHelper::deleteList('', 'profiles.delete', 'JTOOLBAR_DELETE');
}
JHtmlSidebar::setAction('index.php?option=com_jce&view=profiles');
if ($user->authorise('core.admin', 'com_jce')) {
JToolbarHelper::preferences('com_jce');
}
}
/**
* Returns an array of fields the table can be sorted by.
*
* @return array Array containing the field name to sort by as the key and display text as value
*
* @since 3.0
*/
protected function getSortFields()
{
return array(
'ordering' => JText::_('JGRID_HEADING_ORDERING'),
'name' => JText::_('JGLOBAL_TITLE'),
'published' => JText::_('JSTATUS'),
'id' => JText::_('JGRID_HEADING_ID'),
);
}
}