private function getSourceCitationText($sourceCitation) { $citation = ''; $recordName = (string) $sourceCitation['record_name']; $citation .= $recordName; $title = (string) $sourceCitation['title']; $titleLower = mb_strtolower($title); if ($recordName && $title) { $citation = StructuredData::chomp($citation, ',') . ', in '; } $srcTitle = ''; $altTitle = ''; if (mb_strpos($titleLower, 'source:') === 0 || mb_strpos($titleLower, 'mysource:') === 0) { $fields = explode('|', $title); if (count($fields) > 1) { $altTitle = $fields[1]; } $t = Title::newFromText($fields[0]); if ($t) { $srcTitle = StructuredData::getRedirectToTitle($t); } } if ($srcTitle) { if ($altTitle) { $citation .= "[[" . $srcTitle->getPrefixedText() . "|{$altTitle}]]"; } else { if ($srcTitle->getNamespace() == NS_SOURCE) { $source = new Source($srcTitle->getText()); } else { $source = new MySource($srcTitle->getText()); } $source->loadPage(); $citation .= $source->getCitationText(true); } } else { $citation .= $title; } $page = (string) $sourceCitation['page']; if ($page) { $citation = StructuredData::chomp($citation, ',') . ", {$page}"; } $date = (string) $sourceCitation['date']; if ($date) { $citation = StructuredData::chomp($citation, ',') . ", {$date}"; } $quality = (string) $sourceCitation['quality']; if (strlen($quality) > 0) { $qualName = array_search($quality, self::$QUALITY_OPTIONS); if (!$qualName && @self::$QUALITY_OPTIONS[$quality]) { $qualName = $quality; } // allow old alpha form if ($qualName) { $citation = StructuredData::chomp($citation, ',') . ", {$qualName} quality"; } } return $citation; }