function defineHandlers() { // EventsManager::listen('on_homescreen_widget_types', 'on_homescreen_widget_types'); EventsManager::listen('on_reports_panel', 'on_reports_panel'); EventsManager::listen('on_project_overview_sidebars', 'on_project_overview_sidebars'); EventsManager::listen('on_before_object_validation', 'on_before_object_validation'); EventsManager::listen('on_after_object_save', 'on_after_object_save'); EventsManager::listen('on_object_inspector', 'on_object_inspector'); }
/** * Define handlers */ function defineHandlers() { EventsManager::listen('on_inline_tabs', 'on_inline_tabs'); EventsManager::listen('on_admin_panel', 'on_admin_panel'); EventsManager::listen('on_object_options', 'on_object_options'); //EventsManager::listen('on_frequently', 'on_frequently'); //EventsManager::listen('on_hourly', 'on_hourly'); //EventsManager::listen('on_daily', 'on_daily'); }
/** * Define event handlers * * @param EventsManager $events * @return null */ function defineHandlers(&$events) { $events->listen('on_get_project_object_types', 'on_get_project_object_types'); $events->listen('on_project_tabs', 'on_project_tabs'); $events->listen('on_quick_add', 'on_quick_add'); $events->listen('on_build_menu', 'on_build_menu'); $events->listen('on_project_export', 'on_project_export'); $events->listen('on_user_cleanup', 'on_user_cleanup'); $events->listen('on_project_permissions', 'on_project_permissions'); $events->listen('on_system_permissions', 'on_system_permissions'); }
/** * Define event handlers * * @param EventsManager $events * @return null */ function defineHandlers(&$events) { $events->listen(array('on_get_project_object_types', 'on_get_completable_project_object_types', 'on_get_day_project_object_types'), 'register_milestone_type'); $events->listen('on_project_tabs', 'on_project_tabs'); $events->listen('on_project_object_options', 'on_project_object_options'); $events->listen('on_project_object_quick_options', 'on_project_object_quick_options'); $events->listen('on_quick_add', 'on_quick_add'); $events->listen('on_project_export', 'on_project_export'); $events->listen('on_project_permissions', 'on_project_permissions'); $events->listen('on_portal_permissions', 'on_portal_permissions'); }
/** * Define event handlers * * @param EventsManager $events * @return null */ function defineHandlers(&$events) { $events->listen('on_admin_sections', 'on_admin_sections'); $events->listen('on_daily', 'on_daily'); $events->listen('on_frequently', 'on_frequently'); $events->listen('on_build_menu', 'on_build_menu'); $events->listen('on_system_permissions', 'on_system_permissions'); $events->listen('on_prepare_email', 'on_prepare_email'); $events->listen('on_object_deleted', 'on_object_deleted'); }
/** * Define event handlers */ function defineHandlers() { /* EventsManager::listen('on_project_created', 'on_project_created'); EventsManager::listen('on_project_deleted', 'on_project_deleted'); */ EventsManager::listen('on_object_inserted', 'on_object_inserted'); EventsManager::listen('on_object_updated', 'on_object_updated'); EventsManager::listen('on_object_deleted', 'on_object_deleted'); EventsManager::listen('on_object_opened', 'on_object_opened'); EventsManager::listen('on_object_completed', 'on_object_completed'); }
/** * Define event handlers * * @param EventsManager $events * @return null */ function defineHandlers(&$events) { $events->listen('on_shutdown', 'on_shutdown'); $events->listen(array('on_object_inserted', 'on_object_deleted', 'on_project_object_opened', 'on_project_object_completed', 'on_project_object_trashed', 'on_project_object_restored'), 'project_task_status'); $events->listen('on_before_object_insert', 'on_before_object_insert'); $events->listen('on_before_object_update', 'on_before_object_update'); $events->listen('on_project_object_ready', 'on_project_object_ready'); $events->listen('on_project_object_completed', 'on_project_object_completed'); $events->listen('on_project_object_quick_options', 'on_project_object_quick_options'); $events->listen('on_project_object_opened', 'on_project_object_opened'); $events->listen('on_project_export', 'on_project_export'); $events->listen('on_project_overview_sidebars', 'on_project_overview_sidebars'); $events->listen('on_user_cleanup', 'on_user_cleanup'); $events->listen('on_build_menu', 'on_build_menu'); $events->listen('on_settings_sections', 'on_settings_sections'); $events->listen('on_admin_sections', 'on_admin_sections'); $events->listen('on_email_templates', 'on_email_templates'); $events->listen('on_daily', 'on_daily'); $events->listen('on_hourly', 'on_hourly'); $events->listen('on_system_permissions', 'on_system_permissions'); $events->listen('on_dashboard_sections', 'on_dashboard_sections'); }
/** * Define event handlers * * @param EventsManager $events * @return null */ function defineHandlers(&$events) { $events->listen('on_get_project_object_types', 'on_get_project_object_types'); $events->listen('on_project_tabs', 'on_project_tabs'); $events->listen('on_milestone_objects', 'on_milestone_objects'); $events->listen('on_milestone_objects_by_visibility', 'on_milestone_objects_by_visibility'); $events->listen('on_portal_milestone_objects', 'on_portal_milestone_objects'); $events->listen('on_milestone_add_links', 'on_milestone_add_links'); $events->listen('on_portal_milestone_add_links', 'on_portal_milestone_add_links'); $events->listen('on_email_templates', 'on_email_templates'); $events->listen('on_project_object_ready', 'on_project_object_ready'); $events->listen('on_project_object_options', 'on_project_object_options'); $events->listen('on_quick_add', 'on_quick_add'); $events->listen('on_master_categories', 'on_master_categories'); $events->listen('on_project_export', 'on_project_export'); $events->listen('on_user_cleanup', 'on_user_cleanup'); $events->listen('on_project_permissions', 'on_project_permissions'); $events->listen('on_portal_permissions', 'on_portal_permissions'); $events->listen('on_comment_added', 'on_comment_added'); $events->listen('on_comment_deleted', 'on_comment_deleted'); $events->listen('on_project_object_quick_options', 'on_project_object_quick_options'); $events->listen('on_portal_object_quick_options', 'on_portal_object_quick_options'); }
/** * Define event handlers * * @param EventsManager $events * @return null */ function defineHandlers(&$events) { $events->listen('on_get_project_object_types', 'on_get_project_object_types'); $events->listen('on_project_tabs', 'on_project_tabs'); $events->listen('on_new_revision', 'on_new_revision'); $events->listen('on_email_templates', 'on_email_templates'); $events->listen('on_milestone_objects', 'on_milestone_objects'); $events->listen('on_milestone_objects_by_visibility', 'on_milestone_objects_by_visibility'); $events->listen('on_project_object_ready', 'on_project_object_ready'); $events->listen('on_quick_add', 'on_quick_add'); $events->listen('on_milestone_add_links', 'on_milestone_add_links'); $events->listen('on_project_export', 'on_project_export'); $events->listen('on_project_permissions', 'on_project_permissions'); $events->listen('on_master_categories', 'on_master_categories'); $events->listen('on_project_object_options', 'on_project_object_options'); $events->listen('on_project_object_quick_options', 'on_project_object_quick_options'); }
/** * Define event handlers * * @param EventsManager $events * @return null */ function defineHandlers(&$events) { //$events->listen('on_project_options', 'on_project_options'); $events->listen('on_project_tabs', 'on_project_tabs'); }
/** * Define event handlers * * @param EventsManager $events * @return null */ function defineHandlers(&$events) { $events->listen('on_build_menu', 'on_build_menu'); $events->listen('on_project_tabs', 'on_project_tabs'); $events->listen('on_user_options', 'on_user_options'); }
/** * Define event handlers * * @param EventsManager $events * @return null */ function defineHandlers(&$events) { $events->listen('on_build_menu', 'on_build_menu'); $events->listen('on_system_permissions', 'on_system_permissions'); }
function defineHandlers() { EventsManager::listen('on_milestone_sections', 'on_milestone_sections'); }
/** * Define event handlers * * @param EventsManager $events * @return null */ function defineHandlers(&$events) { $events->listen('on_admin_sections', 'on_admin_sections'); $events->listen('on_daily', 'on_daily'); }
/** * Define event handlers * * @param EventsManager $events * @return null */ function defineHandlers(&$events) { $events->listen('on_get_project_object_types', 'on_get_project_object_types'); $events->listen('on_get_completable_project_object_types', 'on_get_completable_project_object_types'); $events->listen('on_email_templates', 'on_email_templates'); $events->listen('on_comment_added', 'on_comment_added'); $events->listen('on_comment_deleted', 'on_comment_deleted'); $events->listen('on_project_object_copied', 'on_project_object_copied'); $events->listen('on_project_object_moved', 'on_project_object_moved'); $events->listen('on_project_object_reassigned', 'on_project_object_reassigned'); $events->listen('on_project_user_removed', 'on_project_user_removed'); $events->listen('on_object_deleted', 'on_object_deleted'); $events->listen('on_system_permissions', 'on_system_permissions'); $events->listen('on_dashboard_important_section', 'on_dashboard_important_section'); }
function defineHandlers() { EventsManager::listen('on_object_inspector', 'on_object_inspector'); }
/** * Define event handlers * * @param EventsManager $events * @return null */ function defineHandlers(&$events) { $events->listen('on_get_project_object_types', 'on_get_project_object_types'); $events->listen('on_project_tabs', 'on_project_tabs'); $events->listen('on_milestone_objects', 'on_milestone_objects'); $events->listen('on_milestone_objects_by_visibility', 'on_milestone_objects_by_visibility'); $events->listen('on_project_object_opened', 'on_project_object_opened'); $events->listen('on_project_object_completed', 'on_project_object_completed'); $events->listen('on_object_inserted', 'on_object_inserted'); $events->listen('on_project_object_trashed', 'on_project_object_trashed'); $events->listen('on_project_object_restored', 'on_project_object_restored'); $events->listen('on_quick_add', 'on_quick_add'); $events->listen('on_milestone_add_links', 'on_milestone_add_links'); $events->listen('on_project_export', 'on_project_export'); $events->listen('on_copy_project_items', 'on_copy_project_items'); $events->listen('on_project_permissions', 'on_project_permissions'); $events->listen('on_get_completable_project_object_types', 'on_get_completable_project_object_types'); }
/** * Define event handlers * * @param EventsManager $events * @return null */ function defineHandlers(&$events) { $events->listen('on_project_tabs', 'on_project_tabs'); $events->listen('on_project_permissions', 'on_project_permissions'); $events->listen('on_portal_permissions', 'on_portal_permissions'); $events->listen('on_project_object_options', 'on_project_object_options'); $events->listen('on_project_object_quick_options', 'on_project_object_quick_options'); $events->listen('on_portal_object_quick_options', 'on_portal_object_quick_options'); $events->listen('on_get_project_object_types', 'on_get_project_object_types'); $events->listen('on_hourly', 'on_hourly'); $events->listen('on_daily', 'on_daily'); $events->listen('on_frequently', 'on_frequently'); $events->listen('on_admin_sections', 'on_admin_sections'); $events->listen('on_object_deleted', 'on_object_deleted'); }
/** * Compiles a class/interface * * @param CompilationContext $compilationContext * @throws CompilerException */ public function compile(CompilationContext $compilationContext) { /** * Sets the current object as global class definition */ $compilationContext->classDefinition = $this; /** * Get the global codePrinter */ $codePrinter = $compilationContext->codePrinter; /** * The ZEPHIR_INIT_CLASS defines properties and constants exported by the class */ $codePrinter->output('ZEPHIR_INIT_CLASS(' . $this->getCNamespace() . '_' . $this->getName() . ') {'); $codePrinter->outputBlankLine(); $codePrinter->increaseLevel(); /** * Method entry */ $methods =& $this->methods; if (count($methods)) { $methodEntry = strtolower($this->getCNamespace()) . '_' . strtolower($this->getName()) . '_method_entry'; } else { $methodEntry = 'NULL'; } $namespace = str_replace('\\', '_', $compilationContext->config->get('namespace')); $abstractFlag = '0'; if ($this->isAbstract()) { $abstractFlag = 'ZEND_ACC_EXPLICIT_ABSTRACT_CLASS'; } /** * Register the class with extends + interfaces */ $classExtendsDefinition = null; if ($this->extendsClass) { $classExtendsDefinition = $this->extendsClassDefinition; if (!$classExtendsDefinition->isInternal()) { $classEntry = $classExtendsDefinition->getClassEntry(); } else { $classEntry = $this->getClassEntryByClassName($classExtendsDefinition->getName(), $compilationContext); } if ($this->getType() == 'class') { $codePrinter->output('ZEPHIR_REGISTER_CLASS_EX(' . $this->getNCNamespace() . ', ' . $this->getName() . ', ' . $namespace . ', ' . strtolower($this->getSCName($namespace)) . ', ' . $classEntry . ', ' . $methodEntry . ', ' . $abstractFlag . ');'); $codePrinter->outputBlankLine(); } else { $codePrinter->output('ZEPHIR_REGISTER_INTERFACE_EX(' . $this->getNCNamespace() . ', ' . $this->getName() . ', ' . $namespace . ', ' . strtolower($this->getSCName($namespace)) . ', ' . $classEntry . ', ' . $methodEntry . ');'); $codePrinter->outputBlankLine(); } } else { if ($this->getType() == 'class') { $codePrinter->output('ZEPHIR_REGISTER_CLASS(' . $this->getNCNamespace() . ', ' . $this->getName() . ', ' . $namespace . ', ' . strtolower($this->getSCName($namespace)) . ', ' . $methodEntry . ', ' . $abstractFlag . ');'); } else { $codePrinter->output('ZEPHIR_REGISTER_INTERFACE(' . $this->getNCNamespace() . ', ' . $this->getName() . ', ' . $namespace . ', ' . strtolower($this->getSCName($namespace)) . ', ' . $methodEntry . ');'); } $codePrinter->outputBlankLine(); } $needBreak = true; /** * @todo Remove after removing support for php 5.3 */ $currentClassHref =& $this; $this->eventsManager->listen('setMethod', function (ClassMethod $method) use(&$methods, &$currentClassHref, $compilationContext, &$needBreak) { $needBreak = false; $methods[$method->getName()] = $method; $compilationContext->classDefinition->setMethods($methods); }); /** * Compile properties * @var $property ClassProperty */ foreach ($this->getProperties() as $property) { $docBlock = $property->getDocBlock(); if ($docBlock) { $codePrinter->outputDocBlock($docBlock, true); } $property->compile($compilationContext); $codePrinter->outputBlankLine(); } if (!$needBreak) { $compilationContext->codePrinter->clear(); $currentClassHref->compile($compilationContext); return; } /** * Compile constants * @var $constant ClassConstant */ foreach ($this->getConstants() as $constant) { $docBlock = $constant->getDocBlock(); if ($docBlock) { $codePrinter->outputDocBlock($docBlock, true); } $constant->compile($compilationContext); $codePrinter->outputBlankLine(); } /** * Implemented interfaces */ $interfaces = $this->interfaces; $compiler = $compilationContext->compiler; if (is_array($interfaces)) { $codePrinter->outputBlankLine(true); foreach ($interfaces as $interface) { /** * Try to find the interface */ $classEntry = false; if ($compiler->isInterface($interface)) { $classInterfaceDefinition = $compiler->getClassDefinition($interface); $classEntry = $classInterfaceDefinition->getClassEntry(); } else { if ($compiler->isInternalInterface($interface)) { $classInterfaceDefinition = $compiler->getInternalClassDefinition($interface); $classEntry = $this->getClassEntryByClassName($classInterfaceDefinition->getName(), $compilationContext); } } if (!$classEntry) { if ($compiler->isClass($interface)) { throw new CompilerException("Cannot locate interface " . $interface . " when implementing interfaces on " . $this->getCompleteName() . '. ' . $interface . ' is currently a class', $this->originalNode); } else { throw new CompilerException("Cannot locate interface " . $interface . " when implementing interfaces on " . $this->getCompleteName(), $this->originalNode); } } /** * We don't check if abstract classes implement the methods in their interfaces */ if (!$this->isAbstract()) { $this->checkInterfaceImplements($this, $classInterfaceDefinition); } $codePrinter->output('zend_class_implements(' . $this->getClassEntry() . ' TSRMLS_CC, 1, ' . $classEntry . ');'); } } if (!$this->isAbstract()) { /** * Interfaces in extended classes may have */ if ($classExtendsDefinition) { if (!$classExtendsDefinition->isInternal()) { $interfaces = $classExtendsDefinition->getImplementedInterfaces(); if (is_array($interfaces)) { foreach ($interfaces as $interface) { $classInterfaceDefinition = null; if ($compiler->isInterface($interface)) { $classInterfaceDefinition = $compiler->getClassDefinition($interface); } else { if ($compiler->isInternalInterface($interface)) { $classInterfaceDefinition = $compiler->getInternalClassDefinition($interface); } } if ($classInterfaceDefinition) { $this->checkInterfaceImplements($this, $classInterfaceDefinition); } } } } } } $codePrinter->output('return SUCCESS;'); $codePrinter->outputBlankLine(); $codePrinter->decreaseLevel(); $codePrinter->output('}'); $codePrinter->outputBlankLine(); /** * Compile methods */ foreach ($methods as $method) { $docBlock = $method->getDocBlock(); if ($docBlock) { $codePrinter->outputDocBlock($docBlock); } if ($this->getType() == 'class') { $codePrinter->output('PHP_METHOD(' . $this->getCNamespace() . '_' . $this->getName() . ', ' . $method->getName() . ') {'); $codePrinter->outputBlankLine(); if (!$method->isAbstract()) { $method->compile($compilationContext); } $codePrinter->output('}'); $codePrinter->outputBlankLine(); } else { $codePrinter->output('ZEPHIR_DOC_METHOD(' . $this->getCNamespace() . '_' . $this->getName() . ', ' . $method->getName() . ');'); $codePrinter->outputBlankLine(); } } /** * Create a code printer for the header file */ $codePrinter = new CodePrinter(); $codePrinter->outputBlankLine(); $codePrinter->output('extern zend_class_entry *' . $this->getClassEntry() . ';'); $codePrinter->outputBlankLine(); $codePrinter->output('ZEPHIR_INIT_CLASS(' . $this->getCNamespace() . '_' . $this->getName() . ');'); $codePrinter->outputBlankLine(); if ($this->getType() == 'class') { if (count($methods)) { foreach ($methods as $method) { $codePrinter->output('PHP_METHOD(' . $this->getCNamespace() . '_' . $this->getName() . ', ' . $method->getName() . ');'); } $codePrinter->outputBlankLine(); } } /** * Create argument info */ foreach ($methods as $method) { $parameters = $method->getParameters(); if (count($parameters)) { $codePrinter->output('ZEND_BEGIN_ARG_INFO_EX(arginfo_' . strtolower($this->getCNamespace() . '_' . $this->getName() . '_' . $method->getName()) . ', 0, 0, ' . $method->getNumberOfRequiredParameters() . ')'); foreach ($parameters->getParameters() as $parameter) { switch ($parameter['data-type']) { case 'array': $codePrinter->output("\t" . 'ZEND_ARG_ARRAY_INFO(0, ' . $parameter['name'] . ', ' . (isset($parameter['default']) ? 1 : 0) . ')'); break; case 'variable': if (isset($parameter['cast'])) { switch ($parameter['cast']['type']) { case 'variable': $value = $parameter['cast']['value']; $codePrinter->output("\t" . 'ZEND_ARG_OBJ_INFO(0, ' . $parameter['name'] . ', ' . Utils::escapeClassName($compilationContext->getFullName($value)) . ', ' . (isset($parameter['default']) ? 1 : 0) . ')'); break; default: throw new Exception('Unexpected exception'); } } else { $codePrinter->output("\t" . 'ZEND_ARG_INFO(0, ' . $parameter['name'] . ')'); } break; default: $codePrinter->output("\t" . 'ZEND_ARG_INFO(0, ' . $parameter['name'] . ')'); break; } } $codePrinter->output('ZEND_END_ARG_INFO()'); $codePrinter->outputBlankLine(); } } if (count($methods)) { $codePrinter->output('ZEPHIR_INIT_FUNCS(' . strtolower($this->getCNamespace() . '_' . $this->getName()) . '_method_entry) {'); foreach ($methods as $method) { $parameters = $method->getParameters(); if ($this->getType() == 'class') { if (count($parameters)) { $codePrinter->output("\t" . 'PHP_ME(' . $this->getCNamespace() . '_' . $this->getName() . ', ' . $method->getName() . ', arginfo_' . strtolower($this->getCNamespace() . '_' . $this->getName() . '_' . $method->getName()) . ', ' . $method->getModifiers() . ')'); } else { $codePrinter->output("\t" . 'PHP_ME(' . $this->getCNamespace() . '_' . $this->getName() . ', ' . $method->getName() . ', NULL, ' . $method->getModifiers() . ')'); } } else { if ($method->isStatic()) { if (count($parameters)) { $codePrinter->output("\t" . 'ZEND_FENTRY(' . $method->getName() . ', NULL, arginfo_' . strtolower($this->getCNamespace() . '_' . $this->getName() . '_' . $method->getName()) . ', ZEND_ACC_STATIC|ZEND_ACC_ABSTRACT|ZEND_ACC_PUBLIC)'); } else { $codePrinter->output("\t" . 'ZEND_FENTRY(' . $method->getName() . ', NULL, NULL, ZEND_ACC_STATIC|ZEND_ACC_ABSTRACT|ZEND_ACC_PUBLIC)'); } } else { if (count($parameters)) { $codePrinter->output("\t" . 'PHP_ABSTRACT_ME(' . $this->getCNamespace() . '_' . $this->getName() . ', ' . $method->getName() . ', arginfo_' . strtolower($this->getCNamespace() . '_' . $this->getName() . '_' . $method->getName()) . ')'); } else { $codePrinter->output("\t" . 'PHP_ABSTRACT_ME(' . $this->getCNamespace() . '_' . $this->getName() . ', ' . $method->getName() . ', NULL)'); } } } } $codePrinter->output(' PHP_FE_END'); $codePrinter->output('};'); } $compilationContext->headerPrinter = $codePrinter; }
/** * Define event handlers */ function defineHandlers() { EventsManager::listen('on_main_menu', 'on_main_menu'); EventsManager::listen('on_phone_homescreen', 'on_phone_homescreen'); }
/** * Define event handlers */ function defineHandlers() { EventsManager::listen('on_admin_panel', 'on_admin_panel'); }
function defineHandlers() { EventsManager::listen('on_project_tabs', 'on_project_tabs'); EventsManager::listen('on_available_project_tabs', 'on_available_project_tabs'); }
/** * Define event handlers * * @param EventsManager $events * @return null */ function defineHandlers(&$events) { $events->listen('on_get_project_object_types', 'on_get_project_object_types'); $events->listen('on_get_completable_project_object_types', 'on_get_completable_project_object_types'); $events->listen('on_project_tabs', 'on_project_tabs'); $events->listen('on_milestone_objects', 'on_milestone_objects'); $events->listen('on_milestone_objects_by_visibility', 'on_milestone_objects_by_visibility'); $events->listen('on_portal_milestone_objects', 'on_portal_milestone_objects'); $events->listen('on_milestone_add_links', 'on_milestone_add_links'); $events->listen('on_portal_milestone_add_links', 'on_portal_milestone_add_links'); $events->listen('on_user_cleanup', 'on_user_cleanup'); $events->listen('on_quick_add', 'on_quick_add'); $events->listen('on_master_categories', 'on_master_categories'); $events->listen('on_project_export', 'on_project_export'); $events->listen('on_project_object_moved', 'on_project_object_moved'); $events->listen('on_copy_project_items', 'on_copy_project_items'); $events->listen('on_project_permissions', 'on_project_permissions'); $events->listen('on_portal_permissions', 'on_portal_permissions'); }
/** * Define event handlers * * @param EventsManager $events * @return null */ function defineHandlers(&$events) { $events->listen('on_admin_sections', 'on_admin_sections'); $events->listen('on_build_menu', 'on_build_menu'); $events->listen('on_system_permissions', 'on_system_permissions'); $events->listen('on_company_options', 'on_company_options'); $events->listen('on_user_cleanup', 'on_user_cleanup'); $events->listen('on_time_report_footer_options', 'on_time_report_footer_options'); $events->listen('on_object_deleted', 'on_object_deleted'); $events->listen('on_company_tabs', 'on_company_tabs'); $events->listen('on_project_object_quick_options', 'on_project_object_quick_options'); $events->listen('on_dashboard_important_section', 'on_dashboard_important_section'); }
function defineHandlers() { EventsManager::listen('on_wireframe_updates', 'on_wireframe_updates'); EventsManager::listen('on_status_bar', 'on_status_bar'); }