xref: /webtrees/app/Module/ClippingsCartModule.php (revision 7bd2dc1975abbb849d469d48352bbcc45c637c7e)
18c2e8227SGreg Roach<?php
20e62c4b8SGreg Roachnamespace Fisharebest\Webtrees\Module;
38c2e8227SGreg Roach
48c2e8227SGreg Roach/**
58c2e8227SGreg Roach * webtrees: online genealogy
68c2e8227SGreg Roach * Copyright (C) 2015 webtrees development team
78c2e8227SGreg Roach * This program is free software: you can redistribute it and/or modify
88c2e8227SGreg Roach * it under the terms of the GNU General Public License as published by
98c2e8227SGreg Roach * the Free Software Foundation, either version 3 of the License, or
108c2e8227SGreg Roach * (at your option) any later version.
118c2e8227SGreg Roach * This program is distributed in the hope that it will be useful,
128c2e8227SGreg Roach * but WITHOUT ANY WARRANTY; without even the implied warranty of
138c2e8227SGreg Roach * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
148c2e8227SGreg Roach * GNU General Public License for more details.
158c2e8227SGreg Roach * You should have received a copy of the GNU General Public License
168c2e8227SGreg Roach * along with this program. If not, see <http://www.gnu.org/licenses/>.
178c2e8227SGreg Roach */
180e62c4b8SGreg Roachuse Fisharebest\Webtrees\Auth;
190e62c4b8SGreg Roachuse Fisharebest\Webtrees\Controller\PageController;
200e62c4b8SGreg Roachuse Fisharebest\Webtrees\Family;
210e62c4b8SGreg Roachuse Fisharebest\Webtrees\Filter;
223d7a8a4cSGreg Roachuse Fisharebest\Webtrees\Functions\FunctionsPrint;
230e62c4b8SGreg Roachuse Fisharebest\Webtrees\GedcomRecord;
240e62c4b8SGreg Roachuse Fisharebest\Webtrees\I18N;
250e62c4b8SGreg Roachuse Fisharebest\Webtrees\Individual;
260e62c4b8SGreg Roachuse Fisharebest\Webtrees\Menu;
270e62c4b8SGreg Roachuse Fisharebest\Webtrees\Module\ClippingsCart\ClippingsCartController;
280e62c4b8SGreg Roachuse Fisharebest\Webtrees\Session;
298c2e8227SGreg Roach
308c2e8227SGreg Roach/**
318c2e8227SGreg Roach * Class ClippingsCartModule
328c2e8227SGreg Roach */
33e2a378d3SGreg Roachclass ClippingsCartModule extends AbstractModule implements ModuleMenuInterface, ModuleSidebarInterface {
348c2e8227SGreg Roach	/** {@inheritdoc} */
358c2e8227SGreg Roach	public function getTitle() {
368c2e8227SGreg Roach		return /* I18N: Name of a module */ I18N::translate('Clippings cart');
378c2e8227SGreg Roach	}
388c2e8227SGreg Roach
398c2e8227SGreg Roach	/** {@inheritdoc} */
408c2e8227SGreg Roach	public function getDescription() {
418c2e8227SGreg Roach		return /* I18N: Description of the “Clippings cart” module */ I18N::translate('Select records from your family tree and save them as a GEDCOM file.');
428c2e8227SGreg Roach	}
438c2e8227SGreg Roach
448c2e8227SGreg Roach	/** {@inheritdoc} */
458c2e8227SGreg Roach	public function defaultAccessLevel() {
464b9ff166SGreg Roach		return Auth::PRIV_USER;
478c2e8227SGreg Roach	}
488c2e8227SGreg Roach
498c2e8227SGreg Roach	/** {@inheritdoc} */
508c2e8227SGreg Roach	public function modAction($mod_action) {
518c2e8227SGreg Roach		switch ($mod_action) {
528c2e8227SGreg Roach		case 'ajax':
538c2e8227SGreg Roach			$html = $this->getSidebarAjaxContent();
548c2e8227SGreg Roach			header('Content-Type: text/html; charset=UTF-8');
558c2e8227SGreg Roach			echo $html;
568c2e8227SGreg Roach			break;
578c2e8227SGreg Roach		case 'index':
5831bc7874SGreg Roach			global $controller, $WT_TREE;
598c2e8227SGreg Roach
608c2e8227SGreg Roach			$MAX_PEDIGREE_GENERATIONS = $WT_TREE->getPreference('MAX_PEDIGREE_GENERATIONS');
618c2e8227SGreg Roach
620e62c4b8SGreg Roach			$clip_ctrl = new ClippingsCartController;
63*7bd2dc19SGreg Roach			$cart      = Session::get('cart');
648c2e8227SGreg Roach
658c2e8227SGreg Roach			$controller = new PageController;
668c2e8227SGreg Roach			$controller
678c2e8227SGreg Roach				->setPageTitle($this->getTitle())
688c2e8227SGreg Roach				->PageHeader()
698c2e8227SGreg Roach				->addExternalJavascript(WT_AUTOCOMPLETE_JS_URL)
708c2e8227SGreg Roach				->addInlineJavascript('autocomplete();');
718c2e8227SGreg Roach
728c2e8227SGreg Roach			echo '<script>';
738c2e8227SGreg Roach			echo 'function radAncestors(elementid) {var radFamilies=document.getElementById(elementid);radFamilies.checked=true;}';
748c2e8227SGreg Roach			echo '</script>';
758c2e8227SGreg Roach
7631bc7874SGreg Roach			if (!$cart[$WT_TREE->getTreeId()]) {
778c2e8227SGreg Roach				echo '<h2>', I18N::translate('Family tree clippings cart'), '</h2>';
788c2e8227SGreg Roach			}
798c2e8227SGreg Roach
808c2e8227SGreg Roach			if ($clip_ctrl->action == 'add') {
814e3c4966SGreg Roach				$record = GedcomRecord::getInstance($clip_ctrl->id, $WT_TREE);
828c2e8227SGreg Roach				if ($clip_ctrl->type === 'FAM') { ?>
838c2e8227SGreg Roach				<form action="module.php" method="get">
848c2e8227SGreg Roach					<input type="hidden" name="mod" value="clippings">
858c2e8227SGreg Roach					<input type="hidden" name="mod_action" value="index">
868c2e8227SGreg Roach					<input type="hidden" name="id" value="<?php echo $clip_ctrl->id; ?>">
878c2e8227SGreg Roach					<input type="hidden" name="type" value="<?php echo $clip_ctrl->type; ?>">
884e3c4966SGreg Roach					<input type="hidden" name="action" value="add1">
894e3c4966SGreg Roach					<table>
904e3c4966SGreg Roach						<thead>
914e3c4966SGreg Roach							<tr>
924e3c4966SGreg Roach								<td class="topbottombar">
934e3c4966SGreg Roach									<?php echo I18N::translate('Add to the clippings cart'); ?>
944e3c4966SGreg Roach								</td>
954e3c4966SGreg Roach							</tr>
964e3c4966SGreg Roach						</thead>
974e3c4966SGreg Roach						<tbody>
984e3c4966SGreg Roach							<tr>
994e3c4966SGreg Roach								<td class="optionbox">
1004e3c4966SGreg Roach									<input type="radio" name="others" value="parents">
1014e3c4966SGreg Roach									<?php echo $record->getFullName(); ?>
1024e3c4966SGreg Roach								</td>
1034e3c4966SGreg Roach							</tr>
1044e3c4966SGreg Roach							<tr>
1054e3c4966SGreg Roach								<td class="optionbox">
1064e3c4966SGreg Roach									<input type="radio" name="others" value="members" checked>
1074e3c4966SGreg Roach									<?php echo /* I18N: %s is a family (husband + wife) */ I18N::translate('%s and their children', $record->getFullName()); ?>
1084e3c4966SGreg Roach								</td>
1094e3c4966SGreg Roach							</tr>
1104e3c4966SGreg Roach							<tr>
1114e3c4966SGreg Roach								<td class="optionbox">
1124e3c4966SGreg Roach									<input type="radio" name="others" value="descendants">
1134e3c4966SGreg Roach									<?php echo /* I18N: %s is a family (husband + wife) */ I18N::translate('%s and their descendants', $record->getFullName()); ?>
1144e3c4966SGreg Roach								</td>
1154e3c4966SGreg Roach							</tr>
1164e3c4966SGreg Roach						</tbody>
1174e3c4966SGreg Roach						<tfoot>
1184e3c4966SGreg Roach							<tr>
1194e3c4966SGreg Roach								<td class="topbottombar"><input type="submit" value="<?php echo I18N::translate('continue'); ?>">
1204e3c4966SGreg Roach								</td>
1214e3c4966SGreg Roach							</tr>
1224e3c4966SGreg Roach						</tfoot>
1238c2e8227SGreg Roach					</table>
1248c2e8227SGreg Roach				</form>
1258c2e8227SGreg Roach				<?php } elseif ($clip_ctrl->type === 'INDI') { ?>
1268c2e8227SGreg Roach				<form action="module.php" method="get">
1278c2e8227SGreg Roach					<input type="hidden" name="mod" value="clippings">
1288c2e8227SGreg Roach					<input type="hidden" name="mod_action" value="index">
1298c2e8227SGreg Roach					<input type="hidden" name="id" value="<?php echo $clip_ctrl->id; ?>">
1308c2e8227SGreg Roach					<input type="hidden" name="type" value="<?php echo $clip_ctrl->type; ?>">
1318c2e8227SGreg Roach					<input type="hidden" name="action" value="add1"></td></tr>
1324e3c4966SGreg Roach					<table>
1334e3c4966SGreg Roach						<thead>
1344e3c4966SGreg Roach							<tr>
1354e3c4966SGreg Roach								<td class="topbottombar">
1364e3c4966SGreg Roach									<?php echo I18N::translate('Add to the clippings cart'); ?>
1374e3c4966SGreg Roach								</td>
1384e3c4966SGreg Roach							</tr>
1394e3c4966SGreg Roach						</thead>
1404e3c4966SGreg Roach						<tbody>
1414e3c4966SGreg Roach							<tr>
1424e3c4966SGreg Roach								<td class="optionbox">
1434e3c4966SGreg Roach									<label>
1444e3c4966SGreg Roach										<input type="radio" name="others" checked value="none">
1454e3c4966SGreg Roach										<?php echo $record->getFullName(); ?>
1464e3c4966SGreg Roach									</label>
1474e3c4966SGreg Roach								</td>
1484e3c4966SGreg Roach							</tr>
1494e3c4966SGreg Roach							<tr>
1504e3c4966SGreg Roach								<td class="optionbox">
1514e3c4966SGreg Roach									<label>
1524e3c4966SGreg Roach										<input type="radio" name="others" value="parents">
1534e3c4966SGreg Roach										<?php
1544e3c4966SGreg Roach										if ($record->getSex() === 'F') {
1554e3c4966SGreg Roach											echo /* I18N: %s is a woman's name */ I18N::translate('%s, her parents and siblings', $record->getFullName());
1564e3c4966SGreg Roach										} else {
1574e3c4966SGreg Roach											echo /* I18N: %s is a man's name */ I18N::translate('%s, his parents and siblings', $record->getFullName());
1584e3c4966SGreg Roach										}
1594e3c4966SGreg Roach										?>
1604e3c4966SGreg Roach									</label>
1614e3c4966SGreg Roach								</td>
1624e3c4966SGreg Roach							</tr>
1634e3c4966SGreg Roach							<tr>
1644e3c4966SGreg Roach								<td class="optionbox">
1654e3c4966SGreg Roach									<label>
1664e3c4966SGreg Roach										<input type="radio" name="others" value="members">
1674e3c4966SGreg Roach										<?php
1684e3c4966SGreg Roach										if ($record->getSex() === 'F') {
1694e3c4966SGreg Roach											echo /* I18N: %s is a woman's name */ I18N::translate('%s, her spouses and children', $record->getFullName());
1704e3c4966SGreg Roach										} else {
1714e3c4966SGreg Roach											echo /* I18N: %s is a man's name */ I18N::translate('%s, his spouses and children', $record->getFullName());
1724e3c4966SGreg Roach										}
1734e3c4966SGreg Roach										?>
1744e3c4966SGreg Roach									</label>
1754e3c4966SGreg Roach								</td>
1764e3c4966SGreg Roach							</tr>
1774e3c4966SGreg Roach							<tr>
1784e3c4966SGreg Roach								<td class="optionbox">
1794e3c4966SGreg Roach									<label>
1804e3c4966SGreg Roach										<input type="radio" name="others" value="ancestors" id="ancestors">
1814e3c4966SGreg Roach										<?php
1824e3c4966SGreg Roach										if ($record->getSex() === 'F') {
1834e3c4966SGreg Roach										echo /* I18N: %s is a woman's name */ I18N::translate('%s and her ancestors', $record->getFullName());
1844e3c4966SGreg Roach										} else {
1854e3c4966SGreg Roach										echo /* I18N: %s is a man's name */ I18N::translate('%s and his ancestors', $record->getFullName());
1864e3c4966SGreg Roach										}
1874e3c4966SGreg Roach									?>
1884e3c4966SGreg Roach									</label>
1894e3c4966SGreg Roach									<br>
1904e3c4966SGreg Roach									&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
1914e3c4966SGreg Roach									<?php echo I18N::translate('Number of generations'); ?>
1924e3c4966SGreg Roach									<input type="text" size="5" name="level1" value="<?php echo $MAX_PEDIGREE_GENERATIONS; ?>" onfocus="radAncestors('ancestors');">
1934e3c4966SGreg Roach								</td>
1944e3c4966SGreg Roach							</tr>
1954e3c4966SGreg Roach							<tr>
1964e3c4966SGreg Roach								<td class="optionbox">
1974e3c4966SGreg Roach									<label>
1984e3c4966SGreg Roach										<input type="radio" name="others" value="ancestorsfamilies" id="ancestorsfamilies">
1994e3c4966SGreg Roach										<?php
2004e3c4966SGreg Roach										if ($record->getSex() === 'F') {
2014e3c4966SGreg Roach											echo /* I18N: %s is a woman's name */ I18N::translate('%s, her ancestors and their families', $record->getFullName());
2024e3c4966SGreg Roach										} else {
2034e3c4966SGreg Roach											echo /* I18N: %s is a man's name */ I18N::translate('%s, his ancestors and their families', $record->getFullName());
2044e3c4966SGreg Roach										}
2054e3c4966SGreg Roach										?>
2064e3c4966SGreg Roach									</label>
2074e3c4966SGreg Roach									<br >
2084e3c4966SGreg Roach									&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
2094e3c4966SGreg Roach									<?php echo I18N::translate('Number of generations'); ?>
2104e3c4966SGreg Roach									<input type="text" size="5" name="level2" value="<?php echo $MAX_PEDIGREE_GENERATIONS; ?>" onfocus="radAncestors('ancestorsfamilies');">
2114e3c4966SGreg Roach								</td>
2124e3c4966SGreg Roach							</tr>
2134e3c4966SGreg Roach							<tr>
2144e3c4966SGreg Roach								<td class="optionbox">
2154e3c4966SGreg Roach									<label>
2164e3c4966SGreg Roach										<input type="radio" name="others" value="descendants" id="descendants">
2174e3c4966SGreg Roach										<?php
2184e3c4966SGreg Roach										if ($record->getSex() === 'F') {
2194e3c4966SGreg Roach											echo /* I18N: %s is a woman's name */ I18N::translate('%s, her spouses and descendants', $record->getFullName());
2204e3c4966SGreg Roach										} else {
2214e3c4966SGreg Roach											echo /* I18N: %s is a man's name */ I18N::translate('%s, his spouses and descendants', $record->getFullName());
2224e3c4966SGreg Roach										}
2234e3c4966SGreg Roach										?>
2244e3c4966SGreg Roach									</label>
2254e3c4966SGreg Roach									<br >
2264e3c4966SGreg Roach									&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
2274e3c4966SGreg Roach									<?php echo I18N::translate('Number of generations'); ?>
2284e3c4966SGreg Roach									<input type="text" size="5" name="level3" value="<?php echo $MAX_PEDIGREE_GENERATIONS; ?>" onfocus="radAncestors('descendants');">
2294e3c4966SGreg Roach								</td>
2304e3c4966SGreg Roach							</tr>
2314e3c4966SGreg Roach						</tbody>
2324e3c4966SGreg Roach						<tfoot>
2334e3c4966SGreg Roach							<tr>
2344e3c4966SGreg Roach								<td class="topbottombar">
2354e3c4966SGreg Roach									<input type="submit" value="<?php echo I18N::translate('continue'); ?>">
2364e3c4966SGreg Roach								</td>
2374e3c4966SGreg Roach							</tr>
2384e3c4966SGreg Roach						</tfoot>
2398c2e8227SGreg Roach					</table>
2408c2e8227SGreg Roach				</form>
2418c2e8227SGreg Roach				<?php } elseif ($clip_ctrl->type === 'SOUR') { ?>
2428c2e8227SGreg Roach				<form action="module.php" method="get">
2438c2e8227SGreg Roach					<input type="hidden" name="mod" value="clippings">
2448c2e8227SGreg Roach					<input type="hidden" name="mod_action" value="index">
2458c2e8227SGreg Roach					<input type="hidden" name="id" value="<?php echo $clip_ctrl->id; ?>">
2468c2e8227SGreg Roach					<input type="hidden" name="type" value="<?php echo $clip_ctrl->type; ?>">
2478c2e8227SGreg Roach					<input type="hidden" name="action" value="add1"></td></tr>
2484e3c4966SGreg Roach					<table>
2494e3c4966SGreg Roach						<thead>
2504e3c4966SGreg Roach							<tr>
2514e3c4966SGreg Roach								<td class="topbottombar">
2524e3c4966SGreg Roach									<?php echo I18N::translate('Add to the clippings cart'); ?>
2534e3c4966SGreg Roach								</td>
2544e3c4966SGreg Roach							</tr>
2554e3c4966SGreg Roach						</thead>
2564e3c4966SGreg Roach						<tbody>
2574e3c4966SGreg Roach							<tr>
2584e3c4966SGreg Roach								<td class="optionbox">
2594e3c4966SGreg Roach									<label>
2604e3c4966SGreg Roach										<input type="radio" name="others" checked value="none">
2614e3c4966SGreg Roach										<?php echo $record->getFullName(); ?>
2624e3c4966SGreg Roach									</label>
2634e3c4966SGreg Roach								</td>
2644e3c4966SGreg Roach							</tr>
2654e3c4966SGreg Roach							<tr>
2664e3c4966SGreg Roach								<td class="optionbox">
2674e3c4966SGreg Roach									<label>
2684e3c4966SGreg Roach										<input type="radio" name="others" value="linked">
2694e3c4966SGreg Roach										<?php echo /* I18N: %s is the name of a source */ I18N::translate('%s and the individuals that reference it.', $record->getFullName()); ?>
2704e3c4966SGreg Roach									</label>
2714e3c4966SGreg Roach								</td>
2724e3c4966SGreg Roach							</tr>
2734e3c4966SGreg Roach						</tbody>
2744e3c4966SGreg Roach						<tfoot>
2754e3c4966SGreg Roach							<tr>
2764e3c4966SGreg Roach								<td class="topbottombar">
2774e3c4966SGreg Roach									<input type="submit" value="<?php echo I18N::translate('continue'); ?>">
2784e3c4966SGreg Roach								</td>
2794e3c4966SGreg Roach							</tr>
2804e3c4966SGreg Roach						</tfoot>
2818c2e8227SGreg Roach					</table>
2828c2e8227SGreg Roach				</form>
2838c2e8227SGreg Roach				<?php }
2848c2e8227SGreg Roach				}
2858c2e8227SGreg Roach
28631bc7874SGreg Roach			if (!$cart[$WT_TREE->getTreeId()]) {
2878c2e8227SGreg Roach				if ($clip_ctrl->action != 'add') {
2888c2e8227SGreg Roach					echo I18N::translate('The clippings cart allows you to take extracts (“clippings”) from this family tree and bundle them up into a single file for downloading and subsequent importing into your own genealogy program.  The downloadable file is recorded in GEDCOM format.<br><ul><li>How to take clippings?<br>This is really simple.  Whenever you see a clickable name (individual, family, or source) you can go to the Details page of that name.  There you will see the <b>Add to clippings cart</b> option.  When you click that link you will be offered several options to download.</li><li>How to download?<br>Once you have items in your cart, you can download them just by clicking the “Download” link.  Follow the instructions and links.</li></ul>');
2898c2e8227SGreg Roach					?>
2908c2e8227SGreg Roach					<form method="get" name="addin" action="module.php">
2918c2e8227SGreg Roach					<input type="hidden" name="mod" value="clippings">
2928c2e8227SGreg Roach					<input type="hidden" name="mod_action" value="index">
2938c2e8227SGreg Roach						<table>
2944e3c4966SGreg Roach							<thead>
2958c2e8227SGreg Roach								<tr>
2964e3c4966SGreg Roach									<td colspan="2" class="topbottombar">
2974e3c4966SGreg Roach										<?php echo I18N::translate('Add to the clippings cart'); ?>
2988c2e8227SGreg Roach									</td>
2998c2e8227SGreg Roach								</tr>
3004e3c4966SGreg Roach							</thead>
3014e3c4966SGreg Roach							<tbody>
3028c2e8227SGreg Roach								<tr>
3038c2e8227SGreg Roach									<td class="optionbox">
3048c2e8227SGreg Roach										<input type="hidden" name="action" value="add">
3058c2e8227SGreg Roach										<input type="text" data-autocomplete-type="IFSRO" name="id" id="cart_item_id" size="5">
3068c2e8227SGreg Roach									</td>
3078c2e8227SGreg Roach									<td class="optionbox">
3083d7a8a4cSGreg Roach										<?php echo FunctionsPrint::printFindIndividualLink('cart_item_id'); ?>
3093d7a8a4cSGreg Roach										<?php echo FunctionsPrint::printFindFamilyLink('cart_item_id'); ?>
3103d7a8a4cSGreg Roach										<?php echo FunctionsPrint::printFindSourceLink('cart_item_id', ''); ?>
3118c2e8227SGreg Roach										<input type="submit" value="<?php echo I18N::translate('Add'); ?>">
3128c2e8227SGreg Roach									</td>
3138c2e8227SGreg Roach								</tr>
3144e3c4966SGreg Roach							</tbody>
3158c2e8227SGreg Roach						</table>
3168c2e8227SGreg Roach					</form>
3178c2e8227SGreg Roach					<?php
3188c2e8227SGreg Roach				}
3198c2e8227SGreg Roach
3208c2e8227SGreg Roach				// -- end new lines
3218c2e8227SGreg Roach				echo I18N::translate('Your clippings cart is empty.');
3228c2e8227SGreg Roach			} else {
3238c2e8227SGreg Roach				// Keep track of the INDI from the parent page, otherwise it will
3248c2e8227SGreg Roach				// get lost after ajax updates
3258c2e8227SGreg Roach				$pid = Filter::get('pid', WT_REGEX_XREF);
3268c2e8227SGreg Roach
3278c2e8227SGreg Roach				if ($clip_ctrl->action != 'download' && $clip_ctrl->action != 'add') { ?>
3288c2e8227SGreg Roach					<table><tr><td class="width33" valign="top" rowspan="3">
3298c2e8227SGreg Roach					<form method="get" action="module.php">
3308c2e8227SGreg Roach					<input type="hidden" name="mod" value="clippings">
3318c2e8227SGreg Roach					<input type="hidden" name="mod_action" value="index">
3328c2e8227SGreg Roach					<input type="hidden" name="action" value="download">
3338c2e8227SGreg Roach					<input type="hidden" name="pid" value="<?php echo $pid; ?>">
3348c2e8227SGreg Roach					<table>
3358c2e8227SGreg Roach					<tr><td colspan="2" class="topbottombar"><h2><?php echo I18N::translate('Download'); ?></h2></td></tr>
3366fd6cde8SGreg Roach					<tr>
3376fd6cde8SGreg Roach						<td class="descriptionbox width50 wrap">
3386fd6cde8SGreg Roach							<?php echo I18N::translate('To reduce the size of the download, you can compress the data into a .ZIP file.  You will need to uncompress the .ZIP file before you can use it.'); ?>
3396fd6cde8SGreg Roach						</td>
3406fd6cde8SGreg Roach						<td class="optionbox wrap">
3416fd6cde8SGreg Roach							<input type="checkbox" name="Zip" value="yes">
3426fd6cde8SGreg Roach							<?php echo I18N::translate('Zip file(s)'); ?>
3436fd6cde8SGreg Roach						</td>
3446fd6cde8SGreg Roach					</tr>
3456fd6cde8SGreg Roach					<tr>
3466fd6cde8SGreg Roach						<td class="descriptionbox width50 wrap">
347d1928687SGreg Roach							<?php echo I18N::translate('Include media (automatically zips files)'); ?>
3486fd6cde8SGreg Roach						</td>
3498c2e8227SGreg Roach					<td class="optionbox"><input type="checkbox" name="IncludeMedia" value="yes"></td></tr>
3508c2e8227SGreg Roach
3514b9ff166SGreg Roach					<?php if (Auth::isManager($WT_TREE)) {	?>
352d1928687SGreg Roach						<tr><td class="descriptionbox width50 wrap"><?php echo I18N::translate('Apply privacy settings'); ?></td>
3538c2e8227SGreg Roach						<td class="optionbox">
3548c2e8227SGreg Roach							<input type="radio" name="privatize_export" value="none" checked> <?php echo I18N::translate('None'); ?><br>
3558c2e8227SGreg Roach							<input type="radio" name="privatize_export" value="gedadmin"> <?php echo I18N::translate('Manager'); ?><br>
3568c2e8227SGreg Roach							<input type="radio" name="privatize_export" value="user"> <?php echo I18N::translate('Member'); ?><br>
3578c2e8227SGreg Roach							<input type="radio" name="privatize_export" value="visitor"> <?php echo I18N::translate('Visitor'); ?>
3588c2e8227SGreg Roach						</td></tr>
3594b9ff166SGreg Roach					<?php } elseif (Auth::isMember($WT_TREE)) { ?>
360d1928687SGreg Roach						<tr><td class="descriptionbox width50 wrap"><?php echo I18N::translate('Apply privacy settings'); ?></td>
3618c2e8227SGreg Roach						<td class="optionbox">
3628c2e8227SGreg Roach							<input type="radio" name="privatize_export" value="user" checked> <?php echo I18N::translate('Member'); ?><br>
3638c2e8227SGreg Roach							<input type="radio" name="privatize_export" value="visitor"> <?php echo I18N::translate('Visitor'); ?>
3648c2e8227SGreg Roach						</td></tr>
3658c2e8227SGreg Roach					<?php } ?>
3668c2e8227SGreg Roach
367d1928687SGreg Roach					<tr><td class="descriptionbox width50 wrap"><?php echo I18N::translate('Convert from UTF-8 to ISO-8859-1'); ?></td>
3688c2e8227SGreg Roach					<td class="optionbox"><input type="checkbox" name="convert" value="yes"></td></tr>
3698c2e8227SGreg Roach
370d1928687SGreg Roach					<tr><td class="descriptionbox width50 wrap"><?php echo I18N::translate('Add the GEDCOM media path to filenames'); ?></td>
3718c2e8227SGreg Roach					<td class="optionbox">
3728c2e8227SGreg Roach						<input type="checkbox" name="conv_path" value="<?php echo Filter::escapeHtml($WT_TREE->getPreference('GEDCOM_MEDIA_PATH')); ?>">
3738c2e8227SGreg Roach						<span dir="auto"><?php echo Filter::escapeHtml($WT_TREE->getPreference('GEDCOM_MEDIA_PATH')); ?></span>
3748c2e8227SGreg Roach					</td></tr>
3758c2e8227SGreg Roach
3768c2e8227SGreg Roach					<tr><td class="topbottombar" colspan="2">
3778c2e8227SGreg Roach					<input type="submit" value="<?php echo I18N::translate('Download'); ?>">
3788c2e8227SGreg Roach					</form>
3798c2e8227SGreg Roach					</td></tr>
3808c2e8227SGreg Roach					</table>
3818c2e8227SGreg Roach					</td></tr>
3828c2e8227SGreg Roach					</table>
3838c2e8227SGreg Roach					<br>
3848c2e8227SGreg Roach
3858c2e8227SGreg Roach					<form method="get" name="addin" action="module.php">
3868c2e8227SGreg Roach						<input type="hidden" name="mod" value="clippings">
3878c2e8227SGreg Roach						<input type="hidden" name="mod_action" value="index">
3888c2e8227SGreg Roach						<table>
3894e3c4966SGreg Roach							<thead>
3908c2e8227SGreg Roach								<tr>
3918c2e8227SGreg Roach									<td colspan="2" class="topbottombar" style="text-align:center; ">
3924e3c4966SGreg Roach										<?php echo I18N::translate('Add to the clippings cart'); ?>
3938c2e8227SGreg Roach									</td>
3948c2e8227SGreg Roach								</tr>
3954e3c4966SGreg Roach							</thead>
3964e3c4966SGreg Roach							<tbody>
3978c2e8227SGreg Roach								<tr>
3988c2e8227SGreg Roach									<td class="optionbox">
3998c2e8227SGreg Roach										<input type="hidden" name="action" value="add">
4008c2e8227SGreg Roach										<input type="text" data-autocomplete-type="IFSRO" name="id" id="cart_item_id" size="8">
4018c2e8227SGreg Roach									</td>
4028c2e8227SGreg Roach									<td class="optionbox">
4033d7a8a4cSGreg Roach										<?php echo FunctionsPrint::printFindIndividualLink('cart_item_id'); ?>
4043d7a8a4cSGreg Roach										<?php echo FunctionsPrint::printFindFamilyLink('cart_item_id'); ?>
4053d7a8a4cSGreg Roach										<?php echo FunctionsPrint::printFindSourceLink('cart_item_id'); ?>
4068c2e8227SGreg Roach										<input type="submit" value="<?php echo I18N::translate('Add'); ?>">
4078c2e8227SGreg Roach									</td>
4088c2e8227SGreg Roach								</tr>
4094e3c4966SGreg Roach								</tbody>
4108c2e8227SGreg Roach						</table>
4118c2e8227SGreg Roach					</form>
4128c2e8227SGreg Roach
4138c2e8227SGreg Roach
4148c2e8227SGreg Roach				<?php } ?>
4158c2e8227SGreg Roach				<br><a href="module.php?mod=clippings&amp;mod_action=index&amp;action=empty"><?php echo I18N::translate('Empty the clippings cart'); ?></a>
4168c2e8227SGreg Roach				</td></tr>
4178c2e8227SGreg Roach
4188c2e8227SGreg Roach				<tr><td class="topbottombar"><h2><?php echo I18N::translate('Family tree clippings cart'); ?></h2></td></tr>
4198c2e8227SGreg Roach
4208c2e8227SGreg Roach				<tr><td valign="top">
4218c2e8227SGreg Roach				<table id="mycart" class="sortable list_table width100">
4228c2e8227SGreg Roach					<tr>
4238c2e8227SGreg Roach						<th class="list_label"><?php echo I18N::translate('Record'); ?></th>
4248c2e8227SGreg Roach						<th class="list_label"><?php echo I18N::translate('Remove'); ?></th>
4258c2e8227SGreg Roach					</tr>
4268c2e8227SGreg Roach			<?php
42731bc7874SGreg Roach				foreach (array_keys($cart[$WT_TREE->getTreeId()]) as $xref) {
42824ec66ceSGreg Roach					$record = GedcomRecord::getInstance($xref, $WT_TREE);
4298c2e8227SGreg Roach					if ($record) {
4308c2e8227SGreg Roach						switch ($record::RECORD_TYPE) {
4318c2e8227SGreg Roach						case 'INDI': $icon = 'icon-indis'; break;
4328c2e8227SGreg Roach						case 'FAM':  $icon = 'icon-sfamily'; break;
4338c2e8227SGreg Roach						case 'SOUR': $icon = 'icon-source'; break;
4348c2e8227SGreg Roach						case 'REPO': $icon = 'icon-repository'; break;
4358c2e8227SGreg Roach						case 'NOTE': $icon = 'icon-note'; break;
4368c2e8227SGreg Roach						case 'OBJE': $icon = 'icon-media'; break;
4378c2e8227SGreg Roach						default:     $icon = 'icon-clippings'; break;
4388c2e8227SGreg Roach						}
4398c2e8227SGreg Roach						?>
4408c2e8227SGreg Roach						<tr><td class="list_value">
4418c2e8227SGreg Roach							<i class="<?php echo $icon; ?>"></i>
4428c2e8227SGreg Roach						<?php
4438c2e8227SGreg Roach						echo '<a href="', $record->getHtmlUrl(), '">', $record->getFullName(), '</a>';
4448c2e8227SGreg Roach						?>
4458c2e8227SGreg Roach						</td>
4468c2e8227SGreg Roach						<td class="list_value center vmiddle"><a href="module.php?mod=clippings&amp;mod_action=index&amp;action=remove&amp;id=<?php echo $xref; ?>" class="icon-remove" title="<?php echo I18N::translate('Remove'); ?>"></a></td>
4478c2e8227SGreg Roach					</tr>
4488c2e8227SGreg Roach					<?php
4498c2e8227SGreg Roach					}
4508c2e8227SGreg Roach				}
4518c2e8227SGreg Roach			?>
4528c2e8227SGreg Roach				</table>
4538c2e8227SGreg Roach				</td></tr></table>
4548c2e8227SGreg Roach			<?php
4558c2e8227SGreg Roach			}
4568c2e8227SGreg Roach			break;
4578c2e8227SGreg Roach		default:
4588c2e8227SGreg Roach			http_response_code(404);
4598c2e8227SGreg Roach			break;
4608c2e8227SGreg Roach		}
4618c2e8227SGreg Roach	}
4628c2e8227SGreg Roach
4638c2e8227SGreg Roach	/** {@inheritdoc} */
4648c2e8227SGreg Roach	public function defaultMenuOrder() {
4658c2e8227SGreg Roach		return 20;
4668c2e8227SGreg Roach	}
4678c2e8227SGreg Roach
4688c2e8227SGreg Roach	/** {@inheritdoc} */
4698c2e8227SGreg Roach	public function getMenu() {
4704b9ff166SGreg Roach		global $controller, $WT_TREE;
4718c2e8227SGreg Roach
4728c2e8227SGreg Roach		if (Auth::isSearchEngine()) {
4738c2e8227SGreg Roach			return null;
4748c2e8227SGreg Roach		}
4758c2e8227SGreg Roach		//-- main clippings menu item
4764b9ff166SGreg Roach		$menu = new Menu($this->getTitle(), 'module.php?mod=clippings&amp;mod_action=index&amp;ged=' . $WT_TREE->getNameUrl(), 'menu-clippings');
4778c2e8227SGreg Roach		if (isset($controller->record)) {
4784b9ff166SGreg Roach			$submenu = new Menu($this->getTitle(), 'module.php?mod=clippings&amp;mod_action=index&amp;ged=' . $WT_TREE->getNameUrl(), 'menu-clippingscart');
4798c2e8227SGreg Roach			$menu->addSubmenu($submenu);
4808c2e8227SGreg Roach		}
4818c2e8227SGreg Roach		if (!empty($controller->record) && $controller->record->canShow()) {
4824e3c4966SGreg Roach			$submenu = new Menu(I18N::translate('Add to the clippings cart'), 'module.php?mod=clippings&amp;mod_action=index&amp;action=add&amp;id=' . $controller->record->getXref(), 'menu-clippingsadd');
4838c2e8227SGreg Roach			$menu->addSubmenu($submenu);
4848c2e8227SGreg Roach		}
485cbc1590aSGreg Roach
4868c2e8227SGreg Roach		return $menu;
4878c2e8227SGreg Roach	}
4888c2e8227SGreg Roach
4898c2e8227SGreg Roach	/** {@inheritdoc} */
4908c2e8227SGreg Roach	public function defaultSidebarOrder() {
4918c2e8227SGreg Roach		return 60;
4928c2e8227SGreg Roach	}
4938c2e8227SGreg Roach
4948c2e8227SGreg Roach	/** {@inheritdoc} */
4958c2e8227SGreg Roach	public function hasSidebarContent() {
4968c2e8227SGreg Roach		if (Auth::isSearchEngine()) {
4978c2e8227SGreg Roach			return false;
4988c2e8227SGreg Roach		} else {
4998c2e8227SGreg Roach			// Creating a controller has the side effect of initialising the cart
5000e62c4b8SGreg Roach			new ClippingsCartController;
5018c2e8227SGreg Roach
5028c2e8227SGreg Roach			return true;
5038c2e8227SGreg Roach		}
5048c2e8227SGreg Roach	}
5058c2e8227SGreg Roach
5068c2e8227SGreg Roach	/** {@inheritdoc} */
5078c2e8227SGreg Roach	public function getSidebarContent() {
5088c2e8227SGreg Roach		global $controller;
5098c2e8227SGreg Roach
5108c2e8227SGreg Roach		$controller->addInlineJavascript('
5118c2e8227SGreg Roach				jQuery("#sb_clippings_content").on("click", ".add_cart, .remove_cart", function() {
5128c2e8227SGreg Roach					jQuery("#sb_clippings_content").load(this.href);
5138c2e8227SGreg Roach					return false;
5148c2e8227SGreg Roach				});
5158c2e8227SGreg Roach			');
5168c2e8227SGreg Roach
5178c2e8227SGreg Roach		return '<div id="sb_clippings_content">' . $this->getCartList() . '</div>';
5188c2e8227SGreg Roach	}
5198c2e8227SGreg Roach
5208c2e8227SGreg Roach	/** {@inheritdoc} */
5218c2e8227SGreg Roach	public function getSidebarAjaxContent() {
52231bc7874SGreg Roach		global $WT_TREE;
52331bc7874SGreg Roach
52431bc7874SGreg Roach		$cart = Session::get('cart');
5258c2e8227SGreg Roach
5260e62c4b8SGreg Roach		$clip_ctrl         = new ClippingsCartController;
5278c2e8227SGreg Roach		$add               = Filter::get('add', WT_REGEX_XREF);
5288c2e8227SGreg Roach		$add1              = Filter::get('add1', WT_REGEX_XREF);
5298c2e8227SGreg Roach		$remove            = Filter::get('remove', WT_REGEX_XREF);
5308c2e8227SGreg Roach		$others            = Filter::get('others');
5318c2e8227SGreg Roach		$clip_ctrl->level1 = Filter::getInteger('level1');
5328c2e8227SGreg Roach		$clip_ctrl->level2 = Filter::getInteger('level2');
5338c2e8227SGreg Roach		$clip_ctrl->level3 = Filter::getInteger('level3');
5348c2e8227SGreg Roach		if ($add) {
53524ec66ceSGreg Roach			$record = GedcomRecord::getInstance($add, $WT_TREE);
5368c2e8227SGreg Roach			if ($record) {
5378c2e8227SGreg Roach				$clip_ctrl->id   = $record->getXref();
5388c2e8227SGreg Roach				$clip_ctrl->type = $record::RECORD_TYPE;
5398c2e8227SGreg Roach				$clip_ctrl->addClipping($record);
5408c2e8227SGreg Roach			}
5418c2e8227SGreg Roach		} elseif ($add1) {
54224ec66ceSGreg Roach			$record = Individual::getInstance($add1, $WT_TREE);
5438c2e8227SGreg Roach			if ($record) {
5448c2e8227SGreg Roach				$clip_ctrl->id   = $record->getXref();
5458c2e8227SGreg Roach				$clip_ctrl->type = $record::RECORD_TYPE;
5468c2e8227SGreg Roach				if ($others == 'parents') {
5478c2e8227SGreg Roach					foreach ($record->getChildFamilies() as $family) {
5488c2e8227SGreg Roach						$clip_ctrl->addClipping($family);
5498c2e8227SGreg Roach						$clip_ctrl->addFamilyMembers($family);
5508c2e8227SGreg Roach					}
5518c2e8227SGreg Roach				} elseif ($others == 'ancestors') {
5528c2e8227SGreg Roach					$clip_ctrl->addAncestorsToCart($record, $clip_ctrl->level1);
5538c2e8227SGreg Roach				} elseif ($others == 'ancestorsfamilies') {
5548c2e8227SGreg Roach					$clip_ctrl->addAncestorsToCartFamilies($record, $clip_ctrl->level2);
5558c2e8227SGreg Roach				} elseif ($others == 'members') {
5568c2e8227SGreg Roach					foreach ($record->getSpouseFamilies() as $family) {
5578c2e8227SGreg Roach						$clip_ctrl->addClipping($family);
5588c2e8227SGreg Roach						$clip_ctrl->addFamilyMembers($family);
5598c2e8227SGreg Roach					}
5608c2e8227SGreg Roach				} elseif ($others == 'descendants') {
5618c2e8227SGreg Roach					foreach ($record->getSpouseFamilies() as $family) {
5628c2e8227SGreg Roach						$clip_ctrl->addClipping($family);
5638c2e8227SGreg Roach						$clip_ctrl->addFamilyDescendancy($family, $clip_ctrl->level3);
5648c2e8227SGreg Roach					}
5658c2e8227SGreg Roach				}
5668c2e8227SGreg Roach			}
5678c2e8227SGreg Roach		} elseif ($remove) {
56831bc7874SGreg Roach			unset($cart[$WT_TREE->getTreeId()][$remove]);
56931bc7874SGreg Roach			Session::put('cart', $cart);
5708c2e8227SGreg Roach		} elseif (isset($_REQUEST['empty'])) {
57131bc7874SGreg Roach			$cart[$WT_TREE->getTreeId()] = array();
57231bc7874SGreg Roach			Session::put('cart', $cart);
5738c2e8227SGreg Roach		} elseif (isset($_REQUEST['download'])) {
5748c2e8227SGreg Roach			return $this->downloadForm($clip_ctrl);
5758c2e8227SGreg Roach		}
57631bc7874SGreg Roach
5778c2e8227SGreg Roach		return $this->getCartList();
5788c2e8227SGreg Roach	}
5798c2e8227SGreg Roach
5808c2e8227SGreg Roach	/**
5818c2e8227SGreg Roach	 * A list for the side bar.
5828c2e8227SGreg Roach	 *
5838c2e8227SGreg Roach	 * @return string
5848c2e8227SGreg Roach	 */
5858c2e8227SGreg Roach	public function getCartList() {
58631bc7874SGreg Roach		global $WT_TREE;
5878c2e8227SGreg Roach
58831bc7874SGreg Roach		$cart = Session::get('cart', array());
58931bc7874SGreg Roach		if (!array_key_exists($WT_TREE->getTreeId(), $cart)) {
59031bc7874SGreg Roach			$cart[$WT_TREE->getTreeId()] = array();
59131bc7874SGreg Roach		}
5928c2e8227SGreg Roach		$pid = Filter::get('pid', WT_REGEX_XREF);
5938c2e8227SGreg Roach
59431bc7874SGreg Roach		if (!$cart[$WT_TREE->getTreeId()]) {
5958c2e8227SGreg Roach			$out = I18N::translate('Your clippings cart is empty.');
5968c2e8227SGreg Roach		} else {
5978c2e8227SGreg Roach			$out = '<ul>';
59831bc7874SGreg Roach			foreach (array_keys($cart[$WT_TREE->getTreeId()]) as $xref) {
59924ec66ceSGreg Roach				$record = GedcomRecord::getInstance($xref, $WT_TREE);
6008c2e8227SGreg Roach				if ($record instanceof Individual || $record instanceof Family) {
6018c2e8227SGreg Roach					switch ($record::RECORD_TYPE) {
6028c2e8227SGreg Roach					case 'INDI':
6038c2e8227SGreg Roach						$icon = 'icon-indis';
6048c2e8227SGreg Roach						break;
6058c2e8227SGreg Roach					case 'FAM':
6068c2e8227SGreg Roach						$icon = 'icon-sfamily';
6078c2e8227SGreg Roach						break;
6088c2e8227SGreg Roach					}
6098c2e8227SGreg Roach					$out .= '<li>';
6108c2e8227SGreg Roach					if (!empty($icon)) {
6118c2e8227SGreg Roach						$out .= '<i class="' . $icon . '"></i>';
6128c2e8227SGreg Roach					}
6138c2e8227SGreg Roach					$out .= '<a href="' . $record->getHtmlUrl() . '">';
6148c2e8227SGreg Roach					if ($record instanceof Individual) {
6158c2e8227SGreg Roach						$out .= $record->getSexImage();
6168c2e8227SGreg Roach					}
6178c2e8227SGreg Roach					$out .= ' ' . $record->getFullName() . ' ';
6188c2e8227SGreg Roach					if ($record instanceof Individual && $record->canShow()) {
6198c2e8227SGreg Roach						$out .= ' (' . $record->getLifeSpan() . ')';
6208c2e8227SGreg Roach					}
6218c2e8227SGreg Roach					$out .= '</a>';
6228c2e8227SGreg Roach					$out .= '<a class="icon-remove remove_cart" href="module.php?mod=' . $this->getName() . '&amp;mod_action=ajax&amp;sb_action=clippings&amp;remove=' . $xref . '&amp;pid=' . $pid . '" title="' . I18N::translate('Remove') . '"></a>';
6238c2e8227SGreg Roach					$out .= '</li>';
6248c2e8227SGreg Roach				}
6258c2e8227SGreg Roach			}
6268c2e8227SGreg Roach			$out .= '</ul>';
6278c2e8227SGreg Roach		}
6288c2e8227SGreg Roach
62931bc7874SGreg Roach		if ($cart[$WT_TREE->getTreeId()]) {
6308c2e8227SGreg Roach			$out .=
6318c2e8227SGreg Roach				'<br><a href="module.php?mod=' . $this->getName() . '&amp;mod_action=ajax&amp;sb_action=clippings&amp;empty=true&amp;pid=' . $pid . '" class="remove_cart">' .
6328c2e8227SGreg Roach				I18N::translate('Empty the clippings cart') .
6338c2e8227SGreg Roach				'</a>' .
6348c2e8227SGreg Roach				'<br>' .
6358c2e8227SGreg Roach				'<a href="module.php?mod=' . $this->getName() . '&amp;mod_action=ajax&amp;sb_action=clippings&amp;download=true&amp;pid=' . $pid . '" class="add_cart">' .
6368c2e8227SGreg Roach				I18N::translate('Download') .
6378c2e8227SGreg Roach				'</a>';
6388c2e8227SGreg Roach		}
63924ec66ceSGreg Roach		$record = Individual::getInstance($pid, $WT_TREE);
64031bc7874SGreg Roach		if ($record && !array_key_exists($record->getXref(), $cart[$WT_TREE->getTreeId()])) {
6418c2e8227SGreg Roach			$out .= '<br><a href="module.php?mod=' . $this->getName() . '&amp;mod_action=ajax&amp;sb_action=clippings&amp;add=' . $pid . '&amp;pid=' . $pid . '" class="add_cart"><i class="icon-clippings"></i> ' . I18N::translate('Add %s to the clippings cart', $record->getFullName()) . '</a>';
6428c2e8227SGreg Roach		}
643cbc1590aSGreg Roach
6448c2e8227SGreg Roach		return $out;
6458c2e8227SGreg Roach	}
6468c2e8227SGreg Roach
6478c2e8227SGreg Roach	/**
6480e62c4b8SGreg Roach	 * @param ClippingsCartController $clip_ctrl
6498c2e8227SGreg Roach	 *
6508c2e8227SGreg Roach	 * @return string
6518c2e8227SGreg Roach	 */
6520e62c4b8SGreg Roach	public function downloadForm(ClippingsCartController $clip_ctrl) {
6538c2e8227SGreg Roach		global $WT_TREE;
6548c2e8227SGreg Roach
6558c2e8227SGreg Roach		$pid = Filter::get('pid', WT_REGEX_XREF);
6568c2e8227SGreg Roach
6578c2e8227SGreg Roach		$out = '<script>';
6588c2e8227SGreg Roach		$out .= 'function cancelDownload() {
6598c2e8227SGreg Roach				var link = "module.php?mod=' . $this->getName() . '&mod_action=ajax&sb_action=clippings&pid=' . $pid . '";
6608c2e8227SGreg Roach				jQuery("#sb_clippings_content").load(link);
6618c2e8227SGreg Roach			}';
6628c2e8227SGreg Roach		$out .= '</script>';
6638c2e8227SGreg Roach		$out .= '<form method="get" action="module.php">
6648c2e8227SGreg Roach		<input type="hidden" name="mod" value="clippings">
6658c2e8227SGreg Roach		<input type="hidden" name="mod_action" value="index">
6668c2e8227SGreg Roach		<input type="hidden" name="pid" value="' . $pid . '">
6678c2e8227SGreg Roach		<input type="hidden" name="action" value="download">
6688c2e8227SGreg Roach		<table>
6698c2e8227SGreg Roach		<tr><td colspan="2" class="topbottombar"><h2>' . I18N::translate('Download') . '</h2></td></tr>
6706fd6cde8SGreg Roach		<tr><td class="descriptionbox width50 wrap">' . I18N::translate('Zip file(s)') . '</td>
6718c2e8227SGreg Roach		<td class="optionbox"><input type="checkbox" name="Zip" value="yes" checked></td></tr>
6728c2e8227SGreg Roach
673d1928687SGreg Roach		<tr><td class="descriptionbox width50 wrap">' . I18N::translate('Include media (automatically zips files)') . '</td>
6748c2e8227SGreg Roach		<td class="optionbox"><input type="checkbox" name="IncludeMedia" value="yes" checked></td></tr>
6758c2e8227SGreg Roach		';
6768c2e8227SGreg Roach
6774b9ff166SGreg Roach		if (Auth::isManager($WT_TREE)) {
6788c2e8227SGreg Roach			$out .=
679d1928687SGreg Roach				'<tr><td class="descriptionbox width50 wrap">' . I18N::translate('Apply privacy settings') . '</td>' .
6808c2e8227SGreg Roach				'<td class="optionbox">' .
6818c2e8227SGreg Roach				'	<input type="radio" name="privatize_export" value="none" checked> ' . I18N::translate('None') . '<br>' .
6828c2e8227SGreg Roach				'	<input type="radio" name="privatize_export" value="gedadmin"> ' . I18N::translate('Manager') . '<br>' .
6838c2e8227SGreg Roach				'	<input type="radio" name="privatize_export" value="user"> ' . I18N::translate('Member') . '<br>' .
6848c2e8227SGreg Roach				'	<input type="radio" name="privatize_export" value="visitor"> ' . I18N::translate('Visitor') .
6858c2e8227SGreg Roach				'</td></tr>';
6864b9ff166SGreg Roach		} elseif (Auth::isMember($WT_TREE)) {
6878c2e8227SGreg Roach			$out .=
688d1928687SGreg Roach				'<tr><td class="descriptionbox width50 wrap">' . I18N::translate('Apply privacy settings') . '</td>' .
6898c2e8227SGreg Roach				'<td class="list_value">' .
6908c2e8227SGreg Roach				'	<input type="radio" name="privatize_export" value="user" checked> ' . I18N::translate('Member') . '<br>' .
6918c2e8227SGreg Roach				'	<input type="radio" name="privatize_export" value="visitor"> ' . I18N::translate('Visitor') .
6928c2e8227SGreg Roach				'</td></tr>';
6938c2e8227SGreg Roach		}
6948c2e8227SGreg Roach
6958c2e8227SGreg Roach		$out .= '
696d1928687SGreg Roach		<tr><td class="descriptionbox width50 wrap">' . I18N::translate('Convert from UTF-8 to ISO-8859-1') . '</td>
6978c2e8227SGreg Roach		<td class="optionbox"><input type="checkbox" name="convert" value="yes"></td></tr>
6988c2e8227SGreg Roach
6998c2e8227SGreg Roach		<tr>
700d1928687SGreg Roach		<td class="descriptionbox width50 wrap">' . I18N::translate('Add the GEDCOM media path to filenames') . '</td>
7018c2e8227SGreg Roach		<td class="optionbox">
7028c2e8227SGreg Roach		<input type="checkbox" name="conv_path" value="' . Filter::escapeHtml($WT_TREE->getPreference('GEDCOM_MEDIA_PATH')) . '">
7038c2e8227SGreg Roach		<span dir="auto">' . Filter::escapeHtml($WT_TREE->getPreference('GEDCOM_MEDIA_PATH')) . '</span></td>
7048c2e8227SGreg Roach		</tr>
7058c2e8227SGreg Roach
7068c2e8227SGreg Roach		<input type="hidden" name="conv_path" value="' . $clip_ctrl->conv_path . '">
7078c2e8227SGreg Roach
7088c2e8227SGreg Roach		</td></tr>
7098c2e8227SGreg Roach
7108c2e8227SGreg Roach		<tr><td class="topbottombar" colspan="2">
7118c2e8227SGreg Roach		<input type="button" value="' . I18N::translate('Cancel') . '" onclick="cancelDownload();">
7128c2e8227SGreg Roach		<input type="submit" value="' . I18N::translate('Download') . '">
7138c2e8227SGreg Roach		</form>';
7148c2e8227SGreg Roach
7158c2e8227SGreg Roach		return $out;
7168c2e8227SGreg Roach	}
7178c2e8227SGreg Roach
7188c2e8227SGreg Roach}
719