예제 #1
0
 /**
  * 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);
 }