/** * Contruct controller and execute specific action * * @param Request $request * @return null * @throws ControllerDnxError * @throws InvalidControllerActionError */ function execute_action($request) { $controller_name = $request->getController(); // we'll use this a lot $use_controller = use_controller($controller_name, $request->getModule()); if (is_error($use_controller)) { return $use_controller; } // if $controller_class = get_controller_class($controller_name); if (!class_exists($controller_class)) { use_error('ControllerDnxError'); return new ControllerDnxError($controller_name); } // if $controller = new $controller_class($request); if (!instance_of($controller, 'Controller')) { use_error('ControllerDnxError'); return new ControllerDnxError($controller_name); } // if return $controller->execute($request->getAction()); }
<?php // Interit administration controller use_controller('admin', SYSTEM_MODULE); /** * Modules administration controller * * @package activeCollab.modules.system * @subpackage controllers */ class ModulesAdminController extends AdminController { /** * Name of this controller (underscore) * * @var string */ var $controller_name = 'modules_admin'; /** * Selected module * * @var Module */ var $active_module; /** * Constructor * * @param Request $request * @return ModulesAdminController */ function __construct($request)
<?php // We need projects controller use_controller('application', SYSTEM_MODULE); /** * Incoming Mail Frontend controller * * @package activeCollab.modules.incoming_mail * @subpackage controllers */ class IncomingMailFrontendController extends ApplicationController { /** * Active module * * @var string */ var $active_module = INCOMING_MAIL_MODULE; /** * Controller name * * @var string */ var $controller_name = 'incoming_mail_frontend'; /** * Active incoming mail * * @var IncomingMail */ var $active_mail; /**
<?php // Use assignments controller use_controller('assignments', RESOURCES_MODULE); /** * Assignment filters controler * * @package activeCollab.modules.resources * @subpackage controllers */ class AssignmentFiltersController extends AssignmentsController { /** * PHP4 friendly controller name * * @var string */ var $controller_name = 'assignment_filters'; /** * Construct filters controller * * @param Request $request * @return AssignmentFiltersController */ function __construct($request) { parent::__construct($request); if ($this->active_filter->isLoaded() && $this->request->getAction() != 'add') { $this->wireframe->addBreadCrumb($this->active_filter->getName(), $this->active_filter->getUrl()); } // if
<?php // We need MobileAccessProjectController use_controller('mobile_access_project', MOBILE_ACCESS_MODULE); /** * Mobile Access Project Tickets controller * * @package activeCollab.modules.mobile_access * @subpackage controllers */ class MobileAccessProjectTicketsController extends MobileAccessProjectController { /** * Controller name * * @var string */ var $controller_name = 'mobile_access_project_tickets'; /** * Active ticket (if exists) * * @var Ticket */ var $active_ticket; /** * Constructor * * @param Request $request * @return MobileAccessController extends ApplicationController */ function __construct($request)
<?php // Extend modules admin use_controller('modules_admin', SYSTEM_MODULE); /** * Status module admin controller * * @package activeCollab.modules.status * @subpackage controllers */ class StatusModuleAdminController extends ModulesAdminController { /** * Controller name * * @var string */ var $controller_name = 'status_module_admin'; /** * Show module details page * * @param void * @return null */ function module() { $this->smarty->assign('roles', Roles::findSystemRoles()); } }
<?php // Extend company profile use_controller('companies', SYSTEM_MODULE); /** * Company invoices controller implementation * * @package activeCollab.modules.invoicing * @subpackage controllers */ class CompanyInvoicesController extends CompaniesController { /** * Controller name * * @var string */ var $controller_name = 'company_invoices'; /** * Selected invoice * * @var Invoice */ var $active_invoice; /** * Construct company invoices controller * * @param Request $request * @return CompanyInvoicesController */ function __construct($request)
<?php // Build on top of administration controller use_controller('settings', SYSTEM_MODULE); /** * Manage email settings * * @package activeCollab.modules.system * @subpackage controllers */ class EmailTemplatesAdminController extends SettingsController { /** * Controller name * * @var string */ var $controller_name = 'email_templates_admin'; /** * Selected email template * * @var EmailTemplate */ var $active_template; /** * Constructor * * @param Request $request * @return EmailTemplatesAdminController */ function __construct($request)
<?php // Extend timetracking controller use_controller('timetracking', TIMETRACKING_MODULE); /** * Handle project time report related actions * * @package activeCollab.modules.timetracking * @subpackage controllers */ class ProjectTimeReportsController extends TimetrackingController { /** * Controller name * * @var string */ var $controller_name = 'project_time_reports'; /** * Selected report * * @var TimeReport */ var $active_report; /** * Contruct time report controller * * @param Request $request * @return ProjectTimeReportsController */ function __construct($request)
<?php use_controller('pages', PAGES_MODULE); /** * Page versions controller * * @package activeCollab.modules.pages * @subpackage controllers */ class PageVersionsController extends PagesController { /** * Active module * * @var string */ var $active_module = PAGES_MODULE; /** * Selected page version * * @var PageVersion */ var $active_page_version; /** * Construct page versions controller * * @param Request $request * @return PageVersionsController */ function __construct($request) {
<?php // we need AppicationController use_controller('application'); /** * PublicSubmit Public Controller * * @package activeCollab.modules.public_submit * @subpackage controllers */ class PublicSubmitController extends ApplicationController { /** * Controller name * * @var string */ var $controller_name = 'public_submit'; /** * Active project (determined in admin settings) * * @var Project */ var $active_project; /** * Is captcha enabled? * * @var boolean */ var $captcha_enabled = false; /**
<?php // Use people controller use_controller('people', SYSTEM_MODULE); /** * Company profile controller * * @package activeCollab.modules.system * @subpackage controllers */ class CompaniesController extends PeopleController { /** * Controller name * * @var string */ var $controller_name = 'companies'; /** * Name of the parent module * * @var mixed */ var $active_module = SYSTEM_MODULE; /** * Selected company * * @var Company */ var $active_company; /**
<?php // We need DocumentCategoriesController use_controller('document_categories', DOCUMENTS_MODULE); /** * Documents controller * * @package activeCollab.modules.documents * @subpackage controllers */ class DocumentsController extends DocumentCategoriesController { /** * Active module * * @var string */ var $active_module = DOCUMENTS_MODULE; /** * Controller name * * @var string */ var $controller_name = 'documents'; /** * Selected Document * * @var document */ var $active_document; /**
<?php // We need ProjectController use_controller('project', SYSTEM_MODULE); /** * Milestones controller * * @package activeCollab.modules.milestones * @subpackage models */ class MilestonesController extends ProjectController { /** * Active module * * @var string */ var $active_module = MILESTONES_MODULE; /** * Selected milestone * * @var Milestone */ var $active_milestone; /** * Actions available through API * * @var array */ var $api_actions = array('index', 'archive', 'view', 'add', 'edit'); //BOF: task 03 | AD
<?php // we need invoices controller use_controller('invoices', INVOICING_MODULE); /** * Invoices archive controller * * @package activeCollab.modules.invoicing * @subpackage controllers */ class InvoicesArchiveController extends InvoicesController { /** * Name of this controller * * @var string */ var $controller_name = 'invoices_archive'; /** * Construct invoices archive controller * * @param Request $request * @return InvoicesArchiveController */ function __construct($request) { parent::__construct($request); $this->wireframe->addBreadCrumb(lang('Archive'), assemble_url('invoices_archive')); js_assign('invoicing_precision', INVOICE_PRECISION); } // __construct
<?php // we need admin controller use_controller('admin'); /** * Manages source settings * * @package activeCollab.modules.source * @subpackage controllers * */ class SourceAdminController extends AdminController { /** * Controller name * * @var string */ var $controller_name = 'source_admin'; /** * Controller constructor * */ function __construct($request) { parent::__construct($request); require_once SOURCE_MODULE_PATH . '/engines/subversion.class.php'; $this->wireframe->addBreadCrumb(lang('Source Module')); } // __construct /**
<?php // Extends profile controller use_controller('users', SYSTEM_MODULE); /** * User calendar controller * * @package activeCollab.modules.calendar * @subpackage controllers */ class ProfileCalendarController extends UsersController { /** * Profile calendar controller * * @var string */ var $controller_name = 'profile_calendar'; /** * Active module * * @var string */ var $active_module = CALENDAR_MODULE; /** * Constructor * * @param Request $request * @return UsersCalendarController */ function __construct($request)