/community/www/modules/module_journal/module_journal.class.php
PHP | 896 lines | 656 code | 238 blank | 2 comment | 216 complexity | 7b49525705bff53ce9d1792662069fa5 MD5 | raw file
Possible License(s): BSD-3-Clause, MPL-2.0-no-copyleft-exception, LGPL-3.0
- <?php
- class module_journal extends EfrontModule{
- public function getName(){
- return _JOURNAL_NAME;
- }
- public function getPermittedRoles(){
- return array("student", "professor", "administrator");
- }
- public function getModule(){
- return true;
- }
- public function getSmartyTpl(){
- $currentUser = $this->getCurrentUser();
- $rules = $this->getRules();
- $smarty = $this->getSmartyVar();
- if($currentUser->getRole($this->getCurrentLesson()) == 'professor' || $currentUser->getRole($this->getCurrentLesson()) == 'student'){
- $currentLesson = $this->getCurrentLesson();
- $currentLessonID = $currentLesson->lesson['id'];
- if(!isset($_SESSION['module_journal_dimension']) ||
- (count($_GET) == 2 && $_GET['ctg'] == 'module' && $_GET['op'] == 'module_journal') ||
- (count($_GET) == 3 && $_GET['ctg'] == 'module' && $_GET['op'] == 'module_journal' &&
- $_GET['new_lesson_id'] == $currentLessonID)){
- $_SESSION['module_journal_dimension'] = 'small';
- }
- if(!isset($_SESSION['module_journal_entries_from']) ||
- (count($_GET) == 2 && $_GET['ctg'] == 'module' && $_GET['op'] == 'module_journal') ||
- (count($_GET) == 3 && $_GET['ctg'] == 'module' && $_GET['op'] == 'module_journal' &&
- $_GET['new_lesson_id'] == $currentLessonID)){
- $_SESSION['module_journal_entries_from'] = '-1';
- }
- if(isset($_SESSION['module_journal_scroll_position']))
- $smarty->assign("T_JOURNAL_SCROLL_POSITION", $_SESSION['module_journal_scroll_position']);
- $smarty->assign("T_JOURNAL_DIMENSIONS", $_SESSION['module_journal_dimension']);
- $smarty->assign("T_JOURNAL_ENTRIES_FROM", $_SESSION['module_journal_entries_from']);
- $entries = $this->getEntries($currentUser->user['login'], $_SESSION['module_journal_entries_from']);
- global $popup;
- (isset($popup) && $popup == 1) ? $popup_ = '&popup=1' : $popup_ = '';
- }
- $smarty->assign("T_JOURNAL_BASEURL", $this->moduleBaseUrl);
- $smarty->assign("T_JOURNAL_BASELINK", $this->moduleBaseLink);
- if(isset($_GET['edit_allow_export']) && $_GET['edit_allow_export'] == '1' && isset($_GET['allow'])){
- try{
- $object = eF_getTableData("module_journal_settings", "id", "name='export'");
- eF_updateTableData("module_journal_settings", array("value" => $_GET['allow']), "id=".$object[0]['id']);
- }
- catch(Exception $e){
- handleAjaxExceptions($e);
- }
- exit;
- }
- if(isset($_GET['edit_professor_preview']) && $_GET['edit_professor_preview'] == '1' && isset($_GET['preview'])){
- try{
- $object = eF_getTableData("module_journal_settings", "id", "name='preview'");
- eF_updateTableData("module_journal_settings", array("value" => $_GET['preview']), "id=".$object[0]['id']);
- }
- catch(Exception $e){
- handleAjaxExceptions($e);
- }
- exit;
- }
- if(isset($_GET['dimension']) && eF_checkParameter($_GET['dimension'], 'string')){
- $smarty->assign("T_JOURNAL_DIMENSIONS", $_GET['dimension']);
- $_SESSION['module_journal_dimension'] = $_GET['dimension'];
- }
- if(isset($_GET['entries_from'])){
- $smarty->assign("T_JOURNAL_ENTRIES_FROM", $_GET['entries_from']);
- $_SESSION['module_journal_entries_from'] = $_GET['entries_from'];
- }
- if(isset($_GET['delete_rule']) && eF_checkParameter($_GET['delete_rule'], 'id') && in_array($_GET['delete_rule'], array_keys($rules))){
- try{
- eF_deleteTableData("module_journal_rules", "id=".$_GET['delete_rule']);
- }
- catch(Exception $e){
- handleAjaxExceptions($e);
- }
- exit;
- }
- if(isset($_GET['deactivate_rule']) && eF_checkParameter($_GET['deactivate_rule'], 'id') &&
- in_array($_GET['deactivate_rule'], array_keys($rules))){
- eF_updateTableData("module_journal_rules", array('active' => 0), "id=".$_GET['deactivate_rule']);
- }
- if(isset($_GET['activate_rule']) && eF_checkParameter($_GET['activate_rule'], 'id') &&
- in_array($_GET['activate_rule'], array_keys($rules))){
- eF_updateTableData("module_journal_rules", array('active' => 1), "id=".$_GET['activate_rule']);
- }
- if(isset($_GET['delete_entry']) && eF_checkParameter($_GET['delete_entry'], 'id') &&
- in_array($_GET['delete_entry'], array_keys($entries))){
- $object = eF_getTableData("module_journal_entries", "users_LOGIN", "id=".$_GET['delete_entry']);
- if($object[0]['users_LOGIN'] != $_SESSION['s_login']){
- eF_redirect($this->moduleBaseUrl."&message=".urlencode(_JOURNAL_NOACCESS).$popup_);
- exit;
- }
- eF_deleteTableData("module_journal_entries", "id=".$_GET['delete_entry']);
- }
- if(isset($_GET['saveas']) && $_GET['saveas'] == 'pdf'){
- $pdf = new TCPDF(PDF_PAGE_ORIENTATION, PDF_UNIT, PDF_PAGE_FORMAT, true);
- $pdf->SetCreator(PDF_CREATOR);
- $pdf->SetAuthor(PDF_AUTHOR);
- $pdf->SetMargins(PDF_MARGIN_LEFT, PDF_MARGIN_TOP, PDF_MARGIN_RIGHT);
- $pdf->SetAutoPageBreak(TRUE, PDF_MARGIN_BOTTOM);
- $pdf->setFontSubsetting(false);
- $pdf->SetHeaderMargin(PDF_MARGIN_HEADER);
- $pdf->SetFooterMargin(PDF_MARGIN_FOOTER);
- $pdf->setHeaderFont(Array('Freeserif', 'I', 11));
- $pdf->setFooterFont(Array('Freeserif', '', 8));
- $pdf->setHeaderData('', '', '', _JOURNAL_NAME);
- $pdf->AliasNbPages();
- $pdf->AddPage();
- $pdf->SetFont('Freeserif', '', 10);
- $pdf->SetTextColor(0, 0, 0);
- foreach($entries as $entry){
- $pdf->Cell(0, 0, $entry['entry_date_formatted'], 0, 1, L, 0);
- $pdf->writeHTML('<br/>', true, false, true, false, '');
- $pdf->writeHTML($entry['entry_body'], true, false, true, false, '');
- $pdf->writeHTML('<div style="height: 5px;"></div>', true, false, true, false, '');
- $pdf->writeHTML('<hr>', true, false, true, false, '');
- }
- $fileNamePdf = "journal.pdf";
- header("Content-type: application/pdf");
- header("Content-disposition: attachment; filename=".$fileNamePdf);
- echo $pdf->Output('', 'S');
- exit(0);
- }
- if(isset($_GET['saveas']) && $_GET['saveas'] == 'doc'){
- include(dirname(__FILE__)."/classes/html_to_doc.inc.php");
- $entriesHTML = '';
- foreach($entries as $entry){
- $entriesHTML .= $entry['entry_date_formatted'];
- $entriesHTML .= $entry['entry_body'];
- $entriesHTML .= '<hr><br/>';
- }
- $htmltodoc = new HTML_TO_DOC();
- $htmltodoc->createDoc($entriesHTML, "journal", true);
- exit(0);
- }
- if(isset($_GET['saveas']) && $_GET['saveas'] == 'txt'){
- include(dirname(__FILE__)."/classes/html2text.inc");
- header('Content-Type: text/plain');
- header('Content-Disposition: attachment; filename="journal.txt"');
- $entriesHTML = '';
- foreach($entries as $entry){
- $entriesHTML .= $entry['entry_date_formatted'];
- $entriesHTML .= $entry['entry_body'];
- $entriesHTML .= '<p></p>';
- $entriesHTML .= '_______________________________________________________';
- $entriesHTML .= '<p></p>';
- }
- $htmlToText = new Html2Text($entriesHTML, 100);
- $entriesHTMLtext = $htmlToText->convert();
- echo $entriesHTMLtext;
- exit(0);
- }
- if(isset($_GET['check_students_journals']) && $_GET['check_students_journals'] == '1'){
- $professorJournalLessons = $this->getProfessorJournalLessons($currentUser);
- $journalLessonsStudents = $this->getJournalLessonsStudents($professorJournalLessons);
- $smarty->assign("T_JOURNAL_STUDENTS", $journalLessonsStudents);
- }
- if(isset($_GET['preview_journal']) && $_GET['preview_journal'] == '1' &&
- isset($_GET['student']) && eF_checkParameter($_GET['student'], 'login')){
- $userLogin = $_GET['student'];
- $professorJournalLessons = $this->getProfessorJournalLessons($currentUser);
- $studentEntries = $this->getStudentEntries($userLogin, $professorJournalLessons);
- $smarty->assign("T_JOURNAL_STUDENT_ENTRIES", $studentEntries);
- }
- if(isset($_REQUEST['autosave']) && $_REQUEST['autosave'] == "1" && isset($_REQUEST['entry_body']) && isset($_REQUEST['edit_entry'])){
- if($_REQUEST['edit_entry'] != "-1"){
- $object = eF_getTableData("module_journal_entries", "lessons_ID", "id=".$_GET['edit_entry']);
- $fields = array(
- "entry_body" => $_REQUEST['entry_body'],
- "entry_date" => date('Y').'-'.date('m').'-'.date('d').' '.date('H').':'.date('i').':'.date('s'),
- "lessons_ID" => $object[0]['lessons_ID'],
- "users_LOGIN" => $currentUser->user['login'],
- );
- eF_updateTableData("module_journal_entries", $fields, "id=".$_REQUEST['edit_entry']);
- }
- else{
- $fields = array(
- "entry_body" => $_REQUEST['entry_body'],
- "entry_date" => date('Y').'-'.date('m').'-'.date('d').' '.date('H').':'.date('i').':'.date('s'),
- "lessons_ID" => $currentLessonID,
- "users_LOGIN" => $currentUser->user['login'],
- );
- $id = eF_insertTableData("module_journal_entries", $fields);
- if($id){
- if(isset($_SESSION['module_journal_autosave_entry'])){
- $this->deleteAutoSaveEntry();
- $_SESSION['module_journal_autosave_entry'] = $id;
- }
- else{
- $_SESSION['module_journal_autosave_entry'] = $id;
- }
- }
- }
- exit(0);
- }
- if(isset($_REQUEST['show_right']) && $_REQUEST['show_right'] == "1" && isset($_REQUEST['entry_body']) && $_REQUEST['entry_body'] != ""
- && isset($_REQUEST['edit']) && isset($_REQUEST['edit_entry'])){
- if(isset($_SESSION['module_journal_show_right_entry']))
- unset($_SESSION['module_journal_show_right_entry']);
- $_SESSION['module_journal_show_right_entry'] = $_REQUEST['entry_body'];
- }
- if(isset($_REQUEST['hide_right']) && $_REQUEST['hide_right'] == "1" && isset($_REQUEST['entry_body']) && $_REQUEST['entry_body'] != ""
- && isset($_REQUEST['edit']) && isset($_REQUEST['edit_entry'])){
- if(isset($_SESSION['module_journal_hide_right_entry']))
- unset($_SESSION['module_journal_hide_right_entry']);
- $_SESSION['module_journal_hide_right_entry'] = $_REQUEST['entry_body'];
- }
- if(isset($_REQUEST['hide_left']) && $_REQUEST['hide_left'] == "1" && isset($_REQUEST['entry_body']) && $_REQUEST['entry_body'] != ""
- && isset($_REQUEST['edit']) && isset($_REQUEST['edit_entry'])){
- if(isset($_SESSION['module_journal_hide_left_entry']))
- unset($_SESSION['module_journal_hide_left_entry']);
- $_SESSION['module_journal_hide_left_entry'] = $_REQUEST['entry_body'];
- }
- if(isset($_REQUEST['scroll_position']) && eF_checkParameter($_REQUEST['scroll_position'], 'id')){
- $_SESSION['module_journal_scroll_position'] = $_REQUEST['scroll_position'];
- }
- if(isset($_GET['add_rule']) ||
- (isset($_GET['edit_rule']) && eF_checkParameter($_GET['edit_rule'], 'id') && in_array($_GET['edit_rule'], array_keys($rules)))){
- if($_SESSION['s_type'] != "administrator")
- eF_redirect($this->moduleBaseUrl."&message=".urlencode(_JOURNAL_NOACCESS));
- isset($_GET['add_rule']) ? $postTarget = "&add_rule=1" : $postTarget = "&edit_rule=".$_GET['edit_rule'];
- global $load_editor;
- $load_editor = true;
- $form = new HTML_QuickForm("add_edit_rule_form", "post", $this->moduleBaseUrl.$postTarget, "", null, true);
- $form->addElement('text', 'title', _TITLE, 'class="inputText" style="width:498px;"');
- $form->addRule('title', _THEFIELD.' "'._TITLE.'" '._ISMANDATORY, 'required', null, 'client');
- $form->addElement('textarea', 'description', _DESCRIPTION,
- 'class="inputContentTextarea simpleEditor" style="width:500px;height:20em;"');
- $form->addElement('submit', 'submit', _SUBMIT, 'class="flatButton"');
- if(isset($_GET['edit_rule'])){
- $editRule = $rules[$_GET['edit_rule']];
- $form->setDefaults($editRule);
- }
- if($form->isSubmitted() && $form->validate()){
- $values = $form->exportValues();
- $fields = array(
- "title" => $values['title'],
- "description" => $values['description']
- );
- if($values['description'] == ''){
- $message = _JOURNAL_EMPTY_RULE_DESCRIPTION;
- if(isset($_GET['add_rule']))
- eF_redirect($this->moduleBaseUrl."&message=".$message."&message_type=failure&add_rule=1");
- else
- eF_redirect($this->moduleBaseUrl."&message=".$message."&message_type=failure&edit_rule=".$_GET['edit_rule']);
- }
- if(isset($_GET['add_rule'])){
- if(eF_insertTableData("module_journal_rules", $fields)){
- $message = _JOURNAL_RULE_SUCCESSFULLY_ADDED;
- eF_redirect($this->moduleBaseUrl."&message=".$message."&message_type=success");
- }
- else{
- $message = _JOURNAL_RULE_ADD_PROBLEM;
- eF_redirect($this->moduleBaseUrl."&message=".$message."&message_type=failure");
- }
- }
- else{
- if(eF_updateTableData("module_journal_rules", $fields, "id=".$_GET['edit_rule'])){
- $message = _JOURNAL_RULE_SUCCESSFULLY_EDITED;
- eF_redirect($this->moduleBaseUrl."&message=".$message."&message_type=success");
- }
- else{
- $message = _JOURNAL_RULE_EDIT_PROBLEM;
- eF_redirect($this->moduleBaseUrl."&message=".$message."&message_type=failure");
- }
- }
- }
- $renderer = new HTML_QuickForm_Renderer_ArraySmarty($smarty);
- $form->setJsWarnings(_BEFOREJAVASCRIPTERROR, _AFTERJAVASCRIPTERROR);
- $form->setRequiredNote(_REQUIREDNOTE);
- $form->accept($renderer);
- $smarty->assign('T_JOURNAL_ADD_EDIT_RULE_FORM', $renderer->toArray());
- }
- else{
- $rules = $this->getRules();
- $smarty->assign("T_JOURNAL_RULES", $rules);
- $object = eF_getTableData("module_journal_settings", "value", "name='export'");
- $smarty->assign("T_JOURNAL_ALLOW_EXPORT", $object[0]['value']);
- $object = eF_getTableData("module_journal_settings", "value", "name='preview'");
- $smarty->assign("T_JOURNAL_ALLOW_PROFESSOR_PREVIEW", $object[0]['value']);
- if($currentUser->getRole($this->getCurrentLesson()) == 'professor' || $currentUser->getRole($this->getCurrentLesson()) == 'student'){
- $activeRules = $this->getRules(true);
- $smarty->assign("T_JOURNAL_ACTIVE_RULES", $activeRules);
- $entries = $this->getEntries($currentUser->user['login'], $_SESSION['module_journal_entries_from']);
- $smarty->assign("T_JOURNAL_ENTRIES", $entries);
- $journalLessons = $this->getJournalLessons($currentUser->user['login']);
- $smarty->assign("T_JOURNAL_LESSONS", $journalLessons);
- /* */
- global $load_editor;
- $load_editor = true;
- if(isset($_GET['edit_entry']) && $_GET['edit_entry'] != '-1')
- $postTarget = "&edit_entry=".$_GET['edit_entry'];
- else
- $postTarget = "&add_entry=1";
- if(isset($_GET['hide_right']) && $_GET['hide_right'] == '1'){
- $editorStyle = array(
- 'small' => 'width:588px; height:320px;',
- 'medium' => 'width:673px; height:375px;',
- 'large' => 'width:759px; height:430px;'
- );
- }
- else{
- $editorStyle = array(
- 'small' => 'width:300px; height:320px;',
- 'medium' => 'width:344px; height:375px;',
- 'large' => 'width:388px; height:430px;'
- );
- }
- $form = new HTML_QuickForm("add_edit_entry_form", "post", $this->moduleBaseUrl.$postTarget, "", null, true);
- $form->addElement('textarea', 'entry_body', _DESCRIPTION,
- 'class="inputContentTextarea simpleEditor" style="'.$editorStyle[$_SESSION['module_journal_dimension']].'"');
- if(isset($_GET['edit_entry']) && $_GET['edit_entry'] != '-1')
- $form->addElement('submit', 'submit', _UPDATE.' '._JOURNAL_ENTRY, 'class="flatButton"');
- else
- $form->addElement('submit', 'submit', _SAVE.' '._JOURNAL_ENTRY, 'class="flatButton"');
- if(isset($_GET['edit_entry']) && $_GET['edit_entry'] != '-1'){
- $editEntry = $entries[$_GET['edit_entry']];
- $form->setDefaults($editEntry);
- if(!in_array($_GET['edit_entry'], array_keys($entries)))
- eF_redirect($this->moduleBaseUrl."&message=".urlencode(_JOURNAL_NOACCESS).$popup_);
- $object = eF_getTableData("module_journal_entries", "lessons_ID, users_LOGIN, entry_date","id=".$_GET['edit_entry']);
- if($object[0]['users_LOGIN'] != $_SESSION['s_login'])
- eF_redirect($this->moduleBaseUrl."&message=".urlencode(_JOURNAL_NOACCESS).$popup_);
- }
- if(isset($_GET['show_left']) && $_GET['show_left'] == '1' && isset($_GET['edit']) && isset($_GET['edit_entry'])){
- if(isset($_SESSION['module_journal_hide_left_entry'])){
- $form->setDefaults(array("entry_body" => $_SESSION['module_journal_hide_left_entry']));
- unset($_SESSION['module_journal_hide_left_entry']);
- }
- }
- if(isset($_GET['show_right']) && $_GET['show_right'] == '1' && isset($_GET['edit']) && isset($_GET['edit_entry'])){
- if(isset($_SESSION['module_journal_show_right_entry'])){
- $form->setDefaults(array("entry_body" => $_SESSION['module_journal_show_right_entry']));
- unset($_SESSION['module_journal_show_right_entry']);
- }
- }
- if(isset($_GET['hide_right']) && $_GET['hide_right'] == '1' && isset($_GET['edit']) && isset($_GET['edit_entry'])){
- if(isset($_SESSION['module_journal_hide_right_entry'])){
- $form->setDefaults(array("entry_body" => $_SESSION['module_journal_hide_right_entry']));
- unset($_SESSION['module_journal_hide_right_entry']);
- }
- }
- if($form->isSubmitted() && $form->validate()){
- $values = $form->exportValues();
- isset($_GET['add_entry']) ? $lessonID = $currentLessonID : $lessonID = $object[0]['lessons_ID'];
- if(isset($_GET['add_entry']))
- $date = date('Y').'-'.date('m').'-'.date('d').' '.date('H').':'.date('i').':'.date('s');
- else
- $date = $object[0]['entry_date'];
- $fields = array(
- "entry_body" => $values['entry_body'],
- "entry_date" => $date,
- "lessons_ID" => $lessonID,
- "users_LOGIN" => $currentUser->user['login'],
- );
- if($values['entry_body'] == ''){
- $message = _JOURNAL_EMPTY_ENTRY_BODY;
- eF_redirect($this->moduleBaseUrl."&message=".$message."&message_type=failure".$popup_);
- }
- if(isset($_GET['add_entry'])){
- if(eF_insertTableData("module_journal_entries", $fields)){
- if(isset($_SESSION['module_journal_autosave_entry']))
- $this->deleteAutoSaveEntry();
- $message = _JOURNAL_ENTRY_SUCCESSFULLY_ADDED;
- eF_redirect($this->moduleBaseUrl."&message=".$message."&message_type=success".$popup_);
- }
- else{
- $message = _JOURNAL_ENTRY_ADD_PROBLEM;
- eF_redirect($this->moduleBaseUrl."&message=".$message."&message_type=failure".$popup_);
- }
- }
- else{
- if(eF_updateTableData("module_journal_entries", $fields, "id=".$_GET['edit_entry'])){
- $message = _JOURNAL_ENTRY_SUCCESSFULLY_EDITED;
- eF_redirect($this->moduleBaseUrl."&message=".$message."&message_type=success".$popup_);
- }
- else{
- $message = _JOURNAL_ENTRY_EDIT_PROBLEM;
- eF_redirect($this->moduleBaseUrl."&message=".$message."&message_type=failure".$popup_);
- }
- }
- }
- $renderer = new HTML_QuickForm_Renderer_ArraySmarty($smarty);
- $form->setJsWarnings(_BEFOREJAVASCRIPTERROR, _AFTERJAVASCRIPTERROR);
- $form->setRequiredNote(_REQUIREDNOTE);
- $form->accept($renderer);
- $smarty->assign('T_JOURNAL_ADD_ENTRY_FORM', $renderer->toArray());
- if($currentUser->getRole($this->getCurrentLesson()) == 'professor'){
- $popupInfo[] = array(
- 'text' => _JOURNAL_POPUP_INFO,
- 'image' => $this->moduleBaseLink.'images/info.png',
- 'href' => $this->moduleBaseUrl.'&popup_info=1&popup=1',
- 'onClick' => "eF_js_showDivPopup('"._JOURNAL_POPUP_INFO."', 2)",
- 'target' => 'POPUP_FRAME',
- 'id' => 'popup_info'
- );
- $smarty->assign("T_JOURNAL_POPUP_INFO", $popupInfo);
- }
- }
- }
- if($currentUser->getType() == 'administrator')
- return $this->moduleBaseDir."module_journal_admin.tpl";
- else if($currentUser->getRole($this->getCurrentLesson()) == 'professor' || $currentUser->getRole($this->getCurrentLesson()) == 'student'){
- if(isset($_GET['hide_left']) && $_GET['hide_left'] == '1')
- return $this->moduleBaseDir."module_journal_user_right.tpl";
- if(isset($_GET['hide_right']) && $_GET['hide_right'] == '1')
- return $this->moduleBaseDir."module_journal_user_left.tpl";
- return $this->moduleBaseDir."module_journal_user.tpl";
- }
- }
- public function isLessonModule(){
- return true;
- }
- public function onInstall(){
- eF_executeNew("DROP TABLE IF EXISTS `module_journal_rules`");
- $t1 = eF_executeNew("CREATE TABLE IF NOT EXISTS `module_journal_rules` (
- `id` int(11) NOT NULL AUTO_INCREMENT,
- `title` varchar(255) NOT NULL,
- `description` text NOT NULL,
- `active` tinyint(1) NOT NULL DEFAULT '1',
- PRIMARY KEY (`id`)
- ) ENGINE=MyISAM DEFAULT CHARSET=utf8");
- eF_executeNew("DROP TABLE IF EXISTS `module_journal_entries`");
- $t2 = eF_executeNew("CREATE TABLE IF NOT EXISTS `module_journal_entries` (
- `id` int(11) NOT NULL AUTO_INCREMENT,
- `entry_body` text NOT NULL,
- `entry_date` datetime NOT NULL,
- `lessons_ID` int(11) NOT NULL,
- `users_LOGIN` varchar(255) NOT NULL,
- PRIMARY KEY (`id`)
- ) ENGINE=MyISAM DEFAULT CHARSET=utf8");
- eF_executeNew("DROP TABLE IF EXISTS `module_journal_settings`");
- $t3 = eF_executeNew("CREATE TABLE IF NOT EXISTS `module_journal_settings` (
- `id` int(11) NOT NULL AUTO_INCREMENT,
- `name` varchar(45) NOT NULL,
- `value` tinyint(1) NOT NULL,
- PRIMARY KEY (`id`)
- ) ENGINE=MyISAM DEFAULT CHARSET=utf8");
- eF_insertTableData("module_journal_settings", array('name' => 'export', 'value' => 1));
- eF_insertTableData("module_journal_settings", array('name' => 'preview', 'value' => 1));
- return($t1 && $t2 && $t3);
- }
- public function onUninstall(){
- $t1 = eF_executeNew("DROP TABLE IF EXISTS `module_journal_rules`");
- $t2 = eF_executeNew("DROP TABLE IF EXISTS `module_journal_entries`");
- $t3 = eF_executeNew("DROP TABLE IF EXISTS `module_journal_settings`");
- return($t1 && $t2 && $t3);
- }
- public function onUpgrade(){
- $t1 = eF_executeNew("CREATE TABLE IF NOT EXISTS `module_journal_settings` (
- `id` int(11) NOT NULL AUTO_INCREMENT,
- `name` varchar(45) NOT NULL,
- `value` tinyint(1) NOT NULL,
- PRIMARY KEY (`id`)
- ) ENGINE=MyISAM DEFAULT CHARSET=utf8");
- $resultNew = eF_getTableData("module_journal_settings", "*");
- if(count($resultNew) == 0){
- $result = eF_getTableData("module_journal_allow_export", "*");
- eF_insertTableData("module_journal_settings", array('name' => 'export', 'value' => $result[0]['allow']));
- eF_insertTableData("module_journal_settings", array('name' => 'preview', 'value' => 1));
- }
- $t2 = eF_executeNew("DROP TABLE IF EXISTS `module_journal_allow_export`");
- return($t1 && $t2);
- }
- public function getCenterLinkInfo(){
- return array(
- 'title' => _JOURNAL_NAME,
- 'image' => $this->moduleBaseDir.'images/journal_logo.png',
- 'link' => $this->moduleBaseUrl
- );
- }
- public function getLessonCenterLinkInfo(){
- return array(
- 'title' => _JOURNAL_NAME,
- 'image' => $this->moduleBaseDir.'images/journal_logo.png',
- 'link' => $this->moduleBaseUrl
- );
- }
- public function getSidebarLinkInfo(){
- $currentLessonMenu = array(array(
- 'id' => 'journal_link_1',
- 'title' => _JOURNAL_NAME,
- 'image' => $this->moduleBaseDir.'images/journal_logo16',
- 'eFrontExtensions' => '1',
- 'link' => $this->moduleBaseUrl)
- );
- return array("current_lesson" => $currentLessonMenu);
- }
- public function getLinkToHighlight(){
- return 'journal_link_1';
- }
- public function getNavigationLinks(){
- $currentUser = $this->getCurrentUser();
- if($currentUser->getType() == 'administrator'){
- if(isset($_GET['add_rule'])){
- return array(
- array('title' => _HOME, 'link' => $currentUser->getType().".php?ctg=control_panel"),
- array('title' => _JOURNAL_NAME, 'link' => $this->moduleBaseUrl),
- array('title' => _JOURNAL_ADD_RULE2, 'link' => $_SERVER['REQUEST_URI'])
- );
- }
- else if(isset($_GET['edit_rule'])){
- return array(
- array('title' => _HOME, 'link' => $currentUser->getType().".php?ctg=control_panel"),
- array('title' => _JOURNAL_NAME, 'link' => $this->moduleBaseUrl),
- array('title' => _JOURNAL_EDIT_RULE, 'link' => $_SERVER['REQUEST_URI'])
- );
- }
- else{
- return array(
- array('title' => _HOME, 'link' => $currentUser->getType().".php?ctg=control_panel"),
- array('title' => _JOURNAL_NAME, 'link' => $this->moduleBaseUrl)
- );
- }
- }
- else{
- $smarty = $this -> getSmartyVar();
- $currentLesson = $this->getCurrentLesson();
- $currentUserRole = $currentUser->getRole($currentLesson);
- $onClick = "location='".$currentUserRole.".php?ctg=lessons';top.sideframe.hideAllLessonSpecific();";
- if(isset($_GET['check_students_journals'])){
- return array(
- array('title' => _HOME, 'link' => $smarty->get_template_vars('T_HOME_LINK')),
- array('title' => $currentLesson->lesson['name'], 'link' => $currentUser->getType().".php?ctg=control_panel"),
- array('title' => _JOURNAL_NAME, 'link' => $this->moduleBaseUrl),
- array('title' => _JOURNAL_STUDENTS_JOURNAL, 'link' => $_SERVER['REQUEST_URI'])
- );
- }
- else{
- return array(
- array('title' => _HOME, 'link' => $smarty->get_template_vars('T_HOME_LINK')),
- array('title' => $currentLesson->lesson['name'], 'link' => $currentUser->getType().".php?ctg=control_panel"),
- array('title' => _JOURNAL_NAME, 'link' => $this->moduleBaseUrl)
- );
- }
- }
- }
- public function getModuleCSS(){
- if(isset($_GET['hide_left']) && $_GET['hide_left'] == '1')
- return $this->moduleBaseDir.'css/journal_right.css';
- if(isset($_GET['hide_right']) && $_GET['hide_right'] == '1')
- return $this->moduleBaseDir.'css/journal_left.css';
- return $this->moduleBaseDir.'css/journal.css';
- }
- // Inner Functions
- private function getRules($active=null){
- ($active == null) ? $where = "" : $where = "active=1";
- $result = eF_getTableData("module_journal_rules", "*", $where, "id");
- $rules = array();
- foreach($result as $value)
- $rules[$value['id']] = $value;
- return $rules;
- }
- private function getEntries($userLogin, $filter){
- if($filter == '-1')
- $where = "users_LOGIN='".$userLogin."'";
- else
- $where = "users_LOGIN='".$userLogin."' and lessons_ID=".$filter;
- $result = eF_getTableData("module_journal_entries", "*", $where, "id");
- $entries = array();
- $prev_datestamp = '';
- foreach($result as $value){
- $date_ = explode(' ', $value['entry_date']);
- $datestamp = $date_[0];
- $timestamp = $date_[1];
- $datestamp = explode('-', $datestamp);
- $timestampMktime = explode(':', $timestamp);
- $dateFormatted = formatTimestamp(mktime($timestampMktime[0], $timestampMktime[1], $timestampMktime[2],
- $datestamp[1], $datestamp[2], $datestamp[0]), 'time');
- $datestampFormatted = formatTimestamp(mktime(0, 0, 0, $datestamp[1], $datestamp[2], $datestamp[0]), 'date');
- $datestamp = $datestamp[2].'/'.$datestamp[1].'/'.$datestamp[0];
- if($prev_datestamp == '' || $prev_datestamp != $datestamp)
- $value['date_first'] = 1;
- else
- $value['date_first'] = 0;
- $value['entry_date'] = $datestamp.' '.$timestamp;
- $value['entry_date_formatted'] = $dateFormatted;
- $value['entry_datestamp'] = $datestamp;
- $value['entry_datestamp_formatted'] = $datestampFormatted;
- $value['entry_timestamp'] = $timestamp;
- $entries[$value['id']] = $value;
- $prev_datestamp = $datestamp;
- }
- return $entries;
- }
- function deleteAutoSaveEntry(){
- $autosaveEntry = $_SESSION['module_journal_autosave_entry'];
- eF_deleteTableData("module_journal_entries", "id=".$autosaveEntry);
- unset($_SESSION['module_journal_autosave_entry']);
- }
- function getJournalLessons($userLogin){
- $lessons = array();
- $ids = array();
- $result = eF_getTableData("module_journal_entries", "lessons_ID", "users_LOGIN='".$userLogin."'");
- foreach($result as $value)
- array_push($ids, $value['lessons_ID']);
- $ids = array_unique($ids, SORT_NUMERIC);
- $lessons[-1] = array("id" => -1, "name" => _JOURNAL_ALL_LESSONS);
- foreach($ids as $key => $value){
- $lesson = new EfrontLesson($value);
- $lessons[$value] = array("id" => $value, "name" => $lesson->lesson['name']);
- }
- return $lessons;
- }
- function getProfessorJournalLessons($currentUser){
- $userLessons = $currentUser->getLessons(false, 'professor');
- $lessons = array();
- foreach($userLessons as $key => $value){
- $lesson = new EfrontLesson($key);
- $installed = $lesson->getOptions(array('module_journal'));
- if(count($installed) != 0 && $installed['module_journal'] == 1)
- array_push($lessons, $key);
- }
- return $lessons;
- }
- function getJournalLessonsStudents($professorJournalLessons){
- $students = array();
- foreach($professorJournalLessons as $lessonID){
- $lesson = new EfrontLesson($lessonID);
- $lessonStudents = $lesson->getUsers('student');
- foreach($lessonStudents as $userLogin => $value){
- if(!in_array($userLogin, array_keys($students)))
- $students[$userLogin] = array('login' => $userLogin);
- }
- }
- return $students;
- }
- function getStudentEntries($userLogin, $professorJournalLessons){
- $where = "users_LOGIN='".$userLogin."' and (";
- for($count = 0; $count < count($professorJournalLessons); $count++){
- if($count != count($professorJournalLessons) -1)
- $where .= "lessons_ID=".$professorJournalLessons[$count]." OR ";
- else
- $where .= "lessons_ID=".$professorJournalLessons[$count];
- }
- $where .= ")";
- $result = eF_getTableData("module_journal_entries", "*", $where, "id");
- $entries = array();
- foreach($result as $value){
- $date_ = explode(' ', $value['entry_date']);
- $datestamp = $date_[0];
- $timestamp = $date_[1];
- $datestamp = explode('-', $datestamp);
- $timestampMktime = explode(':', $timestamp);
- $dateFormatted = formatTimestamp(mktime($timestampMktime[0], $timestampMktime[1], $timestampMktime[2],
- $datestamp[1], $datestamp[2], $datestamp[0]), 'time');
- $value['entry_date_formatted'] = $dateFormatted;
- $lesson = new EfrontLesson($value['lessons_ID']);
- $value['lesson'] = $lesson->lesson['name'];
- $entries[$value['id']] = $value;
- }
- return $entries;
- }
- public function getModuleIcon() {
- return $this -> moduleBaseLink.'images/journal_logo.png';
- }
- }
- ?>