Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
25 commits
Select commit Hold shift + click to select a range
8519f1d
Merge pull request #2 from BCCHR-IT/master
lsgs Apr 1, 2021
78c8c5d
Merge pull request #3 from BCCHR-IT/master
lsgs Mar 4, 2022
55e5e87
MCRI updates
lsgs Mar 6, 2022
952baf0
Update README.md
lsgs Mar 6, 2022
40e9b40
Update BrowseImages.php
harneetbhinder99 Aug 30, 2023
d687398
Update CreateTemplate.php
harneetbhinder99 Aug 30, 2023
2c98bc0
Update CustomTemplateEngine.php
harneetbhinder99 Aug 30, 2023
dfb7663
Update DeleteTemplate.php
harneetbhinder99 Aug 30, 2023
f943e59
Update DownloadFilledTemplate.php
harneetbhinder99 Aug 30, 2023
e81e387
Update EditTemplate.php
harneetbhinder99 Aug 30, 2023
057de09
Update FillAndSave.php
harneetbhinder99 Aug 30, 2023
b424313
Update FillTemplate.php
harneetbhinder99 Aug 30, 2023
7ef7b58
Update SaveFileToField.php
harneetbhinder99 Aug 30, 2023
3d23881
Update SaveTemplate.php
harneetbhinder99 Aug 30, 2023
a6e565d
Update Template.php
harneetbhinder99 Aug 30, 2023
b4cda15
Update UploadImages.php
harneetbhinder99 Aug 30, 2023
7667bc2
Update index.php
harneetbhinder99 Aug 30, 2023
9e52965
Update config.json
harneetbhinder99 Aug 30, 2023
32e9213
Update CustomTemplateEngine.php
harneetbhinder99 Sep 7, 2023
9ee1bc9
Merge pull request #4 from harneetbhinder99/master
lsgs Sep 19, 2023
a4fa591
Merge branch 'master' of https://github.com/lsgs/custom-template-engine
lsgs Nov 3, 2023
59dec5e
Paper size and orientation options for PR
lsgs Nov 3, 2023
cba44b0
Paper size and orientation options for PR
lsgs Nov 3, 2023
810300a
Paper size and orientation options for PR
lsgs Nov 3, 2023
ee256c7
Merge branch 'master' into paper-options
lsgs Nov 4, 2023
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
14 changes: 7 additions & 7 deletions BrowseImages.php
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
<?php
/**
* Create instance of Custom Report Builder,
* and display image gallery.
*/
$customReportBuilder = new \BCCHR\CustomTemplateEngine\CustomTemplateEngine();
$customReportBuilder->browseImages();
<?php
/**
* Create instance of Custom Report Builder,
* and display image gallery.
*/
$customReportBuilder = new \BCCHR\CustomTemplateEngine\CustomTemplateEngine();
$customReportBuilder->browseImages();
32 changes: 16 additions & 16 deletions CreateTemplate.php
Original file line number Diff line number Diff line change
@@ -1,17 +1,17 @@
<?php
/**
* Include REDCap header.
*/
require_once APP_PATH_DOCROOT . "ProjectGeneral/header.php";
/**
* Initialize Custom Template Engine object, and call method
* to generate Create Template page.
*/
$customTemplateEngine = new \BCCHR\CustomTemplateEngine\CustomTemplateEngine();
$customTemplateEngine->generateCreateEditTemplatePage();
/**
* Include REDCap footer.
*/
<?php
/**
* Include REDCap header.
*/
require_once APP_PATH_DOCROOT . "ProjectGeneral/header.php";

/**
* Initialize Custom Template Engine object, and call method
* to generate Create Template page.
*/
$customTemplateEngine = new \BCCHR\CustomTemplateEngine\CustomTemplateEngine();
$customTemplateEngine->generateCreateEditTemplatePage();

/**
* Include REDCap footer.
*/
require_once APP_PATH_DOCROOT . "ProjectGeneral/footer.php";
35 changes: 31 additions & 4 deletions CustomTemplateEngine.php
Original file line number Diff line number Diff line change
Expand Up @@ -1086,7 +1086,7 @@ public function saveTemplate()
*
* @since 3.1
*/
public function createPDF($dompdf_obj, $header, $footer, $main)
public function createPDF($dompdf_obj, $header, $footer, $main, $fileOrTemplateName="")
{
$contents = $this->formatPDFContents($header, $footer, $main);

Expand All @@ -1098,7 +1098,8 @@ public function createPDF($dompdf_obj, $header, $footer, $main)
$dompdf_obj->set_option('isRemoteEnabled', TRUE);

// Setup the paper size and orientation
$dompdf_obj->setPaper("letter", "portrait");
list($paperSize, $paperOrientation) = $this->getPaperSettings($fileOrTemplateName);
$dompdf_obj->setPaper($paperSize, $paperOrientation);

// Render the HTML as PDF
$dompdf_obj->render();
Expand Down Expand Up @@ -1130,7 +1131,7 @@ public function downloadTemplate()
if (isset($main) && !empty($main))
{
$dompdf = new Dompdf();
$pdf_content = $this->createPDF($dompdf, $header, $footer, $main);
$pdf_content = $this->createPDF($dompdf, $header, $footer, $main, $filename);

if (!$this->getProjectSetting("save-report-to-repo"))
{
Expand Down Expand Up @@ -2847,4 +2848,30 @@ public function redcap_module_link_check_display($project_id, $link)
return $link;
}
}
}

