/** * Check channel, add if valid name and not exist * * @param string $chanName * @param Mage_Connect_Config $config * @param Mage_Connect_Rest $rest * @return boolean */ public function checkChannel($chanName, $config, $rest = null) { if ($this->isChannel($chanName)) { return true; } $_validator = new Mage_Connect_Validator(); if ($this->isChannelName($chanName)) { $uri = $this->chanUrl($chanName); } elseif ($_validator->validateUrl($chanName)) { $uri = $chanName; } elseif ($chanName) { $uri = $config->protocol . '://' . $chanName; } else { throw new Exception("'{$chanName}' is not existant channel name / valid uri"); } if ($uri && !$this->isChannel($uri)) { if (!isset($rest)) { $rest = new Mage_Connect_Rest($config->protocol); } $rest->setChannel($uri); $data = $rest->getChannelInfo(); $data->uri = $uri; $this->addChannel($data->name, $uri); } return $this->isChannel($uri); }