diff options
| author | Veit Olschinski <veit@olschinski.de> | 2010-04-05 10:29:41 +0000 |
|---|---|---|
| committer | Veit Olschinski <veit@olschinski.de> | 2010-04-05 10:29:41 +0000 |
| commit | 5bc7b36708d272081ffd2df5658ddf12275447dd (patch) | |
| tree | 7884d88bd634f62d94e0239c911305ac4349dba8 /modules/sources_tab | |
| parent | 5dbb23df7f03aeb32c6c5a3fa6139dd479f9c0b4 (diff) | |
| download | webtrees-5bc7b36708d272081ffd2df5658ddf12275447dd.tar.gz webtrees-5bc7b36708d272081ffd2df5658ddf12275447dd.tar.bz2 webtrees-5bc7b36708d272081ffd2df5658ddf12275447dd.zip | |
Diffstat (limited to 'modules/sources_tab')
| -rw-r--r-- | modules/sources_tab/pgv_module.php | 157 |
1 files changed, 157 insertions, 0 deletions
diff --git a/modules/sources_tab/pgv_module.php b/modules/sources_tab/pgv_module.php new file mode 100644 index 0000000000..d3b17609e4 --- /dev/null +++ b/modules/sources_tab/pgv_module.php @@ -0,0 +1,157 @@ +<?php +/** + * Classes and libraries for module system + * + * webtrees: Web based Family History software + * Copyright (C) 2010 webtrees development team. + * + * Derived from PhpGedView + * Copyright (C) 2009 John Finlay + * + * 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 2 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, write to the Free Software + * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA + * + * @package webtrees + * @subpackage Modules + * @version $Id: class_media.php 5451 2009-05-05 22:15:34Z fisharebest $ + */ + +if (!defined('WT_WEBTREES')) { + header('HTTP/1.0 403 Forbidden'); + exit; +} + +require_once WT_ROOT.'includes/classes/class_module.php'; + +class sources_tab_WT_Module extends WT_Module implements WT_Module_Tab { + // Extend WT_Module + public function getTitle() { + return i18n::translate('Sources'); + } + + // Extend WT_Module + public function getDescription() { + return i18n::translate('Adds a tab to the individual page which displays the sources linked to an individual.'); + } + + // Implement WT_Module_Tab + public function defaultTabOrder() { + return 30; + } + + protected $sourceCount = null; + + // Implement WT_Module_Tab + public function getTabContent() { + global $CONTACT_EMAIL, $FACT_COUNT; + global $SHOW_LEVEL2_NOTES; + global $NAV_SOURCES; + + /*if (isset($_COOKIE['row_sour2'])) $SHOW_LEVEL2_SOURCES = ($_COOKIE['row_sour2']); + else*/ $SHOW_LEVEL2_SOURCES = $SHOW_LEVEL2_NOTES; + + ob_start(); + ?> + <table class="facts_table"> + <?php + if (!$this->controller->indi->canDisplayDetails()) { + print "<tr><td class=\"facts_value\">"; + print_privacy_error($CONTACT_EMAIL); + print "</td></tr>"; + } else { + ?> + <tr> + <td></td> + <td class="descriptionbox rela"> + <input id="checkbox_sour2" type="checkbox" <?php if ($SHOW_LEVEL2_SOURCES) echo " checked=\"checked\""?> onclick="toggleByClassName('TR', 'row_sour2');" /> + <label for="checkbox_sour2"><?php echo i18n::translate('Show all sources'), help_link('show_fact_sources'); ?></label> + + </td> + </tr> + <?php + $otheritems = $this->controller->getOtherFacts(); + foreach ($otheritems as $key => $event) { + if ($event->getTag()=="SOUR") print_main_sources($event->getGedcomRecord(), 1, $this->controller->pid, $event->getLineNumber()); + $FACT_COUNT++; + } + } + // 2nd level sources [ 1712181 ] + $this->controller->indi->add_family_facts(false); + foreach ($this->controller->getIndiFacts() as $key => $factrec) { + print_main_sources($factrec->getGedcomRecord(), 2, $this->controller->pid, $factrec->getLineNumber(), true); + } + if ($this->get_source_count()==0) print "<tr><td id=\"no_tab3\" colspan=\"2\" class=\"facts_value\">".i18n::translate('There are no Source citations for this individual.')."</td></tr>\n"; + //-- New Source Link + if (!$this->controller->isPrintPreview() && $this->controller->canedit) { + ?> + <tr> + <td class="facts_label"><?php echo i18n::translate('Add Source Citation'), help_link('add_source'); ?></td> + <td class="facts_value"> + <a href="javascript:;" onclick="add_new_record('<?php echo $this->controller->pid; ?>','SOUR'); return false;"><?php echo i18n::translate('Add a new Source Citation'); ?></a> + <br /> + </td> + </tr> + <?php + } + ?> + </table> + <br /> + <?php + if (!$SHOW_LEVEL2_SOURCES) { + ?> + <script language="JavaScript" type="text/javascript"> + <!-- + toggleByClassName('TR', 'row_sour2'); + //--> + </script> + <?php + } + return '<div id="'.$this->getName().'_content">'.ob_get_clean().'</div>'; + } + + function get_source_count() { + if ($this->sourceCount===null) { + $ct = preg_match_all("/\d SOUR @(.*)@/", $this->controller->indi->gedrec, $match, PREG_SET_ORDER); + foreach ($this->controller->indi->getSpouseFamilies() as $k => $sfam) + $ct += preg_match("/\d SOUR /", $sfam->getGedcomRecord()); + $this->sourceCount = $ct; + } + return $this->sourceCount; + } + + // Implement WT_Module_Tab + public function hasTabContent() { + return $this->get_source_count()>0; + } + // Implement WT_Module_Tab + public function canLoadAjax() { + return true; + } + + // Implement WT_Module_Tab + public function getPreLoadContent() { + return ''; + } + + // Implement WT_Module_Tab + public function getJSCallbackAllTabs() { + return ''; + } + + // Implement WT_Module_Tab + public function getJSCallback() { + return ''; + } + +} |
