class wfPage { const PAGE_DASHBOARD = 'dashboard'; const PAGE_DASHBOARD_OPTIONS = 'dashboard-options'; const PAGE_FIREWALL = 'firewall'; const PAGE_FIREWALL_OPTIONS = 'firewall-options'; const PAGE_BLOCKING = 'blocking'; const PAGE_BLOCKING_OPTIONS = 'blocking-options'; const PAGE_SCAN = 'scan'; const PAGE_SCAN_OPTIONS = 'scan-options'; const PAGE_TOOLS_2FA = 'tools-2fa'; const PAGE_TOOLS_LIVE_TRAFFIC = 'tools-2fa'; const PAGE_TOOLS_COMMENT_SPAM = 'tools-comment-spam'; const PAGE_TOOLS_WHOIS = 'tools-whois'; const PAGE_TOOLS_DIAGNOSTICS = 'tools-diagnostics'; const PAGE_SUPPORT = 'support'; /** @var string */ private $_identifier; /** * Provides validation for a user-provided page identifier. * * @param string $identifier * @return bool */ public static function isValidPage($identifier) { switch ($identifier) { case self::PAGE_DASHBOARD: case self::PAGE_DASHBOARD_OPTIONS: case self::PAGE_FIREWALL: case self::PAGE_FIREWALL_OPTIONS: case self::PAGE_BLOCKING: case self::PAGE_BLOCKING_OPTIONS: case self::PAGE_SCAN: case self::PAGE_SCAN_OPTIONS: case self::PAGE_TOOLS_2FA: case self::PAGE_TOOLS_LIVE_TRAFFIC: case self::PAGE_TOOLS_COMMENT_SPAM: case self::PAGE_TOOLS_WHOIS: case self::PAGE_TOOLS_DIAGNOSTICS: case self::PAGE_SUPPORT: return true; } return false; } /** * Convenience function for returning the user-displayable label for the given page. * * @param string $identifier * @return bool|string */ public static function pageLabel($identifier) { $page = new wfPage($identifier); return $page->label(); } /** * Convenience function for returning the canonical URL for the given page. * * @param string $identifier * @param string|bool $source The source page identifier to append to the URL if wanted. * @return string */ public static function pageURL($identifier, $source = false) { $page = new wfPage($identifier); return $page->url($source); } public function __construct($identifier) { $this->_identifier = $identifier; } public function __get($key) { switch ($key) { case 'identifier': return $this->_identifier; } throw new OutOfBoundsException("{$key} is not a valid property"); } public function __isset($key) { switch ($key) { case 'identifier': return true; } return false; } /** * Returns the user-displayable label for the page. * * @return bool|string */ public function label() { switch ($this->identifier) { case self::PAGE_DASHBOARD: return __('Dashboard', 'wordfence'); case self::PAGE_DASHBOARD_OPTIONS: return __('Global Options', 'wordfence'); case self::PAGE_FIREWALL: return __('Firewall', 'wordfence'); case self::PAGE_FIREWALL_OPTIONS: return __('Firewall Options', 'wordfence'); case self::PAGE_BLOCKING: return __('Blocking', 'wordfence'); case self::PAGE_BLOCKING_OPTIONS: return __('Blocking Options', 'wordfence'); case self::PAGE_SCAN: return __('Scan', 'wordfence'); case self::PAGE_SCAN_OPTIONS: return __('Scan Options', 'wordfence'); case self::PAGE_TOOLS_2FA: return __('Two Factor Authentication', 'wordfence'); case self::PAGE_TOOLS_LIVE_TRAFFIC: return __('Live Traffic', 'wordfence'); case self::PAGE_TOOLS_COMMENT_SPAM: return __('Comment Spam Filter', 'wordfence'); case self::PAGE_TOOLS_WHOIS: return __('Whois Lookup', 'wordfence'); case self::PAGE_TOOLS_DIAGNOSTICS: return __('Diagnostics', 'wordfence'); case self::PAGE_SUPPORT: return __('Support', 'wordfence'); } return false; } /** * Returns the canonical URL for the page. * * @param string|bool $source The source page identifier to append to the URL if wanted. * @return string */ public function url($source = false) { $page = ''; $subpage = ''; $hash = ''; switch ($this->identifier) { case self::PAGE_DASHBOARD: $page = 'Wordfence'; break; case self::PAGE_DASHBOARD_OPTIONS: $page = 'Wordfence'; $subpage = 'global_options'; break; case self::PAGE_FIREWALL: $page = 'WordfenceWAF'; break; case self::PAGE_FIREWALL_OPTIONS: $page = 'WordfenceWAF'; $subpage = 'waf_options'; break; case self::PAGE_BLOCKING: $page = 'WordfenceWAF'; $hash = '#top#blocking'; break; case self::PAGE_BLOCKING_OPTIONS: $page = 'WordfenceWAF'; $subpage = 'blocking_options'; break; case self::PAGE_SCAN: $page = 'WordfenceScan'; break; case self::PAGE_SCAN_OPTIONS: $page = 'WordfenceScan'; $subpage = 'scan_options'; break; case self::PAGE_TOOLS_2FA: $page = 'WordfenceTools'; $subpage = 'twofactor'; break; case self::PAGE_TOOLS_LIVE_TRAFFIC: $page = 'WordfenceTools'; $subpage = 'livetraffic'; break; case self::PAGE_TOOLS_COMMENT_SPAM: $page = 'WordfenceTools'; $subpage = 'commentspam'; break; case self::PAGE_TOOLS_WHOIS: $page = 'WordfenceTools'; $subpage = 'whois'; break; case self::PAGE_TOOLS_DIAGNOSTICS: $page = 'WordfenceTools'; $subpage = 'diagnostics'; break; case self::PAGE_SUPPORT: $page = 'WordfenceSupport'; break; } $baseURL = 'admin.php?'; $baseURL .= 'page=' . rawurlencode($page); if (!empty($subpage)) { $baseURL .= '&subpage=' . rawurlencode($subpage); } if (self::isValidPage($source)) { $baseURL .= '&source=' . rawurlencode($source); } if (!empty($hash)) { $baseURL .= $this->_hashURLEncode($hash); } if (function_exists('network_admin_url') && is_multisite()) { return network_admin_url($baseURL); } return admin_url($baseURL); } /** * Splits a URI hash component and URL-encodes its members. * * @param string $hash * @return string */ private function _hashURLEncode($hash) { $components = explode('#', $hash); foreach ($components as &$c) { $c = rawurlencode($c); } return implode('#', $components); } /** * Returns an ordered array of the pages required to reach this page, this page being the last entry in the array. * * @return array */ public function breadcrumbs() { switch ($this->identifier) { case self::PAGE_DASHBOARD: return array($this); case self::PAGE_DASHBOARD_OPTIONS: return array(new wfPage(wfPage::PAGE_DASHBOARD), $this); case self::PAGE_FIREWALL: return array($this); case self::PAGE_FIREWALL_OPTIONS: return array(new wfPage(wfPage::PAGE_FIREWALL), $this); case self::PAGE_BLOCKING: return array($this); case self::PAGE_BLOCKING_OPTIONS: return array(new wfPage(wfPage::PAGE_BLOCKING), $this); case self::PAGE_SCAN: return array($this); case self::PAGE_SCAN_OPTIONS: return array(new wfPage(wfPage::PAGE_SCAN), $this); case self::PAGE_TOOLS_2FA: return array($this); case self::PAGE_TOOLS_LIVE_TRAFFIC: return array($this); case self::PAGE_TOOLS_COMMENT_SPAM: return array($this); case self::PAGE_TOOLS_WHOIS: return array($this); case self::PAGE_TOOLS_DIAGNOSTICS: return array($this); case self::PAGE_SUPPORT: return array($this); } return array(); } } /** * Defines a UI tab. * * @property string $id * @property string $a * @property string $tabTitle * @property string $pageTitle * @property bool $active */ class wfTab { protected $_id; protected $_a; protected $_tabTitle; protected $_pageTitle; protected $_active; public function __construct($id, $a, $tabTitle, $pageTitle, $active = false) { $this->_id = $id; $this->_a = $a; $this->_tabTitle = $tabTitle; $this->_pageTitle = $pageTitle; $this->_active = $active; } public function __get($name) { switch ($name) { case 'id': return $this->_id; case 'a': return $this->_a; case 'tabTitle': return $this->_tabTitle; case 'pageTitle': return $this->_pageTitle; case 'active': return $this->_active; } throw new OutOfBoundsException('Invalid key: ' . $name); } } Tournaments | Ocean Shores

Let Us Put on Your Next Tournament!


Putting Green

Ocean Shores Golf Course specializes in complete tournament administration. Let us make all the necessary arrangements to ensure that your tournament is a huge success. We will do your pairings, scorecards, cart assignments, scoring, and prize fund as well as food service. So all you have to do is show up, play and enjoy yourself.

We can also provide catering – from hors d’oeuvres to barbecue.


Contact Greg Carter, PGA for more information:

Phone – 360-289-3357









Did You Know?
The longest putts holed in a major tournament were both 110 feet.

The first was by Jack Nicklaus in the 1964 Tournament of Champions and the second by Nick Price in the 1992 PGA Tourney.