diff options
Diffstat (limited to 'includes/plugins_lib.php')
| -rwxr-xr-x | includes/plugins_lib.php | 409 |
1 files changed, 205 insertions, 204 deletions
diff --git a/includes/plugins_lib.php b/includes/plugins_lib.php index 12fde9f..533c743 100755 --- a/includes/plugins_lib.php +++ b/includes/plugins_lib.php @@ -1,211 +1,212 @@ <?php - /** - * Plugin Lib - * - * A port of PhpWiki WikiPlugin class - * Principal use is port PhpWiki plugins, but can be used to make new ones. - * Use: - * - Extends PluginsLib with your class - * - add the lines - * <code> - * include "pluginslib.php"; - * - * function wikiplugin_backlinks($data, $params) { - * $plugin = new BackLinks(); - * return $plugin->run($data, $params); - * } - * function wikiplugin_backlinks_help() { - * $plugin = new BackLinks(); - * return $plugin->getDescription(); - * } * </code> - * @package wiki + /** + * Plugin Lib + * + * A port of PhpWiki WikiPlugin class + * Principal use is port PhpWiki plugins, but can be used to make new ones. + * Use: + * - Extends PluginsLib with your class + * - add the lines + * <code> + * include "pluginslib.php"; + * + * function wikiplugin_backlinks($data, $params) { + * $plugin = new BackLinks(); + * return $plugin->run($data, $params); + * } + * function wikiplugin_backlinks_help() { + * $plugin = new BackLinks(); + * return $plugin->getDescription(); + * } * </code> + * @package wiki */ /** - * @package wiki - * @subpackage PluginsLib - * @author Claudio Bustos - * @version $Revision$ - */ + * @package wiki + * @subpackage PluginsLib + * @author Claudio Bustos + * @version $Revision$ + */ - namespace Bitweaver\Wiki; - use Bitweaver\KernelTools; - - class PluginsLib extends \Bitweaver\BitBase { - public $_errors; - public $_data; - public $_params; - /** - * Array of params to be expanded as arrays. Explode the string with {@link $separator} - * @var array - */ - public $expanded_params = []; - /** - * Separator used to explote params listed on {@link $expanded_params} - * @var string - */ - public $separator = "|"; - /** - * List of fields retrieved from {@link BitBase::list_pages()} - * Keys are the name of the fields and values the names for tra(); - * @var array - */ - public $aInfoPresetNames = array( - "hits" => "Hits", "last_modified" => "Last mod", "user" => "Last author", "len" => "Size", "comment" => "Com", "creator" => "Creator", "version" => "Last ver", "flag" => "Status", "versions" => "Vers", "links" => "Links", "backlinks" => "Backlinks"); + namespace Bitweaver\Wiki; - /** - * Process the params, in this order: - * - default values, asigned on {@link PluginsLib::getDefaultArguments()} - * - request values, sended by GET or POST method, if $request is put to true - * - explicit values, asigned on the Wiki - * @param array sended to wikiplugin_name($data, $params) - * @param bool if set to true, accept values from $_REQUEST - * @param bool if set to true, assign default values from {@link PluginsLib::getDefaultArguments()} - * @return array list of params - */ - function getParams($params, $request = false, $defaults = false) { - if ($defaults === false) { - $defaults = $this->getDefaultArguments(); - } - $args = []; - foreach ($defaults as $arg => $default_val) { - if (isset($params[$arg])) { - $args[$arg] = $params[$arg]; - } elseif(isset($_REQUEST[$arg])) { - $args[$arg] = $_REQUEST[$arg]; - } else { - // maybe this kind of transformation can be grouped on a external function - if ($default_val==="[pagename]") { - $default_val=$_REQUEST["page"]; - } - $args[$arg] = $default_val; - } - if (in_array($arg, $this->expanded_params)) { - if ($args[$arg]) { - $args[$arg] = explode($this->separator, $args[$arg]); - foreach($args[$arg] as $id=>$value) { - $args[$arg][$id]=trim($value); - } - } else { - $args[$arg]=[]; - } - } - } - return $args; - } - /** - * Returns the name of the Plugin - * By default, erase the first 'WikiPlugin' - * Made for overload it. - * @return string - */ - function getName() { - return preg_replace('/^WikiPlugin/', '', get_class($this)); - } - /** - * Returns a description of the Plugin - * Made for overload it. - * @return string - */ - function getDescription() { - return $this->getName(); - } - /** - * Returns the version of the version - * Made for overload it. - * @return string - */ - function getVersion() { - return KernelTools::tra("No version indicated"); - //return preg_replace("/[Revision: $]/", '', - // "\$Revision$"); - } - /** - * Returns the default arguments for the plugin - * Use keys as the arguments and values as ... the default values - * @return array - */ - function getDefaultArguments() { - return array('description' => $this->getDescription()); - } - /** - * Run the plugin - * For sake of God, overload it! - * @param string - * @param array - */ - function run ($data, $params) { - /** - * UGLY ERROR!. - */ - return $this->error("PluginsLib::run: pure virtual function. Don't be so lazy!"); - } - function error ($message) { - return "~np~<span class='warn'>Plugin ".$this->getName()." ".KernelTools::tra("failed")." : ".tra($message)."</span>~/np~"; - } - function getErrorDetail() { - return $this->_errors; - } - function _error($message) { - $this->_errors = $message; - return false; - } - } - /** - * Class with utilities for Plugins +use Bitweaver\KernelTools; + + class PluginsLib extends \Bitweaver\BitBase { + public $_errors; + public $_data; + public $_params; + /** + * Array of params to be expanded as arrays. Explode the string with {@link $separator} + * @var array + */ + public $expanded_params = []; + /** + * Separator used to explote params listed on {@link $expanded_params} + * @var string + */ + public $separator = "|"; + /** + * List of fields retrieved from {@link BitBase::list_pages()} + * Keys are the name of the fields and values the names for tra(); + * @var array + */ + public $aInfoPresetNames = [ + "hits" => "Hits", "last_modified" => "Last mod", "user" => "Last author", "len" => "Size", "comment" => "Com", "creator" => "Creator", "version" => "Last ver", "flag" => "Status", "versions" => "Vers", "links" => "Links", "backlinks" => "Backlinks", ]; + + /** + * Process the params, in this order: + * - default values, asigned on {@link PluginsLib::getDefaultArguments()} + * - request values, sended by GET or POST method, if $request is put to true + * - explicit values, asigned on the Wiki + * @param array sended to wikiplugin_name($data, $params) + * @param bool if set to true, accept values from $_REQUEST + * @param bool if set to true, assign default values from {@link PluginsLib::getDefaultArguments()} + * @return array list of params + */ + function getParams($params, $request = false, $defaults = false) { + if ($defaults === false) { + $defaults = $this->getDefaultArguments(); + } + $args = []; + foreach ($defaults as $arg => $default_val) { + if (isset($params[$arg])) { + $args[$arg] = $params[$arg]; + } elseif(isset($_REQUEST[$arg])) { + $args[$arg] = $_REQUEST[$arg]; + } else { + // maybe this kind of transformation can be grouped on a external function + if ($default_val==="[pagename]") { + $default_val=$_REQUEST["page"]; + } + $args[$arg] = $default_val; + } + if (in_array($arg, $this->expanded_params)) { + if ($args[$arg]) { + $args[$arg] = explode($this->separator, $args[$arg]); + foreach($args[$arg] as $id=>$value) { + $args[$arg][$id]=trim($value); + } + } else { + $args[$arg]=[]; + } + } + } + return $args; + } + /** + * Returns the name of the Plugin + * By default, erase the first 'WikiPlugin' + * Made for overload it. + * @return string + */ + function getName() { + return preg_replace('/^WikiPlugin/', '', get_class($this)); + } + /** + * Returns a description of the Plugin + * Made for overload it. + * @return string + */ + function getDescription() { + return $this->getName(); + } + /** + * Returns the version of the version + * Made for overload it. + * @return string + */ + function getVersion() { + return KernelTools::tra("No version indicated"); + //return preg_replace("/[Revision: $]/", '', + // "\$Revision$"); + } + /** + * Returns the default arguments for the plugin + * Use keys as the arguments and values as ... the default values + * @return array + */ + function getDefaultArguments() { + return ['description' => $this->getDescription()]; + } + /** + * Run the plugin + * For sake of God, overload it! + * @param string + * @param array + */ + function run ($data, $params) { + /** + * UGLY ERROR!. + */ + return $this->error("PluginsLib::run: pure virtual function. Don't be so lazy!"); + } + function error ($message) { + return "~np~<span class='warn'>Plugin ".$this->getName()." ".KernelTools::tra("failed")." : ".tra($message)."</span>~/np~"; + } + function getErrorDetail() { + return $this->_errors; + } + function _error($message) { + $this->_errors = $message; + return false; + } + } + /** + * Class with utilities for Plugins * - * @package wiki - * @subpackage PluginsLib - * @author Claudio Bustos - * @version $Revision$ - */ - class PluginsLibUtil { - /** - * Create a table with information from pages - * @param array key ["data"] from one of the functions that retrieve informaci�n about pages - * @param array list of keys to show. - * @param array definition of the principal field. By default: - * array("field"=>"title","name"=>"Page") - * @return string - */ - public function createTable($aData,$aInfo=false,$aPrincipalField=false) { - // contract - if (!$aPrincipalField or !is_array($aPrincipalField)) { - $aPrincipalField=array("field"=>"title","name"=>"Page"); - } - if (!is_array($aInfo)) { - $aInfo=false; - } - // ~contract - $sOutput=""; - if ($aInfo) { - $iNumCol=count($aInfo)+1; - $sStyle=" style='width:".(floor(100/$iNumCol))."%' "; - // Header for info - $sOutput .= "<table class='normal'><tr><td class='heading' $sStyle>".KernelTools::tra($aPrincipalField["name"])."</td>"; - foreach($aInfo as $iInfo => $sHeader) { - $sOutput .= "<td class='heading' $sStyle >".KernelTools::tra($sHeader)."</td>"; - } - $sOutput .= "</tr>"; - } - $iCounter=1; - foreach($aData as $aPage) { - $sClass=($iCounter%2)?"odd":"even"; - if (!$aInfo) { - $sOutput .= "*((".$aPage[$aPrincipalField["field"]]."))\n"; - } else { - $sOutput .= "<tr><td class='$sClass'>((".$aPage[$aPrincipalField["field"]]."))</td>"; - foreach($aInfo as $sInfo) { - if (isset($aPage[$sInfo])) { - $sOutput .= "<td class='$sClass'>".$aPage[$sInfo]."</td>"; - } - } - } - $iCounter++; - } - if ($aInfo) { - $sOutput .= "</table>"; - } - return $sOutput; - } - }
\ No newline at end of file + * @package wiki + * @subpackage PluginsLib + * @author Claudio Bustos + * @version $Revision$ + */ + class PluginsLibUtil { + /** + * Create a table with information from pages + * @param array key ["data"] from one of the functions that retrieve informaci�n about pages + * @param array list of keys to show. + * @param array definition of the principal field. By default: + * array("field"=>"title","name"=>"Page") + * @return string + */ + public function createTable($aData,$aInfo=false,$aPrincipalField=false) { + // contract + if (!$aPrincipalField or !is_array($aPrincipalField)) { + $aPrincipalField=["field"=>"title","name"=>"Page"]; + } + if (!is_array($aInfo)) { + $aInfo=false; + } + // ~contract + $sOutput=""; + if ($aInfo) { + $iNumCol=count($aInfo)+1; + $sStyle=" style='width:".(floor(100/$iNumCol))."%' "; + // Header for info + $sOutput .= "<table class='normal'><tr><td class='heading' $sStyle>".KernelTools::tra($aPrincipalField["name"])."</td>"; + foreach($aInfo as $iInfo => $sHeader) { + $sOutput .= "<td class='heading' $sStyle >".KernelTools::tra($sHeader)."</td>"; + } + $sOutput .= "</tr>"; + } + $iCounter=1; + foreach($aData as $aPage) { + $sClass=($iCounter%2)?"odd":"even"; + if (!$aInfo) { + $sOutput .= "*((".$aPage[$aPrincipalField["field"]]."))\n"; + } else { + $sOutput .= "<tr><td class='$sClass'>((".$aPage[$aPrincipalField["field"]]."))</td>"; + foreach($aInfo as $sInfo) { + if (isset($aPage[$sInfo])) { + $sOutput .= "<td class='$sClass'>".$aPage[$sInfo]."</td>"; + } + } + } + $iCounter++; + } + if ($aInfo) { + $sOutput .= "</table>"; + } + return $sOutput; + } + }
\ No newline at end of file |
