/**
  * Startup activity
  *
  * @param GedcomRecord|null $record
  */
 public function __construct(GedcomRecord $record = null)
 {
     $this->record = $record;
     // Automatically fix broken links
     if ($this->record && $this->record->canEdit()) {
         $broken_links = 0;
         foreach ($this->record->getFacts('HUSB|WIFE|CHIL|FAMS|FAMC|REPO') as $fact) {
             if (!$fact->isPendingDeletion() && $fact->getTarget() === null) {
                 $this->record->deleteFact($fact->getFactId(), false);
                 FlashMessages::addMessage(I18N::translate('The link from “%1$s” to “%2$s” has been deleted.', $this->record->getFullName(), $fact->getValue()));
                 $broken_links = true;
             }
         }
         foreach ($this->record->getFacts('NOTE|SOUR|OBJE') as $fact) {
             // These can be links or inline. Only delete links.
             if (!$fact->isPendingDeletion() && $fact->getTarget() === null && preg_match('/^@.*@$/', $fact->getValue())) {
                 $this->record->deleteFact($fact->getFactId(), false);
                 FlashMessages::addMessage(I18N::translate('The link from “%1$s” to “%2$s” has been deleted.', $this->record->getFullName(), $fact->getValue()));
                 $broken_links = true;
             }
         }
         if ($broken_links) {
             // Reload the updated family
             $this->record = GedcomRecord::getInstance($this->record->getXref(), $this->record->getTree());
         }
     }
     parent::__construct();
     // We want robots to index this page
     $this->setMetaRobots('index,follow');
     // Set a page title
     if ($this->record) {
         if ($this->record->canShowName()) {
             // e.g. "John Doe" or "1881 Census of Wales"
             $this->setPageTitle($this->record->getFullName());
         } else {
             // e.g. "Individual" or "Source"
             $record = $this->record;
             $this->setPageTitle(GedcomTag::getLabel($record::RECORD_TYPE));
         }
     } else {
         // No such record
         $this->setPageTitle(I18N::translate('Private'));
     }
 }
Exemple #2
0
     $prev_gedcom_id = $change->gedcom_id;
     $output .= '<tr><td class="list_value">';
     $output .= '<b><a href="#" onclick="return show_diff(\'' . $record->getHtmlUrl() . '\');"> ' . $record->getFullName() . '</a></b>';
     $output .= '<div class="indent">';
     $output .= '<table class="list_table"><tr>';
     $output .= '<td class="list_label">' . I18N::translate('Accept') . '</td>';
     $output .= '<td class="list_label">' . I18N::translate('Changes') . '</td>';
     $output .= '<td class="list_label">' . I18N::translate('User') . '</td>';
     $output .= '<td class="list_label">' . I18N::translate('Date') . '</td>';
     $output .= '<td class="list_label">' . I18N::translate('Family tree') . '</td>';
     $output .= '<td class="list_label">' . I18N::translate('Undo') . '</td>';
     $output .= '</tr>';
 }
 $output .= '<td class="list_value"><a href="edit_changes.php?action=accept&amp;change_id=' . $change->change_id . '">' . I18N::translate('Accept') . '</a></td>';
 $output .= '<td class="list_value">';
 foreach ($record->getFacts() as $fact) {
     if ($fact->getTag() != 'CHAN') {
         if ($fact->isPendingAddition()) {
             $output .= '<div class="new" title="' . strip_tags($fact->summary()) . '">' . $fact->getLabel() . '</div>';
         } elseif ($fact->isPendingDeletion()) {
             $output .= '<div class="old" title="' . strip_tags($fact->summary()) . '">' . $fact->getLabel() . '</div>';
         }
     }
 }
 echo '</td>';
 $output .= "<td class=\"list_value\"><a href=\"#\" onclick=\"return reply('" . $change->user_name . "', '" . I18N::translate('Moderate pending changes') . "')\" alt=\"" . I18N::translate('Send a message') . "\">";
 $output .= Filter::escapeHtml($change->real_name);
 $output .= ' - ' . Filter::escapeHtml($change->user_name) . '</a></td>';
 $output .= '<td class="list_value">' . $change->change_time . '</td>';
 $output .= '<td class="list_value">' . $change->gedcom_name . '</td>';
 $output .= '<td class="list_value"><a href="edit_changes.php?action=undo&amp;change_id=' . $change->change_id . '">' . I18N::translate('Undo') . '</a></td>';