Example #1
0
 /**
  * Import favicon for a feeds domain
  * Refetch each favicon after 1 week
  *
  * @param RDR_Feed $feed
  */
 static function importFavicon(RDR_Feed $feed)
 {
     $url = parse_url($feed->url);
     if ($url) {
         $sluggedHost = $feed->getSluggedHostFromUrl();
         $fileTypes = array("ico", "gif", "jpg", "png");
         foreach ($fileTypes as $type) {
             $filename = CHOQ_ACTIVE_MODULE_DIRECTORY . "/public/img/favicons/{$sluggedHost}.{$type}";
             if (file_exists($filename)) {
                 if (filemtime($filename) < dt("-1  week")->getUnixtime()) {
                     unlink($filename);
                 } else {
                     return;
                 }
             }
             $favUrl = $url["scheme"] . "://" . $url["host"] . "/favicon.{$type}";
             $favData = RDR_FileContents::get($favUrl);
             if ($favData) {
                 file_put_contents($filename, $favData);
                 return;
             }
             if ($type == "png") {
                 $favUrl = $url["scheme"] . "://" . $url["host"] . "/apple-touch-icon.{$type}";
                 $favData = RDR_FileContents::get($favUrl);
                 if ($favData) {
                     file_put_contents($filename, $favData);
                     return;
                 }
             }
         }
     }
 }