diff --git a/admin/controllers/install-plugin.php b/admin/controllers/install-plugin.php new file mode 100644 index 00000000..fd6b63bd --- /dev/null +++ b/admin/controllers/install-plugin.php @@ -0,0 +1,27 @@ +role()!=='admin') { + Alert::set('You do not have sufficient permissions to access this page, contact the administrator.'); + Redirect::page('admin', 'dashboard'); +} + +// ============================================================================ +// Functions +// ============================================================================ + +// ============================================================================ +// POST Method +// ============================================================================ + +if( $_SERVER['REQUEST_METHOD'] == 'POST' ) +{ + setSettings($_POST); +} + +// ============================================================================ +// Main +// ============================================================================ diff --git a/admin/views/plugins.php b/admin/views/plugins.php index c1af45cc..d3ee027a 100644 --- a/admin/views/plugins.php +++ b/admin/views/plugins.php @@ -1,2 +1,9 @@

Plugins

Not implemented...

+ +'.$Plugin->title().'

'; + } +?> \ No newline at end of file diff --git a/kernel/abstract/plugin.class.php b/kernel/abstract/plugin.class.php index ff3f857c..06566229 100644 --- a/kernel/abstract/plugin.class.php +++ b/kernel/abstract/plugin.class.php @@ -26,8 +26,11 @@ class Plugin { // Class Name $this->className = $reflector->getName(); + // Initialize dbFields from the children. + $this->init(); + // Init empty database - $this->db = array(); + $this->db = $this->dbFields; $this->fileDb = PATH_PLUGINS_DATABASES.$this->directoryName.'/db.php'; @@ -39,15 +42,21 @@ class Plugin { } } + public function title() + { + //var_dump($this->db); + return $this->db['title']; + } + // Return TRUE if the installation success, otherwise FALSE. public function install() { - if($this->installed()) + if($this->installed()) { return false; + } // Create plugin directory for databases and others files. - if( !mkdir(PATH_PLUGINS_DATABASES.$this->directoryName, 0755, true) ) - return false; + mkdir(PATH_PLUGINS_DATABASES.$this->directoryName, 0755, true); if( !empty($this->dbFields) ) { @@ -60,7 +69,8 @@ class Plugin { public function uninstall() { - + unlink($this->fileDb); + rmdir(PATH_PLUGINS_DATABASES.$this->directoryName); } public function installed() @@ -70,7 +80,8 @@ class Plugin { public function init() { - + // This method is used on childre classes. + // The user can define your own dbFields. } // DEBUG: Ver si se usa diff --git a/kernel/boot/rules/80.plugins.php b/kernel/boot/rules/80.plugins.php index c0a77a2e..e8af7b33 100644 --- a/kernel/boot/rules/80.plugins.php +++ b/kernel/boot/rules/80.plugins.php @@ -5,7 +5,8 @@ $plugins = array( 'onSiteBody'=>array(), 'onSidebar'=>array(), 'onAdminHead'=>array(), - 'onAdminBody'=>array() + 'onAdminBody'=>array(), + 'all'=>array() ); function build_plugins() @@ -30,20 +31,27 @@ function build_plugins() { $Plugin = new $pluginClass; - if($Plugin->onSiteHead()!==false) - array_push($plugins['onSiteHead'], $Plugin); + // All plugins installed and not installed. + array_push($plugins['all'], $Plugin); - if($Plugin->onSiteBody()!==false) - array_push($plugins['onSiteBody'], $Plugin); + // If the plugin installed, then add the plugin on the arrays. + if($Plugin->installed()) + { + if($Plugin->onSiteHead()!==false) + array_push($plugins['onSiteHead'], $Plugin); - if($Plugin->onSidebar()!==false) - array_push($plugins['onSidebar'], $Plugin); + if($Plugin->onSiteBody()!==false) + array_push($plugins['onSiteBody'], $Plugin); - if($Plugin->onAdminHead()!==false) - array_push($plugins['onAdminHead'], $Plugin); + if($Plugin->onSidebar()!==false) + array_push($plugins['onSidebar'], $Plugin); - if($Plugin->onAdminBody()!==false) - array_push($plugins['onAdminBody'], $Plugin); + if($Plugin->onAdminHead()!==false) + array_push($plugins['onAdminHead'], $Plugin); + + if($Plugin->onAdminBody()!==false) + array_push($plugins['onAdminBody'], $Plugin); + } } }