protected static function getAddressBook(ADALoggableUser $userObj, $user_types_Ar = array(), $result_Ar = array()) { $user_type = $userObj->getType(); $address_book = CDOMElement::create('div', 'id:addressbook_div'); $buttons = CDOMElement::create('div', 'id:buttons_div'); // $users_Ar = array(); // foreach($result as $tester => $users) { // $users_Ar[$tester][$users['tipo']] = array($users['e_mail'], $users['username']); // } $selects = CDOMElement::create('div'); if (in_array(AMA_TYPE_SWITCHER, $user_types_Ar[$user_type])) { $switcher_bt = CDOMElement::create('a', 'id:js_switcher_bt, name:js_switcher_bt'); $switcher_bt->setAttribute('onclick', "showMeHideOthers('js_switcher_sel');"); $switcher_bt->addChild(new CText(translateFN('Switcher'))); $buttons->addChild($switcher_bt); $switcher_sel = CDOMElement::create('select', 'id:js_switcher_sel, name:js_switcher_sel, size:10, class: hidden_element'); $switcher_sel->setAttribute('onchange', 'add_addressee(this);'); foreach ($result_Ar as $tester_name => $user_data_Ar) { $optgroup = CDOMElement::create('optgroup'); $optgroup->setAttribute('label', $tester_name); foreach ($user_data_Ar as $user) { if ($user['tipo'] == AMA_TYPE_SWITCHER) { $option = CDOMElement::create('option', 'value:' . $user['username']); if (isset($user['cognome']) || isset($user['nome'])) { $displayname = $user['cognome'] . ' ' . $user['nome']; } else { $displayname = $user['username']; } $option->addChild(new CText($displayname)); $optgroup->addChild($option); } } $switcher_sel->addChild($optgroup); } $selects->addChild($switcher_sel); } if (in_array(AMA_TYPE_TUTOR, $user_types_Ar[$user_type])) { $practitioner_bt = CDOMElement::create('a', 'id:js_practitioner_bt, name:js_practitioner_bt'); $practitioner_bt->setAttribute('onclick', "showMeHideOthers('js_practitioner_sel');"); $practitioner_bt->addChild(new CText(translateFN('Tutor'))); $buttons->addChild($practitioner_bt); $practitioner_sel = CDOMElement::create('select', 'id:js_practitioner_sel, name: js_practitioner_sel, size:10, class: hidden_element'); $practitioner_sel->setAttribute('onchange', 'add_addressee(this);'); foreach ($result_Ar as $tester_name => $user_data_Ar) { $optgroup = CDOMElement::create('optgroup'); $optgroup->setAttribute('label', $tester_name); foreach ($user_data_Ar as $user) { if ($user['tipo'] == AMA_TYPE_TUTOR) { $option = CDOMElement::create('option', 'value:' . $user['username']); if (isset($user['cognome']) || isset($user['nome'])) { $displayname = $user['cognome'] . ' ' . $user['nome']; } else { $displayname = $user['username']; } $option->addChild(new CText($displayname)); $optgroup->addChild($option); } } $practitioner_sel->addChild($optgroup); } $selects->addChild($practitioner_sel); } if (in_array(AMA_TYPE_STUDENT, $user_types_Ar[$user_type])) { $user_bt = CDOMElement::create('a', 'id:js_user_bt, name:js_user_bt'); $user_bt->setAttribute('onclick', "showMeHideOthers('js_user_sel');"); $user_bt->addChild(new CText(translateFN('Students'))); $buttons->addChild($user_bt); $user_sel = CDOMElement::create('select', 'id:js_user_sel, name: js_user_sel, size:10, class: hidden_element'); $user_sel->setAttribute('onchange', 'add_addressee(this);'); foreach ($result_Ar as $tester => $user_data_Ar) { $optgroup = CDOMElement::create('optgroup'); $optgroup->setAttribute('label', $tester_name); foreach ($user_data_Ar as $user) { /** * @author giorgio 28/apr/2015 * * tutors are students for an ADA_SERVICE_TUTORCOMMUNITY type of course, * so add them to the address book if they're returned in the $result_Ar */ if ($user['tipo'] == AMA_TYPE_STUDENT || $user['tipo'] == AMA_TYPE_TUTOR && $userObj->getType() == AMA_TYPE_TUTOR && !$userObj->isSuper() && $user['id_utente'] != $userObj->getId()) { $option = CDOMElement::create('option', 'value:' . $user['username']); if (isset($user['cognome']) || isset($user['nome'])) { $displayname = $user['cognome'] . ' ' . $user['nome']; } else { $displayname = $user['username']; } $option->addChild(new CText($displayname)); $optgroup->addChild($option); } } $user_sel->addChild($optgroup); } $selects->addChild($user_sel); } $address_book->addChild($buttons); $address_book->addChild($selects); return $address_book; }
/** * removeUserExtraData * * Removes a row from the user extra datas. * * @author giorgio 20/giu/2013 * * @param ADALoggableUser $userObj user for which to delete the row * @param int $extraTableId row id to be deleted * @param string $extraTableClass class of row to be deleted * * @return boolean on error | query result * * @access public */ public static function removeUserExtraData(ADALoggableUser $userObj, $extraTableId = null, $extraTableClass = false) { if ($extraTableId !== null && $extraTableClass !== false) { $user_id = $userObj->getId(); $testers = $userObj->getTesters(); if (!is_array($testers)) { $testers = array(); } if ($user_id == 0) { return FALSE; } foreach ($testers as $tester) { $tester_dh = AMA_DataHandler::instance(MultiPort::getDSN($tester)); $result = $tester_dh->remove_user_extraRow($user_id, $extraTableId, $extraTableClass); } return $result; } else { return false; } }
/** * sets the proper $_SESSION var of userObj and redirects to user home page * * @param ADALoggableUser $userObj user object to be used to set $_SESSION vars * @param boolean $remindMe true if remindme check box has been checked * @param string $language lang selection at login form: language to be set * @param Object $loginProviderObj login provider class used, null if none used */ public static function setSessionAndRedirect($userObj, $remindMe, $language, $loginProviderObj = null, $redirectURL = null) { if ($userObj->getStatus() == ADA_STATUS_REGISTERED) { /** * @author giorgio 12/dic/2013 * when a user sucessfully logs in, regenerate her session id. * this fixes a quite big problem in the 'history_nodi' table */ if (isset($remindMe) && intval($remindMe) > 0) { ini_set('session.cookie_lifetime', 60 * 60 * 24 * ADA_SESSION_LIFE_TIME); // day cookie lifetime } session_regenerate_id(true); $user_default_tester = $userObj->getDefaultTester(); if (!MULTIPROVIDER && $userObj->getType() != AMA_TYPE_ADMIN) { if ($user_default_tester != $GLOBALS['user_provider']) { // if the user is trying to login in a provider // that is not his/her own, // redirect to his/her own provider home page $redirectURL = preg_replace("/(http[s]?:\\/\\/)(\\w+)[.]{1}(\\w+)/", "\$1" . $user_default_tester . ".\$3", $userObj->getHomePage()); header('Location:' . $redirectURL); exit; } } // user is a ADAuser with status set to 0 OR // user is admin, author or switcher whose status is by default = 0 $_SESSION['sess_user_language'] = $language; $_SESSION['sess_id_user'] = $userObj->getId(); $GLOBALS['sess_id_user'] = $userObj->getId(); $_SESSION['sess_id_user_type'] = $userObj->getType(); $GLOBALS['sess_id_user_type'] = $userObj->getType(); $_SESSION['sess_userObj'] = $userObj; /* unset $_SESSION['service_level'] to allow the correct label translatation according to user language */ unset($_SESSION['service_level']); if ($user_default_tester !== NULL) { $_SESSION['sess_selected_tester'] = $user_default_tester; // sets var for non multiprovider environment $GLOBALS['user_provider'] = $user_default_tester; } if (!is_null($loginProviderObj)) { $_SESSION['sess_loginProviderArr']['className'] = get_class($loginProviderObj); $_SESSION['sess_loginProviderArr']['id'] = $loginProviderObj->getID(); $loginProviderObj->addLoginToHistory($userObj->getId()); } if (is_null($redirectURL)) { $redirectURL = $userObj->getHomePage(); } header('Location:' . $redirectURL); exit; } return false; }
public static function getEguidanceTutorForm(ADALoggableUser $tutoredUserObj, $service_infoAr = array(), $form_dataAr = array(), $fill_textareas = FALSE) { $form = CDOMElement::create('form', 'id:eguidance_tutor_form, name: eguidance_tutor_form, action:eguidance_tutor_form.php, method:post'); $area_personal_conditions = CDOMElement::create('div'); $area_personal_conditions->addChild(new CText(EguidanceSession::textLabelForField('area_pc'))); $form->addChild($area_personal_conditions); /* * Fiscal code */ $user_fiscal_code = $tutoredUserObj->getFiscalCode(); if (!is_null($user_fiscal_code)) { $hidden_fc = CDOMElement::create('hidden', 'id:user_fc, name:user_fc'); $hidden_fc->setAttribute('value', $user_fiscal_code); $form->addChild($hidden_fc); $ufc = $user_fiscal_code; } else { $ufc = translateFN("L'utente non ha fornito il codice fiscale"); } if (isset($form_dataAr['is_popup'])) { $hidden_popup = CDOMElement::create('hidden', 'id:is_popup, name:is_popup'); $hidden_popup->setAttribute('value', '1'); $form->addChild($hidden_popup); } /* * Hidden user data */ $user_fullname = $tutoredUserObj->nome . ' ' . $tutoredUserObj->cognome; $user_country = $tutoredUserObj->getCountry(); $user_birthdate = $tutoredUserObj->getBirthDate(); $user_birthcity = $tutoredUserObj->getBirthCity(); $user_birthprovince = $tutoredUserObj->getBirthProvince(); $user_gender = $tutoredUserObj->getGender(); $user_foreign_culture = 'FOREIGN CULTURE'; if (($id = DataValidator::is_uinteger($form_dataAr['id'])) !== FALSE) { $hidden_id_eguidance_session = CDOMElement::create('hidden', 'id:id_eguidance_session, name:id_eguidance_session'); $hidden_id_eguidance_session->setAttribute('value', $id); $form->addChild($hidden_id_eguidance_session); } $hidden_id_utente = CDOMElement::create('hidden', 'id:id_utente, name:id_utente'); $hidden_id_utente->setAttribute('value', $tutoredUserObj->getId()); $hidden_id_istanza_corso = CDOMElement::create('hidden', 'id:id_istanza_corso, name:id_istanza_corso'); $hidden_id_istanza_corso->setAttribute('value', $service_infoAr['id_istanza_corso']); $hidden_event_token = CDOMElement::create('hidden', 'id:event_token, name:event_token'); $hidden_event_token->setAttribute('value', $service_infoAr['event_token']); $hidden_user_fullname = CDOMElement::create('hidden', 'id:user_fullname, name: user_fullname'); $hidden_user_fullname->setAttribute('value', $user_fullname); $hidden_user_country = CDOMElement::create('hidden', 'id:user_country, name:user_country'); $hidden_user_country->setAttribute('value', $user_country); $hidden_service_duration = CDOMElement::create('hidden', 'id:service_duration, name:service_duration'); $hidden_service_duration->setAttribute('value', 10); $hidden_user_birthdate = CDOMElement::create('hidden', 'id:ud_1, name:ud_1'); $hidden_user_birthdate->setAttribute('value', $user_birthdate); $hidden_user_gender = CDOMElement::create('hidden', 'id:ud_2, name:ud_2'); $hidden_user_gender->setAttribute('value', $user_gender); $hidden_user_foreign_culture = CDOMElement::create('hidden', 'id:ud_3, name:ud_3'); $hidden_user_foreign_culture->setAttribute('value', $user_foreign_culture); $hidden_user_birthcity = CDOMElement::create('hidden', 'id:ud_4, name:ud_4'); $hidden_user_birthcity->setAttribute('value', $user_birthcity); $hidden_user_birthprovince = CDOMElement::create('hidden', 'id:ud_5, name:ud_5'); $hidden_user_birthprovince->setAttribute('value', $user_birthprovince); $form->addChild($hidden_id_utente); $form->addChild($hidden_id_istanza_corso); $form->addChild($hidden_event_token); $form->addChild($hidden_user_fullname); $form->addChild($hidden_user_country); $form->addChild($hidden_service_duration); $form->addChild($hidden_user_birthdate); $form->addChild($hidden_user_birthcity); $form->addChild($hidden_user_birthprovince); $form->addChild($hidden_user_gender); $form->addChild($hidden_user_foreign_culture); // $ufc_thead = array(translateFN("Dati utente"),''); // $ufc_tbody = array( // array(translateFN("Codice fiscale dell'utente"), $user_fiscal_code), // array(translateFN("Nome e cognome dell'utente"), $user_ns), // array(translateFN("Nazionalità dell'utente"), $user_country) // ); // $ufc_table = BaseHtmlLib::tableElement('', $ufc_thead, $ufc_tbody); $ufc_table = self::getEguidanceSessionUserDataTable($tutoredUserObj); $form->addChild($ufc_table); /* * Type of e-guidance action */ if (is_array($service_infoAr) && isset($service_infoAr[3])) { $service_level = $service_infoAr[3]; } if ($service_level == 2) { $typeAr = array(1 => EguidanceSession::textLabelForField('sl_1'), 2 => EguidanceSession::textLabelForField('sl_2')); } else { if ($service_level == 3) { $typeAr = array(3 => EguidanceSession::textLabelForField('sl_3'), 4 => EguidanceSession::textLabelForField('sl_4')); } else { if ($service_level == 4) { $typeAr = array(5 => EguidanceSession::textLabelForField('sl_5'), 6 => EguidanceSession::textLabelForField('sl_6'), 7 => EguidanceSession::textLabelForField('sl_7')); } else { $typeAr = array(); } } } //FIXME: qui passo $form_dataAr['tipo_eguidance'], ma dovrei passare $form_dataAr['type_of_guidance'] $toe_thead = array(EguidanceSession::textLabelForField('toe_title')); $toe_tbody = array(array(BaseHtmlLib::selectElement2('id:type_of_guidance, name:type_of_guidance', $typeAr, $form_dataAr['tipo_eguidance']))); $toe_table = BaseHtmlLib::tableElement('', $toe_thead, $toe_tbody); $form->addChild($toe_table); $scoresAr = EguidanceSession::scoresArray(); //$textarea_default_text = translateFN('Inserire i vostri commenti'); /* * User's features */ // Critical socio anagraphic data $ud_1_select = BaseHtmlLib::selectElement2('id:ud_1, name:ud_1', $scoresAr, $form_dataAr['ud_1']); $ud_2_select = BaseHtmlLib::selectElement2('id:ud_2, name:ud_2', $scoresAr, $form_dataAr['ud_2']); $ud_3_select = BaseHtmlLib::selectElement2('id:ud_3, name:ud_3', $scoresAr, $form_dataAr['ud_3']); $ud_4_select = BaseHtmlLib::selectElement2('id:ud_4, name:ud_4', $scoresAr, $form_dataAr['ud_4']); $ud_5_select = BaseHtmlLib::selectElement2('id:ud_5, name:ud_5', $scoresAr, $form_dataAr['ud_5']); $csa_thead = array(EguidanceSession::textLabelForField('ud_title'), ''); $csa_tbody = array(array(EguidanceSession::textLabelForField('ud_1'), $ud_1_select), array(EguidanceSession::textLabelForField('ud_4'), $ud_4_select), array(EguidanceSession::textLabelForField('ud_5'), $ud_5_select), array(EguidanceSession::textLabelForField('ud_2'), $ud_2_select), array(EguidanceSession::textLabelForField('ud_3'), $ud_3_select)); $csa_table = BaseHtmlLib::tableElement('', $csa_thead, $csa_tbody); $form->addChild($csa_table); $label = EguidanceSession::textLabelForField('ud_comments'); $form->addChild(self::displayTextAreaForTutorComments('ud_comments', $label, $form_dataAr, $fill_textareas)); // Personal critical items $pcitems_1_select = BaseHtmlLib::selectElement2('id:pc_1, name:pc_1', $scoresAr, $form_dataAr['pc_1']); $pcitems_2_select = BaseHtmlLib::selectElement2('id:pc_2, name:pc_2', $scoresAr, $form_dataAr['pc_2']); $pcitems_3_select = BaseHtmlLib::selectElement2('id:pc_3, name:pc_3', $scoresAr, $form_dataAr['pc_3']); $pcitems_4_select = BaseHtmlLib::selectElement2('id:pc_4, name:pc_4', $scoresAr, $form_dataAr['pc_4']); $pcitems_5_select = BaseHtmlLib::selectElement2('id:pc_5, name:pc_5', $scoresAr, $form_dataAr['pc_5']); $pcitems_6_select = BaseHtmlLib::selectElement2('id:pc_6, name:pc_6', $scoresAr, $form_dataAr['pc_6']); $pcitems_thead = array(EguidanceSession::textLabelForField('pc_title'), translateFN('Select a score')); $pcitems_tbody = array(array(EguidanceSession::textLabelForField('pc_1'), $pcitems_1_select), array(EguidanceSession::textLabelForField('pc_2'), $pcitems_2_select), array(EguidanceSession::textLabelForField('pc_3'), $pcitems_3_select), array(EguidanceSession::textLabelForField('pc_4'), $pcitems_4_select), array(EguidanceSession::textLabelForField('pc_5'), $pcitems_5_select), array(EguidanceSession::textLabelForField('pc_6'), $pcitems_6_select)); $pcitems_table = BaseHtmlLib::tableElement('', $pcitems_thead, $pcitems_tbody); $form->addChild($pcitems_table); $label = EguidanceSession::textLabelForField('pc_comments'); $form->addChild(self::displayTextAreaForTutorComments('pc_comments', $label, $form_dataAr, $fill_textareas)); $area_of_the_job = CDOMElement::create('div'); $area_of_the_job->addChild(new CText(EguidanceSession::textLabelForField('area_pp'))); $form->addChild($area_of_the_job); /* * Bonds/availability */ $ba_1_select = BaseHtmlLib::selectElement2('id:ba_1, name:ba_1', $scoresAr, $form_dataAr['ba_1']); $ba_2_select = BaseHtmlLib::selectElement2('id:ba_2, name:ba_2', $scoresAr, $form_dataAr['ba_2']); $ba_3_select = BaseHtmlLib::selectElement2('id:ba_3, name:ba_3', $scoresAr, $form_dataAr['ba_3']); $ba_4_select = BaseHtmlLib::selectElement2('id:ba_4, name:ba_4', $scoresAr, $form_dataAr['ba_4']); $ba_thead = array(EguidanceSession::textLabelForField('ba_title'), translateFN('Select a score')); $ba_tbody = array(array(EguidanceSession::textLabelForField('ba_1'), $ba_1_select), array(EguidanceSession::textLabelForField('ba_2'), $ba_2_select), array(EguidanceSession::textLabelForField('ba_3'), $ba_3_select), array(EguidanceSession::textLabelForField('ba_4'), $ba_4_select)); $ba_table = BaseHtmlLib::tableElement('', $ba_thead, $ba_tbody); $form->addChild($ba_table); $label = EguidanceSession::textLabelForField('ba_comments'); $form->addChild(self::displayTextAreaForTutorComments('ba_comments', $label, $form_dataAr, $fill_textareas)); /* * Training */ $t_1_select = BaseHtmlLib::selectElement2('id:t_1, name:t_1', $scoresAr, $form_dataAr['t_1']); $t_2_select = BaseHtmlLib::selectElement2('id:t_2, name:t_2', $scoresAr, $form_dataAr['t_2']); $t_3_select = BaseHtmlLib::selectElement2('id:t_3, name:t_3', $scoresAr, $form_dataAr['t_3']); $t_4_select = BaseHtmlLib::selectElement2('id:t_4, name:t_4', $scoresAr, $form_dataAr['t_4']); $t_thead = array(EguidanceSession::textLabelForField('t_title'), translateFN('Select a score')); $t_tbody = array(array(EguidanceSession::textLabelForField('t_1'), $t_1_select), array(EguidanceSession::textLabelForField('t_2'), $t_2_select), array(EguidanceSession::textLabelForField('t_3'), $t_3_select), array(EguidanceSession::textLabelForField('t_4'), $t_4_select)); $t_table = BaseHtmlLib::tableElement('', $t_thead, $t_tbody); $form->addChild($t_table); $label = EguidanceSession::textLabelForField('t_comments'); $form->addChild(self::displayTextAreaForTutorComments('t_comments', $label, $form_dataAr, $fill_textareas)); /* * Professional experiences */ $pe_1_select = BaseHtmlLib::selectElement2('id:pe_1, name:pe_1', $scoresAr, $form_dataAr['pe_1']); $pe_2_select = BaseHtmlLib::selectElement2('id:pe_2, name:pe_2', $scoresAr, $form_dataAr['pe_2']); $pe_3_select = BaseHtmlLib::selectElement2('id:pe_3, name:pe_3', $scoresAr, $form_dataAr['pe_3']); $pe_thead = array(EguidanceSession::textLabelForField('pe_title'), translateFN('Select a score')); $pe_tbody = array(array(EguidanceSession::textLabelForField('pe_1'), $pe_1_select), array(EguidanceSession::textLabelForField('pe_2'), $pe_2_select), array(EguidanceSession::textLabelForField('pe_3'), $pe_3_select)); $pe_table = BaseHtmlLib::tableElement('', $pe_thead, $pe_tbody); $form->addChild($pe_table); $label = EguidanceSession::textLabelForField('pe_comments'); $form->addChild(self::displayTextAreaForTutorComments('pe_comments', $label, $form_dataAr, $fill_textareas)); /* * Critical issues ... */ $ci_1_select = BaseHtmlLib::selectElement2('id:ci_1, name:ci_1', $scoresAr, $form_dataAr['ci_1']); $ci_2_select = BaseHtmlLib::selectElement2('id:ci_2, name:ci_2', $scoresAr, $form_dataAr['ci_2']); $ci_3_select = BaseHtmlLib::selectElement2('id:ci_3, name:ci_3', $scoresAr, $form_dataAr['ci_3']); $ci_4_select = BaseHtmlLib::selectElement2('id:ci_4, name:ci_4', $scoresAr, $form_dataAr['ci_4']); $ci_thead = array(EguidanceSession::textLabelForField('ci_title'), translateFN('Select a score')); $ci_tbody = array(array(EguidanceSession::textLabelForField('ci_1'), $ci_1_select), array(EguidanceSession::textLabelForField('ci_2'), $ci_2_select), array(EguidanceSession::textLabelForField('ci_3'), $ci_3_select), array(EguidanceSession::textLabelForField('ci_4'), $ci_4_select)); $ci_table = BaseHtmlLib::tableElement('', $ci_thead, $ci_tbody); $form->addChild($ci_table); $label = EguidanceSession::textLabelForField('ci_comments'); $form->addChild(self::displayTextAreaForTutorComments('ci_comments', $label, $form_dataAr, $fill_textareas)); /* * Motivazione + Other particular comments */ $m_1_select = BaseHtmlLib::selectElement2('id:m_1, name:m_1', $scoresAr, $form_dataAr['m_1']); $m_2_select = BaseHtmlLib::selectElement2('id:m_2, name:m_2', $scoresAr, $form_dataAr['m_2']); $m_thead = array(EguidanceSession::textLabelForField('m_title'), translateFN('Select a score')); $m_tbody = array(array(EguidanceSession::textLabelForField('m_1'), $m_1_select), array(EguidanceSession::textLabelForField('m_2'), $m_2_select)); $m_table = BaseHtmlLib::tableElement('', $m_thead, $m_tbody); $form->addChild($m_table); $label = EguidanceSession::textLabelForField('m_comments'); $form->addChild(self::displayTextAreaForTutorComments('m_comments', $label, $form_dataAr, $fill_textareas)); $label = EguidanceSession::textLabelForField('other_comments'); $form->addChild(self::displayTextAreaForTutorComments('other_comments', $label, $form_dataAr, $fill_textareas)); /* * Form buttons */ $buttons = CDOMElement::create('div', 'id:buttons, name:buttons'); $submit = CDOMElement::create('submit', 'id:submit, name:submit'); $submit->setAttribute('value', translateFN('Save')); // $reset = CDOMElement::create('reset'); $buttons->addChild($submit); // $buttons->addChild($reset); $form->addChild($buttons); return $form; }