public static function constructSourceTitle($sourceType, $sourceTitle, $author = '', $place = '', $placeIssued = '', $publisher = '') { $sourceTitle = StructuredData::cleanSourceTitle($sourceTitle); if (!$sourceType || !$sourceTitle) { return null; } $pageTitle = $sourceTitle; // Government / Church records -> place. title if ($sourceType == 'Government / Church records') { $place = StructuredData::cleanSourcePlace($place); if ($place) { $pageTitle = "{$place}. {$sourceTitle}"; } else { return null; } } else { if ($sourceType == 'Newspaper') { $placeIssued = StructuredData::cleanSourcePlaceIssued($placeIssued); if ($placeIssued) { $pageTitle = "{$sourceTitle} ({$placeIssued})"; } } else { if ($sourceType == 'Periodical') { $publisher = StructuredData::cleanSourcePlace($place); if ($publisher) { $pageTitle = "{$sourceTitle} ({$publisher})"; } } else { $author = StructuredData::cleanSourceAuthor($author); if ($author) { $pageTitle = "{$author}. {$sourceTitle}"; } } } } return Title::newFromText($pageTitle, NS_SOURCE); }