/**
* getPaperSettings($name)
* Look for module project setting with name corresponding to the tempalte or file name provided
* @param String $name Name of template or pdf document file name
* @return Array Array with two elements: 1. paper size e.g. "Letter", "A4"; 2: paper orientation "Portrait" or "Landscape""
*/
protected function getPaperSettings($fileOrTemplateName)
{
$paperSize = "letter";
$paperOrientation = "portrait";

$templateSettings = $this->getSubSettings('template-options');

foreach ($templateSettings as $settings) {
// look for a template with name occurring within the file name of what's being generated
// (pretty horrid - will catch "MyTemplate" before "MyTemplate_New" - need better way of recording template names perhaps recording to project settings on create/save/delete and auto-generate template name for files system storage?)
if (strpos($fileOrTemplateName, $settings['template-name']) !== false) {
$paperSize = (empty($settings['option-paper-size'])) ? $paperSize : $settings['option-paper-size'];
$paperOrientation = ($settings['option-paper-orientation']) ? "landscape" : $paperOrientation;
break;
}
}

return array($paperSize, $paperOrientation);
}
}
38 changes: 19 additions & 19 deletions DeleteTemplate.php
Original file line number Diff line number Diff line change
@@ -1,20 +1,20 @@
<?php
/**
* Initialize Custom Template Engine object, and call method to delete a
* template.
*/
$customTemplateEngine = new \BCCHR\CustomTemplateEngine\CustomTemplateEngine();
$result = $customTemplateEngine->deleteTemplate();
/**
* If TRUE, then template was deleted successfullly and redirect to index with param deleted = 1.
* Else, then template wasn't deleted successfully and redirect to index with param deleted = 0.
*/
if ($result === TRUE)
{
header("Location:" . $customTemplateEngine->getUrl("index.php") . "&deleted=1");
}
else
{
header("Location:" . $customTemplateEngine->getUrl("index.php") . "&deleted=0");
<?php
/**
* Initialize Custom Template Engine object, and call method to delete a
* template.
*/
$customTemplateEngine = new \BCCHR\CustomTemplateEngine\CustomTemplateEngine();
$result = $customTemplateEngine->deleteTemplate();

/**
* If TRUE, then template was deleted successfullly and redirect to index with param deleted = 1.
* Else, then template wasn't deleted successfully and redirect to index with param deleted = 0.
*/
if ($result === TRUE)
{
header("Location:" . $customTemplateEngine->getUrl("index.php") . "&deleted=1");
}
else
{
header("Location:" . $customTemplateEngine->getUrl("index.php") . "&deleted=0");
}
10 changes: 5 additions & 5 deletions DownloadFilledTemplate.php
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
<?php
/**
* Initialize Custom Template Engine object, and call method to download template.
*/
$customTemplateEngine = new \BCCHR\CustomTemplateEngine\CustomTemplateEngine();
<?php
/**
* Initialize Custom Template Engine object, and call method to download template.
*/
$customTemplateEngine = new \BCCHR\CustomTemplateEngine\CustomTemplateEngine();
$customTemplateEngine->downloadTemplate();
36 changes: 18 additions & 18 deletions EditTemplate.php
Original file line number Diff line number Diff line change
@@ -1,18 +1,18 @@
<?php
/**
* Include REDCap header.
*/
require_once APP_PATH_DOCROOT . "ProjectGeneral/header.php";
/**
* Inititalize Custom Template Engine object and display Edit Template
* page.
*/
$customTemplateEngine = new \BCCHR\CustomTemplateEngine\CustomTemplateEngine();
$template_filtered = filter_input(INPUT_POST, 'template', FILTER_SANITIZE_SPECIAL_CHARS);
$customTemplateEngine->generateCreateEditTemplatePage($template_filtered);
/**
* Include REDCap footer.
*/
require_once APP_PATH_DOCROOT . "ProjectGeneral/footer.php";
<?php
/**
* Include REDCap header.
*/
require_once APP_PATH_DOCROOT . "ProjectGeneral/header.php";

/**
* Inititalize Custom Template Engine object and display Edit Template
* page.
*/
$customTemplateEngine = new \BCCHR\CustomTemplateEngine\CustomTemplateEngine();
$template_filtered = filter_input(INPUT_POST, 'template', FILTER_SANITIZE_SPECIAL_CHARS);
$customTemplateEngine->generateCreateEditTemplatePage($template_filtered);

/**
* Include REDCap footer.
*/
require_once APP_PATH_DOCROOT . "ProjectGeneral/footer.php";
8 changes: 8 additions & 0 deletions FillAndSave.php
Original file line number Diff line number Diff line change
@@ -0,0 +1,8 @@
<?php
/**
* REDCap External Module: Custom Template Engine
* @author Luke Stevens lukestevens@hotmail.com https://github.com/lsgs/
*/
if (is_null($module) || !($module instanceof MCRI\CustomTemplateEngine\CustomTemplateEngine)) { exit(); }
header("Content-Type: application/json");
echo \json_encode($module->fillAndSave());
54 changes: 27 additions & 27 deletions FillTemplate.php
Original file line number Diff line number Diff line change
@@ -1,27 +1,27 @@
<?php
/**
* Create instsance of Custom Template Engine, and display template
* filled with REDcap data on Fill Template page.
*/
$customTemplateEngine = new \BCCHR\CustomTemplateEngine\CustomTemplateEngine();
if ($_POST["participantID"] == null) { exit(1);} // PHP8 compatability fix; can't pass a blank participantID scalar. Dan Evans 2023-06-09
if (sizeof($_POST["participantID"]) == 1)
{
/**
* Include REDCap header.
*/
require_once APP_PATH_DOCROOT . "ProjectGeneral/header.php";
$customTemplateEngine->generateFillTemplatePage();
/**
* Include REDCap footer.
*/
require_once APP_PATH_DOCROOT . "ProjectGeneral/footer.php";
}
else
{
$customTemplateEngine->batchFillReports();
}
<?php

/**
* Create instsance of Custom Template Engine, and display template
* filled with REDcap data on Fill Template page.
*/
$customTemplateEngine = new \BCCHR\CustomTemplateEngine\CustomTemplateEngine();

if ($_POST["participantID"] == null) { exit(1);} // PHP8 compatability fix; can't pass a blank participantID scalar. Dan Evans 2023-06-09
if (sizeof($_POST["participantID"]) == 1)
{
/**
* Include REDCap header.
*/
require_once APP_PATH_DOCROOT . "ProjectGeneral/header.php";

$customTemplateEngine->generateFillTemplatePage();

/**
* Include REDCap footer.
*/
require_once APP_PATH_DOCROOT . "ProjectGeneral/footer.php";
}
else
{
$customTemplateEngine->batchFillReports();
}
4 changes: 2 additions & 2 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -18,6 +18,7 @@ When switching from the old module to the rebranded module, you must disable the

## Project Configurations
- Save Filled Templates to File Repository: This is specific to downloading a filled template, and will save a copy of the PDF to the File Repository.
- [Optional] Enter templates by name and specify an alternative paper size, e.g. A4 (default is Letter), and/or select landscape orientation.

## Permissions

Expand Down Expand Up @@ -68,5 +69,4 @@ WARNING: This module is not currently able to support REDCap instances using lo
* upgraded included Javascript libraries:
* ckeditor to latest v4.21
* dompdf to latest v2.0
* smarty to latest v4.1

* smarty to latest v4.1
2 changes: 1 addition & 1 deletion SaveFileToField.php
Original file line number Diff line number Diff line change
Expand Up @@ -63,7 +63,7 @@
}

$dompdf = new Dompdf();
$pdf_content = $customTemplateEngine->createPDF($dompdf, $header, $footer, $main);
$pdf_content = $customTemplateEngine->createPDF($dompdf, $header, $footer, $main, $filename);

if (!$customTemplateEngine->saveFileToField($filename, $pdf_content, $field_name, $record, $event_id))
{
Expand Down
14 changes: 7 additions & 7 deletions SaveTemplate.php
Original file line number Diff line number Diff line change
@@ -1,8 +1,8 @@
<?php
/**
* Create an instance of the Custom Template Engine class,
* and save template.
*/
$customTemplateEngine = new \BCCHR\CustomTemplateEngine\CustomTemplateEngine();
$result = $customTemplateEngine->saveTemplate();
<?php
/**
* Create an instance of the Custom Template Engine class,
* and save template.
*/
$customTemplateEngine = new \BCCHR\CustomTemplateEngine\CustomTemplateEngine();
$result = $customTemplateEngine->saveTemplate();
print json_encode($result);
Loading