2018-12-09 01:00:22 -07:00
< ? php
/*
* This Source Code Form is subject to the terms of the Mozilla Public
* License , v . 2.0 . If a copy of the MPL was not distributed with this
* file , You can obtain one at http :// mozilla . org / MPL / 2.0 /.
*/
require_once __DIR__ . " /../required.php " ;
dieifnotloggedin ();
$user = new User ( $_SESSION [ 'uid' ]);
if ( ! $user -> hasPermission ( " HACHEPORTAL_VIEW " )) {
header ( " Location: ../app.php?msg=no_permission " );
die ();
}
use Dompdf\Dompdf ;
// Load all families
$familylist = $database -> select ( " families " , " familyid " , [ " ORDER " => [ " familyname " ]]);
$families = [];
foreach ( $familylist as $f ) {
$families [] = ( new Family ()) -> load ( $f );
}
$format = " html " ;
if ( ! empty ( $_GET [ " format " ])) {
$format = $_GET [ " format " ];
}
$date = date ( " F j Y " );
if ( $format == " html " ) {
$icons = " .grad {
background - image : url ( 'data:image/svg+xml;base64,PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0idXRmLTgiPz4KPHN2ZyB3aWR0aD0iMjMwNCIgaGVpZ2h0PSIxNzkyIiB2aWV3Qm94PSIwIDAgMjMwNCAxNzkyIiB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciPjxwYXRoIGQ9Ik0xNzc0IDgzNmwxOCAzMTZxNCA2OS04MiAxMjh0LTIzNSA5My41LTMyMyAzNC41LTMyMy0zNC41LTIzNS05My41LTgyLTEyOGwxOC0zMTYgNTc0IDE4MXEyMiA3IDQ4IDd0NDgtN3ptNTMwLTMyNHEwIDIzLTIyIDMxbC0xMTIwIDM1MnEtNCAxLTEwIDF0LTEwLTFsLTY1Mi0yMDZxLTQzIDM0LTcxIDExMS41dC0zNCAxNzguNXE2MyAzNiA2MyAxMDkgMCA2OS01OCAxMDdsNTggNDMzcTIgMTQtOCAyNS05IDExLTI0IDExaC0xOTJxLTE1IDAtMjQtMTEtMTAtMTEtOC0yNWw1OC00MzNxLTU4LTM4LTU4LTEwNyAwLTczIDY1LTExMSAxMS0yMDcgOTgtMzMwbC0zMzMtMTA0cS0yMi04LTIyLTMxdDIyLTMxbDExMjAtMzUycTQtMSAxMC0xdDEwIDFsMTEyMCAzNTJxMjIgOCAyMiAzMXoiLz48L3N2Zz4=' );
}
. phone {
background - image : url ( 'data:image/svg+xml;base64,PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0idXRmLTgiPz4KPHN2ZyB3aWR0aD0iMTc5MiIgaGVpZ2h0PSIxNzkyIiB2aWV3Qm94PSIwIDAgMTc5MiAxNzkyIiB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciPjxwYXRoIGQ9Ik0xNjAwIDEyNDBxMCAyNy0xMCA3MC41dC0yMSA2OC41cS0yMSA1MC0xMjIgMTA2LTk0IDUxLTE4NiA1MS0yNyAwLTUzLTMuNXQtNTcuNS0xMi41LTQ3LTE0LjUtNTUuNS0yMC41LTQ5LTE4cS05OC0zNS0xNzUtODMtMTI3LTc5LTI2NC0yMTZ0LTIxNi0yNjRxLTQ4LTc3LTgzLTE3NS0zLTktMTgtNDl0LTIwLjUtNTUuNS0xNC41LTQ3LTEyLjUtNTcuNS0zLjUtNTNxMC05MiA1MS0xODYgNTYtMTAxIDEwNi0xMjIgMjUtMTEgNjguNS0yMXQ3MC41LTEwcTE0IDAgMjEgMyAxOCA2IDUzIDc2IDExIDE5IDMwIDU0dDM1IDYzLjUgMzEgNTMuNXEzIDQgMTcuNSAyNXQyMS41IDM1LjUgNyAyOC41cTAgMjAtMjguNSA1MHQtNjIgNTUtNjIgNTMtMjguNSA0NnEwIDkgNSAyMi41dDguNSAyMC41IDE0IDI0IDExLjUgMTlxNzYgMTM3IDE3NCAyMzV0MjM1IDE3NHEyIDEgMTkgMTEuNXQyNCAxNCAyMC41IDguNSAyMi41IDVxMTggMCA0Ni0yOC41dDUzLTYyIDU1LTYyIDUwLTI4LjVxMTQgMCAyOC41IDd0MzUuNSAyMS41IDI1IDE3LjVxMjUgMTUgNTMuNSAzMXQ2My41IDM1IDU0IDMwcTcwIDM1IDc2IDUzIDMgNyAzIDIxeiIvPjwvc3ZnPg==' );
}
. email {
background - image : url ( 'data:image/svg+xml;base64,PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0idXRmLTgiPz4KPHN2ZyB3aWR0aD0iMTc5MiIgaGVpZ2h0PSIxNzkyIiB2aWV3Qm94PSIwIDAgMTc5MiAxNzkyIiB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciPjxwYXRoIGQ9Ik0xNjY0IDE1MDR2LTc2OHEtMzIgMzYtNjkgNjYtMjY4IDIwNi00MjYgMzM4LTUxIDQzLTgzIDY3dC04Ni41IDQ4LjUtMTAyLjUgMjQuNWgtMnEtNDggMC0xMDIuNS0yNC41dC04Ni41LTQ4LjUtODMtNjdxLTE1OC0xMzItNDI2LTMzOC0zNy0zMC02OS02NnY3NjhxMCAxMyA5LjUgMjIuNXQyMi41IDkuNWgxNDcycTEzIDAgMjIuNS05LjV0OS41LTIyLjV6bTAtMTA1MXYtMjQuNWwtLjUtMTMtMy0xMi41LTUuNS05LTktNy41LTE0LTIuNWgtMTQ3MnEtMTMgMC0yMi41IDkuNXQtOS41IDIyLjVxMCAxNjggMTQ3IDI4NCAxOTMgMTUyIDQwMSAzMTcgNiA1IDM1IDI5LjV0NDYgMzcuNSA0NC41IDMxLjUgNTAuNSAyNy41IDQzIDloMnEyMCAwIDQzLTl0NTAuNS0yNy41IDQ0LjUtMzEuNSA0Ni0zNy41IDM1LTI5LjVxMjA4LTE2NSA0MDEtMzE3IDU0LTQzIDEwMC41LTExNS41dDQ2LjUtMTMxLjV6bTEyOC0zN3YxMDg4cTAgNjYtNDcgMTEzdC0xMTMgNDdoLTE0NzJxLTY2IDAtMTEzLTQ3dC00Ny0xMTN2LTEwODhxMC02NiA0Ny0xMTN0MTEzLTQ3aDE0NzJxNjYgMCAxMTMgNDd0NDcgMTEzeiIvPjwvc3ZnPg==' );
}
. mapmarker {
background - image : url ( 'data:image/svg+xml;base64,PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0idXRmLTgiPz4KPHN2ZyB3aWR0aD0iMTc5MiIgaGVpZ2h0PSIxNzkyIiB2aWV3Qm94PSIwIDAgMTc5MiAxNzkyIiB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciPjxwYXRoIGQ9Ik0xMTUyIDY0MHEwLTEwNi03NS0xODF0LTE4MS03NS0xODEgNzUtNzUgMTgxIDc1IDE4MSAxODEgNzUgMTgxLTc1IDc1LTE4MXptMjU2IDBxMCAxMDktMzMgMTc5bC0zNjQgNzc0cS0xNiAzMy00Ny41IDUydC02Ny41IDE5LTY3LjUtMTktNDYuNS01MmwtMzY1LTc3NHEtMzMtNzAtMzMtMTc5IDAtMjEyIDE1MC0zNjJ0MzYyLTE1MCAzNjIgMTUwIDE1MCAzNjJ6Ii8+PC9zdmc+' );
}
. nocamera {
background - image : url ( ' data : image / svg + xml ; base64 , PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iVVRGLTgiIHN0YW5kYWxvbmU9Im5vIj8 + CjxzdmcKICAgeG1sbnM6ZGM9Imh0dHA6Ly9wdXJsLm9yZy9kYy9lbGVtZW50cy8xLjEvIgogICB4bWxuczpjYz0iaHR0cDovL2NyZWF0aXZlY29tbW9ucy5vcmcvbnMjIgogICB4bWxuczpyZGY9Imh0dHA6Ly93d3cudzMub3JnLzE5OTkvMDIvMjItcmRmLXN5bnRheC1ucyMiCiAgIHhtbG5zOnN2Zz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciCiAgIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIKICAgeG1sbnM6c29kaXBvZGk9Imh0dHA6Ly9zb2RpcG9kaS5zb3VyY2Vmb3JnZS5uZXQvRFREL3NvZGlwb2RpLTAuZHRkIgogICB4bWxuczppbmtzY2FwZT0iaHR0cDovL3d3dy5pbmtzY2FwZS5vcmcvbmFtZXNwYWNlcy9pbmtzY2FwZSIKICAgd2lkdGg9IjEwOTYuNTEwNyIKICAgaGVpZ2h0PSIxMDk2LjUxMDYiCiAgIHZpZXdCb3g9IjAgMCAxMDk2LjUxMDcgMTA5Ni41MTA2IgogICB2ZXJzaW9uPSIxLjEiCiAgIGlkPSJzdmc5MDUiCiAgIHNvZGlwb2RpOmRvY25hbWU9Im5vLWNhbWVyYS5zdmciCiAgIGlua3NjYXBlOnZlcnNpb249IjAuOTIuMyAoMjQwNTU0NiwgMjAxOC0wMy0xMSkiCiAgIGlua3NjYXBlOmV4cG9ydC1maWxlbmFtZT0iL2hvbWUvc2t5bGFyL0RvY3VtZW50cy9Bc3NldHMvR3JhcGhpY3Mvbm8tY2FtZXJhLnBuZyIKICAgaW5rc2NhcGU6ZXhwb3J0LXhkcGk9IjEuNDAwODA3MyIKICAgaW5rc2NhcGU6ZXhwb3J0LXlkcGk9IjEuNDAwODA3MyI + CiAgPG1ldGFkYXRhCiAgICAgaWQ9Im1ldGFkYXRhOTExIj4KICAgIDxyZGY6UkRGPgogICAgICA8Y2M6V29yawogICAgICAgICByZGY6YWJvdXQ9IiI + CiAgICAgICAgPGRjOmZvcm1hdD5pbWFnZS9zdmcreG1sPC9kYzpmb3JtYXQ + CiAgICAgICAgPGRjOnR5cGUKICAgICAgICAgICByZGY6cmVzb3VyY2U9Imh0dHA6Ly9wdXJsLm9yZy9kYy9kY21pdHlwZS9TdGlsbEltYWdlIiAvPgogICAgICAgIDxkYzp0aXRsZT48L2RjOnRpdGxlPgogICAgICA8L2NjOldvcms + CiAgICA8L3JkZjpSREY + CiAgPC9tZXRhZGF0YT4KICA8ZGVmcwogICAgIGlkPSJkZWZzOTA5IiAvPgogIDxzb2RpcG9kaTpuYW1lZHZpZXcKICAgICBwYWdlY29sb3I9IiNmZmZmZmYiCiAgICAgYm9yZGVyY29sb3I9IiM2NjY2NjYiCiAgICAgYm9yZGVyb3BhY2l0eT0iMSIKICAgICBvYmplY3R0b2xlcmFuY2U9IjEwIgogICAgIGdyaWR0b2xlcmFuY2U9IjEwIgogICAgIGd1aWRldG9sZXJhbmNlPSIxMCIKICAgICBpbmtzY2FwZTpwYWdlb3BhY2l0eT0iMCIKICAgICBpbmtzY2FwZTpwYWdlc2hhZG93PSIyIgogICAgIGlua3NjYXBlOndpbmRvdy13aWR0aD0iMTkyMCIKICAgICBpbmtzY2FwZTp3aW5kb3ctaGVpZ2h0PSIxMDExIgogICAgIGlkPSJuYW1lZHZpZXc5MDciCiAgICAgc2hvd2dyaWQ9ImZhbHNlIgogICAgIGlua3NjYXBlOnpvb209IjAuMjA5ODIxNDMiCiAgICAgaW5rc2NhcGU6Y3g9Ii0yNjIuODIyNTUiCiAgICAgaW5rc2NhcGU6Y3k9IjQ4OC43NDczNSIKICAgICBpbmtzY2FwZTp3aW5kb3cteD0iMTkyMCIKICAgICBpbmtzY2FwZTp3aW5kb3cteT0iMCIKICAgICBpbmtzY2FwZTp3aW5kb3ctbWF4aW1pemVkPSIxIgogICAgIGlua3NjYXBlOmN1cnJlbnQtbGF5ZXI9InN2ZzkwNSIKICAgICBmaXQtbWFyZ2luLXRvcD0iMCIKICAgICBmaXQtbWFyZ2luLWxlZnQ9IjAiCiAgICAgZml0LW1hcmdpbi1yaWdodD0iMCIKICAgICBmaXQtbWFyZ2luLWJvdHRvbT0iMCIgLz4KICA8cGF0aAogICAgIHN0eWxlPSJzdHJva2Utd2lkdGg6Mi4yMTA3MDY5NSIKICAgICBpbmtzY2FwZTpjb25uZWN0b3ItY3VydmF0dXJlPSIwIgogICAgIGQ9Ik0gNTQ4LjI1NTI4LDAgQyAyNDUuNDYzNiwwIDAsMjQ1LjQ2MTQzIDAsNTQ4LjI1NTMzIGMgMCwzMDIuNzkzODggMjQ1LjQ2MzYsNTQ4LjI1NTI3IDU0OC4yNTUyOCw1NDguMjU1MjcgMzAyLjc5MTgsMCA1NDguMjU1NTIsLTI0NS40NjM1OSA1NDguMjU1NTIsLTU0OC4yNTUyNyBDIDEwOTYuNTEwOCwyNDUuNDYzNjQgODUxLjA0OTI4LDAgNTQ4LjI1NTI4LDAgWiBtIDI4Ny42MzA4LDI2MC42MjQ2NyBjIDE0NC42ODYzLDE0NC42ODYzNyAxNTQuNzQ5NSwzNjUuODMwMDcgNDUuNzEwOCw1MjAuOTI0MzQgTCAzMTQuOTU5NDEsMjE0LjkxNjA5IGMgMTU1LjIwMDQsLTEwOS4xMTE2NSAzNzYuMzE5ODcsLTk4Ljg5NTk4IDUyMC45MjY2Nyw0NS43MDg1OCB6IE0gMjYwLjYyNDYsODM1Ljg4NTkxIEMgMTE1LjkzODMsNjkxLjE5OTYxIDEwNS44NzUyLDQ3MC4wNTYwMyAyMTQuOTEzOCwzMTQuOTYxNjQgbCA1NjYuNjM3NDgsNTY2LjYzMjk3IGMgLTE1NS4xOTgzLDEwOS4xMTE2IC0zNzYuMzE5ODcsOTguODk4MSAtNTIwLjkyNjY4LC00NS43MDg3IHoiCiAgICAgaWQ9InBhdGgxMDQxIiAvPgogIDxwYXRoCiAgICAgZD0ibSA1NDguMjU1MzgsNDg5LjkyOTA2IHEgNDMuMzgwMSwwIDc0LjE4MzcsMzAuODAzNTUgMzAuODAzNSwzMC44MDM1NCAzMC44MDM1LDc0LjE4MzY5IDAsNDMuMzgwMTUgLTMwLjgwMzUsNzQuMTgzNzEgLTMwLjgwMzYsMzAuODAzNSAtNzQuMTgzNywzMC44MDM1IC00My4zODAxNywwIC03NC4xODM2NywtMzAuODAzNSAtMzAuODAzNTUsLTMwLjgwMzU2IC0zMC44MDM1NSwtNzQuMTgzNzEgMCwtNDMuMzgwMTUgMzAuODAzNTUsLTc0LjE4MzY5IDMwLjgwMzUsLTMwLjgwMzU1IDc0LjE4MzY3LC0zMC44MDM1NSB6IG0gMjU2LjYzNTUsLTE1MS42NDgyMyBxIDM4LjY0MTEsMCA2NS45ODE1LDI3LjM0MDQyIDI3LjM0MDQsMjcuMzQwNDMgMjcuMzQwNCw2NS45ODE1NyB2IDMyNi42MjY5OSBxIDAsMzguNjQxMSAtMjcuMzQwNCw2NS45ODE2IC0yNy4zNDA0LDI3LjM0MDQgLTY1Ljk4MTUsMjcuMzQwNCBIIDI5MS42MTk5MyBxIC0zOC42NDExOCwwIC02NS45ODE1OCwtMjcuMzQwNCAtMjcuMzQwNCwtMjcuMzQwNSAtMjcuMzQwNCwtNjUuOTgxNiBWIDQzMS42MDI4MiBxIDAsLTM4LjY0MTEzIDI3LjM0MDQsLTY1Ljk4MTU3IDI3LjM0MDQsLTI3LjM0MDQyID
} " ;
$htmltop = <<< END
<! DOCTYPE html >
< title > HACHE Member Directory </ title >
2018-12-11 21:44:00 -07:00
< style nonce = " $SECURE_NONCE " >
2018-12-09 01:00:22 -07:00
html , body {
font - family : Roboto , DejaVu Sans , Arial , sans - serif ;
}
#memberlist {
column - count : 2 ;
}
. family {
margin - bottom : 15 px ;
}
. child {
margin - left : 10 px ;
}
. letterheading {
margin - top : 15 px ;
border - top : 1 px solid black ;
border - bottom : 1 px solid black ;
text - align : center ;
}
. icon {
width : 16 px ;
height : 16 px ;
display : inline - block ;
margin - bottom : - 3 px ;
background - size : 16 px 16 px ;
- webkit - print - color - adjust : exact ! important ;
color - adjust : exact ! important ;
}
$icons
</ style >
< h1 > HACHE Member Directory </ h1 >
< p >
< b > Updated :</ b > $date
< br />
< b > Icon key :</ b >
< span class = " icon grad " ></ span >: Graduated student | < span class = " icon nocamera " ></ span >: Photo permission denied
< br />
You agree to use the information in this directory for homeschool use ONLY . All other purposes , such as soliciting , is strictly prohibited .
</ p >
< div id = " memberlist " >
END ;
$htmlmiddle = " " ;
$currentletter = " " ;
foreach ( $families as $f ) {
// Add headings for letters
if ( strtoupper ( $f -> getName ()[ 0 ]) > $currentletter ) {
$currentletter = strtoupper ( $f -> getName ()[ 0 ]);
$htmlmiddle .= " \n <h3 class= \" letterheading \" > $currentletter </h3> \n " ;
}
$famhtml = " \n <div class= \" family \" > \n "
. " \t <b> " . $f -> getName () . " </b>, " . $f -> getFather () . " and " . $f -> getMother () . " \n " ;
if ( ! $f -> getPhotoPermission ()) {
$famhtml .= " \t <span class= \" icon nocamera \" ></span> \n " ;
}
$famhtml .= " \t <br /><span class= \" icon mapmarker \" ></span> " . $f -> getAddress () . " , " . $f -> getCity () . " , " . $f -> getState () . " " . $f -> getZip () . " \n "
. " \t <br /><span class= \" icon phone \" ></span> <a href= \" tel: " . $f -> getPhone () . " \" > " . $f -> getPhone () . " </a> <span class= \" icon email \" ></span> <a href= \" mailto: " . $f -> getEmail () . " \" > " . $f -> getEmail () . " </a> \n " ;
foreach ( $f -> getChildren () as $child ) {
$famhtml .= " \t <div class= \" child \" > \n " ;
if ( $child -> isGraduated ()) {
$famhtml .= " \t \t <span class= \" icon grad \" ></span> \n " ;
} else {
$famhtml .= " \t \t <span class= \" icon \" ></span> \n " ;
}
$famhtml .= " \t \t " . $child -> getName () . " , " . date ( " M y " , $child -> getBirthday ()) . " \n " ;
$famhtml .= " \t </div> \n " ;
}
$famhtml .= " </div> \n " ;
$htmlmiddle .= $famhtml ;
}
$htmlbottom = <<< END
</ div >
END ;
$html = $htmltop . $htmlmiddle . $htmlbottom ;
header ( " Content-Type: text/html; charset=UTF-8 " );
echo $html ;
} else {
\PhpOffice\PhpWord\Settings :: setOutputEscapingEnabled ( true );
$phpWord = new \PhpOffice\PhpWord\PhpWord ();
$properties = $phpWord -> getDocInfo ();
$properties -> setCreator ( 'HACHE Membership Portal' );
$properties -> setCompany ( 'HACHE' );
$properties -> setTitle ( 'HACHE Member Directory' );
$phpWord -> addTitleStyle ( 1 , [ 'bold' => true , 'size' => 24 , 'alignment' => \PhpOffice\PhpWord\SimpleType\Jc :: CENTER ]);
$phpWord -> addTitleStyle ( 2 , [ 'bold' => true , 'size' => 16 ]);
$header = $phpWord -> addSection ([ " paperSize " => " Letter " , 'marginLeft' => 600 , 'marginRight' => 600 , 'marginTop' => 600 , 'marginBottom' => 600 ]);
$header -> addTitle ( " HACHE Member Directory \n " , 1 );
$updated = $header -> addTextRun ();
$updated -> addText ( " Updated: " , [ 'bold' => true ]);
$updated -> addText ( " $date " );
$iconkey = $header -> addTextRun ();
$iconkey -> addText ( " Icon key: " , [ 'bold' => true ]);
2018-12-11 21:33:18 -07:00
$iconkey -> addText ( " ●: Graduated student | ►: Photo permission denied " );
2018-12-09 01:00:22 -07:00
$header -> addText ( $Strings -> get ( " You agree to use the information in this directory for homeschool use ONLY. All other purposes, such as soliciting, is strictly prohibited. " , false ));
$header -> addTextBreak ( 2 );
$body = $phpWord -> addSection ([ 'breakType' => 'continuous' , 'colsNum' => 2 , " paperSize " => " Letter " , 'marginLeft' => 600 , 'marginRight' => 600 , 'marginTop' => 600 , 'marginBottom' => 600 ]);
$currentletter = " " ;
foreach ( $families as $f ) {
// Add headings for letters
if ( strtoupper ( $f -> getName ()[ 0 ]) > $currentletter ) {
$currentletter = strtoupper ( $f -> getName ()[ 0 ]);
$body -> addTitle ( " $currentletter " , 2 );
}
$famtext = $body -> addTextRun ();
if ( ! $f -> getPhotoPermission ()) {
$famtext -> addText ( " ► " );
}
$famtext -> addText ( $f -> getName (), [ 'bold' => true ]);
$famtext -> addText ( " , " . $f -> getFather () . " and " . $f -> getMother ());
$body -> addText ( $f -> getAddress () . " , " . $f -> getCity () . " , " . $f -> getState () . " " . $f -> getZip ());
$links = $body -> addTextRun ();
$links -> addLink ( " tel: " . $f -> getPhone (), $f -> getPhone ());
$links -> addText ( " " );
$links -> addLink ( " mailto: " . $f -> getEmail (), $f -> getEmail ());
foreach ( $f -> getChildren () as $child ) {
$chtext = $body -> addTextRun ([ " indent " => 1440 ]);
if ( $child -> isGraduated ()) {
2018-12-11 21:33:18 -07:00
$chtext -> addText ( " ● " );
2018-12-09 01:00:22 -07:00
} else {
$chtext -> addText ( " " );
}
$chtext -> addText ( $child -> getName () . " , " . date ( " M y " , $child -> getBirthday ()));
}
$body -> addTextBreak ( 1 );
}
header ( " Content-Description: File Transfer " );
header ( 'Content-Transfer-Encoding: binary' );
header ( 'Cache-Control: must-revalidate, post-check=0, pre-check=0' );
header ( 'Expires: 0' );
switch ( $format ) {
case " docx " :
$phpWord -> getCompatibility () -> setOoxmlVersion ( 15 );
$objWriter = \PhpOffice\PhpWord\IOFactory :: createWriter ( $phpWord , 'Word2007' );
header ( " Content-Type: application/vnd.openxmlformats-officedocument.wordprocessingml.document " );
header ( " Content-disposition: attachment; filename= \" HACHE_Directory_ " . date ( " Y-m-d " ) . " .docx \" " );
break ;
case " odt " :
default :
2018-12-09 19:21:17 -07:00
// Paper size is stuck at A4 and margins don't work.
// See https://github.com/PHPOffice/PHPWord/issues/1531
// Hopefully they'll get this fixed.
2018-12-09 01:00:22 -07:00
$objWriter = \PhpOffice\PhpWord\IOFactory :: createWriter ( $phpWord , 'ODText' );
header ( " Content-Type: application/vnd.oasis.opendocument.text " );
header ( " Content-disposition: attachment; filename= \" HACHE_Directory_ " . date ( " Y-m-d " ) . " .odt \" " );
break ;
}
$objWriter -> save ( 'php://output' );
}
?>