Files
Piwigo/plugins/grum_plugins_classes-2/common_plugin.class.inc.php
grum 7ebed79726 Asked by rvelices on this topic
http://forum.phpwebgallery.net/viewtopic.php?pid=92097#p92097

A plugin to integrate the menu class
 see test_menu directory

A plugin to show how to use the menu class
 see AMenuManager directory

And common classes needed for the AMenuManager plugin
 see grum_plugins_classes-2 directory

See topic http://forum.phpwebgallery.net/viewtopic.php?pid=92637#p92637 for more
informations 

git-svn-id: http://piwigo.org/svn/trunk@2466 68402e56-0260-453c-a942-63ccdbb3a9ee
2008-08-03 07:48:39 +00:00

210 lines
5.8 KiB
PHP
Executable File

<?php
/* -----------------------------------------------------------------------------
class name: common_plugin
class version: 2.0
date: 2008-07-13
------------------------------------------------------------------------------
Author : Grum
email : grum@grum.dnsalias.com
website : http://photos.grum.dnsalias.com
PWG user : http://forum.phpwebgallery.net/profile.php?id=3706
<< May the Little SpaceFrog be with you ! >>
------------------------------------------------------------------------------
this class provides base functions to manage a plugin
public
ADMINISTRATION RELATED
- manage()
- plugin_admin_menu($menu)
INITIALIZATION RELATED
- init_events()
CONFIG RELATED
- get_filelocation()
- get_admin_link()
- init_config()
- load_config()
- save_config()
- delete_config()
protected
INITIALIZATION RELATED
- set_tables_list($list)
------------------------------------------------------------------------------
:: HISTORY
2.0.0 - 2008-07-13
migrate to piwigo 2.0 ; use of PHP5 classes possibilities
--------------------------------------------------------------------------- */
class common_plugin
{
protected $prefixeTable; // prefixe for tables names
protected $page_link; //link to admin page
protected $filelocation; //files plugin location on server
protected $display_result_ok;
protected $display_result_ko;
protected $plugin_name; // used for interface display
protected $plugin_name_files; // used for files
protected $plugin_admin_file = "plugin_admin";
protected $tables; // list of all tables names used by plugin
public $my_config; // array of config parameters
/* constructor allows to initialize $prefixeTable value */
public function common_plugin($prefixeTable, $filelocation)
{
$this->filelocation=$filelocation;
$this->prefixeTable=$prefixeTable;
$this->page_link="admin.php?page=plugin&section=". basename(dirname($this->filelocation))."/admin/".$this->plugin_admin_file.".php";
//$this->page_link=get_admin_plugin_menu_link($filelocation);
$this->init_config();
$this->display_result_ok="OK";
$this->display_result_ko="KO";
}
public function get_filelocation()
{
return($this->filelocation);
}
public function get_admin_link()
{
return($this->page_link);
}
/* ---------------------------------------------------------------------------
CONFIGURATION RELATED FUNCTIONS
--------------------------------------------------------------------------- */
/* this function initialize var $my_config with default values */
public function init_config()
{
$this->my_config=array();
}
/* load config from CONFIG_TABLE into var $my_config */
public function load_config()
{
$this->init_config();
$sql="SELECT value FROM ".CONFIG_TABLE."
WHERE param = '".$this->plugin_name_files."_config'";
$result=pwg_query($sql);
if($result)
{
$row=mysql_fetch_row($result);
if(is_string($row[0]))
{
$config = unserialize($row[0]);
reset($config);
while (list($key, $val) = each($config))
{ $this->my_config[$key] =$val; }
}
}
}
/* save var $my_config into CONFIG_TABLE */
public function save_config()
{
$sql="REPLACE INTO ".CONFIG_TABLE."
VALUES('".$this->plugin_name_files."_config', '"
.serialize($this->my_config)."', '')";
$result=pwg_query($sql);
if($result)
{ return true; }
else
{ return false; }
}
/* delete config from CONFIG_TABLE */
public function delete_config()
{
$sql="DELETE FROM ".CONFIG_TABLE."
WHERE param='".$this->plugin_name_files."_config'";
$result=pwg_query($sql);
if($result)
{ return true; }
else
{ return false; }
}
/* ---------------------------------------------------------------------------
PLUGIN INITIALIZATION RELATED FUNCTIONS
--------------------------------------------------------------------------- */
/*
initialize tables list used by the plugin
$list = array('table1', 'table2')
$this->tables_list['table1'] = $prefixeTable.$plugin_name.'_table1'
*/
protected function set_tables_list($list)
{
for($i=0;$i<count($list);$i++)
{
$this->tables[$list[$i]]=$this->prefixeTable.$this->plugin_name_files.'_'.$list[$i];
}
}
/* ---------------------------------------------------------------------------
ADMINISTRATOR CONSOLE RELATED FUNCTIONS
--------------------------------------------------------------------------- */
/* add plugin into administration menu */
public function plugin_admin_menu($menu)
{
array_push($menu,
array(
'NAME' => $this->plugin_name,
'URL' => get_admin_plugin_menu_link(dirname($this->filelocation).
'/admin/'.$this->plugin_admin_file.'.php')
));
return $menu;
}
/*
manage plugin integration into piwigo's admin interface
to be surcharged by child's classes
*/
public function manage()
{
}
/*
intialize plugin's events
to be surcharged by child's classes
*/
public function init_events()
{
}
protected function debug($text)
{
global $page;
array_push($page['infos'], "DEBUG MODE: ".$text);
}
/*
manage infos & errors display
*/
protected function display_result($action_msg, $result)
{
global $page;
if($result)
{
array_push($page['infos'], $action_msg);
array_push($page['infos'], $this->display_result_ok);
}
else
{
array_push($page['errors'], $action_msg);
array_push($page['errors'], $this->display_result_ko);
}
}
} //class common_plugin
?>