123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869 |
- <?php
- if (!defined('entry') || !entry) {
- die('Not a valid page');
- }
- /* ===========================
-
- gelato CMS - A PHP based tumblelog CMS
- development version
- http://www.gelatocms.com/
-
- gelato CMS is a free software licensed under the GPL 2.0
- Copyright (C) 2007 by Pedro Santana <pecesama at gmail dot com>
-
- =========================== */
- ?>
- <?php
- class plugin
- {
- public $actions = array();
- public $exists = array();
-
- public function call($name)
- {
- if (!$this->exists($name)) {
- return false;
- }
-
- $index = 0;
-
- foreach ($GLOBALS['plugins::$instances'] as $plugin) {
- if (array_key_exists($index, $this->actions[$name])) {
- $action = $this->actions[$name][$index][1];
- if (is_callable(array($plugin, $action))) {
- $plugin->$action();
- $index++;
- }
- }
- }
- }
-
- public function exists($name)
- {
- if (isset($this->exists[$name])) {
- return $this->exists[$name];
- }
-
- foreach ($GLOBALS['plugins::$instances'] as $plugin) {
- if (array_key_exists($name, $this->actions)) {
- if (is_callable(array($plugin, $this->actions[$name][0][1]))) {
- return $this->exists[$name] = true;
- }
- }
- }
-
- return $this->exists[$name] = false;
- }
-
- //I really hate you PHP4's OOP implementation
- public function &instance()
- {
- static $instance;
- if (!isset($instance)) {
- $instance = new plugin();
- }
- return $instance;
- }
- }
- ?>
|