code: public static function findPublishedByIdOrAliasAndPid($varId, $intPid, array $arrOptions=array())
  	{
  		$t = static::$strTable;
  		$arrColumns = !preg_match('/^[1-9]\d*$/', $varId) ? array("$t.alias=?") : array("$t.id=?");
  		$arrValues = array($varId);
  
  		if ($intPid)
  		{
  			$arrColumns[] = "$t.pid=?";
  			$arrValues[] = $intPid;
  		}
  
  		if (!static::isPreviewMode($arrOptions))
  		{
  			$time = Date::floorToMinute();
  			$arrColumns[] = "($t.start='' OR $t.start<='$time') AND ($t.stop='' OR $t.stop>'" . ($time + 60) . "') AND $t.published='1'";
  		}
  
  		return static::findOneBy($arrColumns, $arrValues, $arrOptions);
  	}
docs: Find a published article by its ID or alias and its page
  
  @param mixed   $varId      The numeric ID or alias name
  @param integer $intPid     The page ID
  @param array   $arrOptions An optional options array
  
  @return ArticleModel|null The model or null if there is no article