1
0
Fork 0
mirror of https://github.com/YunoHost-Apps/webtrees_ynh.git synced 2024-09-03 18:26:37 +02:00
webtrees_ynh/sources/inverselink.php

163 lines
6.1 KiB
PHP
Raw Normal View History

<?php
/**
* webtrees: online genealogy
* Copyright (C) 2016 webtrees development team
* This program is free software: you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
* the Free Software Foundation, either version 3 of the License, or
* (at your option) any later version.
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
* You should have received a copy of the GNU General Public License
* along with this program. If not, see <http://www.gnu.org/licenses/>.
*/
namespace Fisharebest\Webtrees;
/**
* Defined in session.php
*
* @global Tree $WT_TREE
*/
global $WT_TREE;
use Fisharebest\Webtrees\Controller\SimpleController;
use Fisharebest\Webtrees\Functions\FunctionsPrint;
define('WT_SCRIPT_NAME', 'inverselink.php');
require './includes/session.php';
$controller = new SimpleController;
$controller
->restrictAccess(Auth::isEditor($WT_TREE))
->setPageTitle(I18N::translate('Link to an existing media object'))
->addExternalJavascript(WT_AUTOCOMPLETE_JS_URL)
->addInlineJavascript('autocomplete();')
->pageHeader();
//-- page parameters and checking
$linktoid = Filter::get('linktoid', WT_REGEX_XREF);
$mediaid = Filter::get('mediaid', WT_REGEX_XREF);
$linkto = Filter::get('linkto', 'person|source|family|manage|repository|note');
$action = Filter::get('action', 'choose|update', 'choose');
// If GedFAct_assistant/_MEDIA/ installed ======================
if ($linkto == 'manage' && Module::getModuleByName('GEDFact_assistant')) {
require WT_ROOT . WT_MODULES_DIR . 'GEDFact_assistant/_MEDIA/media_0_inverselink.php';
} else {
//-- check for admin
$paramok = true;
if (!empty($linktoid)) {
$paramok = GedcomRecord::getInstance($linktoid, $WT_TREE)->canShow();
}
if ($action == "choose" && $paramok) {
echo '<form name="link" method="get" action="inverselink.php">';
echo '<input type="hidden" name="action" value="update">';
if (!empty($mediaid)) {
echo '<input type="hidden" name="mediaid" value="', $mediaid, '">';
}
if (!empty($linktoid)) {
echo '<input type="hidden" name="linktoid" value="', $linktoid, '">';
}
echo '<input type="hidden" name="linkto" value="', $linkto, '">';
echo '<input type="hidden" name="ged" value="', $WT_TREE->getNameHtml(), '">';
echo '<table class="facts_table">';
echo '<tr><td class="topbottombar" colspan="2">';
echo I18N::translate('Link to an existing media object');
echo '</td></tr><tr><td class="descriptionbox width20 wrap">', I18N::translate('Media'), '</td>';
echo '<td class="optionbox wrap">';
if (!empty($mediaid)) {
//-- Get the title of this existing Media item
$title =
Database::prepare("SELECT m_titl FROM `##media` where m_id=? AND m_file=?")
->execute(array($mediaid, $WT_TREE->getTreeId()))
->fetchOne();
if ($title) {
echo '<b>', Filter::escapeHtml($title), '</b>';
} else {
echo '<b>', $mediaid, '</b>';
}
} else {
echo '<input data-autocomplete-type="OBJE" type="text" name="mediaid" id="mediaid" size="5">';
echo ' ', FunctionsPrint::printFindMediaLink('mediaid', '1media');
echo '</td></tr>';
}
if (!isset($linktoid)) {
$linktoid = '';
}
echo '<tr><td class="descriptionbox">';
if ($linkto == "person") {
echo I18N::translate('Individual'), "</td>";
echo '<td class="optionbox wrap">';
if ($linktoid == "") {
echo '<input class="pedigree_form" type="text" name="linktoid" id="linktopid" size="3" value="', $linktoid, '"> ';
echo FunctionsPrint::printFindIndividualLink('linktopid');
} else {
$record = Individual::getInstance($linktoid, $WT_TREE);
echo $record->formatList('span', false, $record->getFullName());
}
}
if ($linkto == "family") {
echo I18N::translate('Family'), '</td>';
echo '<td class="optionbox wrap">';
if ($linktoid == "") {
echo '<input class="pedigree_form" type="text" name="linktoid" id="linktofamid" size="3" value="', $linktoid, '"> ';
echo FunctionsPrint::printFindFamilyLink('linktofamid');
} else {
$record = Family::getInstance($linktoid, $WT_TREE);
echo $record->formatList('span', false, $record->getFullName());
}
}
if ($linkto == "source") {
echo I18N::translate('Source'), "</td>";
echo '<td class="optionbox wrap">';
if ($linktoid == "") {
echo '<input class="pedigree_form" type="text" name="linktoid" id="linktosid" size="3" value="', $linktoid, '"> ';
echo FunctionsPrint::printFindSourceLink('linktosid');
} else {
$record = Source::getInstance($linktoid, $WT_TREE);
echo $record->formatList('span', false, $record->getFullName());
}
}
if ($linkto == "repository") {
echo I18N::translate('Repository'), "</td>";
echo '<td class="optionbox wrap">';
if ($linktoid == "") {
echo '<input class="pedigree_form" type="text" name="linktoid" id="linktorid" size="3" value="', $linktoid, '">';
} else {
$record = Repository::getInstance($linktoid, $WT_TREE);
echo $record->formatList('span', false, $record->getFullName());
}
}
if ($linkto == "note") {
echo I18N::translate('Shared note'), "</td>";
echo '<td class="optionbox wrap">';
if ($linktoid == "") {
echo '<input class="pedigree_form" type="text" name="linktoid" id="linktonid" size="3" value="', $linktoid, '">';
} else {
$record = Note::getInstance($linktoid, $WT_TREE);
echo $record->formatList('span', false, $record->getFullName());
}
}
echo '</td></tr>';
echo '<tr><td class="topbottombar" colspan="2"><input type="submit" value="', /* I18N: A button label (a verb). */ I18N::translate('link'), '"></td></tr>';
echo '</table>';
echo '</form>';
} elseif ($action == "update" && $paramok) {
$record = GedcomRecord::getInstance($linktoid, $WT_TREE);
$record->createFact('1 OBJE @' . $mediaid . '@', true);
$controller->addInlineJavascript('closePopupAndReloadParent();');
}
echo '<button onclick="closePopupAndReloadParent();">', I18N::translate('close'), '</button>';
}