} array_shift($courses_student); // prepare data rows $data = array(); $i = 0; foreach ($courses_student as $num => $elem) { foreach ($elem as $key => $val) { $data[$i][$key] = strip_tags($val); } $i++; } $pdf->ezTable($data, $cols, array('width' => $pdf->ez['pageWidth'] - $pdf->ez['leftMargin'] - $pdf->ez['rightMargin'])); $pdf->saveAs($filename); } else { if ($type === 'xls') { $tObj = BaseHtmlLib::tableElement('id:table_Report', array_shift($courses_student), $courses_student, array(), null); header("Expires: Mon, 26 Jul 1997 05:00:00 GMT"); // Date in the past header("Last-Modified: " . gmdate("D, d M Y H:i:s") . " GMT"); // always modified header("Cache-Control: no-store, no-cache, must-revalidate"); // HTTP/1.1 header("Cache-Control: post-check=0, pre-check=0", false); header("Pragma: no-cache"); // HTTP/1.0 header("Content-Type: application/vnd.ms-excel"); // header("Content-Length: ".filesize($name)); header("Content-Disposition: attachment; filename=course_" . $id_course . "_class_" . $id_instance . ".xls"); echo $tObj->getHtml(); // header ("Connection: close"); }
/** * generate HTML for login provider configuration page */ public function generateConfigPage() { $optionSetList = $this->loadOptions(); if (isset($optionSetList['providers_options_id']) && intval($optionSetList['providers_options_id']) > 0) { $optionID = intval($optionSetList['providers_options_id']); } else { $optionID = null; } // If no option id return abstract config page (aka 'no options to configure' message) if (is_null($optionID)) { return parent::generateConfigPage(); } $configIndexDIV = CDOMElement::create('div', 'id:configindex'); $newButton = CDOMElement::create('button'); $newButton->setAttribute('class', 'newButton tooltip top'); $newButton->setAttribute('title', translateFN('Clicca per creare un nuova chiave')); $newButton->setAttribute('onclick', 'javascript:addOptionRow();'); $newButton->addChild(new CText(translateFN('Nuova Chiave'))); $configIndexDIV->addChild($newButton); $tableOutData = array(); if (!AMA_DB::isError($optionSetList)) { unset($optionSetList['optionscount']); unset($optionSetList['providers_options_id']); /** * Add an empty table with one row that will be hidden * and will be used as a template when adding new rows */ $optionSetList = array('' => '') + $optionSetList; $labels = array(translateFN('chiave'), translateFN('valore'), translateFN('azioni')); foreach ($optionSetList as $i => $elementArr) { $links = array(); $linksHtml = ""; for ($j = 0; $j < 1; $j++) { switch ($j) { case 0: $type = 'delete'; $title = translateFN('Cancella'); $link = 'deleteOptionSet($j(this), ' . $optionID . ', \'' . urlencode(translateFN("Questo cancellerà l'elemento selezionato")) . '\');'; break; } if (isset($type)) { $links[$j] = CDOMElement::create('li', 'class:liactions'); $linkshref = CDOMElement::create('button'); $linkshref->setAttribute('onclick', 'javascript:' . $link); $linkshref->setAttribute('class', $type . 'Button tooltip'); $linkshref->setAttribute('title', $title); if ($j == 0) { $linkshref->setAttribute('data-delkey', $i); } $links[$j]->addChild($linkshref); // unset for next iteration unset($type); } } if (!empty($links)) { $linksul = CDOMElement::create('ul', 'class:ulactions'); foreach ($links as $link) { $linksul->addChild($link); } $linksHtml = $linksul->getHtml(); } else { $linksHtml = ''; } $tableOutData[$i] = array($labels[0] => $i, $labels[1] => str_replace(array("\r\n", "\r", "\n"), "<br />", $elementArr), $labels[2] => $linksHtml); } $emptyrow = array(array_shift($tableOutData)); $EmptyTable = BaseHtmlLib::tableElement('id:empty' . strtoupper(get_class($this)), $labels, $emptyrow); $EmptyTable->setAttribute('style', 'display:none'); $OutTable = BaseHtmlLib::tableElement('id:complete' . strtoupper(get_class($this)) . 'List', $labels, $tableOutData, '', translateFN('Opzioni ' . strtoupper($this->loadProviderName()))); $OutTable->setAttribute('data-optionid', $optionID); $configIndexDIV->addChild($EmptyTable); $configIndexDIV->addChild($OutTable); // if there are more than 10 rows, repeat the add new button below the table if (count($optionSetList) > 10) { $bottomButton = clone $newButton; $bottomButton->setAttribute('class', 'newButton bottom tooltip'); $configIndexDIV->addChild($bottomButton); } } return $configIndexDIV; }
// resume 'normal' behaviour $access_link = CDOMElement::create('div'); $link = CDOMElement::create('a', 'href:view.php?id_node=' . $nodeId . '&id_course=' . $courseId . '&id_course_instance=' . $courseInstanceId); if ($isEnded || $subscription_status == ADA_STATUS_TERMINATED || $subscription_status == ADA_STATUS_COMPLETED) { $link->addChild(new CText(translateFN('Rivedi il corso'))); } else { if ($isStarted && !$isEnded) { $link->addChild(new CText(translateFN('Accedi'))); } } $access_link->addChild($link); } } } $tbody_dataAr[] = array($c['titolo'], $started, ts2dFN($start_date), sprintf(translateFN('%d giorni'), $duration), ts2dFN($end_date), $access_link); $data = BaseHtmlLib::tableElement('class:doDataTable', $thead_dataAr, $tbody_dataAr); } } else { $data = new CText(translateFN('Non sei iscritto a nessuna classe')); } // @author giorgio 24/apr/2013 // end else... line } } else { $data = new CText(''); } $last_access = $userObj->get_last_accessFN(null, "UT", null); $last_access = AMA_DataHandler::ts_to_date($last_access); if ($last_access == '' || is_null($last_access)) { $last_access = '-'; }
/** * generate HTML for login provider configuration page */ public function generateConfigPage() { $configIndexDIV = CDOMElement::create('div', 'id:configindex'); $newButton = CDOMElement::create('button'); $newButton->setAttribute('class', 'newButton top tooltip'); $newButton->setAttribute('title', translateFN('Clicca per creare un nuova fonte')); $newButton->setAttribute('onclick', 'javascript:editOptionSet(null);'); $newButton->addChild(new CText(translateFN('Nuova Fonte'))); $configIndexDIV->addChild($newButton); $tableOutData = array(); $optionSetList = $this->getAllOptions(); if (!AMA_DB::isError($optionSetList)) { $labels = array(translateFN('nome'), translateFN('host'), translateFN('stato'), translateFN('azioni')); foreach ($optionSetList as $i => $elementArr) { $isEnabled = intval($elementArr['enabled']) === 1; unset($elementArr['enabled']); unset($elementArr['order']); $keys = array_keys($elementArr); $values = array_values($elementArr); $links = array(); $linksHtml = ""; for ($j = 0; $j < 5; $j++) { switch ($j) { case 0: $type = 'edit'; $title = translateFN('Modifica Fonte'); $link = 'editOptionSet(' . $i . ');'; break; case 1: $type = 'delete'; $title = translateFN('Cancella Fonte'); $link = 'deleteOptionSet($j(this), ' . $i . ' , \'' . urlencode(translateFN("Questo cancellerà l'elemento selezionato")) . '\');'; break; case 2: $type = $isEnabled ? 'disable' : 'enable'; $title = $isEnabled ? translateFN('Disabilita') : translateFN('Abilita'); $link = 'setEnabledOptionSet($j(this), ' . $i . ', ' . ($isEnabled ? 'false' : 'true') . ');'; break; case 3: $type = 'up'; $title = translateFN('Sposta su'); $link = 'moveOptionSet($j(this),' . $i . ',-1);'; break; case 4: $type = 'down'; $title = translateFN('Sposta giu'); $link = 'moveOptionSet($j(this),' . $i . ',1);'; break; } if (isset($type)) { $links[$j] = CDOMElement::create('li', 'class:liactions'); $linkshref = CDOMElement::create('button'); $linkshref->setAttribute('onclick', 'javascript:' . $link); $linkshref->setAttribute('class', $type . 'Button tooltip'); $linkshref->setAttribute('title', $title); $links[$j]->addChild($linkshref); // unset for next iteration unset($type); } } if (!empty($links)) { $linksul = CDOMElement::create('ul', 'class:ulactions'); foreach ($links as $link) { $linksul->addChild($link); } $linksHtml = $linksul->getHtml(); } else { $linksHtml = ''; } $tableOutData[$i] = array($labels[0] => $elementArr['name'], $labels[1] => $elementArr['host'], $labels[2] => $isEnabled ? translateFN('Abilitata') : translateFN('Disabilitata'), $labels[3] => $linksHtml); } $OutTable = BaseHtmlLib::tableElement('id:complete' . strtoupper(get_class($this)) . 'List', $labels, $tableOutData, '', translateFN('Elenco delle fonti ' . strtoupper($this->loadProviderName()))); $configIndexDIV->addChild($OutTable); // if there are more than 10 rows, repeat the add new button below the table if (count($optionSetList) > 10) { $bottomButton = clone $newButton; $bottomButton->setAttribute('class', 'newButton bottom tooltip'); $configIndexDIV->addChild($bottomButton); } } // if (!AMA_DB::isError($optionSetList)) return $configIndexDIV; }
// @author giorgio 08/mag/2013 // builds something like docs/news/news_it.txt $fileNews = ROOT_DIR . $filePath . '/docs/' . $reqType . '/' . $reqType . '_' . $codeLang . '.txt'; $lastChange = 'no file'; foreach ($files_news as $key => $value) { // print_r(array($fileNews,$value['path_to_file'])); if ($fileNews == $value['path_to_file']) { $lastChange = $value['data']; break; } } $files_to_edit[$index]['data'] = translateFN('last change') . ': ' . $lastChange; if (!isset($thead_data)) { $thead_data = null; } $data = BaseHtmlLib::tableElement('', $thead_data, $files_to_edit); } break; } $label = translateFN('Modifica dei contenuti'); $help = translateFN('Da qui puoi modificare i contenuti di tipo ' . $reqType . ' che appaiono in home page'); if ($userObj->getType() == AMA_TYPE_ADMIN) { $menu_dataAr = array(array('href' => 'add_tester.php', 'text' => translateFN('Aggiungi tester')), array('href' => 'add_service.php', 'text' => translateFN('Aggiungi servizio')), array('href' => 'add_user.php', 'text' => translateFN('Aggiungi utente')), array('href' => 'import_language.php', 'text' => translateFN('Import Language'))); $actions_menu = AdminModuleHtmlLib::createActionsMenu($menu_dataAr); } $content_dataAr = array('user_name' => $user_name, 'user_type' => $user_type, 'status' => $status, 'label' => $label, 'help' => $help, 'data' => $data->getHtml(), 'module' => isset($module) ? $module : '', 'messages' => $user_messages->getHtml()); /** * giorgio 12/ago/2013 * * if it's the admin, load the menu. if it's the swithcer force the template in the swithcer dir */
function get_courses_tutorFN($id_user, $isSuper = false) { $dh = $GLOBALS['dh']; $ymdhms = $GLOBALS['ymdhms']; $http_root_dir = $GLOBALS['http_root_dir']; $all_instance = array(); $sub_course_dataHa = array(); $dati_corso = array(); $today_date = $dh->date_to_ts("now"); $all_instance = $dh->course_tutor_instance_get($id_user, $isSuper); // Get the instance courses monitorated by the tutor $num_courses = 0; $id_corso_key = translateFN('Corso'); $titolo_key = translateFN('Titolo corso'); $id_classe_key = translateFN('Classe'); $nome_key = translateFN('Nome classe'); $data_inizio_key = translateFN('Inizio'); $durata_key = translateFN('Durata'); $azioni_key = translateFN('Azioni'); $msg = ""; if (is_array($all_instance)) { foreach ($all_instance as $one_instance) { $num_courses++; $id_instance = $one_instance[0]; $instance_course_ha = $dh->course_instance_get($id_instance); // Get the instance courses data if (AMA_DataHandler::isError($instance_course_ha)) { $msg .= $instance_course_ha->getMessage() . "<br />"; } else { $id_course = $instance_course_ha['id_corso']; if (!empty($id_course)) { $info_course = $dh->get_course($id_course); // Get title course if (AMA_DataHandler::isError($dh)) { $msg .= $dh->getMessage() . "<br />"; } if (!AMA_DB::isError($info_course)) { $titolo = $info_course['titolo']; $id_toc = $info_course['id_nodo_toc']; $durata_corso = sprintf(translateFN('%d giorni'), $instance_course_ha['durata']); $naviga = '<a href="' . $http_root_dir . '/browsing/view.php?id_node=' . $id_course . '_' . $id_toc . '&id_course=' . $id_course . '&id_course_instance=' . $id_instance . '">' . '<img src="img/timon.png" alt="' . translateFN('naviga') . '" title="' . translateFN('naviga') . '" class="tooltip" border="0"></a>'; $valuta = '<a href="' . $http_root_dir . '/tutor/tutor.php?op=student&id_instance=' . $id_instance . '&id_course=' . $id_course . '">' . '<img src="img/magnify.png" alt="' . translateFN('valuta') . '" title="' . translateFN('valuta') . '" class="tooltip" border="0"></a>'; $data_inizio = AMA_DataHandler::ts_to_date($instance_course_ha['data_inizio'], "%d/%m/%Y"); $dati_corso[$num_courses][$id_corso_key] = $instance_course_ha['id_corso']; $dati_corso[$num_courses][$titolo_key] = $titolo; $dati_corso[$num_courses][$id_classe_key] = $id_instance; $dati_corso[$num_courses][$nome_key] = $instance_course_ha['title']; $dati_corso[$num_courses][$data_inizio_key] = $data_inizio; $dati_corso[$num_courses][$durata_key] = $durata_corso; $dati_corso[$num_courses][$azioni_key] = $naviga; $dati_corso[$num_courses][$azioni_key] .= $valuta; } } } } $courses_list = ""; if (count($dati_corso) > 0 && empty($msg)) { $caption = translateFN("Corsi monitorati al") . " {$ymdhms}"; $tObj = BaseHtmlLib::tableElement('id:listCourses', array($id_corso_key, $titolo_key, $id_classe_key, $nome_key, $data_inizio_key, $durata_key, $azioni_key), $dati_corso, null, $caption); $tObj->setAttribute('class', 'default_table doDataTable'); $courses_list = $tObj->getHtml(); } else { $courses_list = $msg; } } else { $tObj = new Table(); $tObj->initTable('0', 'center', '0', '1', '', '', '', '', '', '1'); $caption = translateFN("Non ci sono corsi monitorati da te al {$ymdhms}"); $summary = translateFN("Elenco dei corsi monitorati"); $tObj->setTable($dati_corso, $caption, $summary); $courses_list = $tObj->getTable(); } if (empty($courses_list)) { $courses_list = translateFN('Non ci sono corsi di cui sei tutor.'); } return $courses_list; }
} $link = CDOMElement::create('a', 'href:' . HTTP_ROOT_DIR . '/browsing/view.php?id_node=' . $nodeId . '&id_course=' . $courseId . '&id_course_instance=' . $courseInstanceId); if ($isEnded || $subscription_status == ADA_STATUS_TERMINATED || $subscription_status == ADA_STATUS_COMPLETED) { $link->addChild(new CText(translateFN('Rivedi i contenuti'))); } else { if ($isStarted && !$isEnded) { $link->addChild(new CText(translateFN('Accedi'))); } } } else { // skip to next iteration if tutor community has not been started by the switcher continue; } $tbody_dataAr[] = array($c['titolo'] . ' - ' . $c['title'], $started, ts2dFN($start_date), sprintf(translateFN('%d giorni'), $duration), ts2dFN($end_date), $link); } $tObj = BaseHtmlLib::tableElement('id:tutorCommunitiesTable', $thead_dataAr, $tbody_dataAr); $tObj->setAttribute('class', 'default_table doDataTable'); $data = $tObj->getHtml(); } else { $data = translateFN('Non sei iscritto a nessuna comunità di tutor'); } $content_dataAr = array('course_title' => translateFN('Elenco comunità di tutor'), 'user_name' => $user_name, 'user_type' => $user_type, 'edit_profile' => $userObj->getEditProfilePage(), 'messages' => $user_messages->getHtml(), 'agenda' => $user_agenda->getHtml(), 'help' => translateFN('Clicca su accedi per entrare in una comunità di tutor'), 'dati' => $data, 'status' => $status, 'chat_link' => isset($chat_link) ? $chat_link : ''); $layout_dataAr['CSS_filename'] = array(JQUERY_UI_CSS, JQUERY_DATATABLE_CSS); $layout_dataAr['JS_filename'] = array(JQUERY, JQUERY_UI, JQUERY_DATATABLE, JQUERY_DATATABLE_DATE, ROOT_DIR . '/js/include/jquery/dataTables/formattedNumberSortPlugin.js', JQUERY_NO_CONFLICT); /** * add the following line if there's a corresponding js file and * some JavaScript initialization is needed * $optionsAr ['onload_func'] = 'initDoc();'; */ $optionsAr['onload_func'] = 'initDoc();'; /**
} if ($skip) { $hasDefault = true; } if (!empty($links)) { $linksul = CDOMElement::create('ul', 'class:ulactions'); foreach ($links as $link) { $linksul->addChild($link); } $linksHtml = $linksul->getHtml(); } else { $linksHtml = ''; } $tableOutData[$i] = array($labels[0] => $i, $labels[1] => $elementArr['displayOrder'], $labels[2] => $elementArr['className'], $labels[3] => $elementArr['name'], $labels[4] => intval($elementArr['enabled']) === 1 ? translateFN('Abilitato') : translateFN('Disabilitato'), $labels[5] => $elementArr['buttonLabel'], $labels[6] => $linksHtml); } $OutTable = BaseHtmlLib::tableElement('id:loginProvidersList', $labels, $tableOutData, '', translateFN('Elenco dei login provider')); $configIndexDIV->addChild($OutTable); // if there are more than 10 rows, repeat the add new button below the table if (count($loginProviders) > 10) { $bottomButton = clone $newButton; $bottomButton->setAttribute('class', 'newButton bottom tooltip'); $configIndexDIV->addChild($bottomButton); } } // if (!AMA_DB::isError($optionSetList)) $data = $configIndexDIV->getHtml(); $title = translateFN('Configurazione Login Provider'); $optionsAr['onload_func'] = 'initDoc();'; } else { $data = translateFN('Impossibile caricare i dati') . '. ' . translateFN('nessun login provider trovato') . '.'; $title = translateFN('Erorre login provider');
function getExerciseReport($exerciseObj, $id_course_instance) { /* * ottiene i dati relativi alla risposte fornite dagli utenti nella classe * e alle risposte possibile ammesse dall'esercizio */ $exercise_data = ExerciseDAO::getExerciseInfo($exerciseObj, $id_course_instance); $possible_answers = $exerciseObj->getExerciseData(); $div = CDOMElement::create('div'); $div->addChild(new CText($exerciseObj->getText())); $data = array(); $exercise_data_count = count($exercise_data); $thead_data = array(translateFN('Testo della risposta'), translateFN('Punteggio'), translateFN('Numero di risposte')); /* * scorre le risposte fornite dalla classe */ for ($i = 0; $i < $exercise_data_count; $i++) { $href = 'view.php?id_node=' . $exercise_data[$i]['risposta_libera']; $answer = CDOMElement::create('a', "href:{$href}"); $answer_id = $exercise_data[$i]['risposta_libera']; $answer->addChild(new CText($exerciseObj->getExerciseDataAnswerForItem($answer_id))); $tbody_data[$i] = array($answer->getHtml(), $exercise_data[$i]['punteggio'], $exercise_data[$i]['risposte']); if (isset($possible_answers[$answer_id])) { unset($possible_answers[$answer_id]); } } /* * considera eventuali risposte all'esercizio che non sono state date * da nessuno studente */ foreach ($possible_answers as $answer_id => $answer_data) { $href = 'view.php?id_node=' . $answer_id; $answer = CDOMElement::create('a', "href:{$href}"); $answer->addChild(new CText($exerciseObj->getExerciseDataAnswerForItem($answer_id))); $tbody_data[$i] = array($answer->getHtml(), $exerciseObj->getExerciseDataCorrectnessForItem($answer_id), 0); $i++; } $div->addChild(BaseHtmlLib::tableElement('', $thead_data, $tbody_data)); return $div->getHtml(); }
public static function displayUsersOnThisTester($id_tester, $current_page, $total_pages, $users_dataAr = array()) { $div = CDOMElement::create('div'); $pages = CDOMElement::create('div', 'id:pages'); $pages->addChild(new CText('|')); for ($i = 1; $i <= $total_pages; $i++) { if ($i == $current_page) { $pages->addChild(new CText(" {$current_page} |")); } else { $link = CDOMElement::create('a', "href:list_users.php?id_tester={$id_tester}&page={$i}"); $link->addChild(new CText(" {$i} ")); $pages->addChild($link); $pages->addChild(new CText('|')); } } $div->addChild($pages); $thead_dataAr = array(translateFN('Id'), translateFN('Nome'), translateFN('Cognome'), translateFN('E-mail'), translateFN('username'), translateFN('Tipo'), translateFN('Azioni')); $tbody_dataAr = array(); foreach ($users_dataAr as $user_dataAr) { $user_type = ADAGenericUser::convertUserTypeFN($user_dataAr['tipo']); $href = 'edit_user.php?id_user='******'id_utente'] . '&id_tester=' . $id_tester . '&page=' . $current_page; $edit_user_link = CDOMElement::create('a', "href:{$href}"); $edit_user_link->addChild(new CText(translateFN('Modifica'))); $tbody_dataAr[] = array($user_dataAr['id_utente'], $user_dataAr['nome'], $user_dataAr['cognome'], $user_dataAr['e_mail'], $user_dataAr['username'], $user_type, $edit_user_link); } $table = BaseHtmlLib::tableElement('class:sortable', $thead_dataAr, $tbody_dataAr); $div->addChild($table); return $div; }
$course_instance = isset($filenameAr[0]) ? $filenameAr[0] : null; $id_sender = isset($filenameAr[1]) ? $filenameAr[1] : null; $id_course = isset($filenameAr[2]) ? $filenameAr[2] : null; if ($id_course == $course['id_corso'] && $course_instance == $course['id_istanza_corso'] && $id_sender == $id_tutor) { $uploadedFiles++; } } } } } $totalAddedNotes += $added_nodes_count; $totalReadNotes += $read_notes_count; $totalChatlines += $chatlines_count; $totalUploadedFiles += $uploadedFiles; $detailsResults[] = array($course['titolo'], $course['title'], $subscribedStudents, $isSelfInstruction, $added_nodes_count, $read_notes_count, $uploadedFiles, $chatlines_count); } $tfoot_data = array(count($DetailsAr) . ' ' . translateFN('Corsi totali'), ' ', $totalSubscribedStudents, $totalSelfInstrucionCourses, $totalAddedNotes, $totalReadNotes, $totalUploadedFiles, $totalChatlines); $result_table = BaseHtmlLib::tableElement('class:tutor_table', $thead_data, $detailsResults, $tfoot_data, $caption); $result = $result_table->getHtml(); $retArray['columnDefs'][] = array('sClass' => 'centerAlign', 'aTargets' => [2, 3, 4, 5, 6, 7]); $retArray['status'] = 'OK'; $retArray['html'] = $result; } else { $span_error = CDOMElement::create('span'); $span_error->setAttribute('class', 'ErrorSpan'); $span_error->addChild(new CText(translateFN('Nessun dato trovato'))); $retArray['status'] = 'ERROR'; $retArray['html'] = $span_error->getHtml(); } echo json_encode($retArray); }
} } else { $totalAr[$key] = translateFN('totale'); } } } } if ($userObj->tipo == AMA_TYPE_ADMIN) { $caption = translateFN('Riepilogo attività dei provider'); $home_link = CDOMElement::create('a', 'href:admin.php'); $home_link->addChild(new CText(translateFN("Home dell'Amministratore"))); } elseif ($userObj->tipo == AMA_TYPE_SWITCHER) { $caption = translateFN('Riepilogo attività del provider'); $home_link = CDOMElement::create('a', 'href:../switcher/list_courses.php'); $home_link->addChild(new CText(translateFN("Home del provider admin"))); $totalAr = null; } $table = BaseHtmlLib::tableElement('id:table_log_report', $thead_data, $testersData_Ar, $totalAr, $caption); $module = $home_link->getHtml() . ' > ' . $label; $help = null; $menu_dataAr = array(); $actions_menu = AdminModuleHtmlLib::createActionsMenu($menu_dataAr); $content_dataAr = array('user_name' => $user_name, 'user_type' => $user_type, 'status' => $status, 'actions_menu' => $actions_menu->getHtml(), 'label' => $label, 'help' => $help, 'data' => $table->getHtml(), 'module' => $module, 'messages' => $user_messages->getHtml()); $layout_dataAr['JS_filename'] = array(JQUERY, JQUERY_UI, JQUERY_DATATABLE, JQUERY_DATATABLE_DATE, JQUERY_NO_CONFLICT); $layout_dataAr['CSS_filename'] = array(JQUERY_UI_CSS, JQUERY_DATATABLE_CSS); $render = null; $options['onload_func'] = 'initDoc(' . ($userObj->getType() == AMA_TYPE_ADMIN ? 1 : 0) . ')'; /** * Sends data to the rendering engine */ ARE::render($layout_dataAr, $content_dataAr, $render, $options);
private static function display_messages_as_form($data_Ar = array(), $message_type = ADA_MSG_SIMPLE, $testers_dataAr = array()) { $common_dh = $GLOBALS['common_dh']; $javascript_ok = check_javascriptFN($_SERVER['HTTP_USER_AGENT']); $appointments_Ar = array(); if ($message_type == ADA_MSG_SIMPLE) { $list_module = 'list_messages.php'; $read_module = 'read_message.php'; $del_img = CDOMElement::create('img', 'src:img/delete.png, name:del_icon'); $del_img->setAttribute('alt', translateFN('Rimuovi il messaggio')); $del_text = translateFN('Cancella'); } else { $list_module = 'list_events.php'; $read_module = 'read_event.php'; $del_text = ''; } $order_by_author_link = CDOMElement::create('a', "href:{$list_module}?sort_field=id_mittente"); $order_by_author_link->addChild(new CText(translateFN('Autore'))); $order_by_time_link = CDOMElement::create('a', "href:{$list_module}?sort_field=data_ora"); $order_by_time_link->addChild(new CText(translateFN('Data ed ora'))); $order_by_subject_link = CDOMElement::create('a', "href:{$list_module}?sort_field=titolo"); $order_by_subject_link->addChild(new CText(translateFN('Oggetto'))); $order_by_priority_link = CDOMElement::create('a', "href:{$list_module}?sort_field=priorita"); $order_by_priority_link->addChild(new CText(translateFN('Priorità'))); $thead_data = array($order_by_author_link, $order_by_time_link, $order_by_subject_link, $order_by_priority_link, $del_text, translateFN('Letto'), ''); foreach ($data_Ar as $tester => $appointment_data_Ar) { //$udh = UserDataHandler::instance(self::getDSN($tester)); //$tester_info_Ar = $common_dh->get_tester_info_from_pointer($tester); $tester_id = $testers_dataAr[$tester]; // if (AMA_Common_DataHandler::isError($tester_info_Ar)) { // /* // * Return a ADA_Error with delayed error handling. // */ // return new ADA_Error($tester_info_Ar,translateFN('Errore in ottenimento informazioni tester'), // NULL,NULL,NULL,NULL,TRUE); // } $tester_TimeZone = MultiPort::getTesterTimeZone($tester); $offset = get_timezone_offset($tester_TimeZone, SERVER_TIMEZONE); foreach ($appointment_data_Ar as $appointment_id => $appointment_Ar) { // trasform message content into variable names $sender_id = $appointment_Ar[0]; $date_time = $appointment_Ar[1]; //$subject = $appointment_Ar[2]; /* * Check if the subject has an internal identifier and remove it. */ //$subject = preg_replace('/[0-9]+#/','',$appointment_Ar[2],1); $subject = ADAEventProposal::removeEventToken($appointment_Ar[2]); $priority = $appointment_Ar[3]; $read_timestamp = $appointment_Ar[4]; $date_time_zone = $date_time + $offset; $zone = translateFN("Time zone:") . " " . $tester_TimeZone; $data_msg = AMA_DataHandler::ts_to_date($date_time_zone, "%d/%m/%Y - %H:%M:%S") . " " . $zone; // $data_msg = AMA_DataHandler::ts_to_date($date_time, "%d/%m/%Y - %H:%M:%S"); // transform sender's id into sender's name // $res_ar = $udh->find_users_list(array("username"), "id_utente=$sender_id"); // if (AMA_DataHandler::isError($res_ar)) { // $sender_username = ''; // } // else { // $sender_username = $res_ar[0][1]; // } $sender_username = $appointment_Ar[6]; //$msg_id = $tester_info_Ar[0].'_'.$appointment_id; $msg_id = $tester_id . '_' . $appointment_id; $url = HTTP_ROOT_DIR . '/comunica/' . $read_module . '?msg_id=' . $msg_id; $subject_link = CDOMElement::create('a', "href:{$url}"); $subject_link->addChild(new CText($subject)); /* * If this is a list of simple messages, then deleting is allowed. * Otherwise it is disabled. */ if ($message_type == ADA_MSG_SIMPLE) { $delete = CDOMElement::create('checkbox', "name:form[del][{$msg_id}],value:{$msg_id}"); $action_link = CDOMElement::create('a', "href:{$list_module}?del_msg_id={$msg_id}"); $action_link->addChild($del_img); } else { $delete = ''; $delete_link = ''; // PROVA, POI RIMETTERE A POSTO $userObj = $_SESSION['sess_userObj']; /* if($userObj instanceof ADAPractitioner) { $event_token = ADAEventProposal::extractEventToken($appointment_Ar[2]); $href = HTTP_ROOT_DIR . '/tutor/eguidance_tutor_form.php?event_token=' . $event_token; $action_link = CDOMElement::create('a', "href:$href"); $action_link->addChild(new CText(translateFN('View eguidance session data'))); } * */ } $read = CDOMElement::create('checkbox', "name:form[read][{$msg_id}],value:{$msg_id}"); if ($read_timestamp != 0) { $read->setAttribute('checked', 'checked'); } if (!isset($action_link)) { $action_link = null; } $appointments_Ar[] = array($sender_username, $data_msg, $subject_link, $priority, $delete, $read, $action_link); } } if (count($appointments_Ar) > 0) { $table = BaseHtmlLib::tableElement('', $thead_data, $appointments_Ar); if (!isset($module)) { $module = null; } $form = CDOMElement::create('form', "name:form, method:post, action:{$module}"); $form->addChild($table); $div = CDOMElement::create('div', 'id:buttons'); $submit = CDOMElement::create('submit', 'name:btn_commit value:' . translateFN('Salva')); $reset = CDOMElement::create('reset', 'name:btn_reset value:' . translateFN('Ripristina')); $div->addChild($submit); $div->addChild($reset); $form->addChild($div); return $form; } else { if ($message_type == ADA_MSG_SIMPLE) { return new CText(translateFN('Non ci sono nuovi messaggi')); } return new CText(translateFN('Non ci sono nuovi appuntamenti')); } }
public static function uploadForm($action, $id_user, $id_course, $id_course_instance, $id_node, $error_message = null) { $div = CDOMElement::create('div'); if ($error_message !== null) { $div_error = CDOMElement::create('div', 'class:error_field'); $div_error->addChild(new CText($error_message)); $div->addChild($div_error); } $form = CDOMElement::create('form', "id:upload_form, name: upload_form, action:{$action}, method:post"); $form->setAttribute('onsubmit', 'return checkNec();'); $form->setAttribute('enctype', 'multipart/form-data'); $sender = CDOMElement::create('hidden', "id:sender, name:sender, value:{$id_user}"); $id_course = CDOMElement::create('hidden', "id:id_course, name:id_course, value:{$id_course}"); $id_course_instance = CDOMElement::create('hidden', "id:id_course_instance, name:id_course_instance, value:{$id_course_instance}"); $id_node = CDOMElement::create('hidden', "id:id_node, name:id_node, value:{$id_node}"); $input_file = CDOMElement::create('file', 'id:file_up, name:file_up'); $copyright_yes = CDOMElement::create('radio', 'id:copyright, name:copyright, value:1'); $copyright_no = CDOMElement::create('radio', 'id:copyright, name:copyright, value:0'); $div_copyright = CDOMElement::create('div'); $div_copyright->addChild($copyright_yes); $div_copyright->addChild(new CText(translateFN('Si'))); $div_copyright->addChild($copyright_no); $div_copyright->addChild(new CText(translateFN('No'))); $submit_text = translateFN('Invia'); $submit = CDOMElement::create('submit', "id:submit, name:submit, value:{$submit_text}"); $reset = CDOMElement::create('reset', 'id:reset, name:reset'); $buttons_div = CDOMElement::create('div'); $buttons_div->addChild($submit); $buttons_div->addChild($reset); //<div id='cfl' title='sender,id_course,id_course_instance,id_node'> $form->addChild($sender); $form->addChild($id_course); $form->addChild($id_course_instance); $form->addChild($id_node); $table_data = array(array(translateFN('File da inviare'), $input_file), array(translateFN('Copyright'), $div_copyright), array($buttons_div, null)); $form->addChild(BaseHtmlLib::tableElement('class:upload', null, $table_data)); $div->addChild($form); return $div; }
$imgDoc->setAttribute('class', 'imgDoc tooltip'); $imgDoc->setAttribute('title', translateFN('stampa certificato')); $linkCertificate->addChild($imgDoc); } else { $linkCertificate = CDOMElement::create('a', 'href:#'); $linkCertificate->setAttribute('class', 'linkCertificate'); $imgDoc = CDOMElement::create('img', 'src:' . HTTP_ROOT_DIR . '/layout/' . $_SESSION['sess_template_family'] . '/img/document.png'); $imgDoc->setAttribute('class', 'imgDoc tooltip'); $imgDoc->setAttribute('title', translateFN('certificato non disponibile')); $linkCertificate->addChild($imgDoc); } $userArray[translateFN('Certificato')] = $linkCertificate->getHtml(); } array_push($dataAr, $userArray); } $result_table = BaseHtmlLib::tableElement('id:course_instance_Table', $thead_data, $dataAr); $table = $result_table->getHtml(); } } } $help = translateFN('Da qui il provider admin può gestire le iscrizioni alla classe selezionata: ') . $courseInstanceObj->getTitle(); $buttonSubscription = CDOMElement::create('button', 'class:Subscription_Button'); $buttonSubscription->setAttribute('onclick', 'javascript:goToSubscription(\'subscribe\');'); $buttonSubscription->addChild(new CText(translateFN('Iscrivi studente'))); $buttonSubscriptions = CDOMElement::create('button', 'class:Subscription_Button'); $buttonSubscriptions->setAttribute('onclick', 'javascript:goToSubscription(\'subscriptions\');'); $buttonSubscriptions->addChild(new CText(translateFN('Upload file'))); /* * OUTPUT */ $optionsAr = array('onload_func' => "initDoc();");
* * * Potremmo avere una classe * $agenda = new ADAAgenda($userObj); * $appointments = $agenda->futureAppointmentsWithUser($tutoredUserObj->getId()); * */ $fields_list_Ar = array('data_ora', 'titolo'); $clause = ' data_ora > ' . time() . ' AND id_mittente=' . $tutoredUserObj->getId() . ' AND (flags & ' . ADA_EVENT_CONFIRMED . ')'; $sort_field = ' data_ora desc'; $mh = MessageHandler::instance(MultiPort::getDSN($sess_selected_tester)); $msgs_ha = $mh->find_messages($userObj->getId(), ADA_MSG_AGENDA, $fields_list_Ar, $clause, $sort_field); if (AMA_DataHandler::isError($msgs_ha) || count($msgs_ha) == 0) { $appointments_data = new CText(''); } else { $thead_data = array(translateFN('Date'), translateFN('Appointment type')); $tbody_data = array(); foreach ($msgs_ha as $appointment) { $tbody_data[] = array(ts2dFN($appointment[0]), ADAEventProposal::removeEventToken($appointment[1])); } $appointments_data = BaseHtmlLib::tableElement('', $thead_data, $tbody_data); } $data = $appointments_data->getHtml() . $user_data->getHtml() . $service_data->getHtml() . $eguidance_data->getHtml(); } $label = translateFN('user service details'); $help = translateFN("Details"); $home_link = CDOMElement::create('a', 'href:tutor.php'); $home_link->addChild(new CText(translateFN("Practitioner's home"))); $module = $home_link->getHtml() . ' > ' . $label; $content_dataAr = array('user_name' => $user_name, 'user_type' => $user_type, 'status' => $status, 'path' => $module, 'label' => $label, 'dati' => $data); ARE::render($layout_dataAr, $content_dataAr);
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 _get_course_info($id_course) { $common_dh = $GLOBALS['common_dh']; $serviceAr = $common_dh->get_service_info_from_course($id_course); if (!AMA_DataHandler::isError($serviceAr)) { $service_name = $serviceAr[1]; $service_level = $serviceAr[3]; $service_duration = $serviceAr[4]; $service_max_meeting = $serviceAr[5]; $service_max_meeting_time = $serviceAr[7] / 60; } $providerAr = $common_dh->get_tester_info_from_id_course($id_course); if (!AMA_DataHandler::isError($providerAr)) { $provider = $providerAr['puntatore']; $provider_dsn = MultiPort::getDSN($provider); $provider_name = $providerAr['nome']; $service_country = $providerAr['nazione'] . "/" . $providerAr['provincia']; } $provider_dh = AMA_DataHandler::instance($provider_dsn); $dataHa = $provider_dh->get_course($id_course); if (AMA_DataHandler::isError($dataHa) || !is_array($dataHa)) { $infomsg = $dataHa->getMessage(); if ($dataHa->code == AMA_ERR_NOT_FOUND) { $service_description = translateFN("Il provider non fornisce attualmente questo servizio"); } // header("Location: $error?err_msg=$msg"); //return $infomsg; } else { if (!empty($dataHa['nome'])) { $course_infoHa = array(); // 1.info from table modello_corso $service_title = $dataHa['titolo']; // $service_name = $dataHa['nome']; // 2. description of instance from table modello_corso $service_instance_description = $dataHa['descr']; // 3. full description from node id_nodo_iniziale $id_desc = $id_course . "_" . $dataHa['id_nodo_iniziale']; $user_level = "999"; $nodeHa = $provider_dh->get_node_info($id_desc); if (AMA_DataHandler::isError($nodeHa)) { // $errorObj = new ADA_error($nodeHa); //FIXME: mancano gli altri dati $service_description = translateFN("Il provider non fornisce attualmente questo servizio"); } else { $service_description = $nodeHa['text']; } } else { $service_description = translateFN("Il provider non fornisce attualmente questo servizio"); } } // check on level? /* if ($service_level > 1){ $require_link = "<a href=" . HTTP_ROOT_DIR . "/browsing/registration.php?id_course=$id_course>" .translateFN('Richiedi'). "</a>"; } else { $require_link = "<a href=" . HTTP_ROOT_DIR . "/browsing/view.php?id_course=$id_course&id_node=$id_desc>" .translateFN('Entra'). "</a>"; } */ if ($service_instance_description == NULL) { $service_instance_description = level2descriptionFN($service_level); } $service_div = CDOMElement::create('div', 'id:service_info'); $thead_data = array(translateFN('Fornitore'), translateFN('Nome'), translateFN('Paese'), translateFN('Livello'), translateFN('Durata (gg)'), translateFN('Numero incontri'), translateFN('Durata incontro (minuti)'), translateFN('Descrizione servizio'), translateFN('Descrizione dettagliata')); $tbody_dataAr = array(); $tbody_dataAr[] = array($provider_name, $service_name, $service_country, level2stringFN($service_level), $service_duration, $service_max_meeting, $service_max_meeting_time, $service_description, $service_instance_description); $element_attributes = ""; $serviceTable = BaseHtmlLib::tableElement($element_attributes, $thead_data, $tbody_dataAr); $service_div->addChild($serviceTable); $service_data = $service_div->getHtml(); return $service_data; }
$nome = $course[1]; $titolo = $course[2]; $data = ts2dFN($course[3]); $media_path = $course[4]; if (!$media_path) { $media_path = translateFN("default"); } $id_nodo_iniziale = $course[5]; // vito, 8 apr 2009 $confirm_dialog_message = translateFN('Sei sicuro di voler eliminare questo corso?'); $onclick = "confirmCriticalOperationBeforeRedirect('{$confirm_dialog_message}','delete_course.php?id_course={$id_course}');"; $row = array(translateFN('Nome') => $nome, translateFN('Titolo') => $titolo, translateFN('Data') => $data, translateFN('Path') => $media_path, translateFN('Naviga') => "<a href=\"../browsing/view.php?id_course={$id_course}&id_node=" . $id_course . "_" . $id_nodo_iniziale . "\"><img src=\"img/timon.png\" border=0></a>", translateFN('Report') => "<a href=\"author_report.php?id_course={$id_course}\"><img src=\"img/report.png\" border=0></a>", translateFN('Aggiungi') => "<a href=\"addnode.php?id_course={$id_course}\"><img src=\"img/_nodo.png\" border=0></a>"); array_push($course_dataHa, $row); } $caption = translateFN("Corsi inviati e attivi il") . " {$ymdhms}"; $tObj = BaseHtmlLib::tableElement('id:authorTable, class:doDataTable', array_keys(reset($course_dataHa)), $course_dataHa, null, $caption); $tObj->setAttribute('class', 'default_table doDataTable'); $total_course_data = $tObj->getHtml(); $optionsAr['onload_func'] = 'initDoc();'; $layout_dataAr['CSS_filename'] = array(JQUERY_UI_CSS, JQUERY_DATATABLE_CSS); $layout_dataAr['JS_filename'] = array(JQUERY, JQUERY_UI, JQUERY_DATATABLE, JQUERY_DATATABLE_DATE, JQUERY_NO_CONFLICT); } if (isset($err_msg)) { $total_course_data = translateFN("Nessun corso assegnato all'autore."); } // menu' table $lObj = new Ilist(); $data = array(crea_link(translateFN('report'), 'author_report.php'), crea_link(translateFN('modifica il tuo profilo'), "edit_author.php?id={$sess_id_user}")); $lObj->setList($data); $menu_ha = $lObj->getList(); //$banner = include ("$root_dir/include/banner.inc.php");
$div_delete->setAttribute('class', 'tooltip'); $div_delete->addChild($delete_course_link); $actions[] = $div_delete; } $actions = BaseHtmlLib::plainListElement('class:inline_menu', $actions); $servicelevel = null; /* if isset $_SESSION['service_level'] it means that the istallation supports course type */ if (isset($_SESSION['service_level'][$course[4]])) { $servicelevel = $_SESSION['service_level'][$course[4]]; } if (!isset($servicelevel)) { $servicelevel = DEFAULT_SERVICE_TYPE_NAME; } $tbody_data[] = array($imgDetails, $courseId, $course[1], translateFN($servicelevel), $course[2], $course[3], $actions); } $data = BaseHtmlLib::tableElement('id:table_list_courses', $thead_data, $tbody_data); } else { $data = new CText(translateFN('Non sono stati trovati corsi')); } $filter = null; if (isset($_GET['filter']) && isset($_SESSION['service_level'])) { $filter = $_SESSION['service_level'][$_GET['filter']]; $label = translateFN('Lista corsi di tipo "') . $filter . '"'; } else { $label = translateFN('Lista corsi'); } $help = translateFN('Da qui il provider admin può vedere la lista dei corsi presenti sul provider'); $Li_edit_home_page = ""; $content_dataAr = array('user_name' => $user_name, 'user_type' => $user_type, 'status' => $status, 'label' => $label, 'help' => $help, 'data' => $data->getHtml(), 'module' => isset($module) ? $module : '', 'edit_profile' => $userObj->getEditProfilePage(), 'messages' => $user_messages->getHtml()); $layout_dataAr['JS_filename'] = array(JQUERY, JQUERY_UI, JQUERY_DATATABLE, JQUERY_DATATABLE_DATE, JQUERY_NO_CONFLICT); $layout_dataAr['CSS_filename'] = array(JQUERY_UI_CSS, JQUERY_DATATABLE_CSS);
* * if we're listing students, let's add the stato field as well */ if ($type != 'authors' && $type != 'tutors') { $isConfirmed = $user[5] == ADA_STATUS_REGISTERED ? translateFN("Si") : translateFN("No"); } $tmpArray = array($imgDetails->getHtml(), $userId, $User_fullname->getHtml(), $span_UserName->getHtml(), $actions); /** * @author giorgio 29/mag/2013 * * if we're listing students, let's add the stato field as well */ if ($type != 'authors' && $type != 'tutors') { array_push($tmpArray, $isConfirmed); } $tbody_data[] = $tmpArray; } $data = BaseHtmlLib::tableElement('id:table_users', $thead_data, $tbody_data); } else { $data = CDOMElement::create('span'); $data->addChild(new CText(translateFN('Non sono stati trovati utenti'))); } $label = $profilelist; $help = translateFN('Da qui il provider admin può vedere la ' . $profilelist . ' presenti sul provider'); $help .= ' ' . translateFN('Numero utenti') . ': ' . $UserNum; $content_dataAr = array('user_name' => $user_name, 'user_type' => $user_type, 'status' => $status, 'label' => $label, 'help' => $help, 'data' => $data->getHtml(), 'edit_profile' => $userObj->getEditProfilePage(), 'module' => isset($module) ? $module : '', 'messages' => $user_messages->getHtml()); $layout_dataAr['JS_filename'] = array(JQUERY, JQUERY_UI, JQUERY_DATATABLE, JQUERY_DATATABLE_DATE, ROOT_DIR . '/js/include/jquery/dataTables/selectSortPlugin.js', JQUERY_NO_CONFLICT); $layout_dataAr['CSS_filename'] = array(JQUERY_UI_CSS, JQUERY_DATATABLE_CSS); $render = null; $optionsAr['onload_func'] = 'initDoc();'; ARE::render($layout_dataAr, $content_dataAr, $render, $optionsAr);
$duration = $course['duration_hours']; } else { $duration = 0; } $dataAr = array($thead_data[0] => $span_course_title->getHtml(), $thead_data[1] => $creationDate, $thead_data[2] => $publicationDate, $thead_data[3] => $span_serviceType->getHtml(), $thead_data[4] => $duration, $thead_data[5] => $credits, $thead_data[6] => $nodeNumber, $thead_data[7] => $activitiesNumber, $thead_data[8] => $instanceNumber); $caption = translateFN('Dettaglio corsi autore'); /* * Settings for Sort date columns in DataTable */ $retArray['columnDefs'][] = array('sType' => 'date-eu', 'aTargets' => [1]); $retArray['columnDefs'][] = array('sType' => 'date-eu', 'aTargets' => [2]); } } } array_push($total_results, $dataAr); } $result_table = BaseHtmlLib::tableElement('class:User_table', $thead_data, $total_results, null, $caption); $result = $result_table->getHtml(); // $retArray=array("status"=>"OK","html"=>$result); $retArray['status'] = 'OK'; $retArray['html'] = $result; } else { $span_error = CDOMElement::create('span'); $span_error->setAttribute('class', 'ErrorSpan'); $span_error->addChild(new CText(translateFN('Nessun dato trovato'))); $retArray['status'] = 'ERROR'; $retArray['html'] = $span_error->getHtml(); // $retArray=array("status"=>"ERROR","html"=>$span_error->getHtml()); } echo json_encode($retArray); }
public static function displayServiceData(ADAGenericUser $UserObj, $service_infoAr = array(), $optionsAr = array()) { $service_div = CDOMElement::create('div', 'id:service_info'); $label_title = translateFN('Service'); $label_level = translateFN('Level'); $label_description = translateFN('Description'); $label_service_time = translateFN('Open for'); $label_service_min_meetings = translateFN('Min Meetings'); $label_service_max_meetings = translateFN('Max meetings'); $label_service_meeting_max_time = translateFN('Meetings duration'); $overall_service_data = ""; //var_dump($service_infoAr); if (!AMA_DataHandler::isError($service_infoAr)) { $service_title = $service_infoAr[0]; $service_level = level2stringFN($service_infoAr[2]); $service_description = $service_infoAr[1]; // durata_servizio, min_incontri, max_incontri, durata_max_incontro $service_time = $service_infoAr[3] . " " . translateFN("days"); $service_min_meetings = $service_infoAr[4]; $service_max_meetings = $service_infoAr[5]; $service_meeting_max_time = $service_infoAr[6] . " " . translateFN("min"); } else { $service_description = translateFN("Not available"); $service_level = translateFN("?"); $service_title = translateFN("Not available"); } $thead_data = array($label_title, $label_level, $label_service_time, $label_service_min_meetings, $label_service_max_meetings, $label_service_meeting_max_time); $tbody_dataAr[] = array($label_title => $service_title, $label_level => $service_level, $label_service_time => $service_time, $label_service_min_meetings => $service_min_meetings, $label_service_max_meetings => $service_max_meetings, $label_service_meeting_max_time => $service_meeting_max_time); $serviceTable = BaseHtmlLib::tableElement($element_attributes, $thead_data, $tbody_dataAr); $service_div->addChild($serviceTable); $service_data = $service_div->getHtml(); return $service_data; }
} else { $thead_data = array(null, translateFN('Testo'), translateFN('Azioni'), translateFN('TestoCompleto'), translateFN('CodLingua'), translateFN('Id')); $total_results = array(); //$imgDetails='<img class="imgEx tooltip" src='.HTTP_ROOT_DIR.'/layout/ada_blu/img/details_open.png >'; $imgDetails = CDOMElement::create('img', 'src:' . HTTP_ROOT_DIR . '/layout/' . $_SESSION['sess_template_family'] . '/img/details_open.png'); $imgDetails->setAttribute('class', 'imgDetls tooltip'); $imgDetails->setAttribute('title', translateFN('espande/riduce il testo')); foreach ($result as $row) { $testoCompleto = $row['testo_messaggio']; $testoRidotto = substr($row['testo_messaggio'], 0, 30); if (strlen($testoCompleto) > 30) { $testoRidotto = $testoRidotto . '...'; } $id_message = $row['id_messaggio']; $newButton = CDOMElement::create('button'); $newButton->setAttribute('class', 'buttonTranslate tooltip'); $newButton->addChild(new CText(translateFN('Clicca per aggiornare la traduzione'))); $temp_results = array(null => $imgDetails, translateFN('Testo') => $testoRidotto, translateFN('Azioni') => $newButton, translateFN('TestoCompleto') => $testoCompleto, translateFN('CodLingua') => $language_code, translateFN('Id') => $id_message); array_push($total_results, $temp_results); } $result_table = BaseHtmlLib::tableElement('id:table_result', $thead_data, $total_results); $result = $result_table->getHtml(); $retArray = array("status" => "OK", "msg" => translateFN("Ricerca eseguita con successo"), "html" => $result); } } } } else { $retArray = array("status" => "ERROR", "msg" => translateFN("Dati inseriti non validi"), "html" => null); } echo json_encode($retArray); }
$user = $sender_dataHa['nome'] . ' ' . $sender_dataHa['cognome']; $message = $chat_msgAr[1]; $data_ora = ts2dFN($chat_msgAr[2]) . " " . ts2tmFN($chat_msgAr[2]); $tbody_data[] = array($data_ora, $user, strip_tags($message)); $chat_report .= "{$data_ora} {$user}: {$message}<br/>\n"; $c++; } } $user_chat_report = translateFN("Totale messaggi:") . " " . $c . "<br />"; if (isset($data_ora) && strlen($data_ora) > 0) { $user_chat_report .= translateFN("Ultimo messaggio:") . " " . $data_ora . "<br />"; } $user_chat_report .= translateFN("Utenti / messaggi:") . "<br /><br />"; $user_chat_report .= $chat_report; $thead_data = array(translateFN('Data e ora'), translateFN('Utente'), translateFN('Messaggio')); $table_Mess = BaseHtmlLib::tableElement('class:sortable', $thead_data, $tbody_data); $tabled_chat_dataHa = $table_Mess->getHtml(); $menuOptions['id_chatroom'] = $id_chatroom; if (isset($days)) { $menuOptions['days'] = $days; } } else { $tabled_chat_dataHa = translateFN("Nessuna chat disponibile."); } // } break; } break; case 'index': $class_chatrooms_ar = array(); $class_chatrooms = ChatRoom::get_all_class_chatroomsFN($sess_id_course_instance);
} $count_visits = count($visits); $total_visits = $total_visits + count($visits); $row = array(translateFN('Id') => $id_node, translateFN('Nome') => $nome, translateFN('Visite') => $count_visits); if ($count_visits > 0) { $row[translateFN('Zoom')] = "<a href=\"author_report.php?mode=zoom&id_node={$id_node}\"><img src=\"img/magnify.png\"' border=0></a>"; } else { $row[translateFN('Zoom')] = ' '; } $id_course_and_nodeAr = explode('_', $id_node); $id_course = $id_course_and_nodeAr[0]; $row[translateFN('Naviga')] = "<a href=\"{$http_root_dir}/browsing/view.php?id_course={$id_course}&id_node={$id_node}\"><img src=\"img/timon.png\" border=0></a>"; array_push($visits_dataHa, $row); } } if (isset($err_msg) || !is_array($visits_dataHa) || count($visits_dataHa) <= 0) { $tabled_visits_dataHa = translateFN("Nessun corso assegnato all'autore."); } else { $caption = translateFN('Corso:') . " <strong>{$course_title}</strong> " . translateFN('- Report al ') . " <strong>{$ymdhms}</strong>"; $tObj = BaseHtmlLib::tableElement('id:authorReport, class: doDataTable', array_keys($visits_dataHa[0]), $visits_dataHa, null, $caption); $tObj->setAttribute('class', 'default_table doDataTable'); $tabled_visits_dataHa = $tObj->getHtml(); $optionsAr['onload_func'] = 'initDoc();'; $layout_dataAr['CSS_filename'] = array(JQUERY_UI_CSS, JQUERY_DATATABLE_CSS); $layout_dataAr['JS_filename'] = array(JQUERY, JQUERY_UI, JQUERY_DATATABLE, ROOT_DIR . '/js/include/jquery/dataTables/formattedNumberSortPlugin.js', JQUERY_NO_CONFLICT); } } // SERVICE: BANNER $banner = (include ROOT_DIR . '/include/banner.inc.php'); $content_dataAr = array('course_title' => translateFN('Report del corso'), 'banner' => $banner, 'menu' => $menu, 'user_name' => $user_name, 'user_type' => $user_type, 'help' => $help, 'status' => $status, 'dati' => $tabled_visits_dataHa, 'agenda' => $user_agenda->getHtml(), 'messages' => $user_messages->getHtml()); ARE::render($layout_dataAr, $content_dataAr, null, isset($optionsAr) ? $optionsAr : null);
/** * function that return list of history test sent test or survey by student * * @global db $dh * * @param boolean $student if true switch scope from tutor to student * * @return array an array composed of 'html', 'path' and 'title' keys */ protected function list_history_tests($student = false) { $dh = $GLOBALS['dh']; $historyTest = $dh->test_getHistoryTestJoined(array('id_nodo' => $this->test['id_nodo'], 'id_corso' => $this->courseObj->id, 'id_istanza_corso' => $this->course_instanceObj->id), $this->tipo); if ($dh->isError($historyTest)) { $this->returnError = true; return; } $thead = array(sprintf(translateFN('%s Id'), $this->singolare), translateFN('Titolo'), translateFN('Punteggio'), translateFN('Punteggio Barriera'), translateFN('Consegnato'), translateFN('Tempo scaduto'), translateFN('Ripetibile'), translateFN('Data inizio'), translateFN('Data fine'), translateFN('Visualizza')); $tbody = array(); if (!empty($historyTest)) { foreach ($historyTest as $k => $r) { $id_student = $r['id_utente']; $tbody[$k][] = $k + 1; $tbody[$k][] = $r['titolo']; $tbody[$k][] = $r['punteggio_realizzato']; $tbody[$k][] = $r['punteggio_minimo_barriera']; $tbody[$k][] = $r['consegnato'] ? translateFN('Si') : translateFN('No'); $tbody[$k][] = $r['tempo_scaduto'] ? translateFN('Si') : translateFN('No'); $tbody[$k][] = $r['ripetibile'] ? translateFN('Si') : translateFN('No'); $tbody[$k][] = AMA_DataHandler::ts_to_date($r['data_inizio'], "%d/%m/%Y %H:%M:%S"); $tbody[$k][] = $r['data_fine'] > 0 ? AMA_DataHandler::ts_to_date($r['data_fine'], "%d/%m/%Y %H:%M:%S") : '---'; $tbody[$k][] = '<a href="' . $this->filepath . '?op=' . $this->what . '&id_course=' . $r['id_corso'] . '&id_course_instance=' . $r['id_istanza_corso'] . '&id_student=' . $r['id_utente'] . '&id_test=' . $r['id_nodo'] . '&id_history_test=' . $r['id_history_test'] . '"><img src="img/magnify.png" /></a>'; } $caption = sprintf(translateFN('Tentativi effettuati dallo studente %s %s per il %s "%s"'), $this->student['cognome'], $this->student['nome'], $this->singolare, $this->test['titolo']); $table = BaseHtmlLib::tableElement('', $thead, $tbody, $thead, $caption); $html = $table->getHtml(); } else { if ($student) { $html = sprintf(translateFN('Non hai effettuato nessun %s'), $this->singolare); } else { $html = sprintf(translateFN('Lo studente selezionato non ha effettuato nessun %s'), $this->singolare); } } $path = '<a href="' . $this->filepath . '?op=' . $this->what . '&id_course_instance=' . $this->course_instanceObj->id . '&id_course=' . $this->courseObj->id . '">' . translateFN('Valutazione') . ' ' . ucfirst($this->plurale) . '</a> > <a href="' . $this->filepath . '?op=' . $this->what . '&id_course_instance=' . $this->course_instanceObj->id . '&id_course=' . $this->courseObj->id . '&id_student=' . $id_student . '">' . $this->student['cognome'] . ' ' . $this->student['nome'] . '</a> > ' . $this->test['titolo']; return array('html' => $html, 'path' => $path, 'title' => translateFN('Valutazione') . ' ' . ucfirst($this->plurale)); }