Spade

Mini Shell

Directory:~$ /proc/self/root/home/lmsyaran/www/joomla5/modules/mod_fabrik_list/
Upload File

[Home] [System Details] [Kill Me]
Current File:~$ //proc/self/root/home/lmsyaran/www/joomla5/modules/mod_fabrik_list/mod_fabrik_list.php

<?php
/**
 * Fabrik List Module
 *
 * @package     Joomla
 * @subpackage  Fabrik
 * @copyright   Copyright (C) 2005-2020  Media A-Team, Inc. - All rights
reserved.
 * @license     GNU/GPL http://www.gnu.org/copyleft/gpl.html
 */

// No direct access
defined('_JEXEC') or die('Restricted access');

use Joomla\CMS\MVC\Model\BaseDatabaseModel;
use Joomla\CMS\Language\Text;
use Joomla\CMS\Factory;
//use Joomla\Utilities\ArrayHelper;
use Fabrik\Helpers\ArrayHelper;

if (!defined('COM_FABRIK_FRONTEND'))
{
	JError::raiseError(400,
Text::_('COM_FABRIK_SYSTEM_PLUGIN_NOT_ACTIVE'));
}

jimport('joomla.filesystem.file');
jimport('joomla.application.component.model');
jimport('joomla.application.component.helper');
BaseDatabaseModel::addIncludePath(COM_FABRIK_FRONTEND .
'/models', 'FabrikFEModel');
BaseDatabaseModel::addIncludePath(COM_FABRIK_FRONTEND .
'/models');
BaseDatabaseModel::addIncludePath(COM_FABRIK_BASE .
'/administrator/components/com_fabrik/tables');

//require_once COM_FABRIK_FRONTEND . '/controller.php';
require_once COM_FABRIK_FRONTEND . '/controllers/list.php';
require_once COM_FABRIK_FRONTEND . '/views/list/view.html.php';
//require_once COM_FABRIK_FRONTEND .
'/views/package/view.html.php';
//require_once COM_FABRIK_FRONTEND . '/controllers/package.php';
require_once COM_FABRIK_FRONTEND . '/views/form/view.html.php';

// Load front end language file as well
$lang = Factory::getLanguage();
$lang->load('com_fabrik', JPATH_BASE .
'/components/com_fabrik');

$app = Factory::getApplication();
$input = $app->input;

// Clear out other filters (e.g. content/module previously rendered which
used the same list but different filter)
if ($params->get('clearfilters'))
{
	$input->set('clearfilters', 1);
}

$document = Factory::getDocument();

// Ensure the package is set to fabrik
$prevUserState = $app->getUserState('com_fabrik.package');
$app->setUserState('com_fabrik.package', 'fabrik');

FabrikHelperHTML::framework();

// $$$rob looks like including the view does something to the layout
variable
$origLayout = $input->get('layout');
$origItemId = $input->get('itemId');

$listId = (int) $params->get('list_id', 1);
$useajax = (int) $params->get('useajax', 0);
$random	= (int) $params->get('radomizerecords', 0);
$limit = (int) $params->get('limit', 0);
$origResetfilters = $input->get('resetfilters');
$resetFilters = (int) $params->get('resetfilters', 0);
$input->set('resetfilters', $resetFilters);
$showTitle = $params->get('show-title', '');
$layout	= $params->get('fabriklayout', '');
$input->set('layout', $layout);

$moduleclass_sfx = $params->get('moduleclass_sfx',
'');
$listId	= intval($params->get('list_id', 0));
$listels = json_decode($params->get('list_elements'));

if ($listId === 0)
{
	throw new Exception('no list specified',500);
}

if (isset($listels->show_in_list))
{
	$input->set('fabrik_show_in_list',
$listels->show_in_list);
}

$viewName = 'list';
$viewType = $document->getType();
$controller = new FabrikControllerList;

// Set the default view name from the Request
$view = clone($controller->getView($viewName, $viewType));

// Push a model into the view
$model = $controller->getModel($viewName, 'FabrikFEModel');
$model->setId($listId);
$model->setRenderContext($module->id);

// Get list params
$listParams = $model->getParams();

if ($limit !== 0)
{
	$app->setUserState('com_fabrik.list' .
$model->getRenderContext() . '.limitlength', $limit);
	$input->set('limit' . $listId, $limit);
}

if ($useajax !== '')
{
	$model->set('ajax', $useajax);
}

if ($params->get('ajax_links') !== '')
{
	$listParams->set('list_ajax_links',
$params->get('ajax_links'));
}

if ($params->get('show_nav', '') !== '')
{
	$listParams->set('show-table-nav',
$params->get('show_nav'));
}

$listParams->set('show_intro',
$params->get('show_intro', 1));
$listParams->set('show_outro',
$params->get('show_outro', 1));
$origShowFilters = $app->input->get('showfilters', 1);
$app->input->set('showfilters',
$params->get('show_filters', 1));

if ($showTitle !== '')
{
	$listParams->set('show-title', $showTitle);
}

$ordering =
ArrayHelper::fromObject(json_decode($params->get('ordering')));
$orderBy = array_key_exists('order_by', $ordering) ? (array)
$ordering['order_by'] : [];
$orderDir = array_key_exists('order_dir', $ordering) ? (array)
$ordering['order_dir'] : [];

if (!empty($orderBy))
{
	// added setting ordering in the session so PDF rendering will pick it up
	foreach ($orderBy as $k => $v)
	{
		$context = 'com_fabrik.list' . $model->getRenderContext() .
'.order.' . $v;
		Factory::getSession()->set($context, $orderDir[$k]);
	}

	$model->getTable()->order_by = json_encode($orderBy);
	$model->getTable()->order_dir = json_encode($orderDir);
}

// Set up prefilters - will overwrite ones defined in the list!

$prefilters =
ArrayHelper::fromObject(json_decode($params->get('prefilters')));
$conditions = array_key_exists('filter-conditions', $prefilters)
? (array) $prefilters['filter-conditions'] : [];

if (!empty($conditions))
{
    if ($listParams->get('menu_module_prefilters_override',
true))
    {
        // override the list's filters with module's
        $listParams->set('filter-join',
$prefilters['filter-join']);
        $listParams->set('filter-fields',
$prefilters['filter-fields']);
        $listParams->set('filter-conditions',
$prefilters['filter-conditions']);
        $listParams->set('filter-value',
$prefilters['filter-value']);
        $listParams->set('filter-access',
$prefilters['filter-access']);
        $listParams->set('filter-eval',
$prefilters['filter-eval']);
        $listParams->set('filter-grouped',
ArrayHelper::array_fill(0, count($prefilters['filter-join']),
0));
    }
    else
    {
        // merge module filters into list's
        $listFields = (array)
$listParams->get('filter-fields');
        $listConditions = (array)
$listParams->get('filter-conditions');
        $listValue = (array) $listParams->get('filter-value');
        $listAccess = (array)
$listParams->get('filter-access');
        $listEval = (array) $listParams->get('filter-eval');
        $listJoins = (array) $listParams->get('filter-join');
        $listGrouped = (array)
$listParams->get('filter-grouped');
        $listJoins[0] = 'AND';

        $listParams->set('filter-join',
array_merge($listJoins, $prefilters['filter-join']));
        $listParams->set('filter-fields',
array_merge($listFields, $prefilters['filter-fields']));
        $listParams->set('filter-conditions',
array_merge($listConditions, $prefilters['filter-conditions']));
        $listParams->set('filter-value',
array_merge($listValue, $prefilters['filter-value']));
        $listParams->set('filter-access',
array_merge($listAccess, $prefilters['filter-access']));
        $listParams->set('filter-eval', array_merge($listEval,
$prefilters['filter-eval']));
        $listParams->set('filter-grouped',
array_merge($listGrouped, FArrayHelper::array_fill(0,
count($prefilters['filter-join']), '0')));
    }

}

$model->randomRecords = $random;

if (!($model INSTANCEOF Exception))
{
	$view->setModel($model, true);
}

$view->isMambot = true;

$input->set('itemId', $params->get('itemId',
$origItemId));

// Display the view
//$view->error = $controller->getError();
echo $view->display();

$input->set('itemId', $origItemId);
$input->set('layout', $origLayout);
$input->set('showfilters', $origShowFilters);
$input->set('resetfilters', $origResetfilters);

// Set the package back to what it was before rendering the module
$app->setUserState('com_fabrik.package', $prevUserState);