147 lines
4.5 KiB
PHP
147 lines
4.5 KiB
PHP
<?php
|
|
/**
|
|
* @package FOF
|
|
* @copyright Copyright (c)2010-2021 Nicholas K. Dionysopoulos / Akeeba Ltd
|
|
* @license GNU General Public License version 2, or later
|
|
*/
|
|
|
|
namespace FOF30\View\DataView;
|
|
|
|
defined('_JEXEC') || die;
|
|
|
|
use Exception;
|
|
use FOF30\Container\Container;
|
|
use Joomla\CMS\Pagination\Pagination;
|
|
use stdClass;
|
|
|
|
interface DataViewInterface
|
|
{
|
|
/**
|
|
* 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, otherwise a table with necessary information (saveOrder: should
|
|
* you enable DnD reordering; orderingColumn: which column has the ordering information).
|
|
*/
|
|
public function hasAjaxOrderingSupport();
|
|
|
|
/**
|
|
* Returns the internal list of useful variables to the benefit of header fields.
|
|
*
|
|
* @return stdClass
|
|
*/
|
|
public function getLists();
|
|
|
|
/**
|
|
* Returns a reference to the permissions object of this view
|
|
*
|
|
* @return stdClass
|
|
*/
|
|
public function getPerms();
|
|
|
|
/**
|
|
* Returns a reference to the pagination object of this view
|
|
*
|
|
* @return Pagination
|
|
*/
|
|
public function getPagination();
|
|
|
|
/**
|
|
* 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
|
|
*
|
|
* @throws Exception
|
|
*/
|
|
public function getName();
|
|
|
|
/**
|
|
* Returns a reference to the container attached to this View
|
|
*
|
|
* @return Container
|
|
*/
|
|
public function &getContainer();
|
|
|
|
/**
|
|
* Escapes a value for output in a view script.
|
|
*
|
|
* @param mixed $var The output to escape.
|
|
*
|
|
* @return string The escaped value.
|
|
*/
|
|
public function escape($var);
|
|
|
|
/**
|
|
* Returns the task being rendered by the view
|
|
*
|
|
* @return string
|
|
*/
|
|
public function getTask();
|
|
|
|
/**
|
|
* Get the layout.
|
|
*
|
|
* @return string The layout name
|
|
*/
|
|
public function getLayout();
|
|
|
|
/**
|
|
* Add a JS script file to the page generated by the CMS.
|
|
*
|
|
* There are three combinations of defer and async (see http://www.w3schools.com/tags/att_script_defer.asp):
|
|
* * $defer false, $async true: The script is executed asynchronously with the rest of the page
|
|
* (the script will be executed while the page continues the parsing)
|
|
* * $defer true, $async false: The script is executed when the page has finished parsing.
|
|
* * $defer false, $async false. (default) The script is loaded and executed immediately. When it finishes
|
|
* loading the browser continues parsing the rest of the page.
|
|
*
|
|
* When you are using $defer = true there is no guarantee about the load order of the scripts. Whichever
|
|
* script loads first will be executed first. The order they appear on the page is completely irrelevant.
|
|
*
|
|
* @param string $uri A path definition understood by parsePath, e.g. media://com_example/js/foo.js
|
|
* @param string $version (optional) Version string to be added to the URL
|
|
* @param string $type MIME type of the script
|
|
* @param boolean $defer Adds the defer attribute, see above
|
|
* @param boolean $async Adds the async attribute, see above
|
|
*
|
|
* @return $this Self, for chaining
|
|
*/
|
|
public function addJavascriptFile($uri, $version = null, $type = 'text/javascript', $defer = false, $async = false);
|
|
|
|
/**
|
|
* Adds an inline JavaScript script to the page header
|
|
*
|
|
* @param string $script The script content to add
|
|
* @param string $type The MIME type of the script
|
|
*
|
|
* @return $this Self, for chaining
|
|
*/
|
|
public function addJavascriptInline($script, $type = 'text/javascript');
|
|
|
|
/**
|
|
* Add a CSS file to the page generated by the CMS
|
|
*
|
|
* @param string $uri A path definition understood by parsePath, e.g. media://com_example/css/foo.css
|
|
* @param string $version (optional) Version string to be added to the URL
|
|
* @param string $type MIME type of the stylesheeet
|
|
* @param string $media Media target definition of the style sheet, e.g. "screen"
|
|
* @param array $attribs Array of attributes
|
|
*
|
|
* @return $this Self, for chaining
|
|
*/
|
|
public function addCssFile($uri, $version = null, $type = 'text/css', $media = null, $attribs = []);
|
|
|
|
/**
|
|
* Adds an inline stylesheet (inline CSS) to the page header
|
|
*
|
|
* @param string $css The stylesheet content to add
|
|
* @param string $type The MIME type of the script
|
|
*
|
|
* @return $this Self, for chaining
|
|
*/
|
|
public function addCssInline($css, $type = 'text/css');
|
|
}
|