public function validate($validator, $value)
 {
     if ($value['blog_url'] !== "") {
         $root = opBlogPlugin::getFeedByUrl($value['blog_url']);
         if (!$root) {
             $error = new sfValidatorError($validator, 'URL is invalid.');
             throw new sfValidatorErrorSchema($validator, array('blog_url' => $error));
         }
     }
     return $value;
 }
 protected function updateByMemberIdAndUrl($memberId, $url)
 {
     $feed = opBlogPlugin::getFeedByUrl($url);
     foreach ($feed as $item) {
         $blogRssCache = $this->findOneByMemberIdAndLink($memberId, $item['link']);
         if ($blogRssCache && $blogRssCache->getDate() == $item['date'] || strtotime($item['date']) > time()) {
             continue;
         }
         if (!$blogRssCache) {
             $blogRssCache = new BlogRssCache();
         }
         $blogRssCache->setMemberId($memberId);
         $blogRssCache->setTitle($item['title']);
         $blogRssCache->setDescription($item['description']);
         $blogRssCache->setLink($item['link']);
         $blogRssCache->setDate($item['date']);
         $blogRssCache->save();
     }
     return true;
 }