$user_agenda = $userObj->get_agendaFN($sess_id_user); } else { $user_messages = $userObj->error_msg; $user_agenda = translateFN("Nessun'informazione"); } } else { $user_messages = $userObj; $user_agenda = ""; } */ // Who's online // $online_users_listing_mode = 0 (default) : only total numer of users online // $online_users_listing_mode = 1 : username of users // $online_users_listing_mode = 2 : username and email of users $online_users_listing_mode = 2; $online_users = ADALoggableUser::get_online_usersFN($id_course_instance, $online_users_listing_mode); $banner = (include ROOT_DIR . "/include/banner.inc.php"); /* 8. costruzione della pagina HTML */ $Simple_searchLink = "<a href='#'onClick=simpleSearch()>Ricerca semplice</a>"; $content_dataAr = array('form' => $search_form, 'results' => $search_results, 'simpleSearch' => $Simple_searchLink, 'menu' => $menu, 'banner' => $banner, 'course_title' => '<a href="main_index.php">' . $course_title . '</a>', 'user_name' => $user_name, 'user_type' => $user_type, 'level' => $user_level, 'index' => $node_index, 'title' => $node_title, 'author' => $node_author, 'text' => $data['text'], 'link' => $data['link'], 'messages' => $user_messages->getHtml(), 'agenda' => $user_agenda->getHtml(), 'events' => $user_events->getHtml(), 'chat_users' => $online_users); /** * Sends data to the rendering engine */ ARE::render($layout_dataAr, $content_dataAr); ?>
public static function create(ADALoggableUser $userObj) { $user_types_Ar = array(AMA_TYPE_ADMIN => array(AMA_TYPE_TUTOR, AMA_TYPE_AUTHOR, AMA_TYPE_SWITCHER), AMA_TYPE_SWITCHER => array(AMA_TYPE_TUTOR, AMA_TYPE_STUDENT), AMA_TYPE_AUTHOR => array(), AMA_TYPE_TUTOR => array(AMA_TYPE_SWITCHER, AMA_TYPE_STUDENT), AMA_TYPE_STUDENT => array(AMA_TYPE_SWITCHER, AMA_TYPE_TUTOR)); /** * @author giorgio 13/apr/2015 * * if userObj is a superTutor, add AMA_TYPE_TUTOR to the addressbook */ if ($userObj->getType() == AMA_TYPE_TUTOR && $userObj->isSuper()) { $user_types_Ar[AMA_TYPE_TUTOR][] = AMA_TYPE_TUTOR; } $users_Ar = parent::fillAddressBook($userObj, $user_types_Ar); if ($users_Ar == FALSE) { return new CText(''); } return parent::getAddressBook($userObj, $user_types_Ar, $users_Ar); }
* ADA DB or had just been created by the above code */ if (is_object($userObj) && $userObj instanceof ADALoggableUser) { /** * $selectedLanguage is coming from $_GET and is the * user selection in the login form. If the login provider * sets an ADA supported user language, set that instead of * user selection */ if (!is_null($language)) { $selectedLanguage = $language; } // WARNING!! only one set of options is supported on this login provider $hybridLogin->setSuccessfulOptionsID(1); // set session and redirect ADALoggableUser::setSessionAndRedirect($userObj, $remindme, $selectedLanguage, $hybridLogin); } else { // throw an exception $hybridLogin->logOutFromProvider(); throw new Exception(null, 9); } } } catch (Exception $e) { require_once ROOT_DIR . '/browsing/include/browsing_functions.inc.php'; switch ($e->getCode()) { case 0: $message = "Errore sconosciuto."; break; case 1: $message = "Errore di configurazione di Hybridauth."; break;
function get_linksFN($user_level, $id_profile) { //global $dh,$error,$debug; //global $sess_id_course,$sess_id_course_instance,$sess_id_user; $dh = isset($GLOBALS['dh']) ? $GLOBALS['dh'] : null; $error = isset($GLOBALS['error']) ? $GLOBALS['error'] : null; $debug = isset($GLOBALS['debug']) ? $GLOBALS['debug'] : null; $sess_id_course = isset($_SESSION['sess_id_course']) ? $_SESSION['sess_id_course'] : null; $sess_id_course_instance = isset($_SESSION['sess_id_course_instance']) ? $_SESSION['sess_id_course_instance'] : null; $sess_id_user = isset($_SESSION['sess_id_user']) ? $_SESSION['sess_id_user'] : null; // filtro sui link: // verifica se i nodi linkati hanno livello<= a quello dell'utente if (!empty($this->links)) { $linkAr = $this->links; // mydebug(__LINE__,__FILE__,$linkAr); $dataAr = array(); foreach ($linkAr as $id_link) { $linkObj = new Link($id_link); $id_linked_node = $linkObj->to_node_id; $link_meaning = translatefN("Tipo:") . $linkObj->meaning; $node = $id_linked_node; $tempNodeObj = new Node($node, 0); if ($tempNodeObj->full == 1) { $linked_node_name = $tempNodeObj->name; $linked_node_level = $tempNodeObj->level; if ($linked_node_level <= $user_level) { switch ($id_profile) { case AMA_TYPE_STUDENT: default: $visit_count = ADALoggableUser::is_visited_by_userFN($node, $sess_id_course_instance, $sess_id_user); break; case AMA_TYPE_TUTOR: $visit_count = ADALoggableUser::is_visited_by_classFN($node, $sess_id_course_instance, $sess_id_user); break; case AMA_TYPE_AUTHOR: $visit_count = ADALoggableUser::is_visitedFN($node); } if ($visit_count <= 0) { $ok_link = array("<img src=\"img/_linka.png\">", " <a class='node_not_visited' href=view.php?id_node={$node} alt=\"{$link_meaning}\">{$linked_node_name}</a>"); } else { $ok_link = array("<img src=\"img/_linka.png\">", " <a href=view.php?id_node={$node} alt=\"{$link_meaning}\">{$linked_node_name}</a> ({$visit_count})"); } } else { $ok_link = array("<img src=\"img/_linkdis.png\">", " " . $linked_node_name); // $ok_link = array("<img src=\"templates/default/img/_linkdis.png\">",$linked_node_name); } } else { //$ok_link =array(" "," "); $ok_link = array("<img src=\"img/_linkdis.png\" alt=\"{$node}\">", translateFN("nodo non trovato")); } array_push($dataAr, $ok_link); } $dataAr = $this->_removeEmptyElements($dataAr); $t = new Table(); $rules = ''; $style = 'table_link'; $t->initTable('0', 'center', '0', '0', '100%', '', '', '', '', '0', '0', $rules, $style); $t->setTable($dataAr, $caption = "", $summary = translateFN("Indice dei nodi collegati")); return $t->getTable(); } else { return $this->_wrapTextInSpan(translateFN('Nessuno'), 'noitem')->getHtml(); } }
if (is_object($lastTry) && $lastTry instanceof ADALoggableUser) { $loginObj = null; $userObj = $lastTry; } } } } } if (is_object($userObj) && $userObj instanceof ADALoggableUser) { if (isset($_SESSION['subscription_page'])) { $redirectURL = $_SESSION['subscription_page']; unset($_SESSION['subscription_page']); } else { $redirectURL = $navigationHistoryObj->lastModule(); } if (!ADALoggableUser::setSessionAndRedirect($userObj, $p_remindme, $p_selected_language, $loginObj, $redirectURL)) { // Utente non loggato perché stato <> ADA_STATUS_REGISTERED $login_error_message = translateFN("Utente non abilitato"); } } else { if (is_object($userObj) && $userObj instanceof Exception) { $login_error_message = $userObj->getMessage(); if ($userObj->getCode() !== 0) { $login_error_message .= ' (' . $userObj->getCode() . ')'; } } else { // Utente non loggato perché coppia username password non corretta $login_error_message = translateFN("Username e/o password non valide"); } } }
public function __construct($user_dataAr = array()) { parent::__construct($user_dataAr); $this->setHomePage(HTTP_ROOT_DIR . '/admin/admin.php'); }
/** * 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; } }
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; }
/** * function displayForumIndex * * @param object $userObj * @param integer $id_course * @param integer $expand_index * @param string $order * @param integer $id_course_instance * @param string $container_div_name * @return string - */ public static function displayForumIndex($userObj, $id_course, $expand_index, $order, $id_course_instance, $with_icons = NULL, $container_div_name = NULL) { $dh = $GLOBALS['dh']; $show_visits = !$GLOBALS['hide_visits']; /** * */ if (!isset($id_course_instance)) { //return ""; return new CText(''); } // vito, 3 ottobre 2008 $container_div = ""; if ($container_div_name != NULL) { $container_div = $container_div_name; } else { $container_div = 'id_forum_index'; } $show_icons = FALSE; if ($with_icons) { $show_icons = TRUE; } $callback_params = array('container_div' => $container_div); if ($order == 'chrono' || $order == 'struct') { $order_by_date = TRUE; } else { $order_by_date = FALSE; } /* * Get tutor id for this course instance */ $class_tutor_id = $dh->course_instance_tutor_get($id_course_instance); if (AMA_DataHandler::isError($class_tutor_id)) { return $class_tutor_id; } $callback_params['user_id'] = $userObj->getId(); $callback_params['class_tutors_ids'] = $class_tutor_id; $callback_params['show_icons'] = $show_icons; $forum_data = $dh->get_notes_for_this_course_instance($id_course_instance, $userObj->id_user, $order_by_date, $show_visits); switch ($userObj->tipo) { // sarebbe meglio $userObj->getType() case AMA_TYPE_AUTHOR: $callback = 'forumAuthorCallback'; break; case AMA_TYPE_TUTOR: $callback = 'forumTutorCallback'; $callback_params['id_course_instance'] = $id_course_instance; break; case AMA_TYPE_STUDENT: $callback = 'forumStudentCallback'; $callback_params['id_course_instance'] = $id_course_instance; break; } if (AMA_DataHandler::isError($forum_data)) { return $forum_data; } else { //retrieving data about nodes' visits //first: retrieve visits data about all nodes of selected course and arrange them into an associative array $someone_there_data = array(); $tmp_someone_there_data = ADALoggableUser::is_someone_there_courseFN($id_course_instance); if (!empty($tmp_someone_there_data)) { foreach ($tmp_someone_there_data as $v) { $someone_there_data[$v['id_nodo']][] = $v; } } unset($tmp_someone_there_data); //free memory foreach ($forum_data as $k => $v) { //let's check if there are records for the node if (isset($someone_there_data[$v['id_nodo']])) { $forum_data[$k]['is_someone_there'] = count($someone_there_data[$v['id_nodo']]) >= 1; } else { $forum_data[$k]['is_someone_there'] = false; } } unset($someone_there_data); //free memory } /* * Attach the subtrees containing notes to the root node for this course instance. * This is required in order to display the index. */ $forum_root_node = $id_course . '_' . ADA_DEFAULT_NODE; $notes_parent_nodes = array(); // First, save all the parent ids for the notes in the forum foreach ($forum_data as $note) { $notes_parent_nodes[$note['id_nodo']] = TRUE; } // Then, if a note has a parent id which is not a note, attach it to // forum_root_node for ($i = 0; $i < count($forum_data); $i++) { if (!isset($notes_parent_nodes[$forum_data[$i]['id_nodo_parent']])) { $forum_data[$i]['id_nodo_parent'] = $forum_root_node; } } $index = CDOMElement::create('div', "id:{$container_div}"); if ($order == 'chrono') { $index->addChild(self::ordered($forum_data, $callback, $callback_params, $forum_root_node)); } else { $index->addChild(self::struct($forum_data, $forum_root_node, $expand_index, $callback, $callback_params)); } return $index; }