forked from extern/egroupware
92 lines
2.8 KiB
PHP
92 lines
2.8 KiB
PHP
|
<?php
|
||
|
/**
|
||
|
* EGroupware - Home - Portlet interface
|
||
|
*
|
||
|
* @link www.egroupware.org
|
||
|
* @author Nathan Gray
|
||
|
* @copyright (c) 2013 by Nathan Gray
|
||
|
* @package home
|
||
|
* @subpackage portlet
|
||
|
* @license http://opensource.org/licenses/gpl-license.php GPL - GNU General Public License
|
||
|
* @version $Id$
|
||
|
*/
|
||
|
|
||
|
abstract class home_portlet
|
||
|
{
|
||
|
/**
|
||
|
* Attributes that are common to all portlets, but are customized indirectly
|
||
|
* through the UI, rather than explictly through the configure popup
|
||
|
*/
|
||
|
public static $common_attributes = array(
|
||
|
'width', 'height', 'row', 'col'
|
||
|
);
|
||
|
|
||
|
/**
|
||
|
* Constructor sets up the portlet according to the user's saved property values
|
||
|
* for this particular portlet. It is possible to have multiple instances of the
|
||
|
* same portlet with different properties.
|
||
|
*
|
||
|
* The implementing class is allowed to modify the context, if needed, but it is
|
||
|
* better to use get_properties().
|
||
|
*
|
||
|
* @param context Array portlet settings such as size, as well as values for properties
|
||
|
*/
|
||
|
public abstract function __construct(Array &$context = array());
|
||
|
|
||
|
/**
|
||
|
* Some descriptive information about the portlet, so that users can decide if
|
||
|
* they want it or not, and for inclusion in lists, hover text, etc.
|
||
|
*
|
||
|
* These should be already translated, no further translation will be done.
|
||
|
*
|
||
|
* @return Array with keys:
|
||
|
* - displayName: Used in lists
|
||
|
* - title: Put in the portlet header
|
||
|
* - description: A short description of what this portlet does or displays
|
||
|
*/
|
||
|
public abstract function get_description();
|
||
|
|
||
|
/**
|
||
|
* Get a fragment of HTML for display
|
||
|
*
|
||
|
* @param content Array Values returned from a submit, if any
|
||
|
* @param context Settings for customizing the portlet
|
||
|
* @return string HTML fragment for display
|
||
|
*/
|
||
|
public abstract function get_content();
|
||
|
|
||
|
/**
|
||
|
* Return a list of settings to customize the portlet.
|
||
|
*
|
||
|
* Settings should be in the same style as for preferences. It is OK to return an empty array
|
||
|
* for no customizable settings.
|
||
|
*
|
||
|
* These should be already translated, no further translation will be done.
|
||
|
*
|
||
|
* @see preferences/inc/class.preferences_settings.inc.php
|
||
|
* @return Array of settings. Each setting should have the following keys:
|
||
|
* - name: Internal reference
|
||
|
* - type: Widget type for editing
|
||
|
* - label: Human name
|
||
|
* - help: Description of the setting, and what it does
|
||
|
* - default: Default value, for when it's not set yet
|
||
|
*/
|
||
|
public function get_properties() {
|
||
|
// Include the common attributes, or they won't get saved
|
||
|
$properties = array();
|
||
|
foreach(self::$common_attributes as $prop)
|
||
|
{
|
||
|
$properties[$prop] = array('name' => $prop);
|
||
|
}
|
||
|
return $properties;
|
||
|
}
|
||
|
|
||
|
/**
|
||
|
* Return a list of allowable actions for the portlet.
|
||
|
*
|
||
|
* These actions will be merged with the default porlet actions. Use the
|
||
|
* same id / key to override the default action.
|
||
|
*/
|
||
|
public abstract function get_actions();
|
||
|
}
|