/** * Get all sites which are valid given current capability * * @param string $context only return sites in this context, source or destination * @param string $exclude exclude certain sites. current=exclude current site we are on * * @return array */ public function get_sites($context = '', $exclude = '') { $sites_list = array(); $exclude_current = 'current' == $exclude ? $this->options->get_current_site() : ''; foreach ($this->options->sites as $site => $site_conf) { //exclude current site if required if ($site == $exclude_current) { continue; } //if not admin, exclude sites limited to only source/dest context if (!$this->can_admin()) { if ('destination' == $context && !empty($site_conf['source_only'])) { continue; } if ('source' == $context && !empty($site_conf['destination_only'])) { continue; } } $sites_list[] = $site; } return $sites_list; }