code: public static function findPublishedRegularWithoutGuestsByIds($arrIds, array $arrOptions=array())
  	{
  		if (empty($arrIds) || !\is_array($arrIds))
  		{
  			return null;
  		}
  
  		$t = static::$strTable;
  		$arrColumns = array("$t.id IN(" . implode(',', array_map('\intval', $arrIds)) . ") AND $t.type!='error_401' AND $t.type!='error_403' AND $t.type!='error_404'");
  
  		if (empty($arrOptions['includeRoot']))
  		{
  			$arrColumns[] = "$t.type!='root'";
  		}
  
  		if (FE_USER_LOGGED_IN)
  		{
  			$arrColumns[] = "$t.guests=''";
  		}
  
  		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'";
  		}
  
  		if (!isset($arrOptions['order']))
  		{
  			$arrOptions['order'] = Database::getInstance()->findInSet("$t.id", $arrIds);
  		}
  
  		return static::findBy($arrColumns, null, $arrOptions);
  	}
docs: Find all published regular pages by their IDs and exclude pages only visible for guests
  
  @param array $arrIds     An array of page IDs
  @param array $arrOptions An optional options array
  
  @return Collection|PageModel[]|PageModel|null A collection of models or null if there are no pages