<?php /* * @copyright Copyright (C) 2005-2010 Keyboard Monkeys Ltd. http://www.kb-m.com * @license http://creativecommons.org/licenses/BSD/ BSD License * @author Keyboard Monkeys Ltd. * @since CommunityID 0.9 * @package CommunityID * @packager Keyboard Monkeys */ abstract class Stats_Model_Report { const STATS_PLUGIN_DIR = '/plugins/stats'; protected $_controllerAction; protected $view; public abstract function getTitle(); public abstract function getPriority(); public abstract function setTemplateVars(); public function renderGraph() {} public function setView(Zend_View $view) { $this->view = $view; } public function setControllerAction(CommunityID_Controller_Action $controllerAction) { $this->_controllerAction = $controllerAction; } public function getIdentifier() { return md5($this->getTitle()); } public function getClassName() { return get_class($this); } public static function getReportInstance($reportName) { $statPath = APP_DIR . self::STATS_PLUGIN_DIR . "/$reportName.php"; if (Zend_Registry::get('config')->environment->production) { $includeResult = @include $statPath; } else { $includeResult = include $statPath; } if (!$includeResult) { throw new Monkeys_AccessDeniedException(); Zend_Registry::get('logger')->log("Unable to open Stats plugin: $statPath", Zend_Log::WARN); continue; } $statPlugin = new $reportName(); return $statPlugin; } }