function display($tpl = null) { $mainframe =& JFactory::getApplication(); $dispatcher =& JDispatcher::getInstance(); /* Load the event details */ $course = $this->get('Details'); $venue = $this->get('Venue'); $pdf = new TCPDF("P", "mm", "A4", true); $pdf->SetCreator($mainframe->getCfg('sitename')); $pdf->SetAuthor($mainframe->getCfg('sitename')); $pdf->SetTitle($course->title); $pdf->SetSubject($course->title); $pdf->setHeaderFont(array('freesans', '', 8)); $pdf->setFooterFont(array('freesans', '', 8)); $pdf->setFont('freesans'); // disable header and footer $pdf->setPrintHeader(false); $pdf->setPrintFooter(true); //set the display mode $pdf->SetDisplayMode('default'); //initialize document $pdf->AliasNbPages(); // add a page $pdf->AddPage(); $pdf->SetFontSize(10); /* This loads the tags replacer */ JView::loadHelper('tags'); $tags = new redEVENT_tags(); $tags->setXref(JRequest::getInt('xref')); $message = $tags->ReplaceTags($course->submission_type_email_pdf); // convert urls $htmlmsg = REOutput::ImgRelAbs($message); $pdf->WriteHTML($message, true); // add the form data if requested if ($course->pdf_form_data) { JRequest::setVar('pdfform', $pdf); JPluginHelper::importPlugin('content'); $form = new stdClass(); $form->text = '{redform}' . $course->redform_id . ',1{/redform}'; $form->eventid = $course->did; $form->task = 'userregister'; $results = $dispatcher->trigger('onPrepareEvent', array(&$form, array(), 0)); $pdf->WriteHTML($form->text, true); } // output the file $pdf->Output($course->title . ".pdf", "I"); exit; }
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; } }
/** * Convert data. Taken from http://www.tecnick.com/pagefiles/tcpdf/example_006.phps * * @param string $data * @return string */ public function convert($data) { // create new PDF document $pdf = new TCPDF(PDF_PAGE_ORIENTATION, PDF_UNIT, PDF_PAGE_FORMAT, true); // set document information $pdf->SetCreator(PDF_CREATOR); // SET THESE YOURSELF // $pdf->SetAuthor("Nicola Asuni"); // $pdf->SetTitle("TCPDF Example 006"); // $pdf->SetSubject("TCPDF Tutorial"); // $pdf->SetKeywords("TCPDF, PDF, example, test, guide"); // set default header data $pdf->SetHeaderData(PDF_HEADER_LOGO, PDF_HEADER_LOGO_WIDTH, PDF_HEADER_TITLE, PDF_HEADER_STRING); // 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(PDF_MARGIN_HEADER); $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 some language-dependent strings // $pdf->setLanguageArray($l); //initialize document $pdf->AliasNbPages(); // add a page $pdf->AddPage(); // --------------------------------------------------------- // set font $pdf->SetFont("dejavusans", "", 10); // output the HTML content $pdf->writeHTML($data, true, 0, true, 0); // return converted html as a string return $pdf->Output('', 'S'); }
/** * Generates a pdf file * * @param string $content The content to put in the PDF file * @param string $doc_title The title for the PDF file * @param string $doc_keywords The keywords to put in the PDF file * @return string Generated output by the pdf (@link TCPDF) class */ function Generate_PDF($content, $doc_title, $doc_keywords) { global $icmsConfig; require_once ICMS_PDF_LIB_PATH . '/tcpdf.php'; icms_loadLanguageFile('core', 'pdf'); $pdf = new TCPDF(PDF_PAGE_ORIENTATION, PDF_UNIT, PDF_PAGE_FORMAT, true); // set document information $pdf->SetCreator(PDF_CREATOR); $pdf->SetAuthor(PDF_AUTHOR); $pdf->SetTitle($doc_title); $pdf->SetSubject($doc_title); $pdf->SetKeywords($doc_keywords); $sitename = $icmsConfig['sitename']; $siteslogan = $icmsConfig['slogan']; $pdfheader = icms_core_DataFilter::undoHtmlSpecialChars($sitename . ' - ' . $siteslogan); $pdf->SetHeaderData("logo.gif", PDF_HEADER_LOGO_WIDTH, $pdfheader, ICMS_URL); //set margins $pdf->SetMargins(PDF_MARGIN_LEFT, PDF_MARGIN_TOP, PDF_MARGIN_RIGHT); //set auto page breaks $pdf->SetAutoPageBreak(TRUE, PDF_MARGIN_BOTTOM); $pdf->SetHeaderMargin(PDF_MARGIN_HEADER); $pdf->SetFooterMargin(PDF_MARGIN_FOOTER); $pdf->setImageScale(PDF_IMAGE_SCALE_RATIO); //set image scale factor $pdf->setHeaderFont(array(PDF_FONT_NAME_MAIN, '', PDF_FONT_SIZE_MAIN)); $pdf->setFooterFont(array(PDF_FONT_NAME_DATA, '', PDF_FONT_SIZE_DATA)); $pdf->setLanguageArray($l); //set language items // set font $TextFont = @_PDF_LOCAL_FONT && file_exists(ICMS_PDF_LIB_PATH . '/fonts/' . _PDF_LOCAL_FONT . '.php') ? _PDF_LOCAL_FONT : 'dejavusans'; $pdf->SetFont($TextFont); //initialize document $pdf->AliasNbPages(); $pdf->AddPage(); $pdf->writeHTML($content, true, 0); return $pdf->Output(); }
$pdf->SetTitle($doc_title); $pdf->SetSubject($doc_subject); $pdf->SetKeywords($doc_keywords); $pdf->SetHeaderData(PDF_HEADER_LOGO, PDF_HEADER_LOGO_WIDTH, PDF_HEADER_TITLE, PDF_HEADER_STRING); //set margins $pdf->SetMargins(PDF_MARGIN_LEFT, PDF_MARGIN_TOP, PDF_MARGIN_RIGHT); //set auto page breaks $pdf->SetAutoPageBreak(TRUE, PDF_MARGIN_BOTTOM); $pdf->SetHeaderMargin(PDF_MARGIN_HEADER); $pdf->SetFooterMargin(PDF_MARGIN_FOOTER); $pdf->setImageScale(PDF_IMAGE_SCALE_RATIO); //set image scale factor $pdf->setHeaderFont(array(PDF_FONT_NAME_MAIN, '', PDF_FONT_SIZE_MAIN)); $pdf->setFooterFont(array(PDF_FONT_NAME_DATA, '', PDF_FONT_SIZE_DATA)); $pdf->setLanguageArray($l); //set language items //initialize document $pdf->AliasNbPages(); $pdf->AddPage(); // set barcode $pdf->SetBarcode(date("Y-m-d H:i:s", time())); // output some HTML code $pdf->WriteHTML($htmlcontent, true); // output some content $pdf->SetFont("helvetica", "BI", 20); $pdf->Cell(0, 10, 'TEST Bold-Italic Cell', 1, 0, 'C'); //Close and output PDF document $pdf->Output(); //============================================================+ // END OF FILE //============================================================+
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; }
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"; } } }
protected function btnPrint_Click() { if ($this->lstLabelStock->SelectedValue) { $this->lstLabelStock->Warning = ""; set_time_limit(0); // If the user clicked Cancel button if ($_SESSION["intGeneratingStatus"] != -1) { // If the user clicked outside of the modal dialog if ($this->dlgPrintLabels->Visible && $this->dlgPrintLabels->Display) { if ($this->intCurrentBarCodeLabel < count($this->strBarCodeArray)) { array_push($this->strTablesBufferArray, $this->CreateTableByBarCodeArray()); $this->txtWarning->Text = "Please wait... PDF Generating: " . $_SESSION["intGeneratingStatus"] . "% Complete"; $this->txtWarning->Display = true; $this->btnPrint->Enabled = true; QApplication::ExecuteJavaScript("document.getElementById('" . $this->btnPrint->ControlId . "').click();"); } else { include_once '../includes/php/tcpdf/config/lang/eng.php'; include_once '../includes/php/tcpdf/tcpdf.php'; $pdf = new TCPDF(PDF_PAGE_ORIENTATION, PDF_UNIT, PDF_PAGE_FORMAT, true); // Set document information $pdf->SetCreator("Tracmor"); $pdf->SetAuthor("Tracmor"); $pdf->SetTitle("Bar Codes"); // Set PDF viewer preferences $arrPreferences = array('PrintScaling' => 'None'); $pdf->setViewerPreferences($arrPreferences); // Disable header and footer $pdf->setPrintHeader(false); $pdf->setPrintFooter(false); // Disable auto page breaks $pdf->SetAutoPageBreak(false); // Set some language-dependent strings $pdf->setLanguageArray($l); // Set the color used for all drawing operations (lines, rectangles and cell borders). $pdf->SetDrawColor(255); // white // Set Cell Padding $pdf->SetCellPadding(0); // Set Cell Spacing $pdf->SetLineWidth(0); // Initialize document $pdf->AliasNbPages(); switch ($this->lstLabelStock->SelectedValue) { case 1: // Labels per row for Avery 6577 (5/8" x 3") $pdf->SetFontSize(3); $pdf->setCellHeightRatio(2.3); // was 1.93 // Set margins $pdf->SetMargins(12, 12, 12); break; case 2: // Labels per row for Avery 6576 (1-1/4" x 1-3/4") $pdf->SetFontSize(3); $pdf->setCellHeightRatio(11.0); // was 10.2 // Set margins $pdf->SetMargins(10, 16, 10); break; default: throw new QCallerException('Label Stock Not Provided'); break; } foreach ($this->strTablesBufferArray as $strTableBuffer) { // add a page $pdf->AddPage(); // output the HTML content $pdf->writeHTML($strTableBuffer); } // Close and save PDF document $pdf->Output(".." . __TRACMOR_TMP__ . "/" . $_SESSION['intUserAccountId'] . "_BarCodes.pdf", "F"); // Cleaning up $this->btnCancel_Click(); // Uncheck all items but SelectAll checkbox foreach ($this->GetAllControls() as $objControl) { if (substr($objControl->ControlId, 0, 11) == 'chkSelected') { $objControl->Checked = false; } } $arrDataGridObjectNameId = $this->ctlSearchMenu->GetDataGridObjectNameId(); // Uncheck SelectAll checkbox $this->ctlSearchMenu->{$arrDataGridObjectNameId}[0]->chkSelectAll->Checked = false; // Open generated PDF in new window QApplication::ExecuteJavaScript("window.open('.." . __TRACMOR_TMP__ . "/" . $_SESSION['intUserAccountId'] . "_BarCodes.pdf','Barcodes','resizeable,menubar=1,scrollbar=1,left=0,top=0,width=800,height=600');"); } } else { // Cleaning up $this->btnCancel_Click(); } } } else { $this->lstLabelStock->Warning = "Please select one"; $this->lstLabelStock->Enabled = true; } }
/** * Creates a pdf * @return none */ private function _createPDF() { $oTpl = NULL; $oTpl = new FrontendTemplate('mod_daily_menu_pdf'); $iMinDate = 0; $iMaxDate = 0; $aLocals = array(); $oLocals = array(); $sQuery = " SELECT * FROM tl_gastronomy_locals ORDER BY name ASC; "; $oLocals = $this->Database->execute($sQuery); $aLocals = $oLocals->fetchAllAssoc(); if (!empty($aLocals)) { foreach ($aLocals as $i => $local) { // resize the logo if (!empty($local['logo'])) { $resizedLogo = NULL; $resizedLogo = $this->getImage($local['logo'], 200, NULL); if ($resizedLogo) { $local['logo'] = $resizedLogo; } } $aMenus = array(); $oMenus = array(); $weekStartingDate = NULL; $weekStartingDate = $this->week_to_date(time()); $sQuery = " SELECT * FROM tl_gastronomy_dailymenus WHERE pid = " . (int) $local['id'] . " AND date >= '" . strtotime($weekStartingDate) . "' AND date < '" . (strtotime($weekStartingDate) + 86400 * $this->dailymenu_num_days) . "' ORDER BY date ASC; "; $oMenus = $this->Database->execute($sQuery); $aMenus = $oMenus->fetchAllAssoc(); if (!empty($aMenus)) { foreach ($aMenus as $menu) { if (!$iMinDate || $menu['date'] < $iMinDate) { $iMinDate = $menu['date']; } if (!$iMaxDate || $menu['date'] > $iMaxDate) { $iMaxDate = $menu['date']; } } } $local['_menus'] = $aMenus; $aLocals[$i] = $local; } } $oTpl->minDate = $iMinDate; $oTpl->maxDate = $iMaxDate; $oTpl->locals = $aLocals; $sHTML = $oTpl->parse(); $sHTML = $this->replaceInsertTags($sHTML); // set title $pdfTitle = sprintf($GLOBALS['TL_LANG']['tl_gastronomy_dailymenus']['menu_from_till'], date('d.m', $iMinDate), date('d.m', $iMaxDate)); // Include library require_once TL_ROOT . '/system/config/tcpdf.php'; require_once TL_ROOT . '/plugins/tcpdf/tcpdf.php'; // Create new PDF document $pdf = new TCPDF(PDF_PAGE_ORIENTATION, PDF_UNIT, PDF_PAGE_FORMAT, true); // Set document information $pdf->SetCreator(PDF_CREATOR); $pdf->SetAuthor(PDF_AUTHOR); $pdf->SetTitle($pdfTitle); $pdf->SetSubject($pdfTitle); //$pdf->SetKeywords($objArticle->keywords); // Prevent font subsetting (huge speed improvement) $pdf->setFontSubsetting(false); // Remove default header/footer $pdf->setPrintHeader(false); $pdf->setPrintFooter(false); // Set margins $pdf->SetMargins(PDF_MARGIN_LEFT, PDF_MARGIN_TOP, PDF_MARGIN_RIGHT); // Set auto page breaks $pdf->SetAutoPageBreak(true, PDF_MARGIN_BOTTOM); // Set image scale factor $pdf->setImageScale(PDF_IMAGE_SCALE_RATIO); // Set some language-dependent strings $pdf->setLanguageArray($l); // Initialize document and add a page $pdf->AliasNbPages(); $pdf->AddPage(); // Set font $pdf->SetFont('helvetica', '', PDF_FONT_SIZE_MAIN); // Write the HTML content $pdf->writeHTML($sHTML, true, 0, true, 0); // Close and output PDF document $pdf->lastPage(); $pdf->Output(standardize(ampersand($pdfTitle, false)) . '.pdf', 'D'); exit; }
/** * Get HTML (for debugging) * @param array params * @return string HTML */ function getHTML($answor) { //extract((array)$params); $html = "<table border=0 class='crossTable' align='center'>"; for ($y = -1; $y < $this->rows; $y++) { $html .= "<tr align='center'>"; for ($x = -1; $x < $this->cols; $x++) { if ($x > -1 && $y > -1) { switch ($this->cells[$x][$y]->getCanCrossAxis()) { case PC_AXIS_H: $color = "yellow"; break; case PC_AXIS_V: $color = "brown"; break; case PC_AXIS_NONE: $color = "red"; break; case PC_AXIS_BOTH: $color = "lightgreen"; break; } } $class = isset($this->cells[$x][$y]->letter) ? 'cellLetter' : 'cellEmpty'; if (!$colors) { $color = "white"; } else { $class = 'cellDebug'; } $html .= "\n"; if (isset($this->cells[$x][$y]->number)) { //global $maxinum, $totwords, $wc, $fillflag, $cellflag; $tempinum = $this->cells[$x][$y]->number; //$tempinum = $tempinum + 10 - $maxinum - $wc; //dump($tempinum); //$tempinum = $tempinum + 10 - $this->maxinum - $this->totwords; $html .= "<td class='cellNumber{$cellflag}' align=right valign=bottom><b>{$tempinum}</b></td>"; } elseif ($y == -1) { $html .= "<td bgcolor='{$color}' class='{$class}{$cellflag}'> </td>"; } elseif ($x == -1) { $html .= "<td bgcolor='{$color}' class='{$class}{$cellflag}'> </td>"; } elseif (isset($this->cells[$x][$y]->letter)) { if ($fillflag) { $letter = $this->cells[$x][$y]->letter; } else { $letter = " "; } $html .= "<td bgcolor='{$color}' class='{$class}{$cellflag}'>{$letter}</td>"; } else { $html .= "<td bgcolor='{$color}' class='{$class}{$cellflag}'> </td>"; } } $html .= "</tr>"; } $html .= "</table>"; $pdf = new TCPDF(PDF_PAGE_ORIENTATION, PDF_UNIT, PDF_PAGE_FORMAT, true); $pdf->SetCreator(PDF_CREATOR); $pdf->SetAuthor(PDF_AUTHOR); //set margins $pdf->SetMargins(PDF_MARGIN_LEFT, PDF_MARGIN_TOP, PDF_MARGIN_RIGHT); //set auto page breaks $pdf->SetAutoPageBreak(TRUE, PDF_MARGIN_BOTTOM); $pdf->SetHeaderMargin(PDF_MARGIN_HEADER); $pdf->SetFooterMargin(PDF_MARGIN_FOOTER); $pdf->setImageScale(PDF_IMAGE_SCALE_RATIO); //set some language-dependent strings $pdf->setLanguageArray($l); // --------------------------------------------------------- $pdf->AliasNbPages(); // set font $pdf->SetFont('FreeSerif', '', 10); // add a page $pdf->AddPage(); $ans = 1; foreach ($answor[0] as $row1) { if ($ans <= 2) { $pdf->Cell(100, 10, $row1, 0, 1, L, 0); } $ans++; } for ($y = -1; $y < $this->rows; $y++) { //$html.= "<tr align='center'>"; for ($x = -1; $x < $this->cols; $x++) { if ($x > -1 && $y > -1) { switch ($this->cells[$x][$y]->getCanCrossAxis()) { case PC_AXIS_H: $color = "yellow"; break; case PC_AXIS_V: $color = "brown"; break; case PC_AXIS_NONE: $color = "red"; break; case PC_AXIS_BOTH: $color = "lightgreen"; break; } } $class = isset($this->cells[$x][$y]->letter) ? 'cellLetter' : 'cellEmpty'; if (!$colors) { $color = "white"; } else { $class = 'cellDebug'; } //$html .= "\n"; if (isset($this->cells[$x][$y]->number)) { $tempinum = $this->cells[$x][$y]->number; $pdf->Cell(5, 5, "{$tempinum}", 0, 0, L, 0); } elseif ($y == -1) { if ("{$class}{$cellflag}" == 'cellLetter') { $pdf->Cell(5, 5, "", 1, 0, L, 0); } else { $pdf->Cell(5, 5, "", 0, 0, L, 0); } } elseif ($x == -1) { if ("{$class}{$cellflag}" == 'cellLetter') { $pdf->Cell(5, 5, "", 1, 0, L, 0); } else { $pdf->Cell(5, 5, "", 0, 0, L, 0); } } elseif (isset($this->cells[$x][$y]->letter)) { if ($fillflag) { $letter = $this->cells[$x][$y]->letter; } else { $letter = ""; } $pdf->Cell(5, 5, "{$letter}", 1, 0, L, 0); } else { if ("{$class}{$cellflag}" == 'cellLetter') { $pdf->Cell(5, 5, "", 1, 0, L, 0); } else { $pdf->Cell(5, 5, "", 0, 0, L, 0); } } } //$html.= "</tr>"; $pdf->Cell(5, 5, "", 0, 1, L, 0); } $pdf->SetFont('FreeSerif', '', 10); // add a page $pdf->AddPage(); foreach ($answor[0] as $row1) { $pdf->MultiCell(0, 20, $row1, 0, L, false, 1, '', '', true, 0, true); // $pdf -> Cell(5, 5, '', 0, 1, L, 0); } //exit; // set font $pdf->SetFont('FreeSerif', '', 10); // add a page $pdf->AddPage(); $ans = 1; foreach ($answor[0] as $row1) { if ($ans <= 2) { $pdf->Cell(100, 10, $row1, 0, 1, L, 0); } $ans++; } for ($y = -1; $y < $this->rows; $y++) { //$html.= "<tr align='center'>"; for ($x = -1; $x < $this->cols; $x++) { if ($x > -1 && $y > -1) { switch ($this->cells[$x][$y]->getCanCrossAxis()) { case PC_AXIS_H: $color = "yellow"; break; case PC_AXIS_V: $color = "brown"; break; case PC_AXIS_NONE: $color = "red"; break; case PC_AXIS_BOTH: $color = "lightgreen"; break; } } $class = isset($this->cells[$x][$y]->letter) ? 'cellLetter' : 'cellEmpty'; if (!$colors) { $color = "white"; } else { $class = 'cellDebug'; } //$html .= "\n"; if (isset($this->cells[$x][$y]->number)) { $tempinum = $this->cells[$x][$y]->number; $pdf->Cell(5, 5, "{$tempinum}", 0, 0, L, 0); } elseif ($y == -1) { if ("{$class}{$cellflag}" == 'cellLetter') { $pdf->Cell(5, 5, "", 1, 0, L, 0); } else { $pdf->Cell(5, 5, "", 0, 0, L, 0); } } elseif ($x == -1) { if ("{$class}{$cellflag}" == 'cellLetter') { $pdf->Cell(5, 5, "", 1, 0, L, 0); } else { $pdf->Cell(5, 5, "", 0, 0, L, 0); } } elseif (isset($this->cells[$x][$y]->letter)) { if ($fillflag) { $letter = $this->cells[$x][$y]->letter; } else { $letter = $this->cells[$x][$y]->letter; } $pdf->Cell(5, 5, "{$letter}", 1, 0, L, 0); } else { if ("{$class}{$cellflag}" == 'cellLetter') { $pdf->Cell(5, 5, "", 1, 0, L, 0); } else { $pdf->Cell(5, 5, "", 0, 0, L, 0); } } } //$html.= "</tr>"; $pdf->Cell(5, 5, "", 0, 1, L, 0); } $pdf->lastPage(); $pdf->Output($answor[0][0] . ' - ' . $answor[0][1] . ' Crossword.pdf', 'I'); return $pdf; }
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"; } } }
/** * Generate a PDF from precompiled HTML content * * @access protected * @param array * @param string * @return string */ protected function generatePDF($strTitle, $strHTML, $blnOutput = true, $pdf = NULL) { if (!is_object($pdf)) { // TCPDF configuration $l['a_meta_dir'] = 'ltr'; $l['a_meta_charset'] = $GLOBALS['TL_CONFIG']['characterSet']; $l['a_meta_language'] = $GLOBALS['TL_LANGUAGE']; $l['w_page'] = 'page'; // Include library require_once TL_ROOT . '/system/config/tcpdf.php'; require_once TL_ROOT . '/plugins/tcpdf/tcpdf.php'; // Create new PDF document $pdf = new TCPDF(PDF_PAGE_ORIENTATION, PDF_UNIT, PDF_PAGE_FORMAT, true); // Set document information $pdf->SetCreator(PDF_CREATOR); $pdf->SetAuthor(PDF_AUTHOR); // Remove default header/footer $pdf->setPrintHeader(false); $pdf->setPrintFooter(false); // Set margins $pdf->SetMargins(PDF_MARGIN_LEFT, PDF_MARGIN_TOP, PDF_MARGIN_RIGHT); // Set auto page breaks $pdf->SetAutoPageBreak(true, PDF_MARGIN_BOTTOM); // Set image scale factor $pdf->setImageScale(PDF_IMAGE_SCALE_RATIO); // Set some language-dependent strings $pdf->setLanguageArray($l); // Initialize document and add a page $pdf->AliasNbPages(); // Set font $pdf->SetFont(PDF_FONT_NAME_MAIN, '', PDF_FONT_SIZE_MAIN); } // Start new page $pdf->AddPage(); // Write the HTML content $pdf->writeHTML($strHTML, true, 0, true, 0); if ($blnOutput) { // Close and output PDF document // @todo $strInvoiceTitle is not defined $pdf->lastPage(); $pdf->Output(standardize(ampersand($strTitle, false), true) . '.pdf', 'D'); // Stop script execution exit; } return $pdf; }
/** * Print an article as PDF and stream it to the browser * @param object */ protected function printArticleAsPdf(Database_Result $objArticle) { $objArticle->headline = $objArticle->title; $objArticle->printable = false; // Generate article $objArticle = new ModuleArticle($objArticle); $strArticle = $this->replaceInsertTags($objArticle->generate()); $strArticle = html_entity_decode($strArticle, ENT_QUOTES, $GLOBALS['TL_CONFIG']['characterSet']); $strArticle = $this->convertRelativeUrls($strArticle, '', true); // Remove form elements and JavaScript links $arrSearch = array('@<form.*</form>@Us', '@<a [^>]*href="[^"]*javascript:[^>]+>.*</a>@Us'); $strArticle = preg_replace($arrSearch, '', $strArticle); // HOOK: allow individual PDF routines if (isset($GLOBALS['TL_HOOKS']['printArticleAsPdf']) && is_array($GLOBALS['TL_HOOKS']['printArticleAsPdf'])) { foreach ($GLOBALS['TL_HOOKS']['printArticleAsPdf'] as $callback) { $this->import($callback[0]); $this->{$callback}[0]->{$callback}[1]($strArticle, $objArticle); } } // Handle line breaks in preformatted text $strArticle = preg_replace_callback('@(<pre.*</pre>)@Us', 'nl2br_callback', $strArticle); // Default PDF export using TCPDF $arrSearch = array('@<span style="text-decoration: ?underline;?">(.*)</span>@Us', '@(<img[^>]+>)@', '@(<div[^>]+block[^>]+>)@', '@[\\n\\r\\t]+@', '@<br( /)?><div class="mod_article@', '@href="([^"]+)(pdf=[0-9]*(&|&)?)([^"]*)"@'); $arrReplace = array('<u>$1</u>', '<br>$1', '<br>$1', ' ', '<div class="mod_article', 'href="$1$4"'); $strArticle = preg_replace($arrSearch, $arrReplace, $strArticle); // TCPDF configuration $l['a_meta_dir'] = 'ltr'; $l['a_meta_charset'] = $GLOBALS['TL_CONFIG']['characterSet']; $l['a_meta_language'] = $GLOBALS['TL_LANGUAGE']; $l['w_page'] = 'page'; // Include library require_once TL_ROOT . '/system/config/tcpdf.php'; require_once TL_ROOT . '/plugins/tcpdf/tcpdf.php'; // Create new PDF document $pdf = new TCPDF(PDF_PAGE_ORIENTATION, PDF_UNIT, PDF_PAGE_FORMAT, true); // Set document information $pdf->SetCreator(PDF_CREATOR); $pdf->SetAuthor(PDF_AUTHOR); $pdf->SetTitle($objArticle->title); $pdf->SetSubject($objArticle->title); $pdf->SetKeywords($objArticle->keywords); // Prevent font subsetting (huge speed improvement) $pdf->setFontSubsetting(false); // Remove default header/footer $pdf->setPrintHeader(false); $pdf->setPrintFooter(false); // Set margins $pdf->SetMargins(PDF_MARGIN_LEFT, PDF_MARGIN_TOP, PDF_MARGIN_RIGHT); // Set auto page breaks $pdf->SetAutoPageBreak(true, PDF_MARGIN_BOTTOM); // Set image scale factor $pdf->setImageScale(PDF_IMAGE_SCALE_RATIO); // Set some language-dependent strings $pdf->setLanguageArray($l); // Initialize document and add a page $pdf->AliasNbPages(); $pdf->AddPage(); // Set font $pdf->SetFont(PDF_FONT_NAME_MAIN, '', PDF_FONT_SIZE_MAIN); // Write the HTML content $pdf->writeHTML($strArticle, true, 0, true, 0); // Close and output PDF document $pdf->lastPage(); $pdf->Output(standardize(ampersand($objArticle->title, false)) . '.pdf', 'D'); // Stop script execution exit; }
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; }