Spade
Mini Shell
| Directory:~$ /home/lmsyaran/public_html/joomla4/ |
| [Home] [System Details] [Kill Me] |
base.php000064400000001742151156324120006173 0ustar00<?php
/**
* @package Joomla.Platform
* @subpackage View
*
* @copyright Copyright (C) 2005 - 2020 Open Source Matters, Inc. All
rights reserved.
* @license GNU General Public License version 2 or later; see LICENSE
*/
defined('JPATH_PLATFORM') or die;
/**
* Joomla Platform Base View Class
*
* @since 3.0.0
* @deprecated 4.0 Use the default MVC library
*/
abstract class JViewBase implements JView
{
/**
* The model object.
*
* @var JModel
* @since 3.0.0
*/
protected $model;
/**
* Method to instantiate the view.
*
* @param JModel $model The model object.
*
* @since 3.0.0
*/
public function __construct(JModel $model)
{
// Setup dependencies.
$this->model = $model;
}
/**
* Method to escape output.
*
* @param string $output The output to escape.
*
* @return string The escaped output.
*
* @see JView::escape()
* @since 3.0.0
*/
public function escape($output)
{
return $output;
}
}
html.php000064400000010571151156324120006225 0ustar00<?php
/**
* @package FrameworkOnFramework
* @subpackage view
* @copyright Copyright (C) 2010-2016 Nicholas K. Dionysopoulos / Akeeba
Ltd. All rights reserved.
* @license GNU General Public License version 2 or later; see
LICENSE.txt
* @note This file has been modified by the Joomla! Project and no
longer reflects the original work of its author.
*/
// Protect from unauthorized access
defined('FOF_INCLUDED') or die;
/**
* FrameworkOnFramework HTML output class. Together with PHP-based view
templates
* it will render your data into an HTML representation.
*
* @package FrameworkOnFramework
* @since 2.1
*/
class FOFViewHtml extends FOFViewRaw
{
/** @var bool Should I set the page title in the front-end of the site? */
public $setFrontendPageTitle = false;
/** @var string The translation key for the default page title */
public $defaultPageTitle = null;
/**
* Class constructor
*
* @param array $config Configuration parameters
*/
public function __construct($config = array())
{
// Make sure $config is an array
if (is_object($config))
{
$config = (array)$config;
}
elseif (!is_array($config))
{
$config = array();
}
if (isset($config['setFrontendPageTitle']))
{
$this->setFrontendPageTitle =
(bool)$config['setFrontendPageTitle'];
}
if (isset($config['defaultPageTitle']))
{
$this->defaultPageTitle = $config['defaultPageTitle'];
}
parent::__construct($config);
}
/**
* Runs before rendering the view template, echoing HTML to put before the
* view template's generated HTML
*
* @return void
*/
protected function preRender()
{
$view = $this->input->getCmd('view', 'cpanel');
$task = $this->getModel()->getState('task',
'browse');
// Don't load the toolbar on CLI
if (!FOFPlatform::getInstance()->isCli())
{
$toolbar =
FOFToolbar::getAnInstance($this->input->getCmd('option',
'com_foobar'), $this->config);
$toolbar->perms = $this->perms;
$toolbar->renderToolbar($view, $task, $this->input);
}
if (FOFPlatform::getInstance()->isFrontend())
{
if ($this->setFrontendPageTitle)
{
$this->setPageTitle();
}
}
$renderer = $this->getRenderer();
$renderer->preRender($view, $task, $this->input, $this->config);
}
/**
* Runs after rendering the view template, echoing HTML to put after the
* view template's generated HTML
*
* @return void
*/
protected function postRender()
{
$view = $this->input->getCmd('view', 'cpanel');
$task = $this->getModel()->getState('task',
'browse');
$renderer = $this->getRenderer();
if ($renderer instanceof FOFRenderAbstract)
{
$renderer->postRender($view, $task, $this->input,
$this->config);
}
}
public function setPageTitle()
{
$document = JFactory::getDocument();
$app = JFactory::getApplication();
$menus = $app->getMenu();
$menu = $menus->getActive();
$title = null;
// Get the option and view name
$option = empty($this->option) ?
$this->input->getCmd('option', 'com_foobar') :
$this->option;
$view = empty($this->view) ?
$this->input->getCmd('view', $this->getName()) :
$this->view;
// Get the default page title translation key
$default = empty($this->defaultPageTitle) ? $option .
'_TITLE_' . $view : $this->defaultPageTitle;
$params = $app->getPageParameters($option);
// Set the default value for page_heading
if ($menu)
{
$params->def('page_heading',
$params->get('page_title', $menu->title));
}
else
{
$params->def('page_heading', JText::_($default));
}
// Set the document title
$title = $params->get('page_title', '');
$sitename = $app->getCfg('sitename');
if ($title == $sitename)
{
$title = JText::_($default);
}
if (empty($title))
{
$title = $sitename;
}
elseif ($app->getCfg('sitename_pagetitles', 0) == 1)
{
$title = JText::sprintf('JPAGETITLE',
$app->getCfg('sitename'), $title);
}
elseif ($app->getCfg('sitename_pagetitles', 0) == 2)
{
$title = JText::sprintf('JPAGETITLE', $title,
$app->getCfg('sitename'));
}
$document->setTitle($title);
// Set meta
if ($params->get('menu-meta_description'))
{
$document->setDescription($params->get('menu-meta_description'));
}
if ($params->get('menu-meta_keywords'))
{
$document->setMetadata('keywords',
$params->get('menu-meta_keywords'));
}
if ($params->get('robots'))
{
$document->setMetadata('robots',
$params->get('robots'));
}
return $title;
}
}
view.php000064400000063506151156324130006242 0ustar00<?php
/**
* @package FrameworkOnFramework
* @subpackage view
* @copyright Copyright (C) 2010-2016 Nicholas K. Dionysopoulos / Akeeba
Ltd. All rights reserved.
* @license GNU General Public License version 2 or later; see
LICENSE.txt
* @note This file has been modified by the Joomla! Project and no
longer reflects the original work of its author.
*/
// Protect from unauthorized access
defined('FOF_INCLUDED') or die;
/**
* FrameworkOnFramework View class. The View is the MVC component which
gets the
* raw data from a Model and renders it in a way that makes sense. The
usual
* rendering is HTML, but you can also output JSON, CSV, XML, or even media
* (images, videos, ...) and documents (Word, PDF, Excel...).
*
* @package FrameworkOnFramework
* @since 1.0
*/
abstract class FOFView extends FOFUtilsObject
{
/**
* The name of the view
*
* @var array
*/
protected $_name = null;
/**
* Registered models
*
* @var array
*/
protected $_models = array();
/**
* The base path of the view
*
* @var string
*/
protected $_basePath = null;
/**
* The default model
*
* @var string
*/
protected $_defaultModel = null;
/**
* Layout name
*
* @var string
*/
protected $_layout = 'default';
/**
* Layout extension
*
* @var string
*/
protected $_layoutExt = 'php';
/**
* Layout template
*
* @var string
*/
protected $_layoutTemplate = '_';
/**
* The set of search directories for resources (templates)
*
* @var array
*/
protected $_path = array('template' => array(),
'helper' => array());
/**
* The name of the default template source file.
*
* @var string
*/
protected $_template = null;
/**
* The output of the template script.
*
* @var string
*/
protected $_output = null;
/**
* Callback for escaping.
*
* @var string
* @deprecated 13.3
*/
protected $_escape = 'htmlspecialchars';
/**
* Charset to use in escaping mechanisms; defaults to urf8 (UTF-8)
*
* @var string
*/
protected $_charset = 'UTF-8';
/**
* The available renderer objects we can use to render views
*
* @var array Contains objects of the FOFRenderAbstract class
*/
public static $renderers = array();
/**
* Cache of the configuration array
*
* @var array
*/
protected $config = array();
/**
* The input object of this view
*
* @var FOFInput
*/
protected $input = null;
/**
* The chosen renderer object
*
* @var FOFRenderAbstract
*/
protected $rendererObject = null;
/**
* Should I run the pre-render step?
*
* @var boolean
*/
protected $doPreRender = true;
/**
* Should I run the post-render step?
*
* @var boolean
*/
protected $doPostRender = true;
/**
* Public constructor. Instantiates a FOFView object.
*
* @param array $config The configuration data array
*/
public function __construct($config = array())
{
// Make sure $config is an array
if (is_object($config))
{
$config = (array) $config;
}
elseif (!is_array($config))
{
$config = array();
}
// Get the input
if (array_key_exists('input', $config))
{
if ($config['input'] instanceof FOFInput)
{
$this->input = $config['input'];
}
else
{
$this->input = new FOFInput($config['input']);
}
}
else
{
$this->input = new FOFInput;
}
parent::__construct($config);
$component = 'com_foobar';
// Get the component name
if (array_key_exists('input', $config))
{
if ($config['input'] instanceof FOFInput)
{
$tmpInput = $config['input'];
}
else
{
$tmpInput = new FOFInput($config['input']);
}
$component = $tmpInput->getCmd('option', '');
}
else
{
$tmpInput = $this->input;
}
if (array_key_exists('option', $config))
{
if ($config['option'])
{
$component = $config['option'];
}
}
$config['option'] = $component;
// Get the view name
$view = null;
if (array_key_exists('input', $config))
{
$view = $tmpInput->getCmd('view', '');
}
if (array_key_exists('view', $config))
{
if ($config['view'])
{
$view = $config['view'];
}
}
$config['view'] = $view;
// Set the component and the view to the input array
if (array_key_exists('input', $config))
{
$tmpInput->set('option', $config['option']);
$tmpInput->set('view', $config['view']);
}
// Set the view name
if (array_key_exists('name', $config))
{
$this->_name = $config['name'];
}
else
{
$this->_name = $config['view'];
}
$tmpInput->set('view', $this->_name);
$config['input'] = $tmpInput;
$config['name'] = $this->_name;
$config['view'] = $this->_name;
// Get the component directories
$componentPaths =
FOFPlatform::getInstance()->getComponentBaseDirs($config['option']);
// Set the charset (used by the variable escaping functions)
if (array_key_exists('charset', $config))
{
FOFPlatform::getInstance()->logDeprecated('Setting a custom
charset for escaping in FOFView\'s constructor is deprecated. Override
FOFView::escape() instead.');
$this->_charset = $config['charset'];
}
// User-defined escaping callback
if (array_key_exists('escape', $config))
{
$this->setEscape($config['escape']);
}
// Set a base path for use by the view
if (array_key_exists('base_path', $config))
{
$this->_basePath = $config['base_path'];
}
else
{
$this->_basePath = $componentPaths['main'];
}
// Set the default template search path
if (array_key_exists('template_path', $config))
{
// User-defined dirs
$this->_setPath('template',
$config['template_path']);
}
else
{
$altView = FOFInflector::isSingular($this->getName()) ?
FOFInflector::pluralize($this->getName()) :
FOFInflector::singularize($this->getName());
$this->_setPath('template', $this->_basePath .
'/views/' . $altView . '/tmpl');
$this->_addPath('template', $this->_basePath .
'/views/' . $this->getName() . '/tmpl');
}
// Set the default helper search path
if (array_key_exists('helper_path', $config))
{
// User-defined dirs
$this->_setPath('helper',
$config['helper_path']);
}
else
{
$this->_setPath('helper', $this->_basePath .
'/helpers');
}
// Set the layout
if (array_key_exists('layout', $config))
{
$this->setLayout($config['layout']);
}
else
{
$this->setLayout('default');
}
$this->config = $config;
if (!FOFPlatform::getInstance()->isCli())
{
$this->baseurl = FOFPlatform::getInstance()->URIbase(true);
$fallback =
FOFPlatform::getInstance()->getTemplateOverridePath($component) .
'/' . $this->getName();
$this->_addPath('template', $fallback);
}
}
/**
* Loads a template given any path. The path is in the format:
* [admin|site]:com_foobar/viewname/templatename
* e.g. admin:com_foobar/myview/default
*
* This function searches for Joomla! version override templates. For
example,
* if you have run this under Joomla! 3.0 and you try to load
* admin:com_foobar/myview/default it will automatically search for the
* template files default.j30.php, default.j3.php and default.php, in this
* order.
*
* @param string $path See above
* @param array $forceParams A hash array of variables to be
extracted in the local scope of the template file
*
* @return boolean False if loading failed
*/
public function loadAnyTemplate($path = '', $forceParams =
array())
{
// Automatically check for a Joomla! version specific override
$throwErrorIfNotFound = true;
$suffixes = FOFPlatform::getInstance()->getTemplateSuffixes();
foreach ($suffixes as $suffix)
{
if (substr($path, -strlen($suffix)) == $suffix)
{
$throwErrorIfNotFound = false;
break;
}
}
if ($throwErrorIfNotFound)
{
foreach ($suffixes as $suffix)
{
$result = $this->loadAnyTemplate($path . $suffix, $forceParams);
if ($result !== false)
{
return $result;
}
}
}
$layoutTemplate = $this->getLayoutTemplate();
// Parse the path
$templateParts = $this->_parseTemplatePath($path);
// Get the paths
$componentPaths =
FOFPlatform::getInstance()->getComponentBaseDirs($templateParts['component']);
$templatePath =
FOFPlatform::getInstance()->getTemplateOverridePath($templateParts['component']);
// Get the default paths
$paths = array();
$paths[] = $templatePath . '/' .
$templateParts['view'];
$paths[] = ($templateParts['admin'] ?
$componentPaths['admin'] : $componentPaths['site']) .
'/views/' . $templateParts['view'] . '/tmpl';
if (isset($this->_path) || property_exists($this, '_path'))
{
$paths = array_merge($paths, $this->_path['template']);
}
elseif (isset($this->path) || property_exists($this,
'path'))
{
$paths = array_merge($paths, $this->path['template']);
}
// Look for a template override
if (isset($layoutTemplate) && $layoutTemplate != '_'
&& $layoutTemplate != $template)
{
$apath = array_shift($paths);
array_unshift($paths, str_replace($template, $layoutTemplate, $apath));
}
$filetofind = $templateParts['template'] . '.php';
$filesystem =
FOFPlatform::getInstance()->getIntegrationObject('filesystem');
$this->_tempFilePath = $filesystem->pathFind($paths, $filetofind);
if ($this->_tempFilePath)
{
// Unset from local scope
unset($template);
unset($layoutTemplate);
unset($paths);
unset($path);
unset($filetofind);
// Never allow a 'this' property
if (isset($this->this))
{
unset($this->this);
}
// Force parameters into scope
if (!empty($forceParams))
{
extract($forceParams);
}
// Start capturing output into a buffer
ob_start();
// Include the requested template filename in the local scope (this will
execute the view logic).
include $this->_tempFilePath;
// Done with the requested template; get the buffer and clear it.
$this->_output = ob_get_contents();
ob_end_clean();
return $this->_output;
}
else
{
if ($throwErrorIfNotFound)
{
return new
Exception(JText::sprintf('JLIB_APPLICATION_ERROR_LAYOUTFILE_NOT_FOUND',
$path), 500);
}
return false;
}
}
/**
* Overrides the default method to execute and display a template script.
* Instead of loadTemplate is uses loadAnyTemplate which allows for
automatic
* Joomla! version overrides. A little slice of awesome pie!
*
* @param string $tpl The name of the template file to parse
*
* @return mixed A string if successful, otherwise a JError object.
*/
public function display($tpl = null)
{
FOFPlatform::getInstance()->setErrorHandling(E_ALL,
'ignore');
$result = $this->loadTemplate($tpl);
if ($result instanceof Exception)
{
FOFPlatform::getInstance()->raiseError($result->getCode(),
$result->getMessage());
return $result;
}
echo $result;
}
/**
* Assigns variables to the view script via differing strategies.
*
* This method is overloaded; you can assign all the properties of
* an object, an associative array, or a single value by name.
*
* You are not allowed to set variables that begin with an underscore;
* these are either private properties for FOFView or private variables
* within the template script itself.
*
* @return boolean True on success, false on failure.
*
* @deprecated 13.3 Use native PHP syntax.
*/
public function assign()
{
FOFPlatform::getInstance()->logDeprecated(__CLASS__ . '::' .
__METHOD__ . ' is deprecated. Use native PHP syntax.');
// Get the arguments; there may be 1 or 2.
$arg0 = @func_get_arg(0);
$arg1 = @func_get_arg(1);
// Assign by object
if (is_object($arg0))
{
// Assign public properties
foreach (get_object_vars($arg0) as $key => $val)
{
if (substr($key, 0, 1) != '_')
{
$this->$key = $val;
}
}
return true;
}
// Assign by associative array
if (is_array($arg0))
{
foreach ($arg0 as $key => $val)
{
if (substr($key, 0, 1) != '_')
{
$this->$key = $val;
}
}
return true;
}
// Assign by string name and mixed value. We use array_key_exists()
instead of isset()
// because isset() fails if the value is set to null.
if (is_string($arg0) && substr($arg0, 0, 1) != '_'
&& func_num_args() > 1)
{
$this->$arg0 = $arg1;
return true;
}
// $arg0 was not object, array, or string.
return false;
}
/**
* Assign variable for the view (by reference).
*
* You are not allowed to set variables that begin with an underscore;
* these are either private properties for FOFView or private variables
* within the template script itself.
*
* @param string $key The name for the reference in the view.
* @param mixed &$val The referenced variable.
*
* @return boolean True on success, false on failure.
*
* @deprecated 13.3 Use native PHP syntax.
*/
public function assignRef($key, &$val)
{
FOFPlatform::getInstance()->logDeprecated(__CLASS__ . '::' .
__METHOD__ . ' is deprecated. Use native PHP syntax.');
if (is_string($key) && substr($key, 0, 1) != '_')
{
$this->$key = &$val;
return true;
}
return false;
}
/**
* Escapes a value for output in a view script.
*
* If escaping mechanism is either htmlspecialchars or htmlentities, uses
* {@link $_encoding} setting.
*
* @param mixed $var The output to escape.
*
* @return mixed The escaped value.
*/
public function escape($var)
{
if (in_array($this->_escape, array('htmlspecialchars',
'htmlentities')))
{
return call_user_func($this->_escape, $var, ENT_COMPAT,
$this->_charset);
}
return call_user_func($this->_escape, $var);
}
/**
* Method to get data from a registered model or a property of the view
*
* @param string $property The name of the method to call on the model
or the property to get
* @param string $default The name of the model to reference or the
default value [optional]
*
* @return mixed The return value of the method
*/
public function get($property, $default = null)
{
// If $model is null we use the default model
if (is_null($default))
{
$model = $this->_defaultModel;
}
else
{
$model = strtolower($default);
}
// First check to make sure the model requested exists
if (isset($this->_models[$model]))
{
// Model exists, let's build the method name
$method = 'get' . ucfirst($property);
// Does the method exist?
if (method_exists($this->_models[$model], $method))
{
// The method exists, let's call it and return what we get
$result = $this->_models[$model]->$method();
return $result;
}
}
// Degrade to FOFUtilsObject::get
$result = parent::get($property, $default);
return $result;
}
/**
* Method to get the model object
*
* @param string $name The name of the model (optional)
*
* @return mixed FOFModel object
*/
public function getModel($name = null)
{
if ($name === null)
{
$name = $this->_defaultModel;
}
return $this->_models[strtolower($name)];
}
/**
* Get the layout.
*
* @return string The layout name
*/
public function getLayout()
{
return $this->_layout;
}
/**
* Get the layout template.
*
* @return string The layout template name
*/
public function getLayoutTemplate()
{
return $this->_layoutTemplate;
}
/**
* Method to get the view name
*
* The model name by default parsed using the classname, or it can be set
* by passing a $config['name'] in the class constructor
*
* @return string The name of the model
*/
public function getName()
{
if (empty($this->_name))
{
$classname = get_class($this);
$viewpos = strpos($classname, 'View');
if ($viewpos === false)
{
throw new
Exception(JText::_('JLIB_APPLICATION_ERROR_VIEW_GET_NAME'), 500);
}
$this->_name = strtolower(substr($classname, $viewpos + 4));
}
return $this->_name;
}
/**
* Method to add a model to the view.
*
* @param FOFMOdel $model The model to add to the view.
* @param boolean $default Is this the default model?
* @param String $name optional index name to store the model
*
* @return object The added model.
*/
public function setModel($model, $default = false, $name = null)
{
if (is_null($name))
{
$name = $model->getName();
}
$name = strtolower($name);
$this->_models[$name] = $model;
if ($default)
{
$this->_defaultModel = $name;
}
return $model;
}
/**
* Sets the layout name to use
*
* @param string $layout The layout name or a string in format
<template>:<layout file>
*
* @return string Previous value.
*/
public function setLayout($layout)
{
$previous = $this->_layout;
if (strpos($layout, ':') === false)
{
$this->_layout = $layout;
}
else
{
// Convert parameter to array based on :
$temp = explode(':', $layout);
$this->_layout = $temp[1];
// Set layout template
$this->_layoutTemplate = $temp[0];
}
return $previous;
}
/**
* Allows a different extension for the layout files to be used
*
* @param string $value The extension.
*
* @return string Previous value
*/
public function setLayoutExt($value)
{
$previous = $this->_layoutExt;
if ($value = preg_replace('#[^A-Za-z0-9]#', '',
trim($value)))
{
$this->_layoutExt = $value;
}
return $previous;
}
/**
* Sets the _escape() callback.
*
* @param mixed $spec The callback for _escape() to use.
*
* @return void
*
* @deprecated 2.1 Override FOFView::escape() instead.
*/
public function setEscape($spec)
{
FOFPlatform::getInstance()->logDeprecated(__CLASS__ . '::' .
__METHOD__ . ' is deprecated. Override FOFView::escape()
instead.');
$this->_escape = $spec;
}
/**
* Adds to the stack of view script paths in LIFO order.
*
* @param mixed $path A directory path or an array of paths.
*
* @return void
*/
public function addTemplatePath($path)
{
$this->_addPath('template', $path);
}
/**
* Adds to the stack of helper script paths in LIFO order.
*
* @param mixed $path A directory path or an array of paths.
*
* @return void
*/
public function addHelperPath($path)
{
$this->_addPath('helper', $path);
}
/**
* Overrides the built-in loadTemplate function with an FOF-specific one.
* Our overridden function uses loadAnyTemplate to provide smarter view
* template loading.
*
* @param string $tpl The name of the template file to parse
* @param boolean $strict Should we use strict naming, i.e. force a
non-empty $tpl?
*
* @return mixed A string if successful, otherwise a JError object
*/
public function loadTemplate($tpl = null, $strict = false)
{
$paths = FOFPlatform::getInstance()->getViewTemplatePaths(
$this->input->getCmd('option', ''),
$this->input->getCmd('view', ''),
$this->getLayout(),
$tpl,
$strict
);
foreach ($paths as $path)
{
$result = $this->loadAnyTemplate($path);
if (!($result instanceof Exception))
{
break;
}
}
if ($result instanceof Exception)
{
FOFPlatform::getInstance()->raiseError($result->getCode(),
$result->getMessage());
}
return $result;
}
/**
* Parses a template path in the form of admin:/component/view/layout or
* site:/component/view/layout to an array which can be used by
* loadAnyTemplate to locate and load the view template file.
*
* @param string $path The template path to parse
*
* @return array A hash array with the parsed path parts
*/
private function _parseTemplatePath($path = '')
{
$parts = array(
'admin' => 0,
'component' => $this->config['option'],
'view' => $this->config['view'],
'template' => 'default'
);
if (substr($path, 0, 6) == 'admin:')
{
$parts['admin'] = 1;
$path = substr($path, 6);
}
elseif (substr($path, 0, 5) == 'site:')
{
$path = substr($path, 5);
}
if (empty($path))
{
return;
}
$pathparts = explode('/', $path, 3);
switch (count($pathparts))
{
case 3:
$parts['component'] = array_shift($pathparts);
case 2:
$parts['view'] = array_shift($pathparts);
case 1:
$parts['template'] = array_shift($pathparts);
break;
}
return $parts;
}
/**
* Get the renderer object for this view
*
* @return FOFRenderAbstract
*/
public function &getRenderer()
{
if (!($this->rendererObject instanceof FOFRenderAbstract))
{
$this->rendererObject = $this->findRenderer();
}
return $this->rendererObject;
}
/**
* Sets the renderer object for this view
*
* @param FOFRenderAbstract &$renderer The render class to use
*
* @return void
*/
public function setRenderer(FOFRenderAbstract &$renderer)
{
$this->rendererObject = $renderer;
}
/**
* Finds a suitable renderer
*
* @return FOFRenderAbstract
*/
protected function findRenderer()
{
$filesystem =
FOFPlatform::getInstance()->getIntegrationObject('filesystem');
// Try loading the stock renderers shipped with FOF
if (empty(self::$renderers) || !class_exists('FOFRenderJoomla',
false))
{
$path = __DIR__ . '/../render/';
$renderFiles = $filesystem->folderFiles($path, '.php');
if (!empty($renderFiles))
{
foreach ($renderFiles as $filename)
{
if ($filename == 'abstract.php')
{
continue;
}
@include_once $path . '/' . $filename;
$camel = FOFInflector::camelize($filename);
$className = 'FOFRender' .
ucfirst(FOFInflector::getPart($camel, 0));
$o = new $className;
self::registerRenderer($o);
}
}
}
// Try to detect the most suitable renderer
$o = null;
$priority = 0;
if (!empty(self::$renderers))
{
foreach (self::$renderers as $r)
{
$info = $r->getInformation();
if (!$info->enabled)
{
continue;
}
if ($info->priority > $priority)
{
$priority = $info->priority;
$o = $r;
}
}
}
// Return the current renderer
return $o;
}
/**
* Registers a renderer object with the view
*
* @param FOFRenderAbstract &$renderer The render object to
register
*
* @return void
*/
public static function registerRenderer(FOFRenderAbstract &$renderer)
{
self::$renderers[] = $renderer;
}
/**
* Sets the pre-render flag
*
* @param boolean $value True to enable the pre-render step
*
* @return void
*/
public function setPreRender($value)
{
$this->doPreRender = $value;
}
/**
* Sets the post-render flag
*
* @param boolean $value True to enable the post-render step
*
* @return void
*/
public function setPostRender($value)
{
$this->doPostRender = $value;
}
/**
* Load a helper file
*
* @param string $hlp The name of the helper source file automatically
searches the helper paths and compiles as needed.
*
* @return void
*/
public function loadHelper($hlp = null)
{
// Clean the file name
$file = preg_replace('/[^A-Z0-9_\.-]/i', '', $hlp);
// Load the template script using the default Joomla! features
$filesystem =
FOFPlatform::getInstance()->getIntegrationObject('filesystem');
$helper = $filesystem->pathFind($this->_path['helper'],
$this->_createFileName('helper', array('name' =>
$file)));
if ($helper == false)
{
$componentPaths =
FOFPlatform::getInstance()->getComponentBaseDirs($this->config['option']);
$path = $componentPaths['main'] . '/helpers';
$helper = $filesystem->pathFind($path,
$this->_createFileName('helper', array('name' =>
$file)));
if ($helper == false)
{
$path = $path = $componentPaths['alt'] .
'/helpers';
$helper = $filesystem->pathFind($path,
$this->_createFileName('helper', array('name' =>
$file)));
}
}
if ($helper != false)
{
// Include the requested template filename in the local scope
include_once $helper;
}
}
/**
* Returns the view's option (component name) and view name in an
* associative array.
*
* @return array
*/
public function getViewOptionAndName()
{
return array(
'option' => $this->config['option'],
'view' => $this->config['view'],
);
}
/**
* Sets an entire array of search paths for templates or resources.
*
* @param string $type The type of path to set, typically
'template'.
* @param mixed $path The new search path, or an array of search
paths. If null or false, resets to the current directory only.
*
* @return void
*/
protected function _setPath($type, $path)
{
// Clear out the prior search dirs
$this->_path[$type] = array();
// Actually add the user-specified directories
$this->_addPath($type, $path);
// Always add the fallback directories as last resort
switch (strtolower($type))
{
case 'template':
// Set the alternative template search dir
if (!FOFPlatform::getInstance()->isCli())
{
$fallback =
FOFPlatform::getInstance()->getTemplateOverridePath($this->input->getCmd('option',
'')) . '/' . $this->getName();
$this->_addPath('template', $fallback);
}
break;
}
}
/**
* Adds to the search path for templates and resources.
*
* @param string $type The type of path to add.
* @param mixed $path The directory or stream, or an array of either,
to search.
*
* @return void
*/
protected function _addPath($type, $path)
{
// Just force to array
settype($path, 'array');
// Loop through the path directories
foreach ($path as $dir)
{
// No surrounding spaces allowed!
$dir = trim($dir);
// Add trailing separators as needed
if (substr($dir, -1) != DIRECTORY_SEPARATOR)
{
// Directory
$dir .= DIRECTORY_SEPARATOR;
}
// Add to the top of the search dirs
array_unshift($this->_path[$type], $dir);
}
}
/**
* Create the filename for a resource
*
* @param string $type The resource type to create the filename for
* @param array $parts An associative array of filename information
*
* @return string The filename
*/
protected function _createFileName($type, $parts = array())
{
$filename = '';
switch ($type)
{
case 'template':
$filename = strtolower($parts['name']) . '.' .
$this->_layoutExt;
break;
default:
$filename = strtolower($parts['name']) . '.php';
break;
}
return $filename;
}
}
application/html.php000064400000004142151156772440010541 0ustar00<?php
/**
* @package Joomla.Administrator
* @subpackage com_config
*
* @copyright Copyright (C) 2005 - 2020 Open Source Matters, Inc. All
rights reserved.
* @license GNU General Public License version 2 or later; see
LICENSE.txt
*/
defined('_JEXEC') or die;
/**
* View for the global configuration
*
* @since 3.2
*/
class ConfigViewApplicationHtml extends ConfigViewCmsHtml
{
public $state;
public $form;
public $data;
/**
* Method to display the view.
*
* @return string The rendered view.
*
* @since 3.2
*/
public function render()
{
$form = null;
$data = null;
try
{
// Load Form and Data
$form = $this->model->getForm();
$data = $this->model->getData();
$user = JFactory::getUser();
}
catch (Exception $e)
{
JFactory::getApplication()->enqueueMessage($e->getMessage(),
'error');
return false;
}
// Bind data
if ($form && $data)
{
$form->bind($data);
}
// Get the params for com_users.
$usersParams = JComponentHelper::getParams('com_users');
// Get the params for com_media.
$mediaParams = JComponentHelper::getParams('com_media');
// Load settings for the FTP layer.
$ftp = JClientHelper::setCredentialsFromRequest('ftp');
$this->form = &$form;
$this->data = &$data;
$this->ftp = &$ftp;
$this->usersParams = &$usersParams;
$this->mediaParams = &$mediaParams;
$this->components = ConfigHelperConfig::getComponentsWithConfig();
ConfigHelperConfig::loadLanguageForComponents($this->components);
$this->userIsSuperAdmin = $user->authorise('core.admin');
$this->addToolbar();
return parent::render();
}
/**
* Add the page title and toolbar.
*
* @return void
*
* @since 3.2
*/
protected function addToolbar()
{
JToolbarHelper::title(JText::_('COM_CONFIG_GLOBAL_CONFIGURATION'),
'equalizer config');
JToolbarHelper::apply('config.save.application.apply');
JToolbarHelper::save('config.save.application.save');
JToolbarHelper::divider();
JToolbarHelper::cancel('config.cancel.application');
JToolbarHelper::divider();
JToolbarHelper::help('JHELP_SITE_GLOBAL_CONFIGURATION');
}
}
application/json.php000064400000002671151156772440010553 0ustar00<?php
/**
* @package Joomla.Administrator
* @subpackage com_config
*
* @copyright Copyright (C) 2005 - 2020 Open Source Matters, Inc. All
rights reserved.
* @license GNU General Public License version 2 or later; see
LICENSE.txt
*/
defined('_JEXEC') or die;
/**
* View for the component configuration
*
* @since 3.2
*/
class ConfigViewApplicationJson extends ConfigViewCmsJson
{
public $state;
public $data;
/**
* Display the view
*
* @return string The rendered view.
*
* @since 3.2
*/
public function render()
{
try
{
$this->data = $this->model->getData();
$user = JFactory::getUser();
}
catch (Exception $e)
{
JFactory::getApplication()->enqueueMessage($e->getMessage(),
'error');
return false;
}
$this->userIsSuperAdmin = $user->authorise('core.admin');
// Required data
$requiredData = array(
'sitename' => null,
'offline' => null,
'access' => null,
'list_limit' => null,
'MetaDesc' => null,
'MetaKeys' => null,
'MetaRights' => null,
'sef' => null,
'sitename_pagetitles' => null,
'debug' => null,
'debug_lang' => null,
'error_reporting' => null,
'mailfrom' => null,
'fromname' => null
);
$this->data = array_intersect_key($this->data, $requiredData);
return json_encode($this->data);
}
}
application/tmpl/default.php000064400000010327151156772440012177
0ustar00<?php
/**
* @package Joomla.Administrator
* @subpackage com_config
*
* @copyright Copyright (C) 2005 - 2020 Open Source Matters, Inc. All
rights reserved.
* @license GNU General Public License version 2 or later; see
LICENSE.txt
*/
defined('_JEXEC') or die;
use Joomla\Registry\Registry;
// Load tooltips behavior
JHtml::_('behavior.formvalidator');
JHtml::_('behavior.keepalive');
JHtml::_('bootstrap.tooltip');
JHtml::_('formbehavior.chosen', 'select');
// Load JS message titles
JText::script('ERROR');
JText::script('WARNING');
JText::script('NOTICE');
JText::script('MESSAGE');
JFactory::getDocument()->addScriptDeclaration('
Joomla.submitbutton = function(task)
{
if (task === "config.cancel.application" ||
document.formvalidator.isValid(document.getElementById("application-form")))
{
jQuery("#permissions-sliders
select").attr("disabled", "disabled");
Joomla.submitform(task,
document.getElementById("application-form"));
}
};
');
?>
<form action="<?php echo
JRoute::_('index.php?option=com_config'); ?>"
id="application-form" method="post"
name="adminForm" class="form-validate">
<div class="row-fluid">
<!-- Begin Sidebar -->
<div id="sidebar" class="span2">
<div class="sidebar-nav">
<?php echo $this->loadTemplate('navigation'); ?>
<?php
// Display the submenu position modules
$this->submenumodules =
JModuleHelper::getModules('submenu');
foreach ($this->submenumodules as $submenumodule)
{
$output = JModuleHelper::renderModule($submenumodule);
$params = new Registry($submenumodule->params);
echo $output;
}
?>
</div>
</div>
<!-- End Sidebar -->
<!-- Begin Content -->
<div class="span10">
<ul class="nav nav-tabs">
<li class="active"><a href="#page-site"
data-toggle="tab"><?php echo JText::_('JSITE');
?></a></li>
<li><a href="#page-system"
data-toggle="tab"><?php echo
JText::_('COM_CONFIG_SYSTEM'); ?></a></li>
<li><a href="#page-server"
data-toggle="tab"><?php echo
JText::_('COM_CONFIG_SERVER'); ?></a></li>
<li><a href="#page-filters"
data-toggle="tab"><?php echo
JText::_('COM_CONFIG_TEXT_FILTERS'); ?></a></li>
<?php if ($this->ftp) : ?>
<li><a href="#page-ftp"
data-toggle="tab"><?php echo
JText::_('COM_CONFIG_FTP_SETTINGS'); ?></a></li>
<?php endif; ?>
<li><a href="#page-permissions"
data-toggle="tab"><?php echo
JText::_('COM_CONFIG_PERMISSIONS'); ?></a></li>
</ul>
<div id="config-document" class="tab-content">
<div id="page-site" class="tab-pane active">
<div class="row-fluid">
<div class="span6">
<?php echo $this->loadTemplate('site'); ?>
<?php echo $this->loadTemplate('metadata'); ?>
</div>
<div class="span6">
<?php echo $this->loadTemplate('seo'); ?>
<?php echo $this->loadTemplate('cookie'); ?>
</div>
</div>
</div>
<div id="page-system" class="tab-pane">
<div class="row-fluid">
<div class="span12">
<?php echo $this->loadTemplate('system'); ?>
<?php echo $this->loadTemplate('debug'); ?>
<?php echo $this->loadTemplate('cache'); ?>
<?php echo $this->loadTemplate('session'); ?>
</div>
</div>
</div>
<div id="page-server" class="tab-pane">
<div class="row-fluid">
<div class="span6">
<?php echo $this->loadTemplate('server'); ?>
<?php echo $this->loadTemplate('locale'); ?>
<?php echo $this->loadTemplate('ftp'); ?>
<?php echo $this->loadTemplate('proxy'); ?>
</div>
<div class="span6">
<?php echo $this->loadTemplate('database'); ?>
<?php echo $this->loadTemplate('mail'); ?>
</div>
</div>
</div>
<div id="page-filters" class="tab-pane">
<div class="row-fluid">
<?php echo $this->loadTemplate('filters'); ?>
</div>
</div>
<?php if ($this->ftp) : ?>
<div id="page-ftp" class="tab-pane">
<?php echo $this->loadTemplate('ftplogin'); ?>
</div>
<?php endif; ?>
<div id="page-permissions" class="tab-pane">
<div class="row-fluid">
<?php echo $this->loadTemplate('permissions'); ?>
</div>
</div>
<input type="hidden" name="task"
value="" />
<?php echo JHtml::_('form.token'); ?>
</div>
</div>
<!-- End Content -->
</div>
</form>
application/tmpl/default.xml000064400000000314151156772440012203
0ustar00<?xml version="1.0" encoding="utf-8"?>
<metadata>
<layout title="COM_CONFIG_CONFIG_VIEW_DEFAULT_TITLE">
<message>
<![CDATA[COM_CONFIG_CONFIG_VIEW_DEFAULT_DESC]]>
</message>
</layout>
</metadata>
application/tmpl/default_cache.php000064400000000654151156772440013324
0ustar00<?php
/**
* @package Joomla.Administrator
* @subpackage com_config
*
* @copyright Copyright (C) 2005 - 2020 Open Source Matters, Inc. All
rights reserved.
* @license GNU General Public License version 2 or later; see
LICENSE.txt
*/
defined('_JEXEC') or die;
$this->name = JText::_('COM_CONFIG_CACHE_SETTINGS');
$this->fieldsname = 'cache';
echo JLayoutHelper::render('joomla.content.options_default',
$this);
application/tmpl/default_cookie.php000064400000000656151156772440013534
0ustar00<?php
/**
* @package Joomla.Administrator
* @subpackage com_config
*
* @copyright Copyright (C) 2005 - 2020 Open Source Matters, Inc. All
rights reserved.
* @license GNU General Public License version 2 or later; see
LICENSE.txt
*/
defined('_JEXEC') or die;
$this->name = JText::_('COM_CONFIG_COOKIE_SETTINGS');
$this->fieldsname = 'cookie';
echo JLayoutHelper::render('joomla.content.options_default',
$this);
application/tmpl/default_database.php000064400000000662151156772440014024
0ustar00<?php
/**
* @package Joomla.Administrator
* @subpackage com_config
*
* @copyright Copyright (C) 2005 - 2020 Open Source Matters, Inc. All
rights reserved.
* @license GNU General Public License version 2 or later; see
LICENSE.txt
*/
defined('_JEXEC') or die;
$this->name = JText::_('COM_CONFIG_DATABASE_SETTINGS');
$this->fieldsname = 'database';
echo JLayoutHelper::render('joomla.content.options_default',
$this);
application/tmpl/default_debug.php000064400000000654151156772440013347
0ustar00<?php
/**
* @package Joomla.Administrator
* @subpackage com_config
*
* @copyright Copyright (C) 2005 - 2020 Open Source Matters, Inc. All
rights reserved.
* @license GNU General Public License version 2 or later; see
LICENSE.txt
*/
defined('_JEXEC') or die;
$this->name = JText::_('COM_CONFIG_DEBUG_SETTINGS');
$this->fieldsname = 'debug';
echo JLayoutHelper::render('joomla.content.options_default',
$this);
application/tmpl/default_filters.php000064400000000760151156772440013727
0ustar00<?php
/**
* @package Joomla.Administrator
* @subpackage com_config
*
* @copyright Copyright (C) 2005 - 2020 Open Source Matters, Inc. All
rights reserved.
* @license GNU General Public License version 2 or later; see
LICENSE.txt
*/
defined('_JEXEC') or die;
$this->name = JText::_('COM_CONFIG_TEXT_FILTER_SETTINGS');
$this->fieldsname = 'filters';
$this->description = JText::_('COM_CONFIG_TEXT_FILTERS_DESC');
echo JLayoutHelper::render('joomla.content.text_filters', $this);
application/tmpl/default_ftp.php000064400000000650151156772440013046
0ustar00<?php
/**
* @package Joomla.Administrator
* @subpackage com_config
*
* @copyright Copyright (C) 2005 - 2020 Open Source Matters, Inc. All
rights reserved.
* @license GNU General Public License version 2 or later; see
LICENSE.txt
*/
defined('_JEXEC') or die;
$this->name = JText::_('COM_CONFIG_FTP_SETTINGS');
$this->fieldsname = 'ftp';
echo JLayoutHelper::render('joomla.content.options_default',
$this);
application/tmpl/default_ftplogin.php000064400000002171151156772440014077
0ustar00<?php
/**
* @package Joomla.Administrator
* @subpackage com_config
*
* @copyright Copyright (C) 2005 - 2020 Open Source Matters, Inc. All
rights reserved.
* @license GNU General Public License version 2 or later; see
LICENSE.txt
*/
defined('_JEXEC') or die;
?>
<fieldset title="<?php echo
JText::_('COM_CONFIG_FTP_DETAILS'); ?>"
class="form-horizontal">
<legend><?php echo JText::_('COM_CONFIG_FTP_DETAILS');
?></legend>
<?php echo JText::_('COM_CONFIG_FTP_DETAILS_TIP'); ?>
<?php if ($this->ftp instanceof Exception) : ?>
<p><?php echo JText::_($this->ftp->message);
?></p>
<?php endif; ?>
<div class="control-group">
<div class="control-label"><label
for="username"><?php echo
JText::_('JGLOBAL_USERNAME'); ?></label></div>
<div class="controls">
<input type="text" id="username"
name="username" class="input_box" size="70"
value="" />
</div>
</div>
<div class="control-group">
<div class="control-label"><?php echo
JText::_('JGLOBAL_PASSWORD'); ?></div>
<div class="controls">
<input type="password" id="password"
name="password" class="input_box" size="70"
value="" />
</div>
</div>
</fieldset>
application/tmpl/default_locale.php000064400000000660151156772440013515
0ustar00<?php
/**
* @package Joomla.Administrator
* @subpackage com_config
*
* @copyright Copyright (C) 2005 - 2020 Open Source Matters, Inc. All
rights reserved.
* @license GNU General Public License version 2 or later; see
LICENSE.txt
*/
defined('_JEXEC') or die;
$this->name = JText::_('COM_CONFIG_LOCATION_SETTINGS');
$this->fieldsname = 'locale';
echo JLayoutHelper::render('joomla.content.options_default',
$this);
application/tmpl/default_mail.php000064400000002375151156772440013205
0ustar00<?php
/**
* @package Joomla.Administrator
* @subpackage com_config
*
* @copyright Copyright (C) 2005 - 2020 Open Source Matters, Inc. All
rights reserved.
* @license GNU General Public License version 2 or later; see
LICENSE.txt
*/
defined('_JEXEC') or die;
JHtml::_('jquery.token');
JHtml::_('script', 'system/sendtestmail.js',
array('version' => 'auto', 'relative'
=> true));
// Load JavaScript message titles
JText::script('ERROR');
JText::script('WARNING');
JText::script('NOTICE');
JText::script('MESSAGE');
// Add strings for JavaScript error translations.
JText::script('JLIB_JS_AJAX_ERROR_CONNECTION_ABORT');
JText::script('JLIB_JS_AJAX_ERROR_NO_CONTENT');
JText::script('JLIB_JS_AJAX_ERROR_OTHER');
JText::script('JLIB_JS_AJAX_ERROR_PARSE');
JText::script('JLIB_JS_AJAX_ERROR_TIMEOUT');
// Ajax request data.
$ajaxUri =
JRoute::_('index.php?option=com_config&task=config.sendtestmail.application&format=json');
$this->name = JText::_('COM_CONFIG_MAIL_SETTINGS');
$this->fieldsname = 'mail';
echo JLayoutHelper::render('joomla.content.options_default',
$this);
echo '<button class="btn btn-small"
data-ajaxuri="' . $ajaxUri . '"
type="button" id="sendtestmail">
<span>' .
JText::_('COM_CONFIG_SENDMAIL_ACTION_BUTTON') .
'</span>
</button>';
application/tmpl/default_metadata.php000064400000000662151156772440014040
0ustar00<?php
/**
* @package Joomla.Administrator
* @subpackage com_config
*
* @copyright Copyright (C) 2005 - 2020 Open Source Matters, Inc. All
rights reserved.
* @license GNU General Public License version 2 or later; see
LICENSE.txt
*/
defined('_JEXEC') or die;
$this->name = JText::_('COM_CONFIG_METADATA_SETTINGS');
$this->fieldsname = 'metadata';
echo JLayoutHelper::render('joomla.content.options_default',
$this);
application/tmpl/default_navigation.php000064400000001631151156772440014414
0ustar00<?php
/**
* @package Joomla.Administrator
* @subpackage com_config
*
* @copyright Copyright (C) 2005 - 2020 Open Source Matters, Inc. All
rights reserved.
* @license GNU General Public License version 2 or later; see
LICENSE.txt
*/
defined('_JEXEC') or die;
?>
<ul class="nav nav-list">
<?php if ($this->userIsSuperAdmin) : ?>
<li class="nav-header"><?php echo
JText::_('COM_CONFIG_SYSTEM'); ?></li>
<li class="active">
<a href="index.php?option=com_config"><?php echo
JText::_('COM_CONFIG_GLOBAL_CONFIGURATION'); ?></a>
</li>
<li class="divider"></li>
<?php endif; ?>
<li class="nav-header"><?php echo
JText::_('COM_CONFIG_COMPONENT_FIELDSET_LABEL'); ?></li>
<?php foreach ($this->components as $component) : ?>
<li>
<a
href="index.php?option=com_config&view=component&component=<?php
echo $component; ?>"><?php echo JText::_($component);
?></a>
</li>
<?php endforeach; ?>
</ul>
application/tmpl/default_permissions.php000064400000001032151156772440014623
0ustar00<?php
/**
* @package Joomla.Administrator
* @subpackage com_config
*
* @copyright Copyright (C) 2005 - 2020 Open Source Matters, Inc. All
rights reserved.
* @license GNU General Public License version 2 or later; see
LICENSE.txt
*/
defined('_JEXEC') or die;
$this->name =
JText::_('COM_CONFIG_PERMISSION_SETTINGS');
$this->description = '';
$this->fieldsname = 'permissions';
$this->formclass = 'form-vertical';
$this->showlabel = false;
echo JLayoutHelper::render('joomla.content.options_default',
$this);
application/tmpl/default_proxy.php000064400000000654151156772440013442
0ustar00<?php
/**
* @package Joomla.Administrator
* @subpackage com_config
*
* @copyright Copyright (C) 2005 - 2020 Open Source Matters, Inc. All
rights reserved.
* @license GNU General Public License version 2 or later; see
LICENSE.txt
*/
defined('_JEXEC') or die;
$this->name = JText::_('COM_CONFIG_PROXY_SETTINGS');
$this->fieldsname = 'proxy';
echo JLayoutHelper::render('joomla.content.options_default',
$this);
application/tmpl/default_seo.php000064400000000650151156772440013043
0ustar00<?php
/**
* @package Joomla.Administrator
* @subpackage com_config
*
* @copyright Copyright (C) 2005 - 2020 Open Source Matters, Inc. All
rights reserved.
* @license GNU General Public License version 2 or later; see
LICENSE.txt
*/
defined('_JEXEC') or die;
$this->name = JText::_('COM_CONFIG_SEO_SETTINGS');
$this->fieldsname = 'seo';
echo JLayoutHelper::render('joomla.content.options_default',
$this);
application/tmpl/default_server.php000064400000000656151156772440013571
0ustar00<?php
/**
* @package Joomla.Administrator
* @subpackage com_config
*
* @copyright Copyright (C) 2005 - 2020 Open Source Matters, Inc. All
rights reserved.
* @license GNU General Public License version 2 or later; see
LICENSE.txt
*/
defined('_JEXEC') or die;
$this->name = JText::_('COM_CONFIG_SERVER_SETTINGS');
$this->fieldsname = 'server';
echo JLayoutHelper::render('joomla.content.options_default',
$this);
application/tmpl/default_session.php000064400000000660151156772440013741
0ustar00<?php
/**
* @package Joomla.Administrator
* @subpackage com_config
*
* @copyright Copyright (C) 2005 - 2020 Open Source Matters, Inc. All
rights reserved.
* @license GNU General Public License version 2 or later; see
LICENSE.txt
*/
defined('_JEXEC') or die;
$this->name = JText::_('COM_CONFIG_SESSION_SETTINGS');
$this->fieldsname = 'session';
echo JLayoutHelper::render('joomla.content.options_default',
$this);
application/tmpl/default_site.php000064400000000652151156772440013223
0ustar00<?php
/**
* @package Joomla.Administrator
* @subpackage com_config
*
* @copyright Copyright (C) 2005 - 2020 Open Source Matters, Inc. All
rights reserved.
* @license GNU General Public License version 2 or later; see
LICENSE.txt
*/
defined('_JEXEC') or die;
$this->name = JText::_('COM_CONFIG_SITE_SETTINGS');
$this->fieldsname = 'site';
echo JLayoutHelper::render('joomla.content.options_default',
$this);
application/tmpl/default_system.php000064400000000656151156772440013607
0ustar00<?php
/**
* @package Joomla.Administrator
* @subpackage com_config
*
* @copyright Copyright (C) 2005 - 2020 Open Source Matters, Inc. All
rights reserved.
* @license GNU General Public License version 2 or later; see
LICENSE.txt
*/
defined('_JEXEC') or die;
$this->name = JText::_('COM_CONFIG_SYSTEM_SETTINGS');
$this->fieldsname = 'system';
echo JLayoutHelper::render('joomla.content.options_default',
$this);
component/html.php000064400000004755151156772440010252 0ustar00<?php
/**
* @package Joomla.Administrator
* @subpackage com_config
*
* @copyright Copyright (C) 2005 - 2020 Open Source Matters, Inc. All
rights reserved.
* @license GNU General Public License version 2 or later; see
LICENSE.txt
*/
defined('_JEXEC') or die;
/**
* View for the component configuration
*
* @since 3.2
*/
class ConfigViewComponentHtml extends ConfigViewCmsHtml
{
public $state;
public $form;
public $component;
/**
* Display the view
*
* @return string The rendered view.
*
* @since 3.2
*
*/
public function render()
{
$form = null;
$component = null;
try
{
$component = $this->model->getComponent();
if (!$component->enabled)
{
return false;
}
$form = $this->model->getForm();
$user = JFactory::getUser();
}
catch (Exception $e)
{
JFactory::getApplication()->enqueueMessage($e->getMessage(),
'error');
return false;
}
// Bind the form to the data.
if ($form && $component->params)
{
$form->bind($component->params);
}
$this->fieldsets = $form ? $form->getFieldsets() : null;
$this->formControl = $form ? $form->getFormControl() : null;
// Don't show permissions fieldset if not authorised.
if (!$user->authorise('core.admin', $component->option)
&& isset($this->fieldsets['permissions']))
{
unset($this->fieldsets['permissions']);
}
$this->form = &$form;
$this->component = &$component;
$this->components = ConfigHelperConfig::getComponentsWithConfig();
$this->userIsSuperAdmin = $user->authorise('core.admin');
$this->currentComponent =
JFactory::getApplication()->input->get('component');
$this->return =
JFactory::getApplication()->input->get('return',
'', 'base64');
$this->addToolbar();
return parent::render();
}
/**
* Add the page title and toolbar.
*
* @return void
*
* @since 3.2
*/
protected function addToolbar()
{
JToolbarHelper::title(JText::_($this->component->option .
'_configuration'), 'equalizer config');
JToolbarHelper::apply('config.save.component.apply');
JToolbarHelper::save('config.save.component.save');
JToolbarHelper::divider();
JToolbarHelper::cancel('config.cancel.component');
JToolbarHelper::divider();
$helpUrl = $this->form->getData()->get('helpURL');
$helpKey = (string)
$this->form->getXml()->config->help['key'];
$helpKey = $helpKey ?: 'JHELP_COMPONENTS_' .
strtoupper($this->currentComponent) . '_OPTIONS';
JToolbarHelper::help($helpKey, (boolean) $helpUrl, null,
$this->currentComponent);
}
}
component/tmpl/default.php000064400000011120151156772440011666
0ustar00<?php
/**
* @package Joomla.Administrator
* @subpackage com_config
*
* @copyright Copyright (C) 2005 - 2020 Open Source Matters, Inc. All
rights reserved.
* @license GNU General Public License version 2 or later; see
LICENSE.txt
*/
defined('_JEXEC') or die;
$app = JFactory::getApplication();
$template = $app->getTemplate();
// Load the tooltip behavior.
JHtml::_('bootstrap.tooltip');
JHtml::_('behavior.formvalidator');
JHtml::_('behavior.keepalive');
JHtml::_('formbehavior.chosen', '.chzn-custom-value',
null, array('disable_search_threshold' => 0));
JHtml::_('formbehavior.chosen', 'select');
// Load JS message titles
JText::script('ERROR');
JText::script('WARNING');
JText::script('NOTICE');
JText::script('MESSAGE');
JFactory::getDocument()->addScriptDeclaration(
'
Joomla.submitbutton = function(task)
{
if (task === "config.cancel.component" ||
document.formvalidator.isValid(document.getElementById("component-form")))
{
jQuery("#permissions-sliders
select").attr("disabled", "disabled");
Joomla.submitform(task,
document.getElementById("component-form"));
}
};
// Select first tab
jQuery(document).ready(function() {
jQuery("#configTabs a:first").tab("show");
});'
);
?>
<form action="<?php echo
JRoute::_('index.php?option=com_config'); ?>"
id="component-form" method="post"
name="adminForm" autocomplete="off"
class="form-validate form-horizontal">
<div class="row-fluid">
<!-- Begin Sidebar -->
<div class="span2" id="sidebar">
<div class="sidebar-nav">
<?php echo $this->loadTemplate('navigation'); ?>
</div>
</div><!-- End Sidebar -->
<div class="span10" id="config">
<?php if ($this->fieldsets): ?>
<ul class="nav nav-tabs" id="configTabs">
<?php foreach ($this->fieldsets as $name => $fieldSet) : ?>
<?php $dataShowOn = ''; ?>
<?php if (!empty($fieldSet->showon)) : ?>
<?php JHtml::_('jquery.framework'); ?>
<?php JHtml::_('script', 'jui/cms.js',
array('version' => 'auto', 'relative'
=> true)); ?>
<?php $dataShowOn = ' data-showon=\'' .
json_encode(JFormHelper::parseShowOnConditions($fieldSet->showon,
$this->formControl)) . '\''; ?>
<?php endif; ?>
<?php $label = empty($fieldSet->label) ? 'COM_CONFIG_'
. $name . '_FIELDSET_LABEL' : $fieldSet->label; ?>
<li<?php echo $dataShowOn; ?>><a
data-toggle="tab" href="#<?php echo $name;
?>"><?php echo JText::_($label); ?></a></li>
<?php endforeach; ?>
</ul><!-- /configTabs -->
<div class="tab-content" id="configContent">
<?php foreach ($this->fieldsets as $name => $fieldSet) : ?>
<div class="tab-pane" id="<?php echo $name;
?>">
<?php if (isset($fieldSet->description) &&
!empty($fieldSet->description)) : ?>
<div class="tab-description alert alert-info">
<span class="icon-info"
aria-hidden="true"></span> <?php echo
JText::_($fieldSet->description); ?>
</div>
<?php endif; ?>
<?php foreach ($this->form->getFieldset($name) as $field) :
?>
<?php
$dataShowOn = '';
$groupClass = $field->type === 'Spacer' ? '
field-spacer' : '';
?>
<?php if ($field->showon) : ?>
<?php JHtml::_('jquery.framework'); ?>
<?php JHtml::_('script', 'jui/cms.js',
array('version' => 'auto', 'relative'
=> true)); ?>
<?php $dataShowOn = ' data-showon=\'' .
json_encode(JFormHelper::parseShowOnConditions($field->showon,
$field->formControl, $field->group)) . '\''; ?>
<?php endif; ?>
<?php if ($field->hidden) : ?>
<?php echo $field->input; ?>
<?php else : ?>
<div class="control-group<?php echo $groupClass;
?>"<?php echo $dataShowOn; ?>>
<?php if ($name != 'permissions') : ?>
<div class="control-label">
<?php echo $field->label; ?>
</div>
<?php endif; ?>
<div class="<?php if ($name != 'permissions')
: ?>controls<?php endif; ?>">
<?php echo $field->input; ?>
</div>
</div>
<?php endif; ?>
<?php endforeach; ?>
</div>
<?php endforeach; ?>
</div><!-- /configContent -->
<?php else: ?>
<div class="alert alert-info"><span
class="icon-info" aria-hidden="true"></span>
<?php echo
JText::_('COM_CONFIG_COMPONENT_NO_CONFIG_FIELDS_MESSAGE');
?></div>
<?php endif; ?>
</div><!-- /config -->
<input type="hidden" name="id"
value="<?php echo $this->component->id; ?>" />
<input type="hidden" name="component"
value="<?php echo $this->component->option; ?>" />
<input type="hidden" name="return"
value="<?php echo $this->return; ?>" />
<input type="hidden" name="task"
value="" />
<?php echo JHtml::_('form.token'); ?>
</div>
</form>
component/tmpl/default.xml000064400000001017151156772440011703
0ustar00<?xml version="1.0" encoding="utf-8"?>
<metadata>
<layout title="COM_CONFIG_COMPONENT_VIEW_DEFAULT_TITLE">
<message>
<![CDATA[COM_CONFIG_COMPONENT_VIEW_DEFAULT_DESC]]>
</message>
</layout>
<fields name="request">
<fieldset name="request"
addfieldpath="administrator/components/com_config/model/field">
<field
name="component"
type="configComponents"
label="JGLOBAL_CHOOSE_COMPONENT_LABEL"
description="JGLOBAL_CHOOSE_COMPONENT_DESC"
required="true"
/>
</fieldset>
</fields>
</metadata>
component/tmpl/default_navigation.php000064400000002014151156772440014107
0ustar00<?php
/**
* @package Joomla.Administrator
* @subpackage com_config
*
* @copyright Copyright (C) 2005 - 2020 Open Source Matters, Inc. All
rights reserved.
* @license GNU General Public License version 2 or later; see
LICENSE.txt
*/
defined('_JEXEC') or die;
?>
<ul class="nav nav-list">
<?php if ($this->userIsSuperAdmin) : ?>
<li class="nav-header"><?php echo
JText::_('COM_CONFIG_SYSTEM'); ?></li>
<li><a href="index.php?option=com_config"><?php
echo JText::_('COM_CONFIG_GLOBAL_CONFIGURATION');
?></a></li>
<li class="divider"></li>
<?php endif; ?>
<li class="nav-header"><?php echo
JText::_('COM_CONFIG_COMPONENT_FIELDSET_LABEL'); ?></li>
<?php foreach ($this->components as $component) : ?>
<?php
$active = '';
if ($this->currentComponent === $component)
{
$active = ' class="active"';
}
?>
<li<?php echo $active; ?>>
<a
href="index.php?option=com_config&view=component&component=<?php
echo $component; ?>"><?php echo JText::_($component);
?></a>
</li>
<?php endforeach; ?>
</ul>
csv.php000064400000010770151157372040006062 0ustar00<?php
/**
* @package FrameworkOnFramework
* @subpackage view
* @copyright Copyright (C) 2010-2016 Nicholas K. Dionysopoulos / Akeeba
Ltd. All rights reserved.
* @license GNU General Public License version 2 or later; see
LICENSE.txt
*/
// Protect from unauthorized access
defined('FOF_INCLUDED') or die;
/**
* FrameworkOnFramework CSV View class. Automatically renders the data in
CSV
* format.
*
* @package FrameworkOnFramework
* @since 1.0
*/
class FOFViewCsv extends FOFViewHtml
{
/**
* Should I produce a CSV header row.
*
* @var boolean
*/
protected $csvHeader = true;
/**
* The filename of the downloaded CSV file.
*
* @var string
*/
protected $csvFilename = null;
/**
* The columns to include in the CSV output. If it's empty it will be
ignored.
*
* @var array
*/
protected $csvFields = array();
/**
* Public constructor. Instantiates a FOFViewCsv object.
*
* @param array $config The configuration data array
*/
public function __construct($config = array())
{
// Make sure $config is an array
if (is_object($config))
{
$config = (array) $config;
}
elseif (!is_array($config))
{
$config = array();
}
parent::__construct($config);
if (array_key_exists('csv_header', $config))
{
$this->csvHeader = $config['csv_header'];
}
else
{
$this->csvHeader =
$this->input->getBool('csv_header', true);
}
if (array_key_exists('csv_filename', $config))
{
$this->csvFilename = $config['csv_filename'];
}
else
{
$this->csvFilename =
$this->input->getString('csv_filename', '');
}
if (empty($this->csvFilename))
{
$view = $this->input->getCmd('view',
'cpanel');
$view = FOFInflector::pluralize($view);
$this->csvFilename = strtolower($view);
}
if (array_key_exists('csv_fields', $config))
{
$this->csvFields = $config['csv_fields'];
}
}
/**
* Executes before rendering a generic page, default to actions necessary
for the Browse task.
*
* @param string $tpl Subtemplate to use
*
* @return boolean Return true to allow rendering of the page
*/
protected function onDisplay($tpl = null)
{
// Load the model
$model = $this->getModel();
$items = $model->getItemList();
$this->items = $items;
$platform = FOFPlatform::getInstance();
$document = $platform->getDocument();
if ($document instanceof JDocument)
{
$document->setMimeEncoding('text/csv');
}
$platform->setHeader('Pragma', 'public');
$platform->setHeader('Expires', '0');
$platform->setHeader('Cache-Control',
'must-revalidate, post-check=0, pre-check=0');
$platform->setHeader('Cache-Control',
'public', false);
$platform->setHeader('Content-Description', 'File
Transfer');
$platform->setHeader('Content-Disposition',
'attachment; filename="' . $this->csvFilename .
'"');
if (is_null($tpl))
{
$tpl = 'csv';
}
FOFPlatform::getInstance()->setErrorHandling(E_ALL,
'ignore');
$hasFailed = false;
try
{
$result = $this->loadTemplate($tpl, true);
if ($result instanceof Exception)
{
$hasFailed = true;
}
}
catch (Exception $e)
{
$hasFailed = true;
}
if (!$hasFailed)
{
echo $result;
}
else
{
// Default CSV behaviour in case the template isn't there!
if (empty($items))
{
return;
}
$item = array_pop($items);
$keys = get_object_vars($item);
$keys = array_keys($keys);
$items[] = $item;
reset($items);
if (!empty($this->csvFields))
{
$temp = array();
foreach ($this->csvFields as $f)
{
if (in_array($f, $keys))
{
$temp[] = $f;
}
}
$keys = $temp;
}
if ($this->csvHeader)
{
$csv = array();
foreach ($keys as $k)
{
$k = str_replace('"', '""', $k);
$k = str_replace("\r", '\\r', $k);
$k = str_replace("\n", '\\n', $k);
$k = '"' . $k . '"';
$csv[] = $k;
}
echo implode(",", $csv) . "\r\n";
}
foreach ($items as $item)
{
$csv = array();
$item = (array) $item;
foreach ($keys as $k)
{
if (!isset($item[$k]))
{
$v = '';
}
else
{
$v = $item[$k];
}
if (is_array($v))
{
$v = 'Array';
}
elseif (is_object($v))
{
$v = 'Object';
}
$v = str_replace('"', '""', $v);
$v = str_replace("\r", '\\r', $v);
$v = str_replace("\n", '\\n', $v);
$v = '"' . $v . '"';
$csv[] = $v;
}
echo implode(",", $csv) . "\r\n";
}
}
return false;
}
}
form.php000064400000006334151157372050006234 0ustar00<?php
/**
* @package FrameworkOnFramework
* @subpackage view
* @copyright Copyright (C) 2010-2016 Nicholas K. Dionysopoulos / Akeeba
Ltd. All rights reserved.
* @license GNU General Public License version 2 or later; see
LICENSE.txt
* @note This file has been modified by the Joomla! Project and no
longer reflects the original work of its author.
*/
// Protect from unauthorized access
defined('FOF_INCLUDED') or die;
/**
* FrameworkOnFramework Form class. It preferably renders an XML view
template
* instead of a traditional PHP-based view template.
*
* @package FrameworkOnFramework
* @since 2.0
*/
class FOFViewForm extends FOFViewHtml
{
/** @var FOFForm The form to render */
protected $form;
/**
* Displays the view
*
* @param string $tpl The template to use
*
* @return boolean|null False if we can't render anything
*/
public function display($tpl = null)
{
$model = $this->getModel();
// Get the form
$this->form = $model->getForm();
$this->form->setModel($model);
$this->form->setView($this);
// Get the task set in the model
$task = $model->getState('task', 'browse');
// Call the relevant method
$method_name = 'on' . ucfirst($task);
if (method_exists($this, $method_name))
{
$result = $this->$method_name($tpl);
}
else
{
$result = $this->onDisplay();
}
// Bail out if we're told not to render anything
if ($result === false)
{
return;
}
// Show the view
// -- Output HTML before the view template
$this->preRender();
// -- Try to load a view template; if not exists render the form directly
$basePath = FOFPlatform::getInstance()->isBackend() ?
'admin:' : 'site:';
$basePath .= $this->config['option'] . '/';
$basePath .= $this->config['view'] . '/';
$path = $basePath . $this->getLayout();
if ($tpl)
{
$path .= '_' . $tpl;
}
$viewTemplate = $this->loadAnyTemplate($path);
// If there was no template file found, display the form
if ($viewTemplate instanceof Exception)
{
$viewTemplate = $this->getRenderedForm();
}
// -- Output the view template
echo $viewTemplate;
// -- Output HTML after the view template
$this->postRender();
}
/**
* Returns the HTML rendering of the FOFForm attached to this view. Very
* useful for customising a form page without having to meticulously hand-
* code the entire form.
*
* @return string The HTML of the rendered form
*/
public function getRenderedForm()
{
$html = '';
$renderer = $this->getRenderer();
if ($renderer instanceof FOFRenderAbstract)
{
// Load CSS and Javascript files defined in the form
$this->form->loadCSSFiles();
$this->form->loadJSFiles();
// Get the form's HTML
$html = $renderer->renderForm($this->form, $this->getModel(),
$this->input);
}
return $html;
}
/**
* The event which runs when we are displaying the Add page
*
* @param string $tpl The view sub-template to use
*
* @return boolean True to allow display of the view
*/
protected function onAdd($tpl = null)
{
// Hide the main menu
JRequest::setVar('hidemainmenu', true);
// Get the model
$model = $this->getModel();
// Assign the item and form to the view
$this->item = $model->getItem();
return true;
}
}
json.php000064400000017050151157372050006237 0ustar00<?php
/**
* @package FrameworkOnFramework
* @subpackage view
* @copyright Copyright (C) 2010-2016 Nicholas K. Dionysopoulos / Akeeba
Ltd. All rights reserved.
* @license GNU General Public License version 2 or later; see
LICENSE.txt
*/
// Protect from unauthorized access
defined('FOF_INCLUDED') or die;
/**
* FrameworkOnFramework JSON View class. Renders the data as a JSON object
or
* array. It can optionally output HAL links as well.
*
* @package FrameworkOnFramework
* @since 2.0
*/
class FOFViewJson extends FOFViewHtml
{
/**
* When set to true we'll add hypermedia to the output, implementing
the
* HAL specification (http://stateless.co/hal_specification.html)
*
* @var boolean
*/
public $useHypermedia = false;
/**
* Public constructor
*
* @param array $config The component's configuration array
*/
public function __construct($config = array())
{
parent::__construct($config);
if (isset($config['use_hypermedia']))
{
$this->useHypermedia = (bool) $config['use_hypermedia'];
}
}
/**
* The event which runs when we are displaying the record list JSON view
*
* @param string $tpl The view sub-template to use
*
* @return boolean True to allow display of the view
*/
protected function onDisplay($tpl = null)
{
// Load the model
$model = $this->getModel();
$items = $model->getItemList();
$this->items = $items;
$document = FOFPlatform::getInstance()->getDocument();
if ($document instanceof JDocument)
{
if ($this->useHypermedia)
{
$document->setMimeEncoding('application/hal+json');
}
else
{
$document->setMimeEncoding('application/json');
}
}
if (is_null($tpl))
{
$tpl = 'json';
}
FOFPlatform::getInstance()->setErrorHandling(E_ALL,
'ignore');
$hasFailed = false;
try
{
$result = $this->loadTemplate($tpl, true);
if ($result instanceof Exception)
{
$hasFailed = true;
}
}
catch (Exception $e)
{
$hasFailed = true;
}
if ($hasFailed)
{
// Default JSON behaviour in case the template isn't there!
if ($this->useHypermedia)
{
$haldocument = $this->_createDocumentWithHypermedia($items, $model);
$json = $haldocument->render('json');
}
else
{
$json = json_encode($items);
}
// JSONP support
$callback = $this->input->get('callback', null,
'raw');
if (!empty($callback))
{
echo $callback . '(' . $json . ')';
}
else
{
$defaultName = $this->input->getCmd('view',
'joomla');
$filename = $this->input->getCmd('basename',
$defaultName);
$document->setName($filename);
echo $json;
}
return false;
}
else
{
echo $result;
return false;
}
}
/**
* The event which runs when we are displaying a single item JSON view
*
* @param string $tpl The view sub-template to use
*
* @return boolean True to allow display of the view
*/
protected function onRead($tpl = null)
{
$model = $this->getModel();
$item = $model->getItem();
$this->item = $item;
$document = FOFPlatform::getInstance()->getDocument();
if ($document instanceof JDocument)
{
if ($this->useHypermedia)
{
$document->setMimeEncoding('application/hal+json');
}
else
{
$document->setMimeEncoding('application/json');
}
}
if (is_null($tpl))
{
$tpl = 'json';
}
FOFPlatform::getInstance()->setErrorHandling(E_ALL,
'ignore');
$hasFailed = false;
try
{
$result = $this->loadTemplate($tpl, true);
if ($result instanceof Exception)
{
$hasFailed = true;
}
}
catch (Exception $e)
{
$hasFailed = true;
}
if ($hasFailed)
{
// Default JSON behaviour in case the template isn't there!
if ($this->useHypermedia)
{
$haldocument = $this->_createDocumentWithHypermedia($item, $model);
$json = $haldocument->render('json');
}
else
{
$json = json_encode($item);
}
// JSONP support
$callback = $this->input->get('callback', null);
if (!empty($callback))
{
echo $callback . '(' . $json . ')';
}
else
{
$defaultName = $this->input->getCmd('view',
'joomla');
$filename = $this->input->getCmd('basename',
$defaultName);
$document->setName($filename);
echo $json;
}
return false;
}
else
{
echo $result;
return false;
}
}
/**
* Creates a FOFHalDocument using the provided data
*
* @param array $data The data to put in the document
* @param FOFModel $model The model of this view
*
* @return FOFHalDocument A HAL-enabled document
*/
protected function _createDocumentWithHypermedia($data, $model = null)
{
// Create a new HAL document
if (is_array($data))
{
$count = count($data);
}
else
{
$count = null;
}
if ($count == 1)
{
reset($data);
$document = new FOFHalDocument(end($data));
}
else
{
$document = new FOFHalDocument($data);
}
// Create a self link
$uri = (string) (JUri::getInstance());
$uri = $this->_removeURIBase($uri);
$uri = JRoute::_($uri);
$document->addLink('self', new FOFHalLink($uri));
// Create relative links in a record list context
if (is_array($data) && ($model instanceof FOFModel))
{
$pagination = $model->getPagination();
if ($pagination->get('pages.total') > 1)
{
// Try to guess URL parameters and create a prototype URL
// NOTE: You are better off specialising this method
$protoUri = $this->_getPrototypeURIForPagination();
// The "first" link
$uri = clone $protoUri;
$uri->setVar('limitstart', 0);
$uri = JRoute::_((string) $uri);
$document->addLink('first', new FOFHalLink($uri));
// Do we need a "prev" link?
if ($pagination->get('pages.current') > 1)
{
$prevPage = $pagination->get('pages.current') - 1;
$limitstart = ($prevPage - 1) * $pagination->limit;
$uri = clone $protoUri;
$uri->setVar('limitstart', $limitstart);
$uri = JRoute::_((string) $uri);
$document->addLink('prev', new FOFHalLink($uri));
}
// Do we need a "next" link?
if ($pagination->get('pages.current') <
$pagination->get('pages.total'))
{
$nextPage = $pagination->get('pages.current') + 1;
$limitstart = ($nextPage - 1) * $pagination->limit;
$uri = clone $protoUri;
$uri->setVar('limitstart', $limitstart);
$uri = JRoute::_((string) $uri);
$document->addLink('next', new FOFHalLink($uri));
}
// The "last" link?
$lastPage = $pagination->get('pages.total');
$limitstart = ($lastPage - 1) * $pagination->limit;
$uri = clone $protoUri;
$uri->setVar('limitstart', $limitstart);
$uri = JRoute::_((string) $uri);
$document->addLink('last', new FOFHalLink($uri));
}
}
return $document;
}
/**
* Convert an absolute URI to a relative one
*
* @param string $uri The URI to convert
*
* @return string The relative URL
*/
protected function _removeURIBase($uri)
{
static $root = null, $rootlen = 0;
if (is_null($root))
{
$root = rtrim(FOFPlatform::getInstance()->URIbase(), '/');
$rootlen = strlen($root);
}
if (substr($uri, 0, $rootlen) == $root)
{
$uri = substr($uri, $rootlen);
}
return ltrim($uri, '/');
}
/**
* Returns a JUri instance with a prototype URI used as the base for the
* other URIs created by the JSON renderer
*
* @return JUri The prototype JUri instance
*/
protected function _getPrototypeURIForPagination()
{
$protoUri = new JUri('index.php');
$protoUri->setQuery($this->input->getData());
$protoUri->delVar('savestate');
$protoUri->delVar('base_path');
return $protoUri;
}
}
raw.php000064400000021062151157372050006055 0ustar00<?php
/**
* @package FrameworkOnFramework
* @subpackage view
* @copyright Copyright (C) 2010-2016 Nicholas K. Dionysopoulos / Akeeba
Ltd. All rights reserved.
* @license GNU General Public License version 2 or later; see
LICENSE.txt
* @note This file has been modified by the Joomla! Project and no
longer reflects the original work of its author.
*/
// Protect from unauthorized access
defined('FOF_INCLUDED') or die;
/**
* FrameworkOnFramework raw output class. It works like an HTML view, but
the
* output is bare HTML.
*
* @package FrameworkOnFramework
* @since 2.1
*/
class FOFViewRaw extends FOFView
{
/** @var array Data lists */
protected $lists = null;
/** @var array Permissions map */
protected $perms = null;
/**
* Class constructor
*
* @param array $config Configuration parameters
*/
public function __construct($config = array())
{
// Make sure $config is an array
if (is_object($config))
{
$config = (array) $config;
}
elseif (!is_array($config))
{
$config = array();
}
parent::__construct($config);
$this->config = $config;
// Get the input
if (array_key_exists('input', $config))
{
if ($config['input'] instanceof FOFInput)
{
$this->input = $config['input'];
}
else
{
$this->input = new FOFInput($config['input']);
}
}
else
{
$this->input = new FOFInput;
}
if (!array_key_exists('option', $this->config))
{
$this->config['option'] =
$this->input->getCmd('option', 'com_foobar');
}
if (!array_key_exists('view', $this->config))
{
$this->config['view'] =
$this->input->getCmd('view', 'cpanel');
}
$this->lists = new FOFUtilsObject;
if (!FOFPlatform::getInstance()->isCli())
{
$platform = FOFPlatform::getInstance();
$perms = (object) array(
'create' =>
$platform->authorise('core.create' ,
$this->input->getCmd('option', 'com_foobar')),
'edit' => $platform->authorise('core.edit'
, $this->input->getCmd('option',
'com_foobar')),
'editown' =>
$platform->authorise('core.edit.own' ,
$this->input->getCmd('option', 'com_foobar')),
'editstate' =>
$platform->authorise('core.edit.state' ,
$this->input->getCmd('option', 'com_foobar')),
'delete' =>
$platform->authorise('core.delete' ,
$this->input->getCmd('option', 'com_foobar')),
);
$this->aclperms = $perms;
$this->perms = $perms;
}
}
/**
* Displays the view
*
* @param string $tpl The template to use
*
* @return boolean|null False if we can't render anything
*/
public function display($tpl = null)
{
// Get the task set in the model
$model = $this->getModel();
$task = $model->getState('task', 'browse');
// Call the relevant method
$method_name = 'on' . ucfirst($task);
if (method_exists($this, $method_name))
{
$result = $this->$method_name($tpl);
}
else
{
$result = $this->onDisplay();
}
if ($result === false)
{
return;
}
// Show the view
if ($this->doPreRender)
{
$this->preRender();
}
parent::display($tpl);
if ($this->doPostRender)
{
$this->postRender();
}
}
/**
* Last chance to output something before rendering the view template
*
* @return void
*/
protected function preRender()
{
}
/**
* Last chance to output something after rendering the view template and
* before returning to the caller
*
* @return void
*/
protected function postRender()
{
}
/**
* Executes before rendering the page for the Browse task.
*
* @param string $tpl Subtemplate to use
*
* @return boolean Return true to allow rendering of the page
*/
protected function onBrowse($tpl = null)
{
// When in interactive browsing mode, save the state to the session
$this->getModel()->savestate(1);
return $this->onDisplay($tpl);
}
/**
* Executes before rendering a generic page, default to actions necessary
* for the Browse task.
*
* @param string $tpl Subtemplate to use
*
* @return boolean Return true to allow rendering of the page
*/
protected function onDisplay($tpl = null)
{
$view = $this->input->getCmd('view', 'cpanel');
if (in_array($view, array('cpanel', 'cpanels')))
{
return;
}
// Load the model
$model = $this->getModel();
// ...ordering
$this->lists->set('order',
$model->getState('filter_order', 'id',
'cmd'));
$this->lists->set('order_Dir',
$model->getState('filter_order_Dir', 'DESC',
'cmd'));
// Assign data to the view
$this->items = $model->getItemList();
$this->pagination = $model->getPagination();
// Pass page params on frontend only
if (FOFPlatform::getInstance()->isFrontend())
{
$params = JFactory::getApplication()->getParams();
$this->params = $params;
}
return true;
}
/**
* Executes before rendering the page for the Add task.
*
* @param string $tpl Subtemplate to use
*
* @return boolean Return true to allow rendering of the page
*/
protected function onAdd($tpl = null)
{
JRequest::setVar('hidemainmenu', true);
$model = $this->getModel();
$this->item = $model->getItem();
return true;
}
/**
* Executes before rendering the page for the Edit task.
*
* @param string $tpl Subtemplate to use
*
* @return boolean Return true to allow rendering of the page
*/
protected function onEdit($tpl = null)
{
// This perms are used only for aesthetic reasons (ie showing
toolbar buttons), "real" checks
// are made by the controller
// It seems that I can't edit records, maybe I can edit only
this one due asset tracking?
if (!$this->perms->edit || !$this->perms->editown)
{
$model = $this->getModel();
if($model)
{
$table = $model->getTable();
// Ok, record is tracked, let's see if I can this
record
if($table->isAssetsTracked())
{
$platform = FOFPlatform::getInstance();
if(!$this->perms->edit)
{
$this->perms->edit =
$platform->authorise('core.edit', $table->getAssetName());
}
if(!$this->perms->editown)
{
$this->perms->editown =
$platform->authorise('core.edit.own',
$table->getAssetName());
}
}
}
}
return $this->onAdd($tpl);
}
/**
* Executes before rendering the page for the Read task.
*
* @param string $tpl Subtemplate to use
*
* @return boolean Return true to allow rendering of the page
*/
protected function onRead($tpl = null)
{
// All I need is to read the record
return $this->onAdd($tpl);
}
/**
* Determines if the current Joomla! version and your current table
support
* AJAX-powered drag and drop reordering. If they do, it will set up the
* drag & drop reordering feature.
*
* @return boolean|array False if not supported, a table with necessary
* information (saveOrder: should you enabled DnD
* reordering; orderingColumn: which column has
the
* ordering information).
*/
public function hasAjaxOrderingSupport()
{
if (version_compare(JVERSION, '3.0', 'lt'))
{
return false;
}
$model = $this->getModel();
if (!method_exists($model, 'getTable'))
{
return false;
}
$table = $this->getModel()->getTable();
if (!method_exists($table, 'getColumnAlias') ||
!method_exists($table, 'getTableFields'))
{
return false;
}
$orderingColumn = $table->getColumnAlias('ordering');
$fields = $table->getTableFields();
if (!is_array($fields) || !array_key_exists($orderingColumn, $fields))
{
return false;
}
$listOrder =
$this->escape($model->getState('filter_order', null,
'cmd'));
$listDirn =
$this->escape($model->getState('filter_order_Dir',
'ASC', 'cmd'));
$saveOrder = $listOrder == $orderingColumn;
if ($saveOrder)
{
$saveOrderingUrl = 'index.php?option=' .
$this->config['option'] . '&view=' .
$this->config['view'] .
'&task=saveorder&format=json';
JHtml::_('sortablelist.sortable', 'itemsList',
'adminForm', strtolower($listDirn), $saveOrderingUrl);
}
return array(
'saveOrder' => $saveOrder,
'orderingColumn' => $orderingColumn
);
}
/**
* Returns the internal list of useful variables to the benefit of
* FOFFormHeader fields.
*
* @return array
*
* @since 2.0
*/
public function getLists()
{
return $this->lists;
}
/**
* Returns a reference to the permissions object of this view
*
* @return stdClass
*/
public function getPerms()
{
return $this->perms;
}
}