/** * Prepares the membership page * * @param array args */ public function get_create(array $args) { if (!strlen($args['provider_name'])) { $url = com_meego_devprogram_utils::get_url('index', $args); $this->mvc->head->relocate($url); } // require login $redirect = com_meego_devprogram_utils::get_url('my_membership_create', $args); $user = com_meego_devprogram_utils::require_login($redirect); // @todo: sanity check $providers = com_meego_devprogram_provutils::get_providers(array('name' => $args['provider_name'])); $provider = $providers[0]; if (!is_object($provider)) { throw new InvalidArgumentException("Provider: {$args['provider_name']} con not be found"); } $this->data['provider'] = $provider; $this->data['person'] = $user->person; // check if the user has applied for the program and // display a warning if yes $this->data['mymemberships'] = com_meego_devprogram_membutils::get_memberships_of_current_user($provider->id); if (!count($this->data['mymemberships'])) { // we move on if user has not member yet parent::get_create($args); } }
/** * Prepares the create form */ public function get_create(array $args) { // require login $redirect = com_meego_devprogram_utils::get_url('provider_create', $args); $user = com_meego_devprogram_utils::require_login($redirect); parent::get_create($args); }
/** * Prepares the application page * * @param array args */ public function get_create(array $args) { if (!strlen($args['program_name'])) { $url = com_meego_devprogram_utils::get_url('index', $args); $this->mvc->head->relocate($url); } // require login $redirect = com_meego_devprogram_utils::get_url('my_application_create', $args); $user = com_meego_devprogram_utils::require_login($redirect); // @todo: sanity check $programs = com_meego_devprogram_progutils::get_programs(array('name' => $args['program_name'])); $program = $programs[0]; if (!is_object($program)) { throw new InvalidArgumentException("Program: {$args['program_name']} con not be found"); } $this->data['program'] = $program; // check if the user has applied for the program and // display a warning if yes // in case of multiple applications we only refer to the 1st $this->data['myapps'] = com_meego_devprogram_apputils::get_applications_of_current_user($program->id); $now = new DateTime(); if ($program->duedate >= $now && (!count($this->data['myapps']) || $program->multiple)) { // we move on if user has not applied or // the program accepts multiple entries from the same person parent::get_create($args); } // load the text limiter js files $this->mvc->head->add_jsfile(MIDGARDMVC_STATIC_URL . '/' . $this->component . '/js/textLimit.js'); $this->mvc->head->add_jsfile(MIDGARDMVC_STATIC_URL . '/' . $this->component . '/js/limiter_for_applications.js'); }