plugin.php
3.03 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
<?php
// namespace administrator\components\com_jmap\framework\plugins;
/**
* @package JMAP::FRAMEWORK::components::com_jmap
* @subpackage plugins
* @author Joomla! Extensions Store
* @copyright (C) 2015 - Joomla! Extensions Store
* @license GNU/GPLv2 http://www.gnu.org/licenses/gpl-2.0.html
*/
defined ( '_JEXEC' ) or die ( 'Restricted access' );
/**
* External plugins interface for sitemap data
* It's the contract that must be implemented by every plugin class
* that retrieves data in an arbitrary way or resource and returns them
* following a specific format to render the sitemap in every format supported HTML, XML, etc
*
* @package JMAP::FRAMEWORK::components::com_jmap
* @subpackage plugins
* @since 3.3
*/
interface JMapFilePlugin {
/**
* Retrieves records for the plugin data source using whatever way and resource is required
* Formats and returns an associative array of data based on the following scheme
*
* @param JRegistry The object holding configuration parameters for the plugin and data source
* @param JDatabase $db The database connector object
* @param JMapModel $sitemapModel The sitemap model object reference, it's needed to manage limitStart, limitRows properties and affected_rows state
*
* @return array
* This function must return an associative array as following:
* $returndata['items'] -> It's the mandatory objects array of elements, it must contain at least title and routed link fields
* $returndata['items_tree'] -> Needed to render elements grouped by cats with a nested tree, not mandatory
* $returndata['categories_tree'] -> Needed to render elements grouped by cats with a nested tree, not mandatory
*
* $returndata['items'] must contain records objects with following properties (* = required)
* ->title * A string for the title
* ->link * A string for the link
* ->lastmod (used for XML sitemap) A date string in MySql format yyyy-mm-dd hh:ii:ss
* ->metakey (used for Google news sitemap) A string for metakeys of each record
* ->publish_up (used for Google news sitemap) A date string in MySql format yyyy-mm-dd hh:ii:ss
* ->access (used for Google news sitemap, >1 = registration access) An integer for Joomla! access level of each record
*
* $returndata['items_tree'] must be a numerical array that groups items by the containing category id, the index of the array is the category id
*
* $returndata['categories_tree'] must be a numerical array that groups categories by parent category, the index of the array is the category parent id,
* the elements of the array must be records objects representing categories with following properties (* = required)
* ->category_id * An integer for the category ID
* ->category_title * A string for the category title
* ->category_link * A string for the category link
* ->lastmod (used for XML sitemap) A date string in MySql format yyyy-mm-dd hh:ii:ss
*/
public function getSourceData(JRegistry $pluginParams, JDatabase $db, JMapModel $sitemapModel);
}