public function display($tpl = null) { $this->app = JFactory::getApplication(); $this->params = $this->app->getParams('com_rsform'); $this->template = $this->get('template'); $this->directory = $this->get('directory'); if (!$this->directory->enablepdf) { JError::raiseWarning(500, JText::_('JERROR_ALERTNOAUTHOR')); $this->app->redirect(JURI::root()); } parent::display($tpl); if (class_exists('plgSystemRSFPPDF')) { /** * DOMPDF Library */ require_once JPATH_ADMINISTRATOR . '/components/com_rsform/helpers/pdf/pdf.php'; $pdf = new RSFormPDF(); // Build the PDF Document string from the document buffer header('Content-Type: application/pdf; charset=utf-8'); header('Content-disposition: inline; filename="export.pdf"', true); $contents = '<link rel="stylesheet" href="' . JPATH_SITE . '/components/com_rsform/assets/css/directory.css" type="text/css"/>'; $contents .= ob_get_contents(); $pdf->write('export.pdf', $contents, true); jexit(); } else { /* * Setup external configuration options */ define('K_TCPDF_EXTERNAL_CONFIG', true); define("K_PATH_MAIN", JPATH_LIBRARIES . "/tcpdf"); define("K_PATH_URL", JPATH_BASE); define("K_PATH_FONTS", K_PATH_MAIN . '/fonts/'); define("K_PATH_CACHE", K_PATH_MAIN . "/cache"); define("K_PATH_URL_CACHE", K_PATH_URL . "/cache"); define("K_PATH_IMAGES", K_PATH_MAIN . "/images"); define("K_BLANK_IMAGE", K_PATH_IMAGES . "/_blank.png"); define("K_CELL_HEIGHT_RATIO", 1.25); define("K_TITLE_MAGNIFICATION", 1.3); define("K_SMALL_RATIO", 2 / 3); define("HEAD_MAGNIFICATION", 1.1); /* * Create the pdf document */ jimport('tcpdf.tcpdf'); $pdf = new TCPDF(); $pdf->SetMargins(15, 27, 15); $pdf->SetAutoPageBreak(true, 25); $pdf->SetHeaderMargin(5); $pdf->SetFooterMargin(10); $pdf->setImageScale(4); $document = JFactory::getDocument(); // Set PDF Metadata $pdf->SetCreator($document->getGenerator()); $pdf->SetTitle($document->getTitle()); $pdf->SetSubject($document->getDescription()); $pdf->SetKeywords($document->getMetaData('keywords')); // Set PDF Header data $pdf->setHeaderData('', 0, $document->getTitle(), null); // Set RTL $lang = JFactory::getLanguage(); $pdf->setRTL($lang->isRTL()); // Set Font $font = 'freesans'; $pdf->setHeaderFont(array($font, '', 10)); $pdf->setFooterFont(array($font, '', 8)); // Initialize PDF Document if (is_callable(array($pdf, 'AliasNbPages'))) { $pdf->AliasNbPages(); } $pdf->AddPage(); $contents .= ob_get_contents(); $pdf->WriteHTML($contents, true); $data = $pdf->Output('', 'S'); ob_end_clean(); // Build the PDF Document string from the document buffer header('Content-Type: application/pdf; charset=utf-8'); header('Content-disposition: attachment; filename="export.pdf"', true); echo $data; die; } }
protected function buildPdf() { /* * Setup external configuration options */ define('K_TCPDF_EXTERNAL_CONFIG', true); /* * Path options */ // Installation path define("K_PATH_MAIN", JPATH_LIBRARIES . "/tcpdf"); // URL path define("K_PATH_URL", JPATH_BASE); // Fonts path define("K_PATH_FONTS", K_PATH_MAIN . '/fonts/'); // Cache directory path define("K_PATH_CACHE", K_PATH_MAIN . "/cache"); // Cache URL path define("K_PATH_URL_CACHE", K_PATH_URL . "/cache"); // Images path define("K_PATH_IMAGES", K_PATH_MAIN . "/images"); // Blank image path define("K_BLANK_IMAGE", K_PATH_IMAGES . "/_blank.png"); /* * Format options */ // Cell height ratio define("K_CELL_HEIGHT_RATIO", 1.25); // Magnification scale for titles define("K_TITLE_MAGNIFICATION", 1.3); // Reduction scale for small font define("K_SMALL_RATIO", 2 / 3); // Magnication scale for head define("HEAD_MAGNIFICATION", 1.1); /* * Create the pdf document */ jimport('tcpdf.tcpdf'); $pdf = new TCPDF(); $pdf->SetMargins(15, 27, 15); $pdf->SetAutoPageBreak(true, 25); $pdf->SetHeaderMargin(5); $pdf->SetFooterMargin(10); $pdf->setImageScale(4); $document = JFactory::getDocument(); // Set PDF Metadata $pdf->SetCreator($document->getGenerator()); $pdf->SetTitle($document->getTitle()); $pdf->SetSubject($document->getDescription()); $pdf->SetKeywords($document->getMetaData('keywords')); // Set PDF Header data $pdf->setHeaderData('', 0, $document->getTitle(), null); // Set RTL $lang = JFactory::getLanguage(); $pdf->setRTL($lang->isRTL()); // Set Font $font = 'freesans'; $pdf->setHeaderFont(array($font, '', 10)); $pdf->setFooterFont(array($font, '', 8)); // Initialize PDF Document if (is_callable(array($pdf, 'AliasNbPages'))) { $pdf->AliasNbPages(); } $pdf->AddPage(); $pdf->WriteHTML(ob_get_contents(), true); $data = $pdf->Output('', 'S'); ob_end_clean(); // Build the PDF Document string from the document buffer header('Content-Type: application/pdf; charset=utf-8'); header('Content-disposition: inline; filename="export.pdf"', true); echo $data; die; }
/** * Output the contents of a wiki page as a PDF * * Based on work submitted by Steven Maus <*****@*****.**> (2014) * * @return void */ public function pdfTask() { // Does a page exist for the given pagename? if (!$this->page->exists() || $this->page->isDeleted()) { App::abort(404, Lang::txt('COM_WIKI_WARNING_NOT_FOUND')); // No! Ask if they want to create a new page /*$this->view->setLayout('doesnotexist'); if ($this->_group) { $this->page->set('group_cn', $this->_group); $this->page->set('scope', $this->_group . '/wiki'); } if ($this->getError()) { foreach ($this->getErrors() as $error) { $this->view->setError($error); } } $this->view->display(); return;*/ } // Retrieve a specific version if given $this->view->revision = $this->page->revision(Request::getInt('version', 0)); if (!$this->view->revision->exists()) { foreach ($this->getErrors() as $error) { $this->view->setError($error); } $this->view->set('page', $this->page)->setLayout('nosuchrevision')->display(); return; } Request::setVar('format', 'pdf'); $pdf = new \TCPDF(PDF_PAGE_ORIENTATION, PDF_UNIT, PDF_PAGE_FORMAT, true, 'UTF-8', false); // set header and footer fonts $pdf->setHeaderFont(array(PDF_FONT_NAME_MAIN, '', PDF_FONT_SIZE_MAIN)); $pdf->setFooterFont(array(PDF_FONT_NAME_DATA, '', PDF_FONT_SIZE_DATA)); // set margins $pdf->SetMargins(PDF_MARGIN_LEFT, PDF_MARGIN_TOP, PDF_MARGIN_RIGHT); $pdf->SetHeaderMargin(10); $pdf->SetFooterMargin(PDF_MARGIN_FOOTER); // set auto page breaks $pdf->SetAutoPageBreak(TRUE, PDF_MARGIN_BOTTOM); // set image scale factor $pdf->setImageScale(PDF_IMAGE_SCALE_RATIO); // Set font $pdf->SetFont('dejavusans', '', 11, '', true); $pdf->setAuthor = $this->page->creator('name'); $pdf->setCreator = \Config::get('sitename'); $pdf->setDocModificationTimeStamp($this->page->modified()); $pdf->setHeaderData(NULL, 0, strtoupper($this->page->get('itle')), NULL, array(84, 94, 124), array(146, 152, 169)); $pdf->setFooterData(array(255, 255, 255), array(255, 255, 255)); $pdf->AddPage(); // Set the view page content to current revision html $this->view->page = $this->page; // Load the wiki parser $wikiconfig = array('option' => $this->_option, 'scope' => $this->page->get('scope'), 'pagename' => $this->page->get('pagename'), 'pageid' => $this->page->get('id'), 'filepath' => '', 'domain' => $this->page->get('group_cn')); $p = Parser::getInstance(); // Parse the text $this->view->revision->set('pagehtml', $p->parse($this->view->revision->get('pagetext'), $wikiconfig, true, true)); $pdf->writeHTML($this->view->loadTemplate(), true, false, true, false, ''); header("Content-type: application/octet-stream"); // Close and output PDF document // Force the download of the PDF $pdf->Output($this->page->get('pagename') . '.pdf', 'D'); exit; }
public function getSmartyTpl() { $smarty = $this->getSmartyVar(); $currentUser = $this->getCurrentUser(); $currentLesson = $this->getCurrentLesson(); $currentLessonID = $currentLesson->lesson['id']; if ($currentUser->getRole($this->getCurrentLesson()) == 'professor' || $currentUser->getRole($this->getCurrentLesson()) == 'student') { // XXX $workbookLessonName = _WORKBOOK_NAME . ' [' . $this->getWorkbookLessonName($currentLessonID) . ']'; $smarty->assign("T_WORKBOOK_LESSON_NAME", $workbookLessonName); $lessonQuestions = $this->getLessonQuestions($currentLessonID); $workbookLessons = $this->isWorkbookInstalledByUser($currentUser, $currentUser->getRole($this->getCurrentLesson()), $currentLessonID); $workbookItems = $this->getWorkbookItems($currentLessonID); $nonOptionalQuestionsNr = $this->getNonOptionalQuestionsNr($workbookItems); if ($nonOptionalQuestionsNr != 0) { $questionPercentage = (double) (100 / $nonOptionalQuestionsNr); $questionPercentage = round($questionPercentage, 2); } $isWorkbookPublished = $this->isWorkbookPublished($currentLessonID); } if ($currentUser->getRole($this->getCurrentLesson()) == 'student') { $workbookSettings = $this->getWorkbookSettings($currentLessonID); $smarty->assign("T_WORKBOOK_SETTINGS", $workbookSettings); } $smarty->assign("T_WORKBOOK_BASEURL", $this->moduleBaseUrl); $smarty->assign("T_WORKBOOK_BASELINK", $this->moduleBaseLink); global $popup; isset($popup) && $popup == 1 ? $popup_ = '&popup=1' : ($popup_ = ''); if (isset($_REQUEST['question_preview']) && $_REQUEST['question_preview'] == '1' && isset($_REQUEST['question_id']) && eF_checkParameter($_REQUEST['question_id'], 'id')) { $id = $_REQUEST['question_id']; if (!in_array($id, array_keys($lessonQuestions))) { // reused item $reusedQuestion = $this->getReusedQuestionDetails($id); $type = $reusedQuestion['type']; } else { $type = $lessonQuestions[$id]['type']; } echo $this->questionToHtml($id, $type); exit; } if (isset($_REQUEST['get_progress']) && $_REQUEST['get_progress'] == '1') { $isWorkbookCompleted = $this->isWorkbookCompleted($currentUser->user['login'], $currentLessonID, array_keys($workbookItems), $nonOptionalQuestionsNr); $studentProgress = $this->getStudentProgress($currentUser->user['login'], $currentLessonID); if ($isWorkbookCompleted['is_completed'] == 1) { $unitToComplete = $workbookSettings['unit_to_complete']; $result = eF_updateTableData('module_workbook_progress', array('completion_date' => time()), "lessons_ID='" . $currentLessonID . "' AND users_LOGIN='******'login'] . "'"); if ($unitToComplete != -1) { $currentUser->setSeenUnit($unitToComplete, $currentLessonID, true); } } echo $studentProgress . '-' . $isWorkbookCompleted['id']; exit; } if (isset($_GET['edit_settings']) && $_GET['edit_settings'] == '1') { if ($_SESSION['s_type'] != 'professor') { $message = _WORKBOOK_NOACCESS; $message_type = 'failure'; $this->setMessageVar(urlencode($message), $message_type); } $content = new EfrontContentTree($currentLessonID); $iterator = new EfrontNodeFilterIterator(new RecursiveIteratorIterator(new RecursiveArrayIterator($content->tree), RecursiveIteratorIterator::SELF_FIRST), array('ctg_type' => 'theory')); $contentOptions = $content->toHTMLSelectOptions($iterator); $contentOptions = array(-1 => '-------------') + $contentOptions; $workbookSettings = $this->getWorkbookSettings($currentLessonID); if ($isWorkbookPublished == 1) { $contentOptions[$workbookSettings['unit_to_complete']] = str_replace(' ', '', $contentOptions[$workbookSettings['unit_to_complete']]); $contentOptions[$workbookSettings['unit_to_complete']] = str_replace('»', '', $contentOptions[$workbookSettings['unit_to_complete']]); } $form = new HTML_QuickForm("edit_settings_form", "post", $this->moduleBaseUrl . "&edit_settings=1", "", null, true); $form->addElement('text', 'lesson_name', _WORKBOOK_LESSON_NAME, 'class="inputText"'); $form->addRule('lesson_name', _THEFIELD . ' "' . _WORKBOOK_LESSON_NAME . '" ' . _ISMANDATORY, 'required', null, 'client'); $form->addElement('advcheckbox', 'allow_print', _WORKBOOK_ALLOW_PRINT, null, 'class="inputCheckBox"', array(0, 1)); $form->addElement('advcheckbox', 'allow_export', _WORKBOOK_ALLOW_EXPORT, null, 'class="inputCheckBox"', array(0, 1)); $form->addElement('advcheckbox', 'edit_answers', _WORKBOOK_EDIT_ANSWERS, null, 'class="inputCheckBox"', array(0, 1)); $form->addElement('select', 'unit_to_complete', _WORKBOOK_UNIT_TO_COMPLETE, $contentOptions); $form->addElement('submit', 'submit', _UPDATE, 'class="flatButton"'); if ($isWorkbookPublished == 1) { $form->freeze('unit_to_complete'); } $form->setDefaults($workbookSettings); if ($form->isSubmitted() && $form->validate()) { $values = $form->exportValues(); $fields = array("lesson_name" => $values['lesson_name'], "allow_print" => $values['allow_print'], "allow_export" => $values['allow_export'], "edit_answers" => $values['edit_answers'], "unit_to_complete" => $values['unit_to_complete']); if (eF_updateTableData("module_workbook_settings", $fields, "id=" . $workbookSettings['id'])) { $smarty->assign("T_WORKBOOK_MESSAGE", _WORKBOOK_SETTINGS_SUCCESSFULLY_EDITED); $smarty->assign("T_WORKBOOK_MESSAGE_TYPE", 'success'); } else { $smarty->assign("T_WORKBOOK_MESSAGE", _WORKBOOK_SETTINGS_EDIT_PROBLEM); $smarty->assign("T_WORKBOOK_MESSAGE_TYPE", 'failure'); } } $renderer = new HTML_QuickForm_Renderer_ArraySmarty($smarty); $renderer->setRequiredTemplate('{$html}{if $required} <span class="formRequired">*</span>{/if}'); $form->setJsWarnings(_BEFOREJAVASCRIPTERROR, _AFTERJAVASCRIPTERROR); $form->setRequiredNote(_REQUIREDNOTE); $form->accept($renderer); $smarty->assign('T_WORKBOOK_EDIT_SETTINGS_FORM', $renderer->toArray()); } if (isset($_GET['reuse_item']) && $_GET['reuse_item'] == '1') { if ($_SESSION['s_type'] != 'professor') { $message = _WORKBOOK_NOACCESS; $message_type = 'failure'; $this->setMessageVar(urlencode($message), $message_type); } $form = new HTML_QuickForm("reuse_item_form", "post", $this->moduleBaseUrl . "&reuse_item=1", "", null, true); $form->addElement('text', 'item_id', _WORKBOOK_ITEM_ID, 'class="inputText"'); $form->addRule('item_id', _THEFIELD . ' "' . _WORKBOOK_ITEM_ID . '" ' . _ISMANDATORY, 'required', null, 'client'); $form->addElement('submit', 'submit', _WORKBOOK_REUSE_ITEM, 'class="flatButton"'); if ($form->isSubmitted() && $form->validate()) { $values = $form->exportValues(); $existingIDs = $this->getItemsUniqueIDs(); if (!in_array($values['item_id'], $existingIDs)) { $message = _WORKBOOK_INVALID_UNIQUE_ID; $message_type = 'failure'; $this->setMessageVar(urlencode($message), $message_type); } else { $item = $this->getItemByUniqueID($values['item_id']); $fields = array("item_title" => $item['item_title'], "item_text" => $item['item_text'], "item_question" => $item['item_question'], "question_text" => $item['question_text'], "check_answer" => $item['check_answer'], "lessons_ID" => $currentLessonID, "unique_ID" => $this->generateItemID(), "position" => $this->itemPosition($currentLessonID)); if (eF_insertTableData("module_workbook_items", $fields)) { $smarty->assign("T_WORKBOOK_MESSAGE", urlencode(_WORKBOOK_ITEM_SUCCESSFULLY_ADDED)); $smarty->assign("T_WORKBOOK_MESSAGE_TYPE", 'success'); } else { $smarty->assign("T_WORKBOOK_MESSAGE", _WORKBOOK_ITEM_ADD_PROBLEM); $smarty->assign("T_WORKBOOK_MESSAGE_TYPE", 'failure'); } } } $renderer = new HTML_QuickForm_Renderer_ArraySmarty($smarty); $renderer->setRequiredTemplate('{$html}{if $required} <span class="formRequired">*</span>{/if}'); $form->setJsWarnings(_BEFOREJAVASCRIPTERROR, _AFTERJAVASCRIPTERROR); $form->setRequiredNote(_REQUIREDNOTE); $form->accept($renderer); $smarty->assign('T_WORKBOOK_REUSE_ITEM_FORM', $renderer->toArray()); } if (isset($_GET['move_item']) && eF_checkParameter($_GET['move_item'], 'id') && in_array($_GET['move_item'], array_keys($workbookItems))) { if ($_SESSION['s_type'] != 'professor') { $message = _WORKBOOK_NOACCESS; $message_type = 'failure'; $this->setMessageVar(urlencode($message), $message_type); } $smarty->assign("T_WORKBOOK_ITEMS_COUNT", count($workbookItems)); $itemPosition = $workbookItems[$_GET['move_item']]['position']; $availablePositions = array(); foreach ($workbookItems as $key => $value) { if ($value['position'] != $itemPosition) { $availablePositions[$value['position']] = $value['position']; } } $form = new HTML_QuickForm("move_item_form", "post", $this->moduleBaseUrl . "&move_item=" . $_GET['move_item'], "", null, true); $form->addElement('select', 'item_position', _WORKBOOK_ITEM_NEW_POSITION, $availablePositions, ''); $form->addElement('submit', 'submit', _WORKBOOK_MOVE_ITEM, 'class="flatButton"'); if ($form->isSubmitted() && $form->validate()) { $values = $form->exportValues(); $newPosition = $values['item_position']; if ($newPosition > $itemPosition) { foreach ($workbookItems as $key => $value) { if ($value['position'] > $itemPosition && $value['position'] <= $newPosition) { eF_updateTableData("module_workbook_items", array('position' => $value['position'] - 1), "id=" . $key); } } } else { foreach ($workbookItems as $key => $value) { if ($value['position'] < $itemPosition && $value['position'] >= $newPosition) { eF_updateTableData("module_workbook_items", array('position' => $value['position'] + 1), "id=" . $key); } } } eF_updateTableData("module_workbook_items", array('position' => $newPosition), "id=" . $_GET['move_item']); $smarty->assign("T_WORKBOOK_MESSAGE", _WORKBOOK_ITEM_SUCCESSFULLY_MOVED); $smarty->assign("T_WORKBOOK_MESSAGE_TYPE", 'success'); } $renderer = new HTML_QuickForm_Renderer_ArraySmarty($smarty); $renderer->setRequiredTemplate('{$html}{if $required} <span class="formRequired">*</span>{/if}'); $form->setJsWarnings(_BEFOREJAVASCRIPTERROR, _AFTERJAVASCRIPTERROR); $form->setRequiredNote(_REQUIREDNOTE); $form->accept($renderer); $smarty->assign('T_WORKBOOK_MOVE_ITEM_FORM', $renderer->toArray()); } if (isset($_GET['delete_item']) && eF_checkParameter($_GET['delete_item'], 'id') && in_array($_GET['delete_item'], array_keys($workbookItems))) { $item_id = $_GET['delete_item']; $itemPosition = $workbookItems[$item_id]['position']; foreach ($workbookItems as $key => $value) { if ($value['position'] > $itemPosition) { eF_updateTableData("module_workbook_items", array('position' => $value['position'] - 1), "id=" . $key); } } eF_deleteTableData("module_workbook_items", "id=" . $item_id); } if (isset($_GET['switch_lesson']) && eF_checkParameter($_GET['switch_lesson'], 'id') && in_array($_GET['switch_lesson'], array_keys($workbookLessons))) { $lessonID = $_GET['switch_lesson']; eF_redirect("location:" . $this->moduleBaseUrl . "&lessons_ID=" . $lessonID . $popup_); } if (isset($_GET['add_item']) && $_GET['add_item'] == '1' || isset($_GET['edit_item']) && eF_checkParameter($_GET['edit_item'], 'id') && in_array($_GET['edit_item'], array_keys($workbookItems))) { if ($_SESSION['s_type'] != "professor") { eF_redirect($this->moduleBaseUrl . "&message=" . urlencode(_WORKBOOK_NOACCESS) . $popup_); } global $load_editor; $load_editor = true; $questionsText = array(); $questionsText[-1] = "-----------------------"; foreach ($lessonQuestions as $key => $value) { $questionsText[$key] = $this->truncateText(strip_tags($value['text']), 70); } if (isset($_GET['edit_item'])) { $editItemID = $_GET['edit_item']; $editItemQuestion = $workbookItems[$editItemID]['item_question']; if ($editItemQuestion != '-1' && !in_array($editItemQuestion, array_keys($questionsText))) { // reused item $reusedQuestion = $this->getReusedQuestionDetails($editItemQuestion); $questionsText[$editItemQuestion] = $this->truncateText(strip_tags($reusedQuestion['text']), 70); } } isset($_GET['add_item']) ? $postTarget = "&add_item=1" : ($postTarget = "&edit_item=" . $_GET['edit_item']); $form = new HTML_QuickForm("add_edit_item_form", "post", $this->moduleBaseUrl . $postTarget, "", null, true); $form->addElement('text', 'item_title', _WORKBOOK_ITEM_TITLE, 'class="inputText" style="width:500px;"'); $form->addElement('textarea', 'item_text', _WORKBOOK_ITEM_TEXT, 'class="mceEditor" style="width:99%;height:300px;" id="editor_content_data"'); $form->addElement('select', 'item_question', _WORKBOOK_ITEM_QUESTION, $questionsText, 'onchange="questionPreview(this)"'); $form->addElement('advcheckbox', 'check_answer', _WORKBOOK_ITEM_GRADE_ANSWER, null, 'class="inputCheckBox"', array(0, 1)); if (isset($_GET['add_item'])) { $form->addElement('submit', 'submit', _WORKBOOK_ADD_ITEM, 'class="flatButton"'); } else { $form->addElement('submit', 'submit', _WORKBOOK_UPDATE_ITEM, 'class="flatButton"'); } if (isset($_GET['edit_item'])) { $editItem = $workbookItems[$_GET['edit_item']]; $form->setDefaults($editItem); if ($isWorkbookPublished == '1') { $editItem['question_title'] = $questionsText[$editItem['item_question']]; if ($editItem['check_answer'] == '1') { $editItem['check_answer_text'] = _YES; } else { $editItem['check_answer_text'] = _NO; } } $smarty->assign('T_WORKBOOK_EDIT_ITEM_DETAILS', $editItem); } if ($form->isSubmitted() && $form->validate()) { $values = $form->exportValues(); isset($_GET['add_item']) ? $lessonID = $currentLessonID : ($lessonID = $editItem['lessons_ID']); isset($_GET['add_item']) ? $uniqueID = $this->generateItemID() : ($uniqueID = $editItem['unique_ID']); isset($_GET['add_item']) ? $position = $this->itemPosition($currentLessonID) : ($position = $editItem['position']); if ($values['item_question'] != '-1') { $id = $values['item_question']; if (!in_array($id, array_keys($lessonQuestions))) { // edit reused item $reusedQuestion = $this->getReusedQuestionDetails($id); $type = $reusedQuestion['type']; } else { $type = $lessonQuestions[$id]['type']; } $questionText = $this->questionToHtml($id, $type); } else { $questionText = ''; } $fields = array("item_title" => $values['item_title'], "item_text" => $values['item_text'], "item_question" => $values['item_question'], "question_text" => $questionText, "check_answer" => $values['check_answer'], "lessons_ID" => $lessonID, "unique_ID" => $uniqueID, "position" => $position); if ($values['item_title'] == '' && $values['item_text'] == '' && $values['item_question'] == '-1') { $message = _WORKBOOK_ITEM_EMPTY_FIELDS; if (isset($_GET['add_item'])) { eF_redirect($this->moduleBaseUrl . "&message=" . urlencode($message) . "&message_type=failure&add_item=1" . $popup_); } else { $itemID = $_GET['edit_item']; eF_redirect($this->moduleBaseUrl . "&message=" . urlencode($message) . "&message_type=failure&edit_item=" . $itemID . $popup_); } } if (isset($_GET['add_item'])) { if (eF_insertTableData("module_workbook_items", $fields)) { $message = _WORKBOOK_ITEM_SUCCESSFULLY_ADDED; eF_redirect($this->moduleBaseUrl . "&message=" . urlencode($message) . "&message_type=success" . $popup_); } else { $message = _WORKBOOK_ITEM_ADD_PROBLEM; eF_redirect($this->moduleBaseUrl . "&message=" . urlencode($message) . "&message_type=failure" . $popup_); } } else { if (eF_updateTableData("module_workbook_items", $fields, "id=" . $_GET['edit_item'])) { $message = _WORKBOOK_ITEM_SUCCESSFULLY_EDITED; eF_redirect($this->moduleBaseUrl . "&message=" . urlencode($message) . "&message_type=success" . $popup_); } else { $message = _WORKBOOK_ITEM_EDIT_PROBLEM; eF_redirect($this->moduleBaseUrl . "&message=" . urlencode($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_WORKBOOK_ADD_EDIT_ITEM_FORM', $renderer->toArray()); $basedir = $currentLesson->getDirectory(); $options = array('lessons_ID' => $currentLessonID, 'metadata' => 0); $url = $_SERVER['REQUEST_URI']; $extraFileTools = array(array('image' => 'images/16x16/arrow_right.png', 'title' => _INSERTEDITOR, 'action' => 'insert_editor')); include "file_manager.php"; } if (isset($_GET['publish_workbook']) && $_GET['publish_workbook'] == '1') { $result = eF_getTableData("module_workbook_publish", "publish", "lessons_ID=" . $currentLessonID); if (count($result) == 0) { if (eF_insertTableData("module_workbook_publish", array('lessons_ID' => $currentLessonID, 'publish' => 1))) { $message = _WORKBOOK_SUCCESSFULLY_PUBLISHED; eF_redirect($this->moduleBaseUrl . "&message=" . urlencode($message) . "&message_type=success" . $popup_); } else { $message = _WORKBOOK_PUBLISH_PROBLEM; eF_redirect($this->moduleBaseUrl . "&message=" . urlencode($message) . "&message_type=failure" . $popup_); } } else { if (eF_updateTableData("module_workbook_publish", array('publish' => 1), "lessons_ID=" . $currentLessonID)) { $message = _WORKBOOK_SUCCESSFULLY_PUBLISHED; eF_redirect($this->moduleBaseUrl . "&message=" . urlencode($message) . "&message_type=success" . $popup_); } else { $message = _WORKBOOK_PUBLISH_PROBLEM; eF_redirect($this->moduleBaseUrl . "&message=" . urlencode($message) . "&message_type=failure" . $popup_); } } } if (isset($_GET['reset_workbook_professor']) && $_GET['reset_workbook_professor'] == '1') { eF_updateTableData("module_workbook_publish", array('publish' => 0), "lessons_ID=" . $currentLessonID); foreach ($workbookItems as $key => $value) { eF_deleteTableData("module_workbook_answers", "item_id=" . $key); eF_deleteTableData("module_workbook_autosave", "item_id=" . $key); eF_deleteTableData("module_workbook_progress", "lessons_ID=" . $currentLessonID); } } if (isset($_GET['reset_workbook_student']) && eF_checkParameter($_GET['reset_workbook_student'], 'id')) { $id = $_GET['reset_workbook_student']; $result = eF_getTableData("module_workbook_progress", "users_LOGIN", "id=" . $id); if ($result[0]['users_LOGIN'] != $currentUser->user['login']) { eF_redirect($this->moduleBaseUrl . "&message=" . urlencode(_WORKBOOK_NOACCESS) . $popup_); } eF_deleteTableData("module_workbook_progress", "id=" . $id); foreach ($workbookItems as $key => $value) { eF_deleteTableData("module_workbook_answers", "item_id=" . $key . " AND users_LOGIN='******'login'] . "'"); } $unitToComplete = $workbookSettings['unit_to_complete']; if ($unitToComplete != -1) { $currentUser->setSeenUnit($unitToComplete, $currentLessonID, false); } } if (isset($_GET['download_as']) && $_GET['download_as'] == 'doc') { include dirname(__FILE__) . "/classes/html_to_doc.inc.php"; $workbookAnswers = $this->getWorkbookAnswers($currentUser->user['login'], array_keys($workbookItems)); $workbookHTML = ''; foreach ($workbookItems as $key => $value) { $workbookHTML .= '<div style="width:98%;float:left;border:1px dotted #808080;padding: 5px 10px;">'; $workbookHTML .= '<div style="background-color: #EAEAEA;border: 1px solid #AAAAAA;padding: 2px;font-weight: bold;">'; $workbookHTML .= _WORKBOOK_ITEMS_COUNT . $value['position']; if ($value['item_title'] != '') { $workbookHTML .= ' - ' . $value['item_title']; } $workbookHTML .= '</div><br/>'; if ($value['item_text'] != '') { $workbookHTML .= '<div>' . $value['item_text'] . '</div><br/>'; } if ($value['item_question'] != '-1') { $questionType = $lessonQuestions[$value['item_question']]['type']; if ($workbookAnswers[$value['id']] == '') { if ($questionType == 'drag_drop') { $dragDrop = eF_getTableData("questions", "options, answer, text", "id=" . $value['item_question']); $options = unserialize($dragDrop[0]['options']); $answer = unserialize($dragDrop[0]['answer']); shuffle($options); shuffle($answer); $workbookHTML .= $dragDrop[0]['text']; for ($i = 0; $i < count($options); $i++) { $workbookHTML .= '<div>' . $options[$i] . ' '; $workbookHTML .= $answer[$i] . '</div>'; } } else { $workbookHTML .= '<div>' . $value['question_text'] . '</div>'; } } else { $workbookHTML .= '<div>' . $workbookAnswers[$value['id']] . '</div>'; } } $workbookHTML .= '</div><br/>'; } $workbookHTML = preg_replace('/<script\\b[^>]*>(.*?)<\\/script>/is', "", $workbookHTML); $fileName = _WORKBOOK_NAME . '_' . $this->getWorkbookLessonName($currentLessonID); $fileName = preg_replace('/[\\s]+/', '_', $fileName); $htmltodoc = new HTML_TO_DOC(); $htmltodoc->createDoc($workbookHTML, $fileName, true); exit(0); } if (isset($_GET['download_as']) && $_GET['download_as'] == '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->AddPage(); $completion_date = ''; $resutlt = eF_getTableData('module_workbook_progress', 'completion_date', "users_LOGIN='******'login'] . "' and lessons_ID='" . $currentLessonID . "'"); if ($resutlt) { $completion_date = $resutlt[0]['completion_date']; } $workbookHTML = ''; $workbookHTML .= '<table>'; $workbookHTML .= '<tr>'; $workbookHTML .= '<td colspan="2">'; $workbookHTML .= formatLogin($currentUser->user['login']); $workbookHTML .= '</td>'; $workbookHTML .= '</tr>'; $workbookHTML .= '<tr>'; $workbookHTML .= '<td>'; $workbookHTML .= $workbookLessonName; $workbookHTML .= '</td>'; $workbookHTML .= '<td>'; $workbookHTML .= formatTimestamp($completion_date); $workbookHTML .= '</td>'; $workbookHTML .= '</tr>'; $workbookHTML .= '</table>'; $pdf->writeHTML($workbookHTML, true, false, true, false, ''); $pdf->SetHeaderMargin(PDF_MARGIN_HEADER); $pdf->SetFooterMargin(PDF_MARGIN_FOOTER); $pdf->setHeaderFont(array('Freeserif', 'I', 11)); $pdf->setFooterFont(array('Freeserif', '', 8)); $pdf->setHeaderData('', '', '', $workbookLessonName); $pdf->AliasNbPages(); $pdf->SetFont('Freeserif', '', 10); $pdf->SetTextColor(0, 0, 0); $pdf->SetFont('Freeserif', '', 10); $pdf->SetTextColor(0, 0, 0); $workbookAnswers = $this->getWorkbookAnswers($currentUser->user['login'], array_keys($workbookItems)); $pdf->AddPage(); $workbookHTML .= ''; $itemLogo = new EfrontFile(G_DEFAULTIMAGESPATH . "32x32/unit.png"); $itemLogoUrl = $itemLogo['path']; foreach ($workbookItems as $key => $value) { $workbookHTML .= '<div id="pdf-block" style="width:98%;float:left;border:1px dotted #808080;page-break-after:always;">'; $workbookHTML .= '<div style="background-color: #EAEAEA;font-weight: bold;">'; $workbookHTML .= '<img src="' . $itemLogoUrl . '"/> ' . _WORKBOOK_ITEMS_COUNT . $value['position']; if ($value['item_title'] != '') { $workbookHTML .= ' - ' . $value['item_title']; } $workbookHTML .= '</div>'; if ($value['item_text'] != '') { $workbookHTML .= '<div>' . $value['item_text'] . '</div>'; } if ($value['item_question'] != '-1') { $questionType = $lessonQuestions[$value['item_question']]['type']; if ($workbookAnswers[$value['id']] == '') { if ($questionType == 'drag_drop') { $dragDrop = eF_getTableData("questions", "options, answer, text", "id=" . $value['item_question']); $options = unserialize($dragDrop[0]['options']); $answer = unserialize($dragDrop[0]['answer']); shuffle($options); shuffle($answer); $workbookHTML .= $dragDrop[0]['text']; for ($i = 0; $i < count($options); $i++) { $workbookHTML .= '<div>' . $options[$i] . ' '; $workbookHTML .= $answer[$i] . '</div>'; } } else { $workbookHTML .= '<div>' . $value['question_text'] . '</div>'; } } else { $workbookHTML .= '<div>' . $workbookAnswers[$value['id']] . '</div>'; } } $workbookHTML .= '</div><br/>'; } $workbookHTML = preg_replace('/<script\\b[^>]*>(.*?)<\\/script>/is', "", $workbookHTML); $pdf->writeHTML($workbookHTML, true, false, true, false, ''); $fileName = _WORKBOOK_NAME . '_' . str_replace(' ', '_', $this->getWorkbookLessonName($currentLessonID)) . '.pdf'; header("Content-type: application/pdf"); header("Content-disposition: attachment; filename=" . $fileName); echo $pdf->Output('', 'S'); exit(0); } if (isset($_GET['check_workbook_progress']) && $_GET['check_workbook_progress'] == '1') { $lessonStudents = $currentLesson->getUsers('student'); $workbookStudents = array(); foreach ($lessonStudents as $userLogin => $value) { if ($nonOptionalQuestionsNr != 0) { $studentProgress = $this->getStudentProgress($userLogin, $currentLessonID); $studentProgress .= '%'; } else { $studentProgress = '-'; } $workbookStudents[$userLogin] = array('login' => $userLogin, 'progress' => $studentProgress); } $smarty->assign("T_WORKBOOK_STUDENTS", $workbookStudents); } if (isset($_GET['preview_workbook']) && $_GET['preview_workbook'] == '1' && isset($_GET['student']) && eF_checkParameter($_GET['student'], 'login')) { $userLogin = $_GET['student']; $studentProgress = $this->getStudentProgress($userLogin, $currentLessonID); $smarty->assign("T_WORKBOOK_PREVIEW_STUDENT_PROGRESS", $studentProgress); $workbookAnswers = $this->getWorkbookAnswers($userLogin, array_keys($workbookItems)); $smarty->assign("T_WORKBOOK_PREVIEW_ANSWERS", $workbookAnswers); } if (isset($_GET['get_reset_message']) && $_GET['get_reset_message'] == '1') { echo $this->getResetMessage(array_keys($workbookItems)); exit; } if (isset($_POST['item_submitted'])) { $itemID = $_POST['item_submitted']; $questionID = $workbookItems[$itemID]['item_question']; $checkAnswer = $workbookItems[$itemID]['check_answer']; if (!in_array($questionID, array_keys($lessonQuestions))) { // reused item $reusedQuestion = $this->getReusedQuestionDetails($questionID); $questionType = $reusedQuestion['type']; } else { $questionType = $lessonQuestions[$questionID]['type']; } $question = QuestionFactory::factory($questionID); $question->setDone($_POST['question'][$questionID]); $results = $question->correct(); if ($questionType != 'raw_text' && !ef_compare_float($results['score'], 1)) { print '-1'; } else { $form = new HTML_QuickForm("questionForm", "post", "", "", null, true); $fields = array('item_id' => $itemID, 'html_solved' => $question->toHTMLSolved($form), 'users_LOGIN' => $currentUser->user['login']); eF_insertTableData("module_workbook_answers", $fields); if ($checkAnswer == '1') { $this->updateStudentProgress($currentUser->user['login'], $currentLessonID, $questionPercentage, $nonOptionalQuestionsNr); } echo $question->toHTMLSolved($form); } eF_deleteTableData("module_workbook_autosave", "item_id=" . $itemID . " AND users_LOGIN='******'login'] . "'"); exit(0); } if (isset($_POST['item_submitted_autosave'])) { $itemID = $_POST['item_submitted_autosave']; $questionID = $workbookItems[$itemID]['item_question']; $question = QuestionFactory::factory($questionID); $form = new HTML_QuickForm("questionForm", "post", "", "", null, true); $form->setDefaults($_POST); $fields = array('item_id' => $itemID, 'autosave_text' => $question->toHTML($form), 'users_LOGIN' => $currentUser->user['login']); eF_deleteTableData("module_workbook_autosave", "item_id=" . $itemID . " AND users_LOGIN='******'login'] . "'"); eF_insertTableData("module_workbook_autosave", $fields); exit(0); } if (isset($_POST['item_to_update'])) { $itemID = $_POST['item_to_update']; $questionID = $workbookItems[$itemID]['item_question']; $question = QuestionFactory::factory($questionID); $question->userAnswer = urldecode($_POST['ans']); $form = new HTML_QuickForm("questionForm", "post", "", "", null, true); $form->setDefaults($_POST); print $question->toHTML($form); exit(0); } if (isset($_POST['item_updated'])) { $itemID = $_POST['item_updated']; $questionID = $workbookItems[$itemID]['item_question']; $question = QuestionFactory::factory($questionID); $question->setDone($_POST['question'][$questionID]); $form = new HTML_QuickForm("questionForm", "post", "", "", null, true); $answerToUpdate = eF_getTableData("module_workbook_answers", "id", "item_id=" . $itemID . " AND users_LOGIN='******'login'] . "'"); eF_updateTableData("module_workbook_answers", array('html_solved' => $question->toHTMLSolved($form)), "id=" . $answerToUpdate[0]['id']); echo $question->toHTMLSolved($form); eF_deleteTableData("module_workbook_autosave", "item_id=" . $itemID . " AND users_LOGIN='******'login'] . "'"); exit(0); } else { if ($currentUser->getRole($this->getCurrentLesson()) == 'professor' || $currentUser->getRole($this->getCurrentLesson()) == 'student') { $workbookItems = $this->getWorkbookItems($currentLessonID); $smarty->assign("T_WORKBOOK_ITEMS", $workbookItems); $smarty->assign("T_WORKBOOK_LESSONS", $workbookLessons); $isWorkbookPublished = $this->isWorkbookPublished($currentLessonID); $smarty->assign("T_WORKBOOK_IS_PUBLISHED", $isWorkbookPublished); $smarty->assign("T_WORKBOOK_NON_OPTIONAL_QUESTIONS_NR", $nonOptionalQuestionsNr); } if ($currentUser->getRole($this->getCurrentLesson()) == 'professor') { $workbookOptions[] = array('text' => _SETTINGS, 'image' => $this->moduleBaseLink . 'images/settings.png', 'href' => $this->moduleBaseUrl . '&edit_settings=1&popup=1', 'onClick' => "eF_js_showDivPopup(event, '" . _SETTINGS . "', 0)", 'target' => 'POPUP_FRAME', 'id' => 'edit_settings'); $workbookOptions[] = array('text' => _WORKBOOK_POPUP_INFO, 'image' => $this->moduleBaseLink . 'images/info.png', 'href' => $this->moduleBaseUrl . '&popup_info=1&popup=1', 'onClick' => "eF_js_showDivPopup(event, '" . _WORKBOOK_POPUP_INFO . "', 2)", 'target' => 'POPUP_FRAME', 'id' => 'popup_info'); $smarty->assign("T_WORKBOOK_OPTIONS", $workbookOptions); } else { if ($currentUser->getRole($this->getCurrentLesson()) == 'student') { $workbookAnswers = $this->getWorkbookAnswers($currentUser->user['login'], array_keys($workbookItems)); $smarty->assign("T_WORKBOOK_ANSWERS", $workbookAnswers); $autoSaveAnswers = $this->getAutoSaveAnswers($currentUser->user['login'], array_keys($workbookItems)); $smarty->assign("T_WORKBOOK_AUTOSAVE_ANSWERS", $autoSaveAnswers); $studentProgress = $this->getStudentProgress($currentUser->user['login'], $currentLessonID); $smarty->assign("T_WORKBOOK_STUDENT_PROGRESS", $studentProgress); $isWorkbookCompleted = $this->isWorkbookCompleted($currentUser->user['login'], $currentLessonID, array_keys($workbookItems), $nonOptionalQuestionsNr); $smarty->assign("T_WORKBOOK_IS_COMPLETED", $isWorkbookCompleted); } } } if ($currentUser->getRole($this->getCurrentLesson()) == 'professor') { return $this->moduleBaseDir . "module_workbook_professor.tpl"; } else { if ($currentUser->getRole($this->getCurrentLesson()) == 'student') { return $this->moduleBaseDir . "module_workbook_student.tpl"; } } }
/** * Display the view * * @param string $tpl The name of the template file to parse; automatically searches through the template paths. * * @return mixed A string if successful, otherwise a Error object. * * @since 1.7.2 */ public function display($tpl = null) { $app = JFactory::getApplication(); $params = JComponentHelper::getParams('com_churchdirectory'); // Get some data from the models $state = $this->get('State'); $items = $this->get('Items'); $category = $this->get('Category'); // Check whether category access level allows access. $user = JFactory::getUser(); $groups = $user->getAuthorisedViewLevels(); if (!in_array($category->access, $groups)) { $app->enqueueMessage(JText::_('JERROR_ALERTNOAUTHOR'), 'error'); return false; } if ($items == false) { $app->enqueueMessage(JText::_('COM_CHURCHDIRECTOY_ERROR_DIRECTORY_NOT_FOUND'), 'error'); return false; } $this->count = count($items); $this->subcount = count($items); $children = $this->get('Children'); $pagination = $this->get('Pagination'); $this->loadHelper('render'); $renderHelper = new ChurchDirectoryRenderHelper; $this->span = $renderHelper->rowWidth($params->get('rows_per_page')); JLoader::register('DirectoryHeaderHelper', JPATH_SITE . '/components/com_churchdirectory/helpers/directoryheader.php'); $this->header = new DirectoryHeaderHelper; $this->header->setPages($params); // Prepare the data. // Compute the contact slug. for ($i = 0, $n = $this->count; $i < $n; $i++) { $item = & $items[$i]; $item->slug = $item->alias ? ($item->id . ':' . $item->alias) : $item->id; $temp = new Joomla\Registry\Registry; $temp->loadString($item->params); $item->params = clone $params; $item->params->merge($temp); if ($item->params->get('show_email', 0) == 1) { $item->email_to = trim($item->email_to); if (!empty($item->email_to) && JMailHelper::isEmailAddress($item->email_to)) { $item->email_to = '<a href="mailto::' . $item->email_to . '">' . $item->email_to . '</a>'; } else { $item->email_to = ''; } } if ($item->params->get('dr_show_street_address') || $item->params->get('dr_show_suburb') || $item->params->get('dr_show_state') || $item->params->get('dr_show_postcode') || $item->params->get('dr_show_country')) { $params->set('address_check', 1); } else { $params->set('address_check', 0); } if ($item->params->get('dr_show_email') || $item->params->get('dr_show_telephone') || $item->params->get('dr_show_fax') || $item->params->get('dr_show_mobile') || $item->params->get('dr_show_webpage') || $item->params->get('dr_show_spouse') || $item->params->get('dr_show_children')) { $params->set('other_check', 1); } else { $params->set('other_check', 0); } switch ($params->get('dr_churchdirectory_icons')) { case 1 : // Text $params->set('marker_address', JText::_('COM_CHURCHDIRECTORY_ADDRESS') . ": "); $params->set('marker_email', JText::_('JGLOBAL_EMAIL') . ": "); $params->set('marker_telephone', JText::_('COM_CHURCHDIRECTORY_TELEPHONE') . ": "); $params->set('marker_fax', JText::_('COM_CHURCHDIRECTORY_FAX') . ": "); $params->set('marker_mobile', JText::_('COM_CHURCHDIRECTORY_MOBILE') . ": "); $params->set('marker_misc', JText::_('COM_CHURCHDIRECTORY_OTHER_INFORMATION') . ": "); $params->set('marker_class', 'jicons-text'); break; case 2 : // None $params->set('marker_address', ''); $params->set('marker_email', ''); $params->set('marker_telephone', ''); $params->set('marker_mobile', ''); $params->set('marker_fax', ''); $params->set('marker_misc', ''); $params->set('marker_class', 'jicons-none'); break; default : // Icons $image1 = JHtml::_('image', 'contacts/' . $params->get('icon_address', 'con_address.png'), JText::_('COM_CHURCHDIRECTORY_ADDRESS') . ": ", null, true ); $image2 = JHtml::_('image', 'contacts/' . $params->get('icon_email', 'emailButton.png'), JText::_('JGLOBAL_EMAIL') . ": ", null, true); $image3 = JHtml::_('image', 'contacts/' . $params->get('icon_telephone', 'con_tel.png'), JText::_('COM_CHURCHDIRECTORY_TELEPHONE') . ": ", null, true ); $image4 = JHtml::_('image', 'contacts/' . $params->get('icon_fax', 'con_fax.png'), JText::_('COM_CHURCHDIRECTORY_FAX') . ": ", null, true); $image5 = JHtml::_('image', 'contacts/' . $params->get('icon_misc', 'con_info.png'), JText::_('COM_CHURCHDIRECTORY_OTHER_INFORMATION') . ": ", null, true ); $image6 = JHtml::_('image', 'contacts/' . $params->get('icon_mobile', 'con_mobile.png'), JText::_('COM_CHURCHDIRECTORY_MOBILE') . ": ", null, true ); $params->set('marker_address', $image1); $params->set('marker_email', $image2); $params->set('marker_telephone', $image3); $params->set('marker_fax', $image4); $params->set('marker_misc', $image5); $params->set('marker_mobile', $image6); $params->set('marker_class', 'jicons-icons'); break; } } $params->set('prepare_content', '0'); // Setup the category parameters. $cparams = $category->getParams(); $category->params = clone $params; $category->params->merge($cparams); $children = [$category->id => $children]; $maxLevel = $params->get('maxLevel', -1); $items = $renderHelper->groupit(['items' => & $items, 'field' => 'lname']); if (0) { foreach ($items as $s1) { $items[$s1] = $renderHelper->groupit(['items' => $items[$s1], 'field' => 'suburb']); } } $this->renderHelper = $renderHelper; $this->maxLevel = & $maxLevel; $this->state = & $state; $this->items = $items; $this->category = & $category; $this->children = & $children; $this->params = & $params; $this->pagination = & $pagination; // Escape strings for HTML output $this->pageclass_sfx = htmlspecialchars($params->get('pageclass_sfx')); $menus = $app->getMenu(); $title = 'directory_prent_out'; // Because the application sets a default page title, // we need to get it from the menu item itself $menu = $menus->getActive(); // Clean the output buffer @ob_end_clean(); // Create new PDF document $this->pdf = new TCPDF(PDF_PAGE_ORIENTATION, PDF_UNIT, PDF_PAGE_FORMAT, true, 'UTF-8', false); // Set document information $this->pdf->SetCreator(PDF_CREATOR); $this->pdf->SetAuthor('NFSDA Church'); $this->pdf->SetTitle($this->params->get('page_title', '')); $this->pdf->SetSubject('Church Directory'); $this->pdf->SetKeywords('Directory, PDF, Members'); // Set default header data $this->pdf->setHeaderData( $params->get('pdf_logo'), $params->get('pdf_logo_width'), $this->params->get('page_heading'), $params->get('pdf_header_string') ); // Remove default header/footer $this->pdf->setHeaderFont(Array(PDF_FONT_NAME_MAIN, '', PDF_FONT_SIZE_MAIN)); $this->pdf->setFooterFont(Array(PDF_FONT_NAME_DATA, '', PDF_FONT_SIZE_DATA)); // Set default monospaced font $this->pdf->SetDefaultMonospacedFont(PDF_FONT_MONOSPACED); // Set margins $this->pdf->SetMargins(PDF_MARGIN_LEFT, PDF_MARGIN_TOP, PDF_MARGIN_RIGHT); $this->pdf->setHeaderMargin(PDF_MARGIN_HEADER); $this->pdf->setFooterMargin(PDF_MARGIN_FOOTER); // Set auto page breaks $this->pdf->SetAutoPageBreak(true, PDF_MARGIN_BOTTOM); $this->pdf->setCellHeightRatio(1.25); // Set image scale factor $this->pdf->setImageScale(2.5); // --------------------------------------------------------- // Set font $this->pdf->SetFont('times', 'BI', 8, '', 'false'); // Set some text to print $html = $this->loadTemplate($tpl); $jweb = new JApplicationWeb; $jweb->clearHeaders(); // Close and output PDF document $this->pdf->Output($title . '.pdf', 'I'); return null; }
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") { if (eF_checkParameter($_GET['edit_entry'], 'id')) { $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(event, '" . _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"; } } }
/** * Creates a header for each page with a custom logo defined * @param string $ln header image logo * @param int $lw header image logo width in mm * @param string $ht string to print as title on document header * @param string $hs string to print on document header */ public function setHeaderData($ln = '', $lw = 0, $ht = '', $hs = '') { $logo_path = get_config("PDF_LOGO"); if (!$ln) { $ln = $logo_path ? $logo_path : '../../../../public/assets/images/logos/logoklein.png'; } $lw = 30; $ht = $ht == '' ? $this->h_title : $ht; $hs = $hs == '' ? $this->h_string : $hs; parent::setHeaderData($ln, $lw, $ht, $hs); }
$proceso = $_GET['proceso']; $tabla = $_GET['tabla']; $query = "SELECT * " . "FROM " . $tabla . " " . "INNER JOIN ciudadanos " . "ON " . $tabla . ".id_ciudadano = ciudadanos.id_ciudadano " . "WHERE " . $tabla . ".id_" . $proceso . " = {$id}"; } $rs = $objDB->getRecord($query); // Include the main TCPDF library (search for installation path). require_once '../tcpdf/tcpdf.php'; // create new PDF document $pdf = new TCPDF(PDF_PAGE_ORIENTATION, PDF_UNIT, 'LETTER', true, 'UTF-8', false); // set document information //$pdf->SetCreator(PDF_CREATOR); //$pdf->SetAuthor('Nicola Asuni'); //$pdf->SetTitle('TCPDF Example 021'); //$pdf->SetSubject('TCPDF Tutorial'); //$pdf->SetKeywords('TCPDF, PDF, example, test, guide'); $pdf->setHeaderData('oac_logo.png', '180.40'); //$pdf->Image('','40'); // // set default header data //$pdf->SetHeaderData(PDF_HEADER_LOGO, PDF_HEADER_LOGO_WIDTH, PDF_HEADER_TITLE.' 021', PDF_HEADER_STRING); //$pdf->setHeaderData('http://localhost/sdenuncias/imagenes/oac_logo.png'); // set header and footer fonts $pdf->setHeaderFont(array(PDF_FONT_NAME_MAIN, '', PDF_FONT_SIZE_MAIN)); $pdf->setFooterFont(array(PDF_FONT_NAME_DATA, '', PDF_FONT_SIZE_DATA)); // set default monospaced font $pdf->SetDefaultMonospacedFont(PDF_FONT_MONOSPACED); // set margins $pdf->SetMargins(PDF_MARGIN_LEFT, PDF_MARGIN_TOP, PDF_MARGIN_RIGHT); $pdf->SetHeaderMargin(PDF_MARGIN_HEADER); $pdf->SetFooterMargin(PDF_MARGIN_FOOTER); // set auto page breaks $pdf->SetAutoPageBreak(TRUE, PDF_MARGIN_BOTTOM);
/** * Output the contents of a wiki page as a PDF * * Based on work submitted by Steven Maus <*****@*****.**> (2014) * * @return void */ public function pdfTask() { // Does a page exist for the given pagename? if (!$this->page->exists() || $this->page->isDeleted()) { App::abort(404, Lang::txt('COM_WIKI_WARNING_NOT_FOUND')); } // Retrieve a specific version if given if ($version = Request::getInt('version', 0)) { $revision = $this->page->versions()->whereEquals('version', $version)->whereEquals('approved', 1)->row(); } else { $revision = $this->page->version; } if (!$revision->exists()) { $this->view->set('page', $this->page)->set('version', $version)->set('sub', $this->page->get('scope') != 'site')->setLayout('nosuchrevision')->display(); return; } // Log activity $recipients = array(['wiki.site', 1]); if ($this->page->get('scope') != 'site') { $recipients[] = [$this->page->get('scope'), $this->page->get('scope_id')]; $recipients[0] = ['wiki.' . $this->page->get('scope'), $this->page->get('scope_id')]; } Event::trigger('system.logActivity', ['activity' => ['action' => 'downloaded', 'scope' => 'wiki.page', 'scope_id' => $this->page->get('id'), 'description' => Lang::txt('COM_WIKI_ACTIVITY_PAGE_DOWNLOADED', '<a href="' . Route::url($this->page->link()) . '">' . $this->page->title . '</a>'), 'details' => array('title' => $this->page->title, 'url' => Route::url($this->page->link()), 'name' => $this->page->get('pagename'))], 'recipients' => $recipients]); Request::setVar('format', 'pdf'); $pdf = new \TCPDF(PDF_PAGE_ORIENTATION, PDF_UNIT, PDF_PAGE_FORMAT, true, 'UTF-8', false); // set header and footer fonts $pdf->setHeaderFont(array(PDF_FONT_NAME_MAIN, '', PDF_FONT_SIZE_MAIN)); $pdf->setFooterFont(array(PDF_FONT_NAME_DATA, '', PDF_FONT_SIZE_DATA)); // set margins $pdf->SetMargins(PDF_MARGIN_LEFT, PDF_MARGIN_TOP, PDF_MARGIN_RIGHT); $pdf->SetHeaderMargin(10); $pdf->SetFooterMargin(PDF_MARGIN_FOOTER); // set auto page breaks $pdf->SetAutoPageBreak(TRUE, PDF_MARGIN_BOTTOM); // set image scale factor $pdf->setImageScale(PDF_IMAGE_SCALE_RATIO); // Set font //$pdf->SetFont('dejavusans', '', 11, '', true); $pdf->setAuthor = $this->page->creator()->get('name'); $pdf->setCreator = \Config::get('sitename'); $pdf->setDocModificationTimeStamp($this->page->modified()); $pdf->setHeaderData(NULL, 0, strtoupper($this->page->title), NULL, array(84, 94, 124), array(146, 152, 169)); $pdf->setFooterData(array(255, 255, 255), array(255, 255, 255)); $pdf->AddPage(); // Parse wiki content $revision->set('pagehtml', $revision->content($this->page)); // Set the view page content to current revision html $this->view->set('page', $this->page)->set('revision', $revision); $pdf->writeHTML($this->view->loadTemplate(), true, false, true, false, ''); header("Content-type: application/octet-stream"); // Close and output PDF document // Force the download of the PDF $pdf->Output($this->page->get('pagename') . '.pdf', 'D'); exit; }
<?php date_default_timezone_set("Europe/Berlin"); require_once "mygassi-config.php"; require_once TCPDFPath; $pdf = new TCPDF(PDF_PAGE_ORIENTATION, PDF_UNIT, PDF_PAGE_FORMAT, true, 'UTF-8', false); $pdf->SetCreator(PDF_CREATOR); $pdf->SetAuthor('MyGassi'); $pdf->SetTitle('MyGassi'); $pdf->SetSubject('MyGassi Rechnung'); $pdf->SetKeywords('MyGassi Rechnung'); $pdf->SetDefaultMonospacedFont(PDF_FONT_MONOSPACED); $pdf->setHeaderData('', 0, '', '', array(0, 0, 0), array(255, 255, 255)); $pdf->setFooterData('', 0, '', '', array(0, 0, 0), array(255, 255, 255)); $pdf->setImageScale(PDF_IMAGE_SCALE_RATIO); $pdf->setFontSubsetting(true); $pdf->SetFont('dejavusans', '', 14, '', true); $pdf->AddPage(); /* $temp = ""; foreach($invoices as $invoice){ foreach($invoice->getAllItems() as $item){ $temp .= $item->getName(); $temp .= "<br/>"; } } */ $path = "shell/pdf/test.pdf"; $model = new Model(); $model->title = "Diese Rechnung wird von einer HTML/CSS Stylevorlage generiert und das freut uns alle sehr weil wir die Desighvorlagen übernehmen können."; // $model->test = $temp;
function Generate_Content() { $pdf = new TCPDF(); //kods ņemts no // http://www.tecnick.com/pagefiles/tcpdf/example_001.phps // galvene $pdf->setHeaderData("", "", "", "Atzīmju izraksts"); // set header and footer fonts $pdf->setHeaderFont(array(PDF_FONT_NAME_MAIN, '', 12)); //set margins $pdf->SetMargins(PDF_MARGIN_LEFT, PDF_MARGIN_TOP, PDF_MARGIN_RIGHT); $pdf->SetHeaderMargin(PDF_MARGIN_HEADER); $pdf->SetFooterMargin(PDF_MARGIN_FOOTER); //set auto page breaks $pdf->SetAutoPageBreak(TRUE, PDF_MARGIN_BOTTOM); //initialize document $pdf->AliasNbPages(); // add a page $pdf->AddPage(); // set font $pdf->SetFont("helvetica", "", 10); // print a line using Cell() $pdf->Cell(50, 12, "Skolēns: {$this->studentName}", 0, 0, 'L'); $pdf->Ln(); //ģenerē visu butisko saturu for ($i = 0; $i < count($this->grades); $i++) { $grade = $this->grades[$i]; $pdf->Cell(0, 0, sprintf("%s %s %s", $grade["date"], $grade["lesson"], $grade["grade"]), 0, 0, 'L'); $pdf->Ln(); } $this->fileContents = $pdf; }