4images Forum & Community

4images Help / Hilfe => Bug Fixes & Patches => Topic started by: V@no on August 04, 2006, 09:15:02 PM

Title: [1.7.3] RSS feed not valid
Post by: V@no on August 04, 2006, 09:15:02 PM
This is not a bug in 4images itself, rather its a work around a bug in some PHP versions (not all versions have this bug), so if your RSS feed passes validation, you should not apply this patch.
(you can check if your RSS feed is valid at http://feedvalidator.org)

Step 1
In rss.php find
Code: [Select]
    'type' => mime_content_type($file),
Replace with:
Code: [Select]
    'type' => get_mime_content_type($file),

Step 2
In includes/functions.php at the end, above closing ?> insert:
Code: [Select]
function get_mime_content_type($file) {
    if (function_exists('mime_content_type')) {
      $type = mime_content_type($file);
      if ($type) {
        return $type;
      }
    }

    $info = @getimagesize($file);

    if (isset($info['mime'])) {
      return $info['mime'];
    }

    $type = @exec(trim('file -bi '.escapeshellarg($file)));

    if (strpos($type, ';') !== false) {
      list($type) = explode(';', $type);
    }

    if ($type) {
      return $type;
    }

    static $types = array(
      'ai' => 'application/postscript',
     'aif' => 'audio/x-aiff',
    'aifc' => 'audio/x-aiff',
    'aiff' => 'audio/x-aiff',
     'asc' => 'text/plain',
      'au' => 'audio/basic',
     'avi' => 'video/x-msvideo',
   'bcpio' => 'application/x-bcpio',
     'bin' => 'application/octet-stream',
       'c' => 'text/plain',
      'cc' => 'text/plain',
    'ccad' => 'application/clariscad',
     'cdf' => 'application/x-netcdf',
   'class' => 'application/octet-stream',
    'cpio' => 'application/x-cpio',
     'cpt' => 'application/mac-compactpro',
     'csh' => 'application/x-csh',
     'css' => 'text/css',
     'dcr' => 'application/x-director',
     'dir' => 'application/x-director',
     'dms' => 'application/octet-stream',
     'doc' => 'application/msword',
     'drw' => 'application/drafting',
     'dvi' => 'application/x-dvi',
     'dwg' => 'application/acad',
     'dxf' => 'application/dxf',
     'dxr' => 'application/x-director',
     'eps' => 'application/postscript',
     'etx' => 'text/x-setext',
     'exe' => 'application/octet-stream',
      'ez' => 'application/andrew-inset',
       'f' => 'text/plain',
     'f90' => 'text/plain',
     'fli' => 'video/x-fli',
     'gif' => 'image/gif',
    'gtar' => 'application/x-gtar',
      'gz' => 'application/x-gzip',
       'h' => 'text/plain',
     'hdf' => 'application/x-hdf',
      'hh' => 'text/plain',
     'hqx' => 'application/mac-binhex40',
     'htm' => 'text/html',
    'html' => 'text/html',
     'ice' => 'x-conference/x-cooltalk',
     'ief' => 'image/ief',
    'iges' => 'model/iges',
     'igs' => 'model/iges',
     'ips' => 'application/x-ipscript',
     'ipx' => 'application/x-ipix',
     'jpe' => 'image/jpeg',
    'jpeg' => 'image/jpeg',
     'jpg' => 'image/jpeg',
      'js' => 'application/x-javascript',
     'kar' => 'audio/midi',
   'latex' => 'application/x-latex',
     'lha' => 'application/octet-stream',
     'lsp' => 'application/x-lisp',
     'lzh' => 'application/octet-stream',
       'm' => 'text/plain',
     'man' => 'application/x-troff-man',
      'me' => 'application/x-troff-me',
    'mesh' => 'model/mesh',
     'mid' => 'audio/midi',
    'midi' => 'audio/midi',
     'mif' => 'application/vnd.mif',
    'mime' => 'www/mime',
     'mov' => 'video/quicktime',
   'movie' => 'video/x-sgi-movie',
     'mp2' => 'audio/mpeg',
     'mp3' => 'audio/mpeg',
     'mpe' => 'video/mpeg',
    'mpeg' => 'video/mpeg',
     'mpg' => 'video/mpeg',
    'mpga' => 'audio/mpeg',
      'ms' => 'application/x-troff-ms',
     'msh' => 'model/mesh',
      'nc' => 'application/x-netcdf',
     'oda' => 'application/oda',
     'pbm' => 'image/x-portable-bitmap',
     'pdb' => 'chemical/x-pdb',
     'pdf' => 'application/pdf',
     'pgm' => 'image/x-portable-graymap',
     'pgn' => 'application/x-chess-pgn',
     'png' => 'image/png',
     'pnm' => 'image/x-portable-anymap',
     'pot' => 'application/mspowerpoint',
     'ppm' => 'image/x-portable-pixmap',
     'pps' => 'application/mspowerpoint',
     'ppt' => 'application/mspowerpoint',
     'ppz' => 'application/mspowerpoint',
     'pre' => 'application/x-freelance',
     'prt' => 'application/pro_eng',
      'ps' => 'application/postscript',
      'qt' => 'video/quicktime',
      'ra' => 'audio/x-realaudio',
     'ram' => 'audio/x-pn-realaudio',
     'ras' => 'image/cmu-raster',
     'rgb' => 'image/x-rgb',
      'rm' => 'audio/x-pn-realaudio',
    'roff' => 'application/x-troff',
     'rpm' => 'audio/x-pn-realaudio-plugin',
     'rtf' => 'text/rtf',
     'rtx' => 'text/richtext',
     'scm' => 'application/x-lotusscreencam',
     'set' => 'application/set',
     'sgm' => 'text/sgml',
    'sgml' => 'text/sgml',
      'sh' => 'application/x-sh',
    'shar' => 'application/x-shar',
    'silo' => 'model/mesh',
     'sit' => 'application/x-stuffit',
     'skd' => 'application/x-koan',
     'skm' => 'application/x-koan',
     'skp' => 'application/x-koan',
     'skt' => 'application/x-koan',
     'smi' => 'application/smil',
    'smil' => 'application/smil',
     'snd' => 'audio/basic',
     'sol' => 'application/solids',
     'spl' => 'application/x-futuresplash',
     'src' => 'application/x-wais-source',
    'step' => 'application/STEP',
     'stl' => 'application/SLA',
     'stp' => 'application/STEP',
 'sv4cpio' => 'application/x-sv4cpio',
  'sv4crc' => 'application/x-sv4crc',
     'swf' => 'application/x-shockwave-flash',
       't' => 'application/x-troff',
     'tar' => 'application/x-tar',
     'tcl' => 'application/x-tcl',
     'tex' => 'application/x-tex',
    'texi' => 'application/x-texinfo',
  'texinfo -  application/x-texinfo',
     'tif' => 'image/tiff',
    'tiff' => 'image/tiff',
      'tr' => 'application/x-troff',
     'tsi' => 'audio/TSP-audio',
     'tsp' => 'application/dsptype',
     'tsv' => 'text/tab-separated-values',
     'txt' => 'text/plain',
     'unv' => 'application/i-deas',
   'ustar' => 'application/x-ustar',
     'vcd' => 'application/x-cdlink',
     'vda' => 'application/vda',
     'viv' => 'video/vnd.vivo',
    'vivo' => 'video/vnd.vivo',
    'vrml' => 'model/vrml',
     'wav' => 'audio/x-wav',
     'wrl' => 'model/vrml',
     'xbm' => 'image/x-xbitmap',
     'xlc' => 'application/vnd.ms-excel',
     'xll' => 'application/vnd.ms-excel',
     'xlm' => 'application/vnd.ms-excel',
     'xls' => 'application/vnd.ms-excel',
     'xlw' => 'application/vnd.ms-excel',
     'xml' => 'text/xml',
     'xpm' => 'image/x-xpixmap',
     'xwd' => 'image/x-xwindowdump',
     'xyz' => 'chemical/x-pdb',
     'zip' => 'application/zip',
    );

    $ext = get_file_extension($file);

    if (isset($types[$ext])) {
        return $types[$ext];
    }

    return 'application/octet-stream';
}

P.S. original post by Jan:
http://www.4homepages.de/forum/index.php?topic=13733.msg74134#msg74134
Title: Re: [1.7.3] RSS feed not valid
Post by: Abu Abdullah on September 15, 2006, 10:29:05 PM
thanks....
Title: Re: [1.7.3] RSS feed not valid
Post by: ripejuice on December 08, 2008, 10:20:16 PM
thanks....by the way rss is not well formatted for me..
Title: Re: [1.7.3] RSS feed not valid
Post by: Kurman on June 16, 2009, 08:42:46 AM
I had problems in viewing RSS via Firefox.

Problem occurs in all versions of 4images.

In Firefox RSS from my 4images wasn't formatted and viewed as pure xml data.

I solve it in this way:

In rss.php (line 358)

Find:
Code: [Select]
header('Content-Type: text/xml');
Replace with:
Code: [Select]
header('Content-Type: application/rss+xml');
And although rss.xml file itself is valid, we get not valid rss feed in output. I presume there in rss.php should be changes to make it valid.
(Try your rss feed link in Feed validator (http://validator.w3.org/feed/))