code: protected function getLink($objItem, $strUrl, $strBase='')
  	{
  		switch ($objItem->source)
  		{
  			// Link to an external page
  			case 'external':
  				return $objItem->url;
  				break;
  
  			// Link to an internal page
  			case 'internal':
  				if (($objTarget = $objItem->getRelated('jumpTo')) instanceof PageModel)
  				{
  					/** @var PageModel $objTarget */
  					return $objTarget->getAbsoluteUrl();
  				}
  				break;
  
  			// Link to an article
  			case 'article':
  				if (($objArticle = ArticleModel::findByPk($objItem->articleId)) instanceof ArticleModel && ($objPid = $objArticle->getRelated('pid')) instanceof PageModel)
  				{
  					/** @var PageModel $objPid */
  					return ampersand($objPid->getAbsoluteUrl('/articles/' . ($objArticle->alias ?: $objArticle->id)));
  				}
  				break;
  		}
  
  		// Backwards compatibility (see #8329)
  		if ($strBase != '' && !preg_match('#^https?://#', $strUrl))
  		{
  			$strUrl = $strBase . $strUrl;
  		}
  
  		// Link to the default page
  		return sprintf(preg_replace('/%(?!s)/', '%%', $strUrl), ($objItem->alias ?: $objItem->id));
  	}
docs: Return the link of a news article
  
  @param NewsModel $objItem
  @param string    $strUrl
  @param string    $strBase
  
  @return string