gedcom . $this->pending, $match)) { return preg_replace("/\n1 CONT ?/", "\n", $match[1]); } else { return null; } } /** {@inheritdoc} */ protected function canShowByType($access_level) { // Hide notes if they are attached to private records $linked_ids = WT_DB::prepare( "SELECT l_from FROM `##link` WHERE l_to=? AND l_file=?" )->execute(array($this->xref, $this->gedcom_id))->fetchOneColumn(); foreach ($linked_ids as $linked_id) { $linked_record = WT_GedcomRecord::getInstance($linked_id); if ($linked_record && !$linked_record->canShow($access_level)) { return false; } } // Apply default behaviour return parent::canShowByType($access_level); } /** {@inheritdoc} */ protected function createPrivateGedcomRecord($access_level) { return '0 @' . $this->xref . '@ NOTE ' . WT_I18N::translate('Private'); } /** {@inheritdoc} */ protected static function fetchGedcomRecord($xref, $gedcom_id) { static $statement = null; if ($statement === null) { $statement = WT_DB::prepare("SELECT o_gedcom FROM `##other` WHERE o_id=? AND o_file=? AND o_type='NOTE'"); } return $statement->execute(array($xref, $gedcom_id))->fetchOne(); } /** * Create a name for this note - apply (and remove) markup, then take * a maximum of 100 characters from the first line. * * {@inheritdoc} */ public function extractNames() { global $WT_TREE; $text = $this->getNote(); if ($text) { switch ($WT_TREE->getPreference('FORMAT_TEXT')) { case 'markdown': $text = WT_Filter::markdown($text); $text = WT_Filter::unescapeHtml($text); break; } list($text) = explode("\n", $text); $this->addName('NOTE', strlen($text) > 100 ? mb_substr($text, 0, 100) . WT_I18N::translate('…') : $text, $this->getGedcom()); } } }