Thread: [Frhed-commits] SF.net SVN: frhed:[300] trunk/Web
Brought to you by:
kimmov
From: <ge...@us...> - 2009-01-15 23:22:20
|
Revision: 300 http://frhed.svn.sourceforge.net/frhed/?rev=300&view=rev Author: gerundt Date: 2009-01-15 22:33:12 +0000 (Thu, 15 Jan 2009) Log Message: ----------- Web: Add favicon Modified Paths: -------------- trunk/Web/index.html Added Paths: ----------- trunk/Web/favicon.ico Added: trunk/Web/favicon.ico =================================================================== (Binary files differ) Property changes on: trunk/Web/favicon.ico ___________________________________________________________________ Added: svn:mime-type + application/octet-stream Modified: trunk/Web/index.html =================================================================== --- trunk/Web/index.html 2009-01-15 13:01:24 UTC (rev 299) +++ trunk/Web/index.html 2009-01-15 22:33:12 UTC (rev 300) @@ -6,6 +6,7 @@ <meta http-equiv="content-type" content="text/html; charset=iso-8859-1"/> <link rel="stylesheet" type="text/css" href="css/default.css" media="screen"/> <link rel="stylesheet" type="text/css" href="css/print.css" media="print"/> + <link href="favicon.ico" rel="shortcut icon" type="image/x-icon"/> </head> <body> This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <ge...@us...> - 2009-01-18 20:20:40
|
Revision: 306 http://frhed.svn.sourceforge.net/frhed/?rev=306&view=rev Author: gerundt Date: 2009-01-18 20:20:38 +0000 (Sun, 18 Jan 2009) Log Message: ----------- PATCH: [ 2515895 ] Switch website to PHP Added Paths: ----------- trunk/Web/.htaccess trunk/Web/engine/ trunk/Web/engine/page.inc trunk/Web/index.php Removed Paths: ------------- trunk/Web/index.html Added: trunk/Web/.htaccess =================================================================== --- trunk/Web/.htaccess (rev 0) +++ trunk/Web/.htaccess 2009-01-18 20:20:38 UTC (rev 306) @@ -0,0 +1,4 @@ +<FilesMatch "\.inc$"> + Order Deny,Allow + Deny from all +</FilesMatch> \ No newline at end of file Added: trunk/Web/engine/page.inc =================================================================== --- trunk/Web/engine/page.inc (rev 0) +++ trunk/Web/engine/page.inc 2009-01-18 20:20:38 UTC (rev 306) @@ -0,0 +1,114 @@ +<?php +// This program is free software; you can redistribute it and/or modify +// it under the terms of the GNU General Public License as published by +// the Free Software Foundation; either version 2 of the License, or +// (at your option) any later version. +// +// This program is distributed in the hope that it will be useful, +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +// GNU General Public License for more details. + + /** + * ... + */ + class Page { + var $_title, $_charset; + var $_description, $_keywords, $_rssfeeds; + + /** + * Constructor + */ + function Page() { + $this->_title = 'Frhed'; + $this->_charset = 'ISO-8859-1'; + $this->_description = ''; + $this->_keywords = ''; + $this->_rssfeeds = array(); + } + + /** + * set the title from the page + */ + function setTitle($title) { + $this->_title = $title; + } + + /** + * set the charset from the page + */ + function setCharset($charset) { + $this->_charset = $charset; + } + + /** + * set the description from the page + */ + function setDescription($description) { + $this->_description = $description; + } + + /** + * set the keywords from the page + */ + function setKeywords($keywords) { + $this->_keywords = $keywords; + } + + /** + * add RSS feed to the page head + */ + function addRssFeed($url, $title = 'RSS') { + $this->_rssfeeds[$url] = $title; + } + + /** + * print the head from the page + */ + function printHead($title = '') { + if ($title != '') { + $this->_title = $title; + } + $temp = "<!DOCTYPE html PUBLIC \"-//W3C//DTD XHTML 1.1//EN\" \"http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd\">\n"; + $temp .= "<html xmlns=\"http://www.w3.org/1999/xhtml\">\n"; + $temp .= "<head>\n"; + $temp .= " <title>" . $this->_title . "</title>\n"; + $temp .= " <meta http-equiv=\"content-type\" content=\"text/html; charset=" . $this->_charset . "\"/>\n"; + if ($this->_description != '') { + $temp .= " <meta name=\"description\" content=\"" . $this->_description . "\"/>\n"; + } + if ($this->_keywords != '') { + $temp .= " <meta name=\"keywords\" content=\"" . $this->_keywords . "\"/>\n"; + } + $temp .= " <link rel=\"stylesheet\" type=\"text/css\" media=\"screen\" href=\"/css/default.css\"/>\n"; + $temp .= " <link rel=\"stylesheet\" type=\"text/css\" media=\"print\" href=\"/css/print.css\"/>\n"; + $temp .= " <link rel=\"shortcut icon\" type=\"image/x-icon\" href=\"/favicon.ico\"/>\n"; + foreach ($this->_rssfeeds as $rssurl => $rsstitle) { //for all RSS feeds... + $temp .= " <link rel=\"alternate\" type=\"application/rss+xml\" title=\"" . $rsstitle . "\" href=\"" . $rssurl . "\">\n"; + } + $temp .= "</head>\n"; + $temp .= "<body>\n"; + $temp .= "<div class=\"wrapper\">\n"; + $temp .= " <div class=\"container\">\n"; + $temp .= " <div class=\"main\">\n"; + print($temp); + } + + /** + * print the foot from the page + */ + function printFoot() { + $temp = " </div> <!-- .main -->\n"; + $temp .= " <div class=\"footer\">\n"; + $temp .= " <div class=\"left\">Valid <a href=\"http://jigsaw.w3.org/css-validator/check/referer\">CSS</a> & <a href=\"http://validator.w3.org/check?uri=referer\">XHTML</a></div>\n"; + $temp .= " <div class=\"right\">Design by <a href=\"http://arcsin.se/\">Arcsin</a> <a href=\"http://templates.arcsin.se/\">Web Templates</a></div>\n"; + $temp .= " <div class=\"clearer\"><span></span></div>\n"; + $temp .= " </div> <!-- .footer -->\n"; + $temp .= " </div> <!-- .container -->\n"; + $temp .= "</div> <!-- .wrapper -->\n"; + $temp .= "</body>\n"; + $temp .= "</html>\n"; + print($temp); + } + } +?> Deleted: trunk/Web/index.html =================================================================== --- trunk/Web/index.html 2009-01-18 20:12:48 UTC (rev 305) +++ trunk/Web/index.html 2009-01-18 20:20:38 UTC (rev 306) @@ -1,119 +0,0 @@ -<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1//EN" "http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd"> -<html xmlns="http://www.w3.org/1999/xhtml"> - -<head> - <title>Frhed - Free hex editor</title> - <meta http-equiv="content-type" content="text/html; charset=iso-8859-1"/> - <link rel="stylesheet" type="text/css" href="css/default.css" media="screen"/> - <link rel="stylesheet" type="text/css" href="css/print.css" media="print"/> - <link href="favicon.ico" rel="shortcut icon" type="image/x-icon"/> -</head> - -<body> - -<div class="wrapper"> - - <div class="container"> - - <div class="main"> - - <div class="content"> - - <h1 class="title">Frhed</h1> - <p class="olive"><b>Fr</b>ee <b>h</b>ex <b>ed</b>itor</p> - - <p>Frhed is an binary file editor for Windows. It is small but has many advanced features like ability to load big files partially.</p> - - <h2>Features</h2> - <ul> - <li>Editable file size limited only by available system memory</li> - <li>Load files partially</li> - <li>Export as hexdump to file or clipboard</li> - <li>Search for any combination of text and binary values</li> - <li>Compare files</li> - </ul> - - <h2>Download</h2> - <h3>Alpha releases</h3> - <ul> - <li><a href="https://sourceforge.net/project/showfiles.php?group_id=236485&package_id=295443&release_id=651776"> - Frhed 1.3.4</a> (2009-01-06)</li> - <li><a href="https://sourceforge.net/project/showfiles.php?group_id=236485&package_id=295443&release_id=644901"> - Frhed 1.3.3</a> (2008-12-04)</li> - <li><a href="https://sourceforge.net/project/showfiles.php?group_id=236485&package_id=295443&release_id=638916"> - Frhed 1.3.2</a> (2008-11-07)</li> - <li><a href="https://sourceforge.net/project/showfiles.php?group_id=236485&package_id=295443&release_id=633733"> - Frhed 1.3.1</a> (2008-10-16)</li> - </ul> - <h3>Original project download</h3> - <ul> - <li><a href="http://www.rs.e-technik.tu-darmstadt.de/applets/frhed-v1.1.zip">Frhed 1.1 BETA 1</a></li> - </ul> - - <h2>Support</h2> - <p>For support you can try the <a href="http://apps.sourceforge.net/phpbb/frhed/">forums</a> or the <a href="https://sourceforge.net/mail/?group_id=236485">mailing lists</a>. - If you found bugs, please submit them to our <a href="https://sourceforge.net/tracker/?atid=1100163&group_id=236485">bug tracker</a> - or leave wishes at the <a href="https://sourceforge.net/tracker/?atid=1100164&group_id=236485">feature requests</a> list.</p> - - <h2>Open Source</h2> - <p>Frhed is <a href="http://www.opensource.org/">open source</a> software and is licenced under the <a href="http://www.gnu.org/licenses/gpl-2.0.html">GNU General Public License</a>. - This means everybody can download the source code and improve and modify them.</p> - - <h2>History</h2> - <p>Frhed is originally developed by <a href="http://www.kibria.de/frhed.html">Raihan Kibria</a>. - Version 1.1 included many improvements and new features from versions that several other programmers had been working on. - Unfortunately version 1.1 never matured to "stable" release. Latest 1.1 release is labeled as "beta" release. - At autumn 2008 the <a href="http://winmerge.org/">WinMerge Team</a> decided to use Frhed as binary file editor component - for WinMerge. For developing Frhed further new <a href="https://sourceforge.net/projects/frhed">SourceForge project</a> - was created. This new project will develop Frhed as stand alone product.</p> - - </div> - - <div class="sidenav"> - - <h2>Project</h2> - <ul> - <li><a href="https://sourceforge.net/projects/frhed">Home</a></li> - </ul> - - <h2>Support</h2> - <ul> - <li><a href="https://sourceforge.net/tracker/?atid=1100163&group_id=236485">Bugs</a></li> - <li><a href="https://sourceforge.net/tracker/?atid=1100164&group_id=236485">Feature Requests</a></li> - <li><a href="http://apps.sourceforge.net/phpbb/frhed/">Forums</a></li> - <li><a href="https://sourceforge.net/mail/?group_id=236485">Mailing Lists</a></li> - </ul> - - <h2>Links</h2> - <ul> - <li><a href="http://www.kibria.de/frhed.html" title="Original version from Raihan Kibria">Original Version</a></li> - <li><a href="http://winmerge.org/">WinMerge</a></li> - </ul> - - <h2>Donate</h2> - <p>Support this project by donating money.</p> - <a href="http://sourceforge.net/donate/index.php?group_id=236485"><img src="http://images.sourceforge.net/images/project-support.jpg" width="88" height="32" border="0" alt="Support This Project" /> </a> - - </div> - - <div class="clearer"></div> - - </div> - - <div class="footer"> - - <div class="left">Valid <a href="http://jigsaw.w3.org/css-validator/check/referer">CSS</a> & <a href="http://validator.w3.org/check?uri=referer">XHTML</a></div> - - <div class="right">Design by <a href="http://arcsin.se/">Arcsin</a> <a href="http://templates.arcsin.se/">Web Templates</a></div> - - <div class="clearer"><span></span></div> - - </div> - - </div> - -</div> - -</body> - -</html> \ No newline at end of file Copied: trunk/Web/index.php (from rev 302, trunk/Web/index.html) =================================================================== --- trunk/Web/index.php (rev 0) +++ trunk/Web/index.php 2009-01-18 20:20:38 UTC (rev 306) @@ -0,0 +1,90 @@ +<?php + include('engine/page.inc'); + + $page = new Page; + $page->printHead('Frhed - Free hex editor'); +?> + <div class="content"> + + <h1 class="title">Frhed</h1> + <p class="olive"><b>Fr</b>ee <b>h</b>ex <b>ed</b>itor</p> + + <p>Frhed is an binary file editor for Windows. It is small but has many advanced features like ability to load big files partially.</p> + + <h2>Features</h2> + <ul> + <li>Editable file size limited only by available system memory</li> + <li>Load files partially</li> + <li>Export as hexdump to file or clipboard</li> + <li>Search for any combination of text and binary values</li> + <li>Compare files</li> + </ul> + + <h2>Download</h2> + <h3>Alpha releases</h3> + <ul> + <li><a href="https://sourceforge.net/project/showfiles.php?group_id=236485&package_id=295443&release_id=651776"> + Frhed 1.3.4</a> (2009-01-06)</li> + <li><a href="https://sourceforge.net/project/showfiles.php?group_id=236485&package_id=295443&release_id=644901"> + Frhed 1.3.3</a> (2008-12-04)</li> + <li><a href="https://sourceforge.net/project/showfiles.php?group_id=236485&package_id=295443&release_id=638916"> + Frhed 1.3.2</a> (2008-11-07)</li> + <li><a href="https://sourceforge.net/project/showfiles.php?group_id=236485&package_id=295443&release_id=633733"> + Frhed 1.3.1</a> (2008-10-16)</li> + </ul> + <h3>Original project download</h3> + <ul> + <li><a href="http://www.rs.e-technik.tu-darmstadt.de/applets/frhed-v1.1.zip">Frhed 1.1 BETA 1</a></li> + </ul> + + <h2>Support</h2> + <p>For support you can try the <a href="http://apps.sourceforge.net/phpbb/frhed/">forums</a> or the <a href="https://sourceforge.net/mail/?group_id=236485">mailing lists</a>. + If you found bugs, please submit them to our <a href="https://sourceforge.net/tracker/?atid=1100163&group_id=236485">bug tracker</a> + or leave wishes at the <a href="https://sourceforge.net/tracker/?atid=1100164&group_id=236485">feature requests</a> list.</p> + + <h2>Open Source</h2> + <p>Frhed is <a href="http://www.opensource.org/">open source</a> software and is licenced under the <a href="http://www.gnu.org/licenses/gpl-2.0.html">GNU General Public License</a>. + This means everybody can download the source code and improve and modify them.</p> + + <h2>History</h2> + <p>Frhed is originally developed by <a href="http://www.kibria.de/frhed.html">Raihan Kibria</a>. + Version 1.1 included many improvements and new features from versions that several other programmers had been working on. + Unfortunately version 1.1 never matured to "stable" release. Latest 1.1 release is labeled as "beta" release. + At autumn 2008 the <a href="http://winmerge.org/">WinMerge Team</a> decided to use Frhed as binary file editor component + for WinMerge. For developing Frhed further new <a href="https://sourceforge.net/projects/frhed">SourceForge project</a> + was created. This new project will develop Frhed as stand alone product.</p> + + </div> + + <div class="sidenav"> + + <h2>Project</h2> + <ul> + <li><a href="https://sourceforge.net/projects/frhed">Home</a></li> + </ul> + + <h2>Support</h2> + <ul> + <li><a href="https://sourceforge.net/tracker/?atid=1100163&group_id=236485">Bugs</a></li> + <li><a href="https://sourceforge.net/tracker/?atid=1100164&group_id=236485">Feature Requests</a></li> + <li><a href="http://apps.sourceforge.net/phpbb/frhed/">Forums</a></li> + <li><a href="https://sourceforge.net/mail/?group_id=236485">Mailing Lists</a></li> + </ul> + + <h2>Links</h2> + <ul> + <li><a href="http://www.kibria.de/frhed.html" title="Original version from Raihan Kibria">Original Version</a></li> + <li><a href="http://winmerge.org/">WinMerge</a></li> + </ul> + + <h2>Donate</h2> + <p>Support this project by donating money.</p> + <a href="http://sourceforge.net/donate/index.php?group_id=236485"><img src="http://images.sourceforge.net/images/project-support.jpg" width="88" height="32" border="0" alt="Support This Project" /> </a> + + </div> + + <div class="clearer"></div> + +<?php + $page->printFoot(); +?> Property changes on: trunk/Web/index.php ___________________________________________________________________ Added: svn:mergeinfo + This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <ge...@us...> - 2009-01-18 21:25:37
|
Revision: 308 http://frhed.svn.sourceforge.net/frhed/?rev=308&view=rev Author: gerundt Date: 2009-01-18 21:25:33 +0000 (Sun, 18 Jan 2009) Log Message: ----------- PATCH: [ 2515895 ] Switch website to PHP - Add SVN properties for EOL style Modified Paths: -------------- trunk/Web/css/default.css trunk/Web/css/print.css trunk/Web/engine/page.inc trunk/Web/index.php Property Changed: ---------------- trunk/Web/css/default.css trunk/Web/css/print.css trunk/Web/engine/page.inc trunk/Web/index.php Modified: trunk/Web/css/default.css =================================================================== --- trunk/Web/css/default.css 2009-01-18 20:55:52 UTC (rev 307) +++ trunk/Web/css/default.css 2009-01-18 21:25:33 UTC (rev 308) @@ -1,128 +1,128 @@ -/* -Template name: Contaminated -Template URI: http://templates.arcsin.se/contaminated-website-template/ -Release date: 2007-01-04 -Description: A trash style website template -Author: Viktor Persson -Author URI: http://arcsin.se/ - -This template is licensed under a Creative Commons Attribution 2.5 License: -http://templates.arcsin.se/license/ -*/ - -/* standard elements */ -html {min-height: 100%;} - -* { - margin: 0; - padding: 0; -} - -a {color: #FF3;} -a:hover {color: #AA3;} - -body { - background: #111 url(../img/bg.jpg) repeat-x; - color: #DDD; - font: normal 62.5% "Trebuchet MS",Verdana,sans-serif; -} - -p,code,ul {padding-bottom: 1.2em;} - -h1 { - font: normal 1.8em Tahoma,sans-serif; - margin-bottom: 4px; -} - -h2 { - color: #CCC; - font: normal 2em Impact,sans-serif; - margin-bottom: 8px; - letter-spacing: 1px; - border-bottom: 1px dashed #8D8D8D; -} - -blockquote { - color: #CCA; - display: block; - font-weight: bold; - padding-left: 28px; -} - -h1,h2 {padding-top: 6px;} - -/* misc */ -.clearer { - clear: both; - font-size: 0; -} -.left {float: left;} -.right {float: right;} - -/* structure */ -.wrapper { - font-size: 1.3em; - margin: 0 auto; - width: 780px; -} -.container {background: url(../img/header.gif) no-repeat center top;} - -/* title */ -.title { - font: normal 3em Tahoma,sans-serif; -} -.olive {color: #CCA;} - -/* sub navigation */ -.sidenav { - background: url(../img/sidenav.gif) no-repeat right top; - padding-top: 126px; - float: right; - width: 210px; -} -.sidenav h2 { - color: #9A3; - font-size: 1.4em; - line-height: 30px; - margin: 0; -} -.sidenav ul {padding: 0.5em 0 0 0.5em;} -.sidenav li {list-style: none;} -.sidenav li a { - font-size: 1.1em; - line-height: 1.5em; - color: #777; - text-decoration: none; -} -.sidenav li a:hover {color: #8DCA3F;} - -/* content */ -.content { - float: left; - margin: 10px 0; - padding-top: 32px; - width: 531px; -} -.content .descr { - color: #8DC63F; - margin-bottom: 6px; -} -.content li {margin-left: 18px;} - -/* footer */ -.footer { - border-top: 1px dashed #333; - color: #777; - font: normal 0.9em sans-serif; -} -.footer a { - color: #784; - text-decoration: none; -} -.footer a:hover { - color: #AA3; - text-decoration: underline; -} -.footer .left, .footer .right {padding: 10px 0;} -.footer .right, .footer .right a {color: #555;} +/* +Template name: Contaminated +Template URI: http://templates.arcsin.se/contaminated-website-template/ +Release date: 2007-01-04 +Description: A trash style website template +Author: Viktor Persson +Author URI: http://arcsin.se/ + +This template is licensed under a Creative Commons Attribution 2.5 License: +http://templates.arcsin.se/license/ +*/ + +/* standard elements */ +html {min-height: 100%;} + +* { + margin: 0; + padding: 0; +} + +a {color: #FF3;} +a:hover {color: #AA3;} + +body { + background: #111 url(../img/bg.jpg) repeat-x; + color: #DDD; + font: normal 62.5% "Trebuchet MS",Verdana,sans-serif; +} + +p,code,ul {padding-bottom: 1.2em;} + +h1 { + font: normal 1.8em Tahoma,sans-serif; + margin-bottom: 4px; +} + +h2 { + color: #CCC; + font: normal 2em Impact,sans-serif; + margin-bottom: 8px; + letter-spacing: 1px; + border-bottom: 1px dashed #8D8D8D; +} + +blockquote { + color: #CCA; + display: block; + font-weight: bold; + padding-left: 28px; +} + +h1,h2 {padding-top: 6px;} + +/* misc */ +.clearer { + clear: both; + font-size: 0; +} +.left {float: left;} +.right {float: right;} + +/* structure */ +.wrapper { + font-size: 1.3em; + margin: 0 auto; + width: 780px; +} +.container {background: url(../img/header.gif) no-repeat center top;} + +/* title */ +.title { + font: normal 3em Tahoma,sans-serif; +} +.olive {color: #CCA;} + +/* sub navigation */ +.sidenav { + background: url(../img/sidenav.gif) no-repeat right top; + padding-top: 126px; + float: right; + width: 210px; +} +.sidenav h2 { + color: #9A3; + font-size: 1.4em; + line-height: 30px; + margin: 0; +} +.sidenav ul {padding: 0.5em 0 0 0.5em;} +.sidenav li {list-style: none;} +.sidenav li a { + font-size: 1.1em; + line-height: 1.5em; + color: #777; + text-decoration: none; +} +.sidenav li a:hover {color: #8DCA3F;} + +/* content */ +.content { + float: left; + margin: 10px 0; + padding-top: 32px; + width: 531px; +} +.content .descr { + color: #8DC63F; + margin-bottom: 6px; +} +.content li {margin-left: 18px;} + +/* footer */ +.footer { + border-top: 1px dashed #333; + color: #777; + font: normal 0.9em sans-serif; +} +.footer a { + color: #784; + text-decoration: none; +} +.footer a:hover { + color: #AA3; + text-decoration: underline; +} +.footer .left, .footer .right {padding: 10px 0;} +.footer .right, .footer .right a {color: #555;} .footer .right a:hover {color: #999;} \ No newline at end of file Property changes on: trunk/Web/css/default.css ___________________________________________________________________ Added: svn:eol-style + native Modified: trunk/Web/css/print.css =================================================================== --- trunk/Web/css/print.css 2009-01-18 20:55:52 UTC (rev 307) +++ trunk/Web/css/print.css 2009-01-18 21:25:33 UTC (rev 308) @@ -1,9 +1,9 @@ -/* sidenav */ -.sidenav { - display: none; -} - -/* footer */ -.footer { - display: none; +/* sidenav */ +.sidenav { + display: none; +} + +/* footer */ +.footer { + display: none; } \ No newline at end of file Property changes on: trunk/Web/css/print.css ___________________________________________________________________ Added: svn:eol-style + native Modified: trunk/Web/engine/page.inc =================================================================== --- trunk/Web/engine/page.inc 2009-01-18 20:55:52 UTC (rev 307) +++ trunk/Web/engine/page.inc 2009-01-18 21:25:33 UTC (rev 308) @@ -1,114 +1,114 @@ -<?php -// This program is free software; you can redistribute it and/or modify -// it under the terms of the GNU General Public License as published by -// the Free Software Foundation; either version 2 of the License, or -// (at your option) any later version. -// -// This program is distributed in the hope that it will be useful, -// but WITHOUT ANY WARRANTY; without even the implied warranty of -// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -// GNU General Public License for more details. - - /** - * ... - */ - class Page { - var $_title, $_charset; - var $_description, $_keywords, $_rssfeeds; - - /** - * Constructor - */ - function Page() { - $this->_title = 'Frhed'; - $this->_charset = 'ISO-8859-1'; - $this->_description = ''; - $this->_keywords = ''; - $this->_rssfeeds = array(); - } - - /** - * set the title from the page - */ - function setTitle($title) { - $this->_title = $title; - } - - /** - * set the charset from the page - */ - function setCharset($charset) { - $this->_charset = $charset; - } - - /** - * set the description from the page - */ - function setDescription($description) { - $this->_description = $description; - } - - /** - * set the keywords from the page - */ - function setKeywords($keywords) { - $this->_keywords = $keywords; - } - - /** - * add RSS feed to the page head - */ - function addRssFeed($url, $title = 'RSS') { - $this->_rssfeeds[$url] = $title; - } - - /** - * print the head from the page - */ - function printHead($title = '') { - if ($title != '') { - $this->_title = $title; - } - $temp = "<!DOCTYPE html PUBLIC \"-//W3C//DTD XHTML 1.1//EN\" \"http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd\">\n"; - $temp .= "<html xmlns=\"http://www.w3.org/1999/xhtml\">\n"; - $temp .= "<head>\n"; - $temp .= " <title>" . $this->_title . "</title>\n"; - $temp .= " <meta http-equiv=\"content-type\" content=\"text/html; charset=" . $this->_charset . "\"/>\n"; - if ($this->_description != '') { - $temp .= " <meta name=\"description\" content=\"" . $this->_description . "\"/>\n"; - } - if ($this->_keywords != '') { - $temp .= " <meta name=\"keywords\" content=\"" . $this->_keywords . "\"/>\n"; - } - $temp .= " <link rel=\"stylesheet\" type=\"text/css\" media=\"screen\" href=\"/css/default.css\"/>\n"; - $temp .= " <link rel=\"stylesheet\" type=\"text/css\" media=\"print\" href=\"/css/print.css\"/>\n"; - $temp .= " <link rel=\"shortcut icon\" type=\"image/x-icon\" href=\"/favicon.ico\"/>\n"; - foreach ($this->_rssfeeds as $rssurl => $rsstitle) { //for all RSS feeds... - $temp .= " <link rel=\"alternate\" type=\"application/rss+xml\" title=\"" . $rsstitle . "\" href=\"" . $rssurl . "\">\n"; - } - $temp .= "</head>\n"; - $temp .= "<body>\n"; - $temp .= "<div class=\"wrapper\">\n"; - $temp .= " <div class=\"container\">\n"; - $temp .= " <div class=\"main\">\n"; - print($temp); - } - - /** - * print the foot from the page - */ - function printFoot() { - $temp = " </div> <!-- .main -->\n"; - $temp .= " <div class=\"footer\">\n"; - $temp .= " <div class=\"left\">Valid <a href=\"http://jigsaw.w3.org/css-validator/check/referer\">CSS</a> & <a href=\"http://validator.w3.org/check?uri=referer\">XHTML</a></div>\n"; - $temp .= " <div class=\"right\">Design by <a href=\"http://arcsin.se/\">Arcsin</a> <a href=\"http://templates.arcsin.se/\">Web Templates</a></div>\n"; - $temp .= " <div class=\"clearer\"><span></span></div>\n"; - $temp .= " </div> <!-- .footer -->\n"; - $temp .= " </div> <!-- .container -->\n"; - $temp .= "</div> <!-- .wrapper -->\n"; - $temp .= "</body>\n"; - $temp .= "</html>\n"; - print($temp); - } - } -?> +<?php +// This program is free software; you can redistribute it and/or modify +// it under the terms of the GNU General Public License as published by +// the Free Software Foundation; either version 2 of the License, or +// (at your option) any later version. +// +// This program is distributed in the hope that it will be useful, +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +// GNU General Public License for more details. + + /** + * ... + */ + class Page { + var $_title, $_charset; + var $_description, $_keywords, $_rssfeeds; + + /** + * Constructor + */ + function Page() { + $this->_title = 'Frhed'; + $this->_charset = 'ISO-8859-1'; + $this->_description = ''; + $this->_keywords = ''; + $this->_rssfeeds = array(); + } + + /** + * set the title from the page + */ + function setTitle($title) { + $this->_title = $title; + } + + /** + * set the charset from the page + */ + function setCharset($charset) { + $this->_charset = $charset; + } + + /** + * set the description from the page + */ + function setDescription($description) { + $this->_description = $description; + } + + /** + * set the keywords from the page + */ + function setKeywords($keywords) { + $this->_keywords = $keywords; + } + + /** + * add RSS feed to the page head + */ + function addRssFeed($url, $title = 'RSS') { + $this->_rssfeeds[$url] = $title; + } + + /** + * print the head from the page + */ + function printHead($title = '') { + if ($title != '') { + $this->_title = $title; + } + $temp = "<!DOCTYPE html PUBLIC \"-//W3C//DTD XHTML 1.1//EN\" \"http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd\">\n"; + $temp .= "<html xmlns=\"http://www.w3.org/1999/xhtml\">\n"; + $temp .= "<head>\n"; + $temp .= " <title>" . $this->_title . "</title>\n"; + $temp .= " <meta http-equiv=\"content-type\" content=\"text/html; charset=" . $this->_charset . "\"/>\n"; + if ($this->_description != '') { + $temp .= " <meta name=\"description\" content=\"" . $this->_description . "\"/>\n"; + } + if ($this->_keywords != '') { + $temp .= " <meta name=\"keywords\" content=\"" . $this->_keywords . "\"/>\n"; + } + $temp .= " <link rel=\"stylesheet\" type=\"text/css\" media=\"screen\" href=\"/css/default.css\"/>\n"; + $temp .= " <link rel=\"stylesheet\" type=\"text/css\" media=\"print\" href=\"/css/print.css\"/>\n"; + $temp .= " <link rel=\"shortcut icon\" type=\"image/x-icon\" href=\"/favicon.ico\"/>\n"; + foreach ($this->_rssfeeds as $rssurl => $rsstitle) { //for all RSS feeds... + $temp .= " <link rel=\"alternate\" type=\"application/rss+xml\" title=\"" . $rsstitle . "\" href=\"" . $rssurl . "\">\n"; + } + $temp .= "</head>\n"; + $temp .= "<body>\n"; + $temp .= "<div class=\"wrapper\">\n"; + $temp .= " <div class=\"container\">\n"; + $temp .= " <div class=\"main\">\n"; + print($temp); + } + + /** + * print the foot from the page + */ + function printFoot() { + $temp = " </div> <!-- .main -->\n"; + $temp .= " <div class=\"footer\">\n"; + $temp .= " <div class=\"left\">Valid <a href=\"http://jigsaw.w3.org/css-validator/check/referer\">CSS</a> & <a href=\"http://validator.w3.org/check?uri=referer\">XHTML</a></div>\n"; + $temp .= " <div class=\"right\">Design by <a href=\"http://arcsin.se/\">Arcsin</a> <a href=\"http://templates.arcsin.se/\">Web Templates</a></div>\n"; + $temp .= " <div class=\"clearer\"><span></span></div>\n"; + $temp .= " </div> <!-- .footer -->\n"; + $temp .= " </div> <!-- .container -->\n"; + $temp .= "</div> <!-- .wrapper -->\n"; + $temp .= "</body>\n"; + $temp .= "</html>\n"; + print($temp); + } + } +?> Property changes on: trunk/Web/engine/page.inc ___________________________________________________________________ Added: svn:eol-style + native Modified: trunk/Web/index.php =================================================================== --- trunk/Web/index.php 2009-01-18 20:55:52 UTC (rev 307) +++ trunk/Web/index.php 2009-01-18 21:25:33 UTC (rev 308) @@ -1,90 +1,90 @@ -<?php - include('engine/page.inc'); - - $page = new Page; - $page->printHead('Frhed - Free hex editor'); -?> - <div class="content"> - - <h1 class="title">Frhed</h1> - <p class="olive"><b>Fr</b>ee <b>h</b>ex <b>ed</b>itor</p> - - <p>Frhed is an binary file editor for Windows. It is small but has many advanced features like ability to load big files partially.</p> - - <h2>Features</h2> - <ul> - <li>Editable file size limited only by available system memory</li> - <li>Load files partially</li> - <li>Export as hexdump to file or clipboard</li> - <li>Search for any combination of text and binary values</li> - <li>Compare files</li> - </ul> - - <h2>Download</h2> - <h3>Alpha releases</h3> - <ul> - <li><a href="https://sourceforge.net/project/showfiles.php?group_id=236485&package_id=295443&release_id=651776"> - Frhed 1.3.4</a> (2009-01-06)</li> - <li><a href="https://sourceforge.net/project/showfiles.php?group_id=236485&package_id=295443&release_id=644901"> - Frhed 1.3.3</a> (2008-12-04)</li> - <li><a href="https://sourceforge.net/project/showfiles.php?group_id=236485&package_id=295443&release_id=638916"> - Frhed 1.3.2</a> (2008-11-07)</li> - <li><a href="https://sourceforge.net/project/showfiles.php?group_id=236485&package_id=295443&release_id=633733"> - Frhed 1.3.1</a> (2008-10-16)</li> - </ul> - <h3>Original project download</h3> - <ul> - <li><a href="http://www.rs.e-technik.tu-darmstadt.de/applets/frhed-v1.1.zip">Frhed 1.1 BETA 1</a></li> - </ul> - - <h2>Support</h2> - <p>For support you can try the <a href="http://apps.sourceforge.net/phpbb/frhed/">forums</a> or the <a href="https://sourceforge.net/mail/?group_id=236485">mailing lists</a>. - If you found bugs, please submit them to our <a href="https://sourceforge.net/tracker/?atid=1100163&group_id=236485">bug tracker</a> - or leave wishes at the <a href="https://sourceforge.net/tracker/?atid=1100164&group_id=236485">feature requests</a> list.</p> - - <h2>Open Source</h2> - <p>Frhed is <a href="http://www.opensource.org/">open source</a> software and is licenced under the <a href="http://www.gnu.org/licenses/gpl-2.0.html">GNU General Public License</a>. - This means everybody can download the source code and improve and modify them.</p> - - <h2>History</h2> - <p>Frhed is originally developed by <a href="http://www.kibria.de/frhed.html">Raihan Kibria</a>. - Version 1.1 included many improvements and new features from versions that several other programmers had been working on. - Unfortunately version 1.1 never matured to "stable" release. Latest 1.1 release is labeled as "beta" release. - At autumn 2008 the <a href="http://winmerge.org/">WinMerge Team</a> decided to use Frhed as binary file editor component - for WinMerge. For developing Frhed further new <a href="https://sourceforge.net/projects/frhed">SourceForge project</a> - was created. This new project will develop Frhed as stand alone product.</p> - - </div> - - <div class="sidenav"> - - <h2>Project</h2> - <ul> - <li><a href="https://sourceforge.net/projects/frhed">Home</a></li> - </ul> - - <h2>Support</h2> - <ul> - <li><a href="https://sourceforge.net/tracker/?atid=1100163&group_id=236485">Bugs</a></li> - <li><a href="https://sourceforge.net/tracker/?atid=1100164&group_id=236485">Feature Requests</a></li> - <li><a href="http://apps.sourceforge.net/phpbb/frhed/">Forums</a></li> - <li><a href="https://sourceforge.net/mail/?group_id=236485">Mailing Lists</a></li> - </ul> - - <h2>Links</h2> - <ul> - <li><a href="http://www.kibria.de/frhed.html" title="Original version from Raihan Kibria">Original Version</a></li> - <li><a href="http://winmerge.org/">WinMerge</a></li> - </ul> - - <h2>Donate</h2> - <p>Support this project by donating money.</p> - <a href="http://sourceforge.net/donate/index.php?group_id=236485"><img src="http://images.sourceforge.net/images/project-support.jpg" width="88" height="32" border="0" alt="Support This Project" /> </a> - - </div> - - <div class="clearer"></div> - -<?php - $page->printFoot(); -?> +<?php + include('engine/page.inc'); + + $page = new Page; + $page->printHead('Frhed - Free hex editor'); +?> + <div class="content"> + + <h1 class="title">Frhed</h1> + <p class="olive"><b>Fr</b>ee <b>h</b>ex <b>ed</b>itor</p> + + <p>Frhed is an binary file editor for Windows. It is small but has many advanced features like ability to load big files partially.</p> + + <h2>Features</h2> + <ul> + <li>Editable file size limited only by available system memory</li> + <li>Load files partially</li> + <li>Export as hexdump to file or clipboard</li> + <li>Search for any combination of text and binary values</li> + <li>Compare files</li> + </ul> + + <h2>Download</h2> + <h3>Alpha releases</h3> + <ul> + <li><a href="https://sourceforge.net/project/showfiles.php?group_id=236485&package_id=295443&release_id=651776"> + Frhed 1.3.4</a> (2009-01-06)</li> + <li><a href="https://sourceforge.net/project/showfiles.php?group_id=236485&package_id=295443&release_id=644901"> + Frhed 1.3.3</a> (2008-12-04)</li> + <li><a href="https://sourceforge.net/project/showfiles.php?group_id=236485&package_id=295443&release_id=638916"> + Frhed 1.3.2</a> (2008-11-07)</li> + <li><a href="https://sourceforge.net/project/showfiles.php?group_id=236485&package_id=295443&release_id=633733"> + Frhed 1.3.1</a> (2008-10-16)</li> + </ul> + <h3>Original project download</h3> + <ul> + <li><a href="http://www.rs.e-technik.tu-darmstadt.de/applets/frhed-v1.1.zip">Frhed 1.1 BETA 1</a></li> + </ul> + + <h2>Support</h2> + <p>For support you can try the <a href="http://apps.sourceforge.net/phpbb/frhed/">forums</a> or the <a href="https://sourceforge.net/mail/?group_id=236485">mailing lists</a>. + If you found bugs, please submit them to our <a href="https://sourceforge.net/tracker/?atid=1100163&group_id=236485">bug tracker</a> + or leave wishes at the <a href="https://sourceforge.net/tracker/?atid=1100164&group_id=236485">feature requests</a> list.</p> + + <h2>Open Source</h2> + <p>Frhed is <a href="http://www.opensource.org/">open source</a> software and is licenced under the <a href="http://www.gnu.org/licenses/gpl-2.0.html">GNU General Public License</a>. + This means everybody can download the source code and improve and modify them.</p> + + <h2>History</h2> + <p>Frhed is originally developed by <a href="http://www.kibria.de/frhed.html">Raihan Kibria</a>. + Version 1.1 included many improvements and new features from versions that several other programmers had been working on. + Unfortunately version 1.1 never matured to "stable" release. Latest 1.1 release is labeled as "beta" release. + At autumn 2008 the <a href="http://winmerge.org/">WinMerge Team</a> decided to use Frhed as binary file editor component + for WinMerge. For developing Frhed further new <a href="https://sourceforge.net/projects/frhed">SourceForge project</a> + was created. This new project will develop Frhed as stand alone product.</p> + + </div> + + <div class="sidenav"> + + <h2>Project</h2> + <ul> + <li><a href="https://sourceforge.net/projects/frhed">Home</a></li> + </ul> + + <h2>Support</h2> + <ul> + <li><a href="https://sourceforge.net/tracker/?atid=1100163&group_id=236485">Bugs</a></li> + <li><a href="https://sourceforge.net/tracker/?atid=1100164&group_id=236485">Feature Requests</a></li> + <li><a href="http://apps.sourceforge.net/phpbb/frhed/">Forums</a></li> + <li><a href="https://sourceforge.net/mail/?group_id=236485">Mailing Lists</a></li> + </ul> + + <h2>Links</h2> + <ul> + <li><a href="http://www.kibria.de/frhed.html" title="Original version from Raihan Kibria">Original Version</a></li> + <li><a href="http://winmerge.org/">WinMerge</a></li> + </ul> + + <h2>Donate</h2> + <p>Support this project by donating money.</p> + <a href="http://sourceforge.net/donate/index.php?group_id=236485"><img src="http://images.sourceforge.net/images/project-support.jpg" width="88" height="32" border="0" alt="Support This Project" /> </a> + + </div> + + <div class="clearer"></div> + +<?php + $page->printFoot(); +?> Property changes on: trunk/Web/index.php ___________________________________________________________________ Added: svn:eol-style + native This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <ge...@us...> - 2009-01-18 22:40:15
|
Revision: 309 http://frhed.svn.sourceforge.net/frhed/?rev=309&view=rev Author: gerundt Date: 2009-01-18 21:56:33 +0000 (Sun, 18 Jan 2009) Log Message: ----------- PATCH: [ 2515895 ] Switch website to PHP - Move navigation to PHP function Modified Paths: -------------- trunk/Web/engine/page.inc trunk/Web/index.php Modified: trunk/Web/engine/page.inc =================================================================== --- trunk/Web/engine/page.inc 2009-01-18 21:25:33 UTC (rev 308) +++ trunk/Web/engine/page.inc 2009-01-18 21:56:33 UTC (rev 309) @@ -91,6 +91,7 @@ $temp .= "<div class=\"wrapper\">\n"; $temp .= " <div class=\"container\">\n"; $temp .= " <div class=\"main\">\n"; + $temp .= " <div class=\"content\">\n"; print($temp); } @@ -98,7 +99,10 @@ * print the foot from the page */ function printFoot() { - $temp = " </div> <!-- .main -->\n"; + $temp = " </div> <!-- .content -->\n"; + $temp .= $this->getSideNavigation(); + $temp .= " <div class=\"clearer\"></div>\n"; + $temp .= " </div> <!-- .main -->\n"; $temp .= " <div class=\"footer\">\n"; $temp .= " <div class=\"left\">Valid <a href=\"http://jigsaw.w3.org/css-validator/check/referer\">CSS</a> & <a href=\"http://validator.w3.org/check?uri=referer\">XHTML</a></div>\n"; $temp .= " <div class=\"right\">Design by <a href=\"http://arcsin.se/\">Arcsin</a> <a href=\"http://templates.arcsin.se/\">Web Templates</a></div>\n"; @@ -110,5 +114,33 @@ $temp .= "</html>\n"; print($temp); } + + /** + * get the side navigation from the page + */ + function getSideNavigation() { + $temp = "<div class=\"sidenav\">\n"; + $temp .= " <h2>Project</h2>\n"; + $temp .= " <ul>\n"; + $temp .= " <li><a href=\"http://sourceforge.net/projects/frhed\">Home</a></li>\n"; + $temp .= " </ul>\n"; + $temp .= " <h2>Support</h2>\n"; + $temp .= " <ul>\n"; + $temp .= " <li><a href=\"http://sourceforge.net/tracker/?atid=1100163&group_id=236485\">Bugs</a></li>\n"; + $temp .= " <li><a href=\"http://sourceforge.net/tracker/?atid=1100164&group_id=236485\">Feature Requests</a></li>\n"; + $temp .= " <li><a href=\"http://apps.sourceforge.net/phpbb/frhed/\">Forums</a></li>\n"; + $temp .= " <li><a href=\"http://sourceforge.net/mail/?group_id=236485\">Mailing Lists</a></li>\n"; + $temp .= " </ul>\n"; + $temp .= " <h2>Links</h2>\n"; + $temp .= " <ul>\n"; + $temp .= " <li><a href=\"http://www.kibria.de/frhed.html\" title=\"Original version from Raihan Kibria\">Original Version</a></li>\n"; + $temp .= " <li><a href=\"http://winmerge.org/\">WinMerge</a></li>\n"; + $temp .= " </ul>\n"; + $temp .= " <h2>Donate</h2>\n"; + $temp .= " <p>Support this project by donating money.</p>\n"; + $temp .= " <a href=\"http://sourceforge.net/donate/index.php?group_id=236485\"><img src=\"http://images.sourceforge.net/images/project-support.jpg\" width=\"88\" height=\"32\" border=\"0\" alt=\"Support this project\" /></a>\n"; + $temp .= "</div> <!-- .sidenav -->\n"; + return $temp; + } } ?> Modified: trunk/Web/index.php =================================================================== --- trunk/Web/index.php 2009-01-18 21:25:33 UTC (rev 308) +++ trunk/Web/index.php 2009-01-18 21:56:33 UTC (rev 309) @@ -4,8 +4,6 @@ $page = new Page; $page->printHead('Frhed - Free hex editor'); ?> - <div class="content"> - <h1 class="title">Frhed</h1> <p class="olive"><b>Fr</b>ee <b>h</b>ex <b>ed</b>itor</p> @@ -53,38 +51,6 @@ At autumn 2008 the <a href="http://winmerge.org/">WinMerge Team</a> decided to use Frhed as binary file editor component for WinMerge. For developing Frhed further new <a href="https://sourceforge.net/projects/frhed">SourceForge project</a> was created. This new project will develop Frhed as stand alone product.</p> - - </div> - - <div class="sidenav"> - - <h2>Project</h2> - <ul> - <li><a href="https://sourceforge.net/projects/frhed">Home</a></li> - </ul> - - <h2>Support</h2> - <ul> - <li><a href="https://sourceforge.net/tracker/?atid=1100163&group_id=236485">Bugs</a></li> - <li><a href="https://sourceforge.net/tracker/?atid=1100164&group_id=236485">Feature Requests</a></li> - <li><a href="http://apps.sourceforge.net/phpbb/frhed/">Forums</a></li> - <li><a href="https://sourceforge.net/mail/?group_id=236485">Mailing Lists</a></li> - </ul> - - <h2>Links</h2> - <ul> - <li><a href="http://www.kibria.de/frhed.html" title="Original version from Raihan Kibria">Original Version</a></li> - <li><a href="http://winmerge.org/">WinMerge</a></li> - </ul> - - <h2>Donate</h2> - <p>Support this project by donating money.</p> - <a href="http://sourceforge.net/donate/index.php?group_id=236485"><img src="http://images.sourceforge.net/images/project-support.jpg" width="88" height="32" border="0" alt="Support This Project" /> </a> - - </div> - - <div class="clearer"></div> - <?php $page->printFoot(); ?> This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <ge...@us...> - 2009-01-18 22:54:32
|
Revision: 311 http://frhed.svn.sourceforge.net/frhed/?rev=311&view=rev Author: gerundt Date: 2009-01-18 22:54:28 +0000 (Sun, 18 Jan 2009) Log Message: ----------- Web: Move "css" and "img" folders to "engine" folder Modified Paths: -------------- trunk/Web/engine/css/default.css trunk/Web/engine/page.inc Added Paths: ----------- trunk/Web/engine/css/ trunk/Web/engine/images/ Removed Paths: ------------- trunk/Web/css/ trunk/Web/img/ Property changes on: trunk/Web/engine/css ___________________________________________________________________ Added: svn:mergeinfo + Modified: trunk/Web/engine/css/default.css =================================================================== --- trunk/Web/css/default.css 2009-01-18 22:18:03 UTC (rev 310) +++ trunk/Web/engine/css/default.css 2009-01-18 22:54:28 UTC (rev 311) @@ -22,7 +22,7 @@ a:hover {color: #AA3;} body { - background: #111 url(../img/bg.jpg) repeat-x; + background: #111 url(../images/bg.jpg) repeat-x; color: #DDD; font: normal 62.5% "Trebuchet MS",Verdana,sans-serif; } @@ -65,7 +65,7 @@ margin: 0 auto; width: 780px; } -.container {background: url(../img/header.gif) no-repeat center top;} +.container {background: url(../images/header.gif) no-repeat center top;} /* title */ .title { @@ -75,7 +75,7 @@ /* sub navigation */ .sidenav { - background: url(../img/sidenav.gif) no-repeat right top; + background: url(../images/sidenav.gif) no-repeat right top; padding-top: 126px; float: right; width: 210px; Property changes on: trunk/Web/engine/images ___________________________________________________________________ Added: svn:mergeinfo + Modified: trunk/Web/engine/page.inc =================================================================== --- trunk/Web/engine/page.inc 2009-01-18 22:18:03 UTC (rev 310) +++ trunk/Web/engine/page.inc 2009-01-18 22:54:28 UTC (rev 311) @@ -80,8 +80,8 @@ if ($this->_keywords != '') { $temp .= " <meta name=\"keywords\" content=\"" . $this->_keywords . "\"/>\n"; } - $temp .= " <link rel=\"stylesheet\" type=\"text/css\" media=\"screen\" href=\"/css/default.css\"/>\n"; - $temp .= " <link rel=\"stylesheet\" type=\"text/css\" media=\"print\" href=\"/css/print.css\"/>\n"; + $temp .= " <link rel=\"stylesheet\" type=\"text/css\" media=\"screen\" href=\"/engine/css/default.css\"/>\n"; + $temp .= " <link rel=\"stylesheet\" type=\"text/css\" media=\"print\" href=\"/engine/css/print.css\"/>\n"; $temp .= " <link rel=\"shortcut icon\" type=\"image/x-icon\" href=\"/favicon.ico\"/>\n"; foreach ($this->_rssfeeds as $rssurl => $rsstitle) { //for all RSS feeds... $temp .= " <link rel=\"alternate\" type=\"application/rss+xml\" title=\"" . $rsstitle . "\" href=\"" . $rssurl . "\">\n"; This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <ge...@us...> - 2009-01-19 23:23:10
|
Revision: 317 http://frhed.svn.sourceforge.net/frhed/?rev=317&view=rev Author: gerundt Date: 2009-01-19 23:23:03 +0000 (Mon, 19 Jan 2009) Log Message: ----------- Web: Add icon and screenshot image, we need for PAD file Added Paths: ----------- trunk/Web/screenshots/ trunk/Web/screenshots/frhed_icon.png trunk/Web/screenshots/frhed_main_window.png Added: trunk/Web/screenshots/frhed_icon.png =================================================================== (Binary files differ) Property changes on: trunk/Web/screenshots/frhed_icon.png ___________________________________________________________________ Added: svn:mime-type + application/octet-stream Added: trunk/Web/screenshots/frhed_main_window.png =================================================================== (Binary files differ) Property changes on: trunk/Web/screenshots/frhed_main_window.png ___________________________________________________________________ Added: svn:mime-type + application/octet-stream This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <ge...@us...> - 2009-01-20 23:01:58
|
Revision: 320 http://frhed.svn.sourceforge.net/frhed/?rev=320&view=rev Author: gerundt Date: 2009-01-20 23:01:54 +0000 (Tue, 20 Jan 2009) Log Message: ----------- RFE: [ 2507120 ] Create PAD file for Frhed Modified Paths: -------------- trunk/Web/engine/page.inc Added Paths: ----------- trunk/Web/frhed_pad.xml Modified: trunk/Web/engine/page.inc =================================================================== --- trunk/Web/engine/page.inc 2009-01-20 18:42:30 UTC (rev 319) +++ trunk/Web/engine/page.inc 2009-01-20 23:01:54 UTC (rev 320) @@ -123,6 +123,7 @@ $temp .= " <h2>Project</h2>\n"; $temp .= " <ul>\n"; $temp .= " <li><a href=\"http://sourceforge.net/projects/frhed\">Home</a></li>\n"; + $temp .= " <li><a href=\"/frhed_pad.xml\">PAD File</a></li>\n"; $temp .= " </ul>\n"; $temp .= " <h2>Support</h2>\n"; $temp .= " <ul>\n"; Added: trunk/Web/frhed_pad.xml =================================================================== --- trunk/Web/frhed_pad.xml (rev 0) +++ trunk/Web/frhed_pad.xml 2009-01-20 23:01:54 UTC (rev 320) @@ -0,0 +1,97 @@ +<?xml version="1.0" encoding="UTF-8" ?> +<XML_DIZ_INFO> + <MASTER_PAD_VERSION_INFO> + <MASTER_PAD_VERSION>2.02</MASTER_PAD_VERSION> + <MASTER_PAD_EDITOR>Online PAD Generator 1.33 - http://www.padbuilder.com</MASTER_PAD_EDITOR> + <MASTER_PAD_INFO>Portable Application Description, or PAD for short, is a data set that is used by shareware authors to disseminate information to anyone interested in their software products. To find out more go to http://www.asp-shareware.org/pad</MASTER_PAD_INFO> + </MASTER_PAD_VERSION_INFO> + <Company_Info> + <Company_Name /> + <Address_1 /> + <Address_2 /> + <City_Town /> + <State_Province /> + <Zip_Postal_Code /> + <Country /> + <Company_WebSite_URL>http://frhed.sourceforge.net/</Company_WebSite_URL> + <Contact_Info> + <Author_First_Name /> + <Author_Last_Name /> + <Author_Email>frh...@li...</Author_Email> + <Contact_First_Name /> + <Contact_Last_Name /> + <Contact_Email>frh...@li...</Contact_Email> + </Contact_Info> + <Support_Info> + <Sales_Email>frh...@li...</Sales_Email> + <Support_Email>frh...@li...</Support_Email> + <General_Email>frh...@li...</General_Email> + <Sales_Phone /> + <Support_Phone /> + <General_Phone /> + <Fax_Phone /> + </Support_Info> + </Company_Info> + <Program_Info> + <Program_Name>Frhed</Program_Name> + <Program_Version>1.3.4</Program_Version> + <Program_Release_Month>01</Program_Release_Month> + <Program_Release_Day>06</Program_Release_Day> + <Program_Release_Year>2009</Program_Release_Year> + <Program_Cost_Dollars /> + <Program_Cost_Other_Code /> + <Program_Cost_Other /> + <Program_Type>Freeware</Program_Type> + <Program_Release_Status>Alpha</Program_Release_Status> + <Program_Install_Support>Install and Uninstall</Program_Install_Support> + <Program_OS_Support>Win95,Win98,WinME,WinNT 4.x,Windows2000,WinXP,Windows2003,Windows Vista Starter,Windows Vista Home Basic,Windows Vista Home Premium,Windows Vista Business,Windows Vista Enterprise,Windows Vista Ultimate,Windows Vista Home Basic x64,Windows Vista Home Premium x64,Windows Vista Business x64,Windows Vista Enterprise x64,Windows Vista Ultimate x64</Program_OS_Support> + <Program_Language>English</Program_Language> + <Program_Change_Info /> + <Program_Specific_Category>Utilities</Program_Specific_Category> + <Program_Category_Class>System Utilities::Text/Document Editors</Program_Category_Class> + <Program_System_Requirements /> + <File_Info> + <File_Size_Bytes>530090</File_Size_Bytes> + <File_Size_K>517.67</File_Size_K> + <File_Size_MB>0.51</File_Size_MB> + </File_Info> + <Expire_Info> + <Has_Expire_Info>N</Has_Expire_Info> + <Expire_Count /> + <Expire_Based_On /> + <Expire_Other_Info /> + <Expire_Month /> + <Expire_Day /> + <Expire_Year /> + </Expire_Info> + </Program_Info> + <Program_Descriptions> + <English> + <Keywords>hex editor,binary file,load partially,hexdump,compare</Keywords> + <Char_Desc_45>Frhed is an binary file editor for Windows.</Char_Desc_45> + <Char_Desc_80>Frhed is an binary file editor for Windows with many advanced features.</Char_Desc_80> + <Char_Desc_250>Frhed is an binary file editor for Windows. It is small but has many advanced features like ability to load big files partially or compare files. The editable file size limited only by available system memory. Export as hexdump to file or clipboard.</Char_Desc_250> + <Char_Desc_450 /> + <Char_Desc_2000 /> + </English> + </Program_Descriptions> + <Web_Info> + <Application_URLs> + <Application_Info_URL>http://frhed.sourceforge.net/</Application_Info_URL> + <Application_Order_URL>http://frhed.sourceforge.net/</Application_Order_URL> + <Application_Screenshot_URL>http://frhed.sourceforge.net/screenshots/frhed_main_window.png</Application_Screenshot_URL> + <Application_Icon_URL>http://frhed.sourceforge.net/screenshots/frhed_icon.png</Application_Icon_URL> + <Application_XML_File_URL>http://frhed.sourceforge.net/frhed_pad.xml</Application_XML_File_URL> + </Application_URLs> + <Download_URLs> + <Primary_Download_URL>http://downloads.sourceforge.net/frhed/Frhed-1.3.4-Setup.exe</Primary_Download_URL> + <Secondary_Download_URL /> + <Additional_Download_URL_1 /> + <Additional_Download_URL_2 /> + </Download_URLs> + </Web_Info> + <Permissions> + <Distribution_Permissions>GNU General Public License</Distribution_Permissions> + <EULA>GNU General Public License</EULA> + </Permissions> +</XML_DIZ_INFO> \ No newline at end of file This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <ge...@us...> - 2009-02-01 12:43:21
|
Revision: 354 http://frhed.svn.sourceforge.net/frhed/?rev=354&view=rev Author: gerundt Date: 2009-02-01 12:43:18 +0000 (Sun, 01 Feb 2009) Log Message: ----------- PATCH: [ 2553900 ] Web: Add screenshot page Modified Paths: -------------- trunk/Web/engine/page.inc Added Paths: ----------- trunk/Web/screenshots/frhed_main_window_small.png trunk/Web/screenshots/index.php Modified: trunk/Web/engine/page.inc =================================================================== --- trunk/Web/engine/page.inc 2009-02-01 12:36:30 UTC (rev 353) +++ trunk/Web/engine/page.inc 2009-02-01 12:43:18 UTC (rev 354) @@ -120,9 +120,11 @@ */ function getSideNavigation() { $temp = "<div class=\"sidenav\">\n"; - $temp .= " <h2>Project</h2>\n"; + $temp .= " <h2>Frhed</h2>\n"; $temp .= " <ul>\n"; - $temp .= " <li><a href=\"http://sourceforge.net/projects/frhed\">Home</a></li>\n"; + $temp .= " <li><a href=\"/\">Home</a></li>\n"; + $temp .= " <li><a href=\"/screenshots/\">Screenshots</a></li>\n"; + $temp .= " <li><a href=\"http://sourceforge.net/projects/frhed\">Project Page</a></li>\n"; $temp .= " <li><a href=\"/frhed_pad.xml\">PAD File</a></li>\n"; $temp .= " </ul>\n"; $temp .= " <h2>Support</h2>\n"; Added: trunk/Web/screenshots/frhed_main_window_small.png =================================================================== (Binary files differ) Property changes on: trunk/Web/screenshots/frhed_main_window_small.png ___________________________________________________________________ Added: svn:mime-type + application/octet-stream Added: trunk/Web/screenshots/index.php =================================================================== --- trunk/Web/screenshots/index.php (rev 0) +++ trunk/Web/screenshots/index.php 2009-02-01 12:43:18 UTC (rev 354) @@ -0,0 +1,16 @@ +<?php + include('../engine/page.inc'); + + $page = new Page; + $page->printHead('Screenshots - Frhed'); +?> +<h1 class="title">Frhed</h1> +<p class="olive"><b>Fr</b>ee <b>h</b>ex <b>ed</b>itor</p> + +<h2>Screenshots</h2> +<h3>Main Window</h3> +<a href="frhed_main_window.png" target="_blank"><img src="frhed_main_window_small.png" alt="Main Window" style="border:none;" /></a> +<p>The main window from Frhed.</p> +<?php + $page->printFoot(); +?> This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <ge...@us...> - 2009-02-03 19:48:02
|
Revision: 364 http://frhed.svn.sourceforge.net/frhed/?rev=364&view=rev Author: gerundt Date: 2009-02-03 19:47:58 +0000 (Tue, 03 Feb 2009) Log Message: ----------- Web: Move <h1> heading to printHead() function Modified Paths: -------------- trunk/Web/engine/page.inc trunk/Web/index.php trunk/Web/screenshots/index.php Modified: trunk/Web/engine/page.inc =================================================================== --- trunk/Web/engine/page.inc 2009-02-03 19:38:14 UTC (rev 363) +++ trunk/Web/engine/page.inc 2009-02-03 19:47:58 UTC (rev 364) @@ -92,6 +92,8 @@ $temp .= " <div id=\"container\">\n"; $temp .= " <div id=\"main\">\n"; $temp .= " <div id=\"content\">\n"; + $temp .= "<h1 class=\"title\">Frhed</h1>\n"; + $temp .= "<p class=\"olive\"><b>Fr</b>ee <b>h</b>ex <b>ed</b>itor</p>\n"; print($temp); } Modified: trunk/Web/index.php =================================================================== --- trunk/Web/index.php 2009-02-03 19:38:14 UTC (rev 363) +++ trunk/Web/index.php 2009-02-03 19:47:58 UTC (rev 364) @@ -6,9 +6,6 @@ $page->setKeywords('Frhed, free, hex editor, binary file, load partially, hexdump, compare'); $page->printHead('Frhed - Free hex editor'); ?> - <h1 class="title">Frhed</h1> - <p class="olive"><b>Fr</b>ee <b>h</b>ex <b>ed</b>itor</p> - <p>Frhed is an binary file editor for Windows. It is small but has many advanced features like ability to load big files partially.</p> <h2>Features</h2> Modified: trunk/Web/screenshots/index.php =================================================================== --- trunk/Web/screenshots/index.php 2009-02-03 19:38:14 UTC (rev 363) +++ trunk/Web/screenshots/index.php 2009-02-03 19:47:58 UTC (rev 364) @@ -4,9 +4,6 @@ $page = new Page; $page->printHead('Screenshots - Frhed'); ?> -<h1 class="title">Frhed</h1> -<p class="olive"><b>Fr</b>ee <b>h</b>ex <b>ed</b>itor</p> - <h2>Screenshots</h2> <h3>Main Window</h3> <a href="frhed_main_window.png" target="_blank"><img src="frhed_main_window_small.png" alt="Main Window" style="border:none;" /></a> This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <ge...@us...> - 2009-02-04 21:11:16
|
Revision: 370 http://frhed.svn.sourceforge.net/frhed/?rev=370&view=rev Author: gerundt Date: 2009-02-04 21:11:13 +0000 (Wed, 04 Feb 2009) Log Message: ----------- Web: Update website for Frhed 1.4.0 Modified Paths: -------------- trunk/Web/frhed_pad.xml trunk/Web/index.php Modified: trunk/Web/frhed_pad.xml =================================================================== --- trunk/Web/frhed_pad.xml 2009-02-04 20:38:03 UTC (rev 369) +++ trunk/Web/frhed_pad.xml 2009-02-04 21:11:13 UTC (rev 370) @@ -34,15 +34,15 @@ </Company_Info> <Program_Info> <Program_Name>Frhed</Program_Name> - <Program_Version>1.3.10</Program_Version> - <Program_Release_Month>01</Program_Release_Month> - <Program_Release_Day>22</Program_Release_Day> + <Program_Version>1.4.0</Program_Version> + <Program_Release_Month>02</Program_Release_Month> + <Program_Release_Day>04</Program_Release_Day> <Program_Release_Year>2009</Program_Release_Year> <Program_Cost_Dollars /> <Program_Cost_Other_Code /> <Program_Cost_Other /> <Program_Type>Freeware</Program_Type> - <Program_Release_Status>Beta</Program_Release_Status> + <Program_Release_Status>New Release</Program_Release_Status> <Program_Install_Support>Install and Uninstall</Program_Install_Support> <Program_OS_Support>Win95,Win98,WinME,WinNT 4.x,Windows2000,WinXP,Windows2003,Windows Vista Starter,Windows Vista Home Basic,Windows Vista Home Premium,Windows Vista Business,Windows Vista Enterprise,Windows Vista Ultimate,Windows Vista Home Basic x64,Windows Vista Home Premium x64,Windows Vista Business x64,Windows Vista Enterprise x64,Windows Vista Ultimate x64</Program_OS_Support> <Program_Language>English</Program_Language> @@ -51,8 +51,8 @@ <Program_Category_Class>System Utilities::Text/Document Editors</Program_Category_Class> <Program_System_Requirements /> <File_Info> - <File_Size_Bytes>530017</File_Size_Bytes> - <File_Size_K>517.59</File_Size_K> + <File_Size_Bytes>530241</File_Size_Bytes> + <File_Size_K>517.81</File_Size_K> <File_Size_MB>0.51</File_Size_MB> </File_Info> <Expire_Info> @@ -84,7 +84,7 @@ <Application_XML_File_URL>http://frhed.sourceforge.net/frhed_pad.xml</Application_XML_File_URL> </Application_URLs> <Download_URLs> - <Primary_Download_URL>http://downloads.sourceforge.net/frhed/Frhed-1.3.10-Setup.exe</Primary_Download_URL> + <Primary_Download_URL>http://downloads.sourceforge.net/frhed/Frhed-1.4.0-Setup.exe</Primary_Download_URL> <Secondary_Download_URL /> <Additional_Download_URL_1 /> <Additional_Download_URL_2 /> Modified: trunk/Web/index.php =================================================================== --- trunk/Web/index.php 2009-02-04 20:38:03 UTC (rev 369) +++ trunk/Web/index.php 2009-02-04 21:11:13 UTC (rev 370) @@ -18,6 +18,11 @@ </ul> <h2>Download</h2> + <h3>Stable releases</h3> + <ul> + <li><a href="https://sourceforge.net/project/showfiles.php?group_id=236485&package_id=308801&release_id=658634"> + Frhed 1.4.0</a> (2009-02-04)</li> + </ul> <h3>Beta releases</h3> <ul> <li><a href="https://sourceforge.net/project/showfiles.php?group_id=236485&package_id=307097&release_id=655390"> This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <ge...@us...> - 2009-04-10 16:30:31
|
Revision: 482 http://frhed.svn.sourceforge.net/frhed/?rev=482&view=rev Author: gerundt Date: 2009-04-10 16:30:30 +0000 (Fri, 10 Apr 2009) Log Message: ----------- Web: Update PAD file for Frhed 1.4.2 Modified Paths: -------------- trunk/Web/.htaccess trunk/Web/frhed_pad.xml Modified: trunk/Web/.htaccess =================================================================== --- trunk/Web/.htaccess 2009-04-10 16:23:50 UTC (rev 481) +++ trunk/Web/.htaccess 2009-04-10 16:30:30 UTC (rev 482) @@ -1,4 +1,7 @@ <FilesMatch "\.inc$"> Order Deny,Allow Deny from all -</FilesMatch> \ No newline at end of file +</FilesMatch> + +#Redirect PAD download URL to current Frhed version... +Redirect permanent /Frhed-Setup.exe http://downloads.sourceforge.net/frhed/Frhed-1.4.2-Setup.exe \ No newline at end of file Modified: trunk/Web/frhed_pad.xml =================================================================== --- trunk/Web/frhed_pad.xml 2009-04-10 16:23:50 UTC (rev 481) +++ trunk/Web/frhed_pad.xml 2009-04-10 16:30:30 UTC (rev 482) @@ -34,9 +34,9 @@ </Company_Info> <Program_Info> <Program_Name>Frhed</Program_Name> - <Program_Version>1.4.0</Program_Version> - <Program_Release_Month>02</Program_Release_Month> - <Program_Release_Day>04</Program_Release_Day> + <Program_Version>1.4.2</Program_Version> + <Program_Release_Month>04</Program_Release_Month> + <Program_Release_Day>07</Program_Release_Day> <Program_Release_Year>2009</Program_Release_Year> <Program_Cost_Dollars /> <Program_Cost_Other_Code /> @@ -51,8 +51,8 @@ <Program_Category_Class>System Utilities::Text/Document Editors</Program_Category_Class> <Program_System_Requirements /> <File_Info> - <File_Size_Bytes>530241</File_Size_Bytes> - <File_Size_K>517.81</File_Size_K> + <File_Size_Bytes>531238</File_Size_Bytes> + <File_Size_K>518.79</File_Size_K> <File_Size_MB>0.51</File_Size_MB> </File_Info> <Expire_Info> @@ -84,8 +84,8 @@ <Application_XML_File_URL>http://frhed.sourceforge.net/frhed_pad.xml</Application_XML_File_URL> </Application_URLs> <Download_URLs> - <Primary_Download_URL>http://downloads.sourceforge.net/frhed/Frhed-1.4.0-Setup.exe</Primary_Download_URL> - <Secondary_Download_URL /> + <Primary_Download_URL>http://frhed.sourceforge.net/Frhed-Setup.exe</Primary_Download_URL> + <Secondary_Download_URL>http://downloads.sourceforge.net/frhed/Frhed-1.4.2-Setup.exe</Secondary_Download_URL> <Additional_Download_URL_1 /> <Additional_Download_URL_2 /> </Download_URLs> This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <ge...@us...> - 2009-04-16 17:27:17
|
Revision: 527 http://frhed.svn.sourceforge.net/frhed/?rev=527&view=rev Author: gerundt Date: 2009-04-16 17:27:05 +0000 (Thu, 16 Apr 2009) Log Message: ----------- Web: Add project news RSS feed Modified Paths: -------------- trunk/Web/engine/page.inc trunk/Web/index.php Added Paths: ----------- trunk/Web/engine/images/rss.png trunk/Web/engine/simplepie/ trunk/Web/engine/simplepie/LICENSE.txt trunk/Web/engine/simplepie/README.txt trunk/Web/engine/simplepie/simplepie.inc Added: trunk/Web/engine/images/rss.png =================================================================== (Binary files differ) Property changes on: trunk/Web/engine/images/rss.png ___________________________________________________________________ Added: svn:mime-type + application/octet-stream Modified: trunk/Web/engine/page.inc =================================================================== --- trunk/Web/engine/page.inc 2009-04-16 16:12:05 UTC (rev 526) +++ trunk/Web/engine/page.inc 2009-04-16 17:27:05 UTC (rev 527) @@ -128,6 +128,38 @@ } /** + * print a <h2> heading with a RSS feed link + */ + function printRssHeading($title, $rssfeedurl) { + print("<h2>" . $title . " " . $this->getRssFeedLink($rssfeedurl) . "</h2>\n"); + } + + /** + * print a <h3> heading with a RSS feed link + */ + function printRssSubHeading($title, $rssfeedurl) { + print("<h3>" . $title . " " . $this->getRssFeedLink($rssfeedurl) . "</h3>\n"); + } + + /** + * get a RSS feed link + */ + function getRssFeedLink($url, $text = '') { + $temp = "<a href=\"" . $url . "\"><img src=\"/engine/images/rss.png\" alt=\"RSS\" style=\"border:none;\" /></a>"; + if ($text != '') { //if WITH text... + $temp .= " <a href=\"" . $url . "\"> " . $text . "</a>"; + } + return $temp; + } + + /** + * print a RSS feed link + */ + function printRssFeedLink($url, $text = '') { + print($this->getRssFeedLink($url, $text)); + } + + /** * get the side navigation from the page */ function getSideNavigation() { Added: trunk/Web/engine/simplepie/LICENSE.txt =================================================================== --- trunk/Web/engine/simplepie/LICENSE.txt (rev 0) +++ trunk/Web/engine/simplepie/LICENSE.txt 2009-04-16 17:27:05 UTC (rev 527) @@ -0,0 +1,26 @@ +Copyright (c) 2004-2007, Ryan Parman and Geoffrey Sneddon. +All rights reserved. + +Redistribution and use in source and binary forms, with or without modification, are +permitted provided that the following conditions are met: + + * Redistributions of source code must retain the above copyright notice, this list of + conditions and the following disclaimer. + + * Redistributions in binary form must reproduce the above copyright notice, this list + of conditions and the following disclaimer in the documentation and/or other materials + provided with the distribution. + + * Neither the name of the SimplePie Team nor the names of its contributors may be used + to endorse or promote products derived from this software without specific prior + written permission. + +THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS +OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY +AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDERS +AND CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR +CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR +SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY +THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR +OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE +POSSIBILITY OF SUCH DAMAGE. \ No newline at end of file Added: trunk/Web/engine/simplepie/README.txt =================================================================== --- trunk/Web/engine/simplepie/README.txt (rev 0) +++ trunk/Web/engine/simplepie/README.txt 2009-04-16 17:27:05 UTC (rev 527) @@ -0,0 +1,30 @@ +SIMPLEPIE +http://simplepie.org +By Ryan Parman and Geoffrey Sneddon + +BSD-LICENSED +http://www.opensource.org/licenses/bsd-license.php + +WHAT COMES IN THE PACKAGE? +1) simplepie.inc - The SimplePie library. This is all that's required for your pages. +2) README.txt - This document. +3) LICENSE.txt - A copy of the BSD license. +4) compatibility_test - The SimplePie compatibility test that checks your server for required settings. +5) demo - A basic feed reader demo that shows off some of SimplePie's more noticable features. +6) idn - A third-party library that SimplePie can optionally use to understand Internationalized Domain Names (IDNs). +7) test - SimplePie's unit test suite. This is only available in SVN builds. + +TO START THE DEMO: +1) Upload this package to your webserver. +2) Make sure that the cache folder inside of the demo folder is server-writable. +3) Navigate your browser to the demo folder. + +SUPPORT: +For further setup and install documentation, function references, etc., visit: +http://simplepie.org/wiki/ + +For bug reports, feature requests and other support, visit: +http://simplepie.org/support/ + +For more insight on SimplePie development, visit: +http://simplepie.org/development/ \ No newline at end of file Added: trunk/Web/engine/simplepie/simplepie.inc =================================================================== --- trunk/Web/engine/simplepie/simplepie.inc (rev 0) +++ trunk/Web/engine/simplepie/simplepie.inc 2009-04-16 17:27:05 UTC (rev 527) @@ -0,0 +1,13672 @@ +<?php +/** + * SimplePie + * + * A PHP-Based RSS and Atom Feed Framework. + * Takes the hard work out of managing a complete RSS/Atom solution. + * + * Copyright (c) 2004-2008, Ryan Parman and Geoffrey Sneddon + * All rights reserved. + * + * Redistribution and use in source and binary forms, with or without modification, are + * permitted provided that the following conditions are met: + * + * * Redistributions of source code must retain the above copyright notice, this list of + * conditions and the following disclaimer. + * + * * Redistributions in binary form must reproduce the above copyright notice, this list + * of conditions and the following disclaimer in the documentation and/or other materials + * provided with the distribution. + * + * * Neither the name of the SimplePie Team nor the names of its contributors may be used + * to endorse or promote products derived from this software without specific prior + * written permission. + * + * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS + * OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY + * AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDERS + * AND CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR + * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR + * SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY + * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR + * OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE + * POSSIBILITY OF SUCH DAMAGE. + * + * @package SimplePie + * @version 1.1.3 + * @copyright 2004-2008 Ryan Parman, Geoffrey Sneddon + * @author Ryan Parman + * @author Geoffrey Sneddon + * @link http://simplepie.org/ SimplePie + * @link http://simplepie.org/support/ Please submit all bug reports and feature requests to the SimplePie forums + * @license http://www.opensource.org/licenses/bsd-license.php BSD License + * @todo phpDoc comments + */ + +/** + * SimplePie Name + */ +define('SIMPLEPIE_NAME', 'SimplePie'); + +/** + * SimplePie Version + */ +define('SIMPLEPIE_VERSION', '1.1.3'); + +/** + * SimplePie Build + */ +define('SIMPLEPIE_BUILD', 20081219); + +/** + * SimplePie Website URL + */ +define('SIMPLEPIE_URL', 'http://simplepie.org'); + +/** + * SimplePie Useragent + * @see SimplePie::set_useragent() + */ +define('SIMPLEPIE_USERAGENT', SIMPLEPIE_NAME . '/' . SIMPLEPIE_VERSION . ' (Feed Parser; ' . SIMPLEPIE_URL . '; Allow like Gecko) Build/' . SIMPLEPIE_BUILD); + +/** + * SimplePie Linkback + */ +define('SIMPLEPIE_LINKBACK', '<a href="' . SIMPLEPIE_URL . '" title="' . SIMPLEPIE_NAME . ' ' . SIMPLEPIE_VERSION . '">' . SIMPLEPIE_NAME . '</a>'); + +/** + * No Autodiscovery + * @see SimplePie::set_autodiscovery_level() + */ +define('SIMPLEPIE_LOCATOR_NONE', 0); + +/** + * Feed Link Element Autodiscovery + * @see SimplePie::set_autodiscovery_level() + */ +define('SIMPLEPIE_LOCATOR_AUTODISCOVERY', 1); + +/** + * Local Feed Extension Autodiscovery + * @see SimplePie::set_autodiscovery_level() + */ +define('SIMPLEPIE_LOCATOR_LOCAL_EXTENSION', 2); + +/** + * Local Feed Body Autodiscovery + * @see SimplePie::set_autodiscovery_level() + */ +define('SIMPLEPIE_LOCATOR_LOCAL_BODY', 4); + +/** + * Remote Feed Extension Autodiscovery + * @see SimplePie::set_autodiscovery_level() + */ +define('SIMPLEPIE_LOCATOR_REMOTE_EXTENSION', 8); + +/** + * Remote Feed Body Autodiscovery + * @see SimplePie::set_autodiscovery_level() + */ +define('SIMPLEPIE_LOCATOR_REMOTE_BODY', 16); + +/** + * All Feed Autodiscovery + * @see SimplePie::set_autodiscovery_level() + */ +define('SIMPLEPIE_LOCATOR_ALL', 31); + +/** + * No known feed type + */ +define('SIMPLEPIE_TYPE_NONE', 0); + +/** + * RSS 0.90 + */ +define('SIMPLEPIE_TYPE_RSS_090', 1); + +/** + * RSS 0.91 (Netscape) + */ +define('SIMPLEPIE_TYPE_RSS_091_NETSCAPE', 2); + +/** + * RSS 0.91 (Userland) + */ +define('SIMPLEPIE_TYPE_RSS_091_USERLAND', 4); + +/** + * RSS 0.91 (both Netscape and Userland) + */ +define('SIMPLEPIE_TYPE_RSS_091', 6); + +/** + * RSS 0.92 + */ +define('SIMPLEPIE_TYPE_RSS_092', 8); + +/** + * RSS 0.93 + */ +define('SIMPLEPIE_TYPE_RSS_093', 16); + +/** + * RSS 0.94 + */ +define('SIMPLEPIE_TYPE_RSS_094', 32); + +/** + * RSS 1.0 + */ +define('SIMPLEPIE_TYPE_RSS_10', 64); + +/** + * RSS 2.0 + */ +define('SIMPLEPIE_TYPE_RSS_20', 128); + +/** + * RDF-based RSS + */ +define('SIMPLEPIE_TYPE_RSS_RDF', 65); + +/** + * Non-RDF-based RSS (truly intended as syndication format) + */ +define('SIMPLEPIE_TYPE_RSS_SYNDICATION', 190); + +/** + * All RSS + */ +define('SIMPLEPIE_TYPE_RSS_ALL', 255); + +/** + * Atom 0.3 + */ +define('SIMPLEPIE_TYPE_ATOM_03', 256); + +/** + * Atom 1.0 + */ +define('SIMPLEPIE_TYPE_ATOM_10', 512); + +/** + * All Atom + */ +define('SIMPLEPIE_TYPE_ATOM_ALL', 768); + +/** + * All feed types + */ +define('SIMPLEPIE_TYPE_ALL', 1023); + +/** + * No construct + */ +define('SIMPLEPIE_CONSTRUCT_NONE', 0); + +/** + * Text construct + */ +define('SIMPLEPIE_CONSTRUCT_TEXT', 1); + +/** + * HTML construct + */ +define('SIMPLEPIE_CONSTRUCT_HTML', 2); + +/** + * XHTML construct + */ +define('SIMPLEPIE_CONSTRUCT_XHTML', 4); + +/** + * base64-encoded construct + */ +define('SIMPLEPIE_CONSTRUCT_BASE64', 8); + +/** + * IRI construct + */ +define('SIMPLEPIE_CONSTRUCT_IRI', 16); + +/** + * A construct that might be HTML + */ +define('SIMPLEPIE_CONSTRUCT_MAYBE_HTML', 32); + +/** + * All constructs + */ +define('SIMPLEPIE_CONSTRUCT_ALL', 63); + +/** + * PCRE for HTML attributes + */ +define('SIMPLEPIE_PCRE_HTML_ATTRIBUTE', '((?:[\x09\x0A\x0B\x0C\x0D\x20]+[^\x09\x0A\x0B\x0C\x0D\x20\x2F\x3E][^\x09\x0A\x0B\x0C\x0D\x20\x2F\x3D\x3E]*(?:[\x09\x0A\x0B\x0C\x0D\x20]*=[\x09\x0A\x0B\x0C\x0D\x20]*(?:"(?:[^"]*)"|\'(?:[^\']*)\'|(?:[^\x09\x0A\x0B\x0C\x0D\x20\x22\x27\x3E][^\x09\x0A\x0B\x0C\x0D\x20\x3E]*)?))?)*)[\x09\x0A\x0B\x0C\x0D\x20]*'); + +/** + * PCRE for XML attributes + */ +define('SIMPLEPIE_PCRE_XML_ATTRIBUTE', '((?:\s+(?:(?:[^\s:]+:)?[^\s:]+)\s*=\s*(?:"(?:[^"]*)"|\'(?:[^\']*)\'))*)\s*'); + +/** + * XML Namespace + */ +define('SIMPLEPIE_NAMESPACE_XML', 'http://www.w3.org/XML/1998/namespace'); + +/** + * Atom 1.0 Namespace + */ +define('SIMPLEPIE_NAMESPACE_ATOM_10', 'http://www.w3.org/2005/Atom'); + +/** + * Atom 0.3 Namespace + */ +define('SIMPLEPIE_NAMESPACE_ATOM_03', 'http://purl.org/atom/ns#'); + +/** + * RDF Namespace + */ +define('SIMPLEPIE_NAMESPACE_RDF', 'http://www.w3.org/1999/02/22-rdf-syntax-ns#'); + +/** + * RSS 0.90 Namespace + */ +define('SIMPLEPIE_NAMESPACE_RSS_090', 'http://my.netscape.com/rdf/simple/0.9/'); + +/** + * RSS 1.0 Namespace + */ +define('SIMPLEPIE_NAMESPACE_RSS_10', 'http://purl.org/rss/1.0/'); + +/** + * RSS 1.0 Content Module Namespace + */ +define('SIMPLEPIE_NAMESPACE_RSS_10_MODULES_CONTENT', 'http://purl.org/rss/1.0/modules/content/'); + +/** + * RSS 2.0 Namespace + * (Stupid, I know, but I'm certain it will confuse people less with support.) + */ +define('SIMPLEPIE_NAMESPACE_RSS_20', ''); + +/** + * DC 1.0 Namespace + */ +define('SIMPLEPIE_NAMESPACE_DC_10', 'http://purl.org/dc/elements/1.0/'); + +/** + * DC 1.1 Namespace + */ +define('SIMPLEPIE_NAMESPACE_DC_11', 'http://purl.org/dc/elements/1.1/'); + +/** + * W3C Basic Geo (WGS84 lat/long) Vocabulary Namespace + */ +define('SIMPLEPIE_NAMESPACE_W3C_BASIC_GEO', 'http://www.w3.org/2003/01/geo/wgs84_pos#'); + +/** + * GeoRSS Namespace + */ +define('SIMPLEPIE_NAMESPACE_GEORSS', 'http://www.georss.org/georss'); + +/** + * Media RSS Namespace + */ +define('SIMPLEPIE_NAMESPACE_MEDIARSS', 'http://search.yahoo.com/mrss/'); + +/** + * Wrong Media RSS Namespace + */ +define('SIMPLEPIE_NAMESPACE_MEDIARSS_WRONG', 'http://search.yahoo.com/mrss'); + +/** + * iTunes RSS Namespace + */ +define('SIMPLEPIE_NAMESPACE_ITUNES', 'http://www.itunes.com/dtds/podcast-1.0.dtd'); + +/** + * XHTML Namespace + */ +define('SIMPLEPIE_NAMESPACE_XHTML', 'http://www.w3.org/1999/xhtml'); + +/** + * IANA Link Relations Registry + */ +define('SIMPLEPIE_IANA_LINK_RELATIONS_REGISTRY', 'http://www.iana.org/assignments/relation/'); + +/** + * Whether we're running on PHP5 + */ +define('SIMPLEPIE_PHP5', version_compare(PHP_VERSION, '5.0.0', '>=')); + +/** + * No file source + */ +define('SIMPLEPIE_FILE_SOURCE_NONE', 0); + +/** + * Remote file source + */ +define('SIMPLEPIE_FILE_SOURCE_REMOTE', 1); + +/** + * Local file source + */ +define('SIMPLEPIE_FILE_SOURCE_LOCAL', 2); + +/** + * fsockopen() file source + */ +define('SIMPLEPIE_FILE_SOURCE_FSOCKOPEN', 4); + +/** + * cURL file source + */ +define('SIMPLEPIE_FILE_SOURCE_CURL', 8); + +/** + * file_get_contents() file source + */ +define('SIMPLEPIE_FILE_SOURCE_FILE_GET_CONTENTS', 16); + +/** + * SimplePie + * + * @package SimplePie + * @version "Razzleberry" + * @copyright 2004-2007 Ryan Parman, Geoffrey Sneddon + * @author Ryan Parman + * @author Geoffrey Sneddon + * @todo Option for type of fetching (cache, not modified header, fetch, etc.) + */ +class SimplePie +{ + /** + * @var array Raw data + * @access private + */ + var $data = array(); + + /** + * @var mixed Error string + * @access private + */ + var $error; + + /** + * @var object Instance of SimplePie_Sanitize (or other class) + * @see SimplePie::set_sanitize_class() + * @access private + */ + var $sanitize; + + /** + * @var string SimplePie Useragent + * @see SimplePie::set_useragent() + * @access private + */ + var $useragent = SIMPLEPIE_USERAGENT; + + /** + * @var string Feed URL + * @see SimplePie::set_feed_url() + * @access private + */ + var $feed_url; + + /** + * @var object Instance of SimplePie_File to use as a feed + * @see SimplePie::set_file() + * @access private + */ + var $file; + + /** + * @var string Raw feed data + * @see SimplePie::set_raw_data() + * @access private + */ + var $raw_data; + + /** + * @var int Timeout for fetching remote files + * @see SimplePie::set_timeout() + * @access private + */ + var $timeout = 10; + + /** + * @var bool Forces fsockopen() to be used for remote files instead + * of cURL, even if a new enough version is installed + * @see SimplePie::force_fsockopen() + * @access private + */ + var $force_fsockopen = false; + + /** + * @var bool Force the given data/URL to be treated as a feed no matter what + * it appears like + * @see SimplePie::force_feed() + * @access private + */ + var $force_feed = false; + + /** + * @var bool Enable/Disable XML dump + * @see SimplePie::enable_xml_dump() + * @access private + */ + var $xml_dump = false; + + /** + * @var bool Enable/Disable Caching + * @see SimplePie::enable_cache() + * @access private + */ + var $cache = true; + + /** + * @var int Cache duration (in seconds) + * @see SimplePie::set_cache_duration() + * @access private + */ + var $cache_duration = 3600; + + /** + * @var int Auto-discovery cache duration (in seconds) + * @see SimplePie::set_autodiscovery_cache_duration() + * @access private + */ + var $autodiscovery_cache_duration = 604800; // 7 Days. + + /** + * @var string Cache location (relative to executing script) + * @see SimplePie::set_cache_location() + * @access private + */ + var $cache_location = './cache'; + + /** + * @var string Function that creates the cache filename + * @see SimplePie::set_cache_name_function() + * @access private + */ + var $cache_name_function = 'md5'; + + /** + * @var bool Reorder feed by date descending + * @see SimplePie::enable_order_by_date() + * @access private + */ + var $order_by_date = true; + + /** + * @var mixed Force input encoding to be set to the follow value + * (false, or anything type-cast to false, disables this feature) + * @see SimplePie::set_input_encoding() + * @access private + */ + var $input_encoding = false; + + /** + * @var int Feed Autodiscovery Level + * @see SimplePie::set_autodiscovery_level() + * @access private + */ + var $autodiscovery = SIMPLEPIE_LOCATOR_ALL; + + /** + * @var string Class used for caching feeds + * @see SimplePie::set_cache_class() + * @access private + */ + var $cache_class = 'SimplePie_Cache'; + + /** + * @var string Class used for locating feeds + * @see SimplePie::set_locator_class() + * @access private + */ + var $locator_class = 'SimplePie_Locator'; + + /** + * @var string Class used for parsing feeds + * @see SimplePie::set_parser_class() + * @access private + */ + var $parser_class = 'SimplePie_Parser'; + + /** + * @var string Class used for fetching feeds + * @see SimplePie::set_file_class() + * @access private + */ + var $file_class = 'SimplePie_File'; + + /** + * @var string Class used for items + * @see SimplePie::set_item_class() + * @access private + */ + var $item_class = 'SimplePie_Item'; + + /** + * @var string Class used for authors + * @see SimplePie::set_author_class() + * @access private + */ + var $author_class = 'SimplePie_Author'; + + /** + * @var string Class used for categories + * @see SimplePie::set_category_class() + * @access private + */ + var $category_class = 'SimplePie_Category'; + + /** + * @var string Class used for enclosures + * @see SimplePie::set_enclosures_class() + * @access private + */ + var $enclosure_class = 'SimplePie_Enclosure'; + + /** + * @var string Class used for Media RSS <media:text> captions + * @see SimplePie::set_caption_class() + * @access private + */ + var $caption_class = 'SimplePie_Caption'; + + /** + * @var string Class used for Media RSS <media:copyright> + * @see SimplePie::set_copyright_class() + * @access private + */ + var $copyright_class = 'SimplePie_Copyright'; + + /** + * @var string Class used for Media RSS <media:credit> + * @see SimplePie::set_credit_class() + * @access private + */ + var $credit_class = 'SimplePie_Credit'; + + /** + * @var string Class used for Media RSS <media:rating> + * @see SimplePie::set_rating_class() + * @access private + */ + var $rating_class = 'SimplePie_Rating'; + + /** + * @var string Class used for Media RSS <media:restriction> + * @see SimplePie::set_restriction_class() + * @access private + */ + var $restriction_class = 'SimplePie_Restriction'; + + /** + * @var string Class used for content-type sniffing + * @see SimplePie::set_content_type_sniffer_class() + * @access private + */ + var $content_type_sniffer_class = 'SimplePie_Content_Type_Sniffer'; + + /** + * @var string Class used for item sources. + * @see SimplePie::set_source_class() + * @access private + */ + var $source_class = 'SimplePie_Source'; + + /** + * @var mixed Set javascript query string parameter (false, or + * anything type-cast to false, disables this feature) + * @see SimplePie::set_javascript() + * @access private + */ + var $javascript = 'js'; + + /** + * @var int Maximum number of feeds to check with autodiscovery + * @see SimplePie::set_max_checked_feeds() + * @access private + */ + var $max_checked_feeds = 10; + + /** + * @var string Web-accessible path to the handler_favicon.php file. + * @see SimplePie::set_favicon_handler() + * @access private + */ + var $favicon_handler = ''; + + /** + * @var string Web-accessible path to the handler_image.php file. + * @see SimplePie::set_image_handler() + * @access private + */ + var $image_handler = ''; + + /** + * @var array Stores the URLs when multiple feeds are being initialized. + * @see SimplePie::set_feed_url() + * @access private + */ + var $multifeed_url = array(); + + /** + * @var array Stores SimplePie objects when multiple feeds initialized. + * @access private + */ + var $multifeed_objects = array(); + + /** + * @var array Stores the get_object_vars() array for use with multifeeds. + * @see SimplePie::set_feed_url() + * @access private + */ + var $config_settings = null; + + /** + * @var integer Stores the number of items to return per-feed with multifeeds. + * @see SimplePie::set_item_limit() + * @access private + */ + var $item_limit = 0; + + /** + * @var array Stores the default attributes to be stripped by strip_attributes(). + * @see SimplePie::strip_attributes() + * @access private + */ + var $strip_attributes = array('bgsound', 'class', 'expr', 'id', 'style', 'onclick', 'onerror', 'onfinish', 'onmouseover', 'onmouseout', 'onfocus', 'onblur', 'lowsrc', 'dynsrc'); + + /** + * @var array Stores the default tags to be stripped by strip_htmltags(). + * @see SimplePie::strip_htmltags() + * @access private + */ + var $strip_htmltags = array('base', 'blink', 'body', 'doctype', 'embed', 'font', 'form', 'frame', 'frameset', 'html', 'iframe', 'input', 'marquee', 'meta', 'noscript', 'object', 'param', 'script', 'style'); + + /** + * The SimplePie class contains feed level data and options + * + * There are two ways that you can create a new SimplePie object. The first + * is by passing a feed URL as a parameter to the SimplePie constructor + * (as well as optionally setting the cache location and cache expiry). This + * will initialise the whole feed with all of the default settings, and you + * can begin accessing methods and properties immediately. + * + * The second way is to create the SimplePie object with no parameters + * at all. This will enable you to set configuration options. After setting + * them, you must initialise the feed using $feed->init(). At that point the + * object's methods and properties will be available to you. This format is + * what is used throughout this documentation. + * + * @access public + * @since 1.0 Preview Release + * @param string $feed_url This is the URL you want to parse. + * @param string $cache_location This is where you want the cache to be stored. + * @param int $cache_duration This is the number of seconds that you want to store the cache file for. + */ + function SimplePie($feed_url = null, $cache_location = null, $cache_duration = null) + { + // Other objects, instances created here so we can set options on them + $this->sanitize =& new SimplePie_Sanitize; + + // Set options if they're passed to the constructor + if ($cache_location !== null) + { + $this->set_cache_location($cache_location); + } + + if ($cache_duration !== null) + { + $this->set_cache_duration($cache_duration); + } + + // Only init the script if we're passed a feed URL + if ($feed_url !== null) + { + $this->set_feed_url($feed_url); + $this->init(); + } + } + + /** + * Used for converting object to a string + */ + function __toString() + { + return md5(serialize($this->data)); + } + + /** + * Remove items that link back to this before destroying this object + */ + function __destruct() + { + if (!empty($this->data['items'])) + { + foreach ($this->data['items'] as $item) + { + $item->__destruct(); + } + unset($this->data['items']); + } + if (!empty($this->data['ordered_items'])) + { + foreach ($this->data['ordered_items'] as $item) + { + $item->__destruct(); + } + unset($this->data['ordered_items']); + } + } + + /** + * Force the given data/URL to be treated as a feed no matter what it + * appears like + * + * @access public + * @since 1.1 + * @param bool $enable Force the given data/URL to be treated as a feed + */ + function force_feed($enable = false) + { + $this->force_feed = (bool) $enable; + } + + /** + * This is the URL of the feed you want to parse. + * + * This allows you to enter the URL of the feed you want to parse, or the + * website you want to try to use auto-discovery on. This takes priority + * over any set raw data. + * + * You can set multiple feeds to mash together by passing an array instead + * of a string for the $url. Remember that with each additional feed comes + * additional processing and resources. + * + * @access public + * @since 1.0 Preview Release + * @param mixed $url This is the URL (or array of URLs) that you want to parse. + * @see SimplePie::set_raw_data() + */ + function set_feed_url($url) + { + if (is_array($url)) + { + $this->multifeed_url = array(); + foreach ($url as $value) + { + $this->multifeed_url[] = SimplePie_Misc::fix_protocol($value, 1); + } + } + else + { + $this->feed_url = SimplePie_Misc::fix_protocol($url, 1); + } + } + + /** + * Provides an instance of SimplePie_File to use as a feed + * + * @access public + * @param object &$file Instance of SimplePie_File (or subclass) + * @return bool True on success, false on failure + */ + function set_file(&$file) + { + if (is_a($file, 'SimplePie_File')) + { + $this->feed_url = $file->url; + $this->file =& $file; + return true; + } + return false; + } + + /** + * Allows you to use a string of RSS/Atom data instead of a remote feed. + * + * If you have a feed available as a string in PHP, you can tell SimplePie + * to parse that data string instead of a remote feed. Any set feed URL + * takes precedence. + * + * @access public + * @since 1.0 Beta 3 + * @param string $data RSS or Atom data as a string. + * @see SimplePie::set_feed_url() + */ + function set_raw_data($data) + { + $this->raw_data = $data; + } + + /** + * Allows you to override the default timeout for fetching remote feeds. + * + * This allows you to change the maximum time the feed's server to respond + * and send the feed back. + * + * @access public + * @since 1.0 Beta 3 + * @param int $timeout The maximum number of seconds to spend waiting to retrieve a feed. + */ + function set_timeout($timeout = 10) + { + $this->timeout = (int) $timeout; + } + + /** + * Forces SimplePie to use fsockopen() instead of the preferred cURL + * functions. + * + * @access public + * @since 1.0 Beta 3 + * @param bool $enable Force fsockopen() to be used + */ + function force_fsockopen($enable = false) + { + $this->force_fsockopen = (bool) $enable; + } + + /** + * Outputs the raw XML content of the feed, after it has gone through + * SimplePie's filters. + * + * Used only for debugging, this function will output the XML content as + * text/xml. When SimplePie reads in a feed, it does a bit of cleaning up + * before trying to parse it. Many parts of the feed are re-written in + * memory, and in the end, you have a parsable feed. XML dump shows you the + * actual XML that SimplePie tries to parse, which may or may not be very + * different from the original feed. + * + * @access public + * @since 1.0 Preview Release + * @param bool $enable Enable XML dump + */ + function enable_xml_dump($enable = false) + { + $this->xml_dump = (bool) $enable; + } + + /** + * Enables/disables caching in SimplePie. + * + * This option allows you to disable caching all-together in SimplePie. + * However, disabling the cache can lead to longer load times. + * + * @access public + * @since 1.0 Preview Release + * @param bool $enable Enable caching + */ + function enable_cache($enable = true) + { + $this->cache = (bool) $enable; + } + + /** + * Set the length of time (in seconds) that the contents of a feed + * will be cached. + * + * @access public + * @param int $seconds The feed content cache duration. + */ + function set_cache_duration($seconds = 3600) + { + $this->cache_duration = (int) $seconds; + } + + /** + * Set the length of time (in seconds) that the autodiscovered feed + * URL will be cached. + * + * @access public + * @param int $seconds The autodiscovered feed URL cache duration. + */ + function set_autodiscovery_cache_duration($seconds = 604800) + { + $this->autodiscovery_cache_duration = (int) $seconds; + } + + /** + * Set the file system location where the cached files should be stored. + * + * @access public + * @param string $location The file system location. + */ + function set_cache_location($location = './cache') + { + $this->cache_location = (string) $location; + } + + /** + * Determines whether feed items should be sorted into reverse chronological order. + * + * @access public + * @param bool $enable Sort as reverse chronological order. + */ + function enable_order_by_date($enable = true) + { + $this->order_by_date = (bool) $enable; + } + + /** + * Allows you to override the character encoding reported by the feed. + * + * @access public + * @param string $encoding Character encoding. + */ + function set_input_encoding($encoding = false) + { + if ($encoding) + { + $this->input_encoding = (string) $encoding; + } + else + { + $this->input_encoding = false; + } + } + + /** + * Set how much feed autodiscovery to do + * + * @access public + * @see SIMPLEPIE_LOCATOR_NONE + * @see SIMPLEPIE_LOCATOR_AUTODISCOVERY + * @see SIMPLEPIE_LOCATOR_LOCAL_EXTENSION + * @see SIMPLEPIE_LOCATOR_LOCAL_BODY + * @see SIMPLEPIE_LOCATOR_REMOTE_EXTENSION + * @see SIMPLEPIE_LOCATOR_REMOTE_BODY + * @see SIMPLEPIE_LOCATOR_ALL + * @param int $level Feed Autodiscovery Level (level can be a + * combination of the above constants, see bitwise OR operator) + */ + function set_autodiscovery_level($level = SIMPLEPIE_LOCATOR_ALL) + { + $this->autodiscovery = (int) $level; + } + + /** + * Allows you to change which class SimplePie uses for caching. + * Useful when you are overloading or extending SimplePie's default classes. + * + * @access public + * @param string $class Name of custom class. + * @link http://php.net/manual/en/keyword.extends.php PHP4 extends documentation + * @link http://php.net/manual/en/language.oop5.basic.php#language.oop5.basic.extends PHP5 extends documentation + */ + function set_cache_class($class = 'SimplePie_Cache') + { + if (SimplePie_Misc::is_subclass_of($class, 'SimplePie_Cache')) + { + $this->cache_class = $class; + return true; + } + return false; + } + + /** + * Allows you to change which class SimplePie uses for auto-discovery. + * Useful when you are overloading or extending SimplePie's default classes. + * + * @access public + * @param string $class Name of custom class. + * @link http://php.net/manual/en/keyword.extends.php PHP4 extends documentation + * @link http://php.net/manual/en/language.oop5.basic.php#language.oop5.basic.extends PHP5 extends documentation + */ + function set_locator_class($class = 'SimplePie_Locator') + { + if (SimplePie_Misc::is_subclass_of($class, 'SimplePie_Locator')) + { + $this->locator_class = $class; + return true; + } + return false; + } + + /** + * Allows you to change which class SimplePie uses for XML parsing. + * Useful when you are overloading or extending SimplePie's default classes. + * + * @access public + * @param string $class Name of custom class. + * @link http://php.net/manual/en/keyword.extends.php PHP4 extends documentation + * @link http://php.net/manual/en/language.oop5.basic.php#language.oop5.basic.extends PHP5 extends documentation + */ + function set_parser_class($class = 'SimplePie_Parser') + { + if (SimplePie_Misc::is_subclass_of($class, 'SimplePie_Parser')) + { + $this->parser_class = $class; + return true; + } + return false; + } + + /** + * Allows you to change which class SimplePie uses for remote file fetching. + * Useful when you are overloading or extending SimplePie's default classes. + * + * @access public + * @param string $class Name of custom class. + * @link http://php.net/manual/en/keyword.extends.php PHP4 extends documentation + * @link http://php.net/manual/en/language.oop5.basic.php#language.oop5.basic.extends PHP5 extends documentation + */ + function set_file_class($class = 'SimplePie_File') + { + if (SimplePie_Misc::is_subclass_of($class, 'SimplePie_File')) + { + $this->file_class = $class; + return true; + } + return false; + } + + /** + * Allows you to change which class SimplePie uses for data sanitization. + * Useful when you are overloading or extending SimplePie's default classes. + * + * @access public + * @param string $class Name of custom class. + * @link http://php.net/manual/en/keyword.extends.php PHP4 extends documentation + * @link http://php.net/manual/en/language.oop5.basic.php#language.oop5.basic.extends PHP5 extends documentation + */ + function set_sanitize_class($class = 'SimplePie_Sanitize') + { + if (SimplePie_Misc::is_subclass_of($class, 'SimplePie_Sanitize')) + { + $this->sanitize =& new $class; + return true; + } + return false; + } + + /** + * Allows you to change which class SimplePie uses for handling feed items. + * Useful when you are overloading or extending SimplePie's default classes. + * + * @access public + * @param string $class Name of custom class. + * @link http://php.net/manual/en/keyword.extends.php PHP4 extends documentation + * @link http://php.net/manual/en/language.oop5.basic.php#language.oop5.basic.extends PHP5 extends documentation + */ + function set_item_class($class = 'SimplePie_Item') + { + if (SimplePie_Misc::is_subclass_of($class, 'SimplePie_Item')) + { + $this->item_class = $class; + return true; + } + return false; + } + + /** + * Allows you to change which class SimplePie uses for handling author data. + * Useful when you are overloading or extending SimplePie's default classes. + * + * @access public + * @param string $class Name of custom class. + * @link http://php.net/manual/en/keyword.extends.php PHP4 extends documentation + * @link http://php.net/manual/en/language.oop5.basic.php#language.oop5.basic.extends PHP5 extends documentation + */ + function set_author_class($class = 'SimplePie_Author') + { + if (SimplePie_Misc::is_subclass_of($class, 'SimplePie_Author')) + { + $this->author_class = $class; + return true; + } + return false; + } + + /** + * Allows you to change which class SimplePie uses for handling category data. + * Useful when you are overloading or extending SimplePie's default classes. + * + * @access public + * @param string $class Name of custom class. + * @link http://php.net/manual/en/keyword.extends.php PHP4 extends documentation + * @link http://php.net/manual/en/language.oop5.basic.php#language.oop5.basic.extends PHP5 extends documentation + */ + function set_category_class($class = 'SimplePie_Category') + { + if (SimplePie_Misc::is_subclass_of($class, 'SimplePie_Category')) + { + $this->category_class = $class; + return true; + } + return false; + } + + /** + * Allows you to change which class SimplePie uses for feed enclosures. + * Useful when you are overloading or extending SimplePie's default classes. + * + * @access public + * @param string $class Name of custom class. + * @link http://php.net/manual/en/keyword.extends.php PHP4 extends documentation + * @link http://php.net/manual/en/language.oop5.basic.php#language.oop5.basic.extends PHP5 extends documentation + */ + function set_enclosure_class($class = 'SimplePie_Enclosure') + { + if (SimplePie_Misc::is_subclass_of($class, 'SimplePie_Enclosure')) + { + $this->enclosure_class = $class; + return true; + } + return false; + } + + /** + * Allows you to change which class SimplePie uses for <media:text> captions + * Useful when you are overloading or extending SimplePie's default classes. + * + * @access public + * @param string $class Name of custom class. + * @link http://php.net/manual/en/keyword.extends.php PHP4 extends documentation + * @link http://php.net/manual/en/language.oop5.basic.php#language.oop5.basic.extends PHP5 extends documentation + */ + function set_caption_class($class = 'SimplePie_Caption') + { + if (SimplePie_Misc::is_subclass_of($class, 'SimplePie_Caption')) + { + $this->caption_class = $class; + return true; + } + return false; + } + + /** + * Allows you to change which class SimplePie uses for <media:copyright> + * Useful when you are overloading or extending SimplePie's default classes. + * + * @access public + * @param string $class Name of custom class. + * @link http://php.net/manual/en/keyword.extends.php PHP4 extends documentation + * @link http://php.net/manual/en/language.oop5.basic.php#language.oop5.basic.extends PHP5 extends documentation + */ + function set_copyright_class($class = 'SimplePie_Copyright') + { + if (SimplePie_Misc::is_subclass_of($class, 'SimplePie_Copyright')) + { + $this->copyright_class = $class; + return true; + } + return false; + } + + /** + * Allows you to change which class SimplePie uses for <media:credit> + * Useful when you are overloading or extending SimplePie's default classes. + * + * @access public + * @param string $class Name of custom class. + * @link http://php.net/manual/en/keyword.extends.php PHP4 extends documentation + * @link http://php.net/manual/en/language.oop5.basic.php#language.oop5.basic.extends PHP5 extends documentation + */ + function set_credit_class($class = 'SimplePie_Credit') + { + if (SimplePie_Misc::is_subclass_of($class, 'SimplePie_Credit')) + { + $this->credit_class = $class; + return true; + } + return false; + } + + /** + * Allows you to change which class SimplePie uses for <media:rating> + * Useful when you are overloading or extending SimplePie's default classes. + * + * @access public + * @param string $class Name of custom class. + * @link http://php.net/manual/en/keyword.extends.php PHP4 extends documentation + * @link http://php.net/manual/en/language.oop5.basic.php#language.oop5.basic.extends PHP5 extends documentation + */ + function set_rating_class($class = 'SimplePie_Rating') + { + if (SimplePie_Misc::is_subclass_of($class, 'SimplePie_Rating')) + { + $this->rating_class = $class; + return true; + } + return false; + } + + /** + * Allows you to change which class SimplePie uses for <media:restriction> + * Useful when you are overloading or extending SimplePie's default classes. + * + * @access public + * @param string $class Name of custom class. + * @link http://php.net/manual/en/keyword.extends.php PHP4 extends documentation + * @link http://php.net/manual/en/language.oop5.basic.php#language.oop5.basic.extends PHP5 extends documentation + */ + function set_restriction_class($class = 'SimplePie_Restriction') + { + if (SimplePie_Misc::is_subclass_of($class, 'SimplePie_Restriction')) + { + $this->restriction_class = $class; + return true; + } + return false; + } + + /** + * Allows you to change which class SimplePie uses for content-type sniffing. + * Useful when you are overloading or extending SimplePie's default classes. + * + * @access public + * @param string $class Name of custom class. + * @link http://php.net/manual/en/keyword.extends.php PHP4 extends documentation + * @link http://php.net/manual/en/language.oop5.basic.php#language.oop5.basic.extends PHP5 extends documentation + */ + function set_content_type_sniffer_class($class = 'SimplePie_Content_Type_Sniffer') + { + if (SimplePie_Misc::is_subclass_of($class, 'SimplePie_Content_Type_Sniffer')) + { + $this->content_type_sniffer_class = $class; + return true; + } + return false; + } + + /** + * Allows you to change which class SimplePie uses item sources. + * Useful when you are overloading or extending SimplePie's default classes. + * + * @access public + * @param string $class Name of custom class. + * @link http://php.net/manual/en/keyword.extends.php PHP4 extends documentation + * @link http://php.net/manual/en/language.oop5.basic.php#language.oop5.basic.extends PHP5 extends documentation + */ + function set_source_class($class = 'SimplePie_Source') + { + if (SimplePie_Misc::is_subclass_of($class, 'SimplePie_Source')) + { + $this->source_class = $class; + return true; + } + return false; + } + + /** + * Allows you to override the default user agent string. + * + * @access public + * @param string $ua New user agent string. + */ + function set_useragent($ua = SIMPLEPIE_USERAGENT) + { + $this->useragent = (string) $ua; + } + + /** + * Set callback function to create cache filename with + * + * @access public + * @param mixed $function Callback function + */ + function set_cache_name_function($function = 'md5') + { + if (is_callable($function)) + { + $this->cache_name_function = $function; + } + } + + /** + * Set javascript query string parameter + * + * @access public + * @param mixed $get Javascript query string parameter + */ + function set_javascript($get = 'js') + { + if ($get) + { + $this->javascript = (string) $get; + } + else + { + $this->javascript = false; + } + } + + /** + * Set options to make SP as fast as possible. Forgoes a + * substantial amount of data sanitization in favor of speed. + * + * @access public + * @param bool $set Whether to set them or not + */ + function set_stupidly_fast($set = false) + { + if ($set) + { + $this->enable_order_by_date(false); + $this->remove_div(false); + $this->strip_comments(false); + $this->strip_htmltags(false); + $this->strip_attributes(false); + $this->set_image_handler(false); + } + } + + /** + * Set maximum number of feeds to check with autodiscovery + * + * @access public + * @param int $max Maximum number of feeds to check + */ + function set_max_checked_feeds($max = 10) + { + $this->max_checked_feeds = (int) $max; + } + + function remove_div($enable = true) + { + $this->sanitize->remove_div($enable); + } + + function strip_htmltags($tags = '', $encode = null) + { + if ($tags === '') + { + $tags = $this->strip_htmltags; + } + $this->sanitize->strip_htmltags($tags); + if ($encode !== null) + { + $this->sanitize->encode_instead_of_strip($tags); + } + } + + function encode_instead_of_strip($enable = true) + { + $this->sanitize->encode_instead_of_strip($enable); + } + + function strip_attributes($attribs = '') + { + if ($attribs === '') + { + $attribs = $this->strip_attributes; + } + $this->sanitize->strip_attributes($attribs); + } + + function set_output_encoding($encoding = 'UTF-8') + { + $this->sanitize->set_output_encoding($encoding); + } + + function strip_comments($strip = false) + { + $this->sanitize->strip_comments($strip); + } + + /** + * Set element/attribute key/value pairs of HTML attributes + * containing URLs that need to be resolved relative to the feed + * + * @access public + * @since 1.0 + * @param array $element_attribute Element/attribute key/value pairs + */ + function set_url_replacements($element_attribute = array('a' => 'href', 'area' => 'href', 'blockquote' => 'cite', 'del' => 'cite', 'form' => 'action', 'img' => array('longdesc', 'src'), 'input' => 'src', 'ins' => 'cite', 'q' => 'cite')) + { + $this->sanitize->set_url_replacements($element_attribute); + } + + /** + * Set the handler to enable the display of cached favicons. + * + * @access public + * @param str $page Web-accessible path to the handler_favicon.php file. + * @param str $qs The query string that the value should be passed to. + */ + function set_favicon_handler($page = false, $qs = 'i') + { + if ($page != false) + { + $this->favicon_handler = $page . '?' . $qs . '='; + } + else + { + $this->favicon_handler = ''; + } + } + + /** + * Set the handler to enable the display of cached images. + * + * @access public + * @param str $page Web-accessible path to the handler_image.php file. + * @param str $qs The query string that the value should be passed to. + */ + function set_image_handler($page = false, $qs = 'i') + { + if ($page != false) + { + $this->sanitize->set_image_handler($page . '?' . $qs . '='); + } + else + { + $this->image_handler = ''; + } + } + + /** + * Set the limit for items returned per-feed with multifeeds. + * + * @access public + * @param integer $limit The maximum number of items to return. + */ + function set_item_limit($limit = 0) + { + $this->item_limit = (int) $limit; + } + + function init() + { + if ((function_exists('version_compare') && version_compare(PHP_VERSION, '4.3.0', '<')) || !extension_loaded('xml') || !extension_loaded('pcre')) + { + return false; + } + if (isset($_GET[$this->javascript])) + { + if (function_exists('ob_gzhandler')) + { + ob_start('ob_gzhandler'); + } + header('Content-type: text/javascript; charset: UTF-8'); + header('Cache-Control: must-revalidate'); + header('Expires: ' . gmdate('D, d M Y H:i:s', time() + 604800) . ' GMT'); // 7 days + ?> +function embed_odeo(link) { + document.writeln('<embed src="http://odeo.com/flash/audio_player_fullsize.swf" pluginspage="http://www.macromedia.com/go/getflashplayer" type="application/x-shockwave-flash" quality="high" width="440" height="80" wmode="transparent" allowScriptAccess="any" flashvars="valid_sample_rate=true&external_url='+link+'"></embed>'); +} + +function embed_quicktime(type, bgcolor, width, height, link, placeholder, loop) { + if (placeholder != '') { + document.writeln('<embed type="'+type+'" style="cursor:hand; cursor:pointer;" href="'+link+'" src="'+placeholder+'" width="'+width+'" height="'+height+'" autoplay="false" target="myself" controller="false" loop="'+loop+'" scale="aspect" bgcolor="'+bgcolor+'" pluginspage="http://www.apple.com/quicktime/download/"></embed>'); + } + else { + document.writeln('<embed type="'+type+'" style="cursor:hand; cursor:pointer;" src="'+link+'" width="'+width+'" height="'+height+'" autoplay="false" target="myself" controller="true" loop="'+loop+'" scale="aspect" bgcolor="'+bgcolor+'" pluginspage="http://www.apple.com/quicktime/download/"></embed>'); + } +} + +function embed_flash(bgcolor, width, height, link, loop, type) { + document.writeln('<embed src="'+link+'" pluginspage="http://www.macromedia.com/go/getflashplayer" type="'+type+'" quality="high" width="'+width+'" height="'+height+'" bgcolor="'+bgcolor+'" loop="'+loop+'"></embed>'); +} + +function embed_flv(width, height, link, placeholder, loop, player) { + document.writeln('<embed src="'+player+'" pluginspage="http://www.macromedia.com/go/getflashplayer" type="application/x-shockwave-flash" quality="high" width="'+width+'" height="'+height+'" wmode="transparent" flashvars="file='+link+'&autostart=false&repeat='+loop+'&showdigits=true&showfsbutton=false"></embed>'); +} + +function embed_wmedia(width, height, link) { + document.writeln('<embed type="application/x-mplayer2" src="'+link+'" autosize="1" width="'+width+'" height="'+height+'" showcontrols="1" showstatusbar="0" showdisplay="0" autostart="0"></embed>'); +} + <?php + exit; + } + + // Pass whatever was set with config options over to the sanitizer. + $this->sanitize->pass_cache_data($this->cache, $this->cache_location, $this->cache_name_function, $this->cache_class); + $this->sanitize->pass_file_data($this->file_class, $this->timeout, $this->useragent, $this->force_fsockopen); + + if ($this->feed_url !== null || $this->raw_data !== null) + { + $this->data = array(); + $this->multifeed_objects = array(); + $cache = false; + + if ($this->feed_url !== null) + { + $parsed_feed_url = SimplePie_Misc::parse_url($this->feed_url); + // Decide whether to enable caching + if ($this->cache && $parsed_feed_url['scheme'] !== '') + { + $cache = call_user_func(array($this->cache_class, 'create'), $this->cache_location, call_user_func($this->cache_name_function, $this->feed_url), 'spc'); + } + // If it's enabled and we don't want an XML dump, use the cache + if ($cache && !$this->xml_dump) + { + // Load the Cache + $this->data = $cache->load(); + if (!empty($this->data)) + { + // If the cache is for an outdated build of SimplePie + if (!isset($this->data['build']) || $this->data['build'] != SIMPLEPIE_BUILD) + { + $cache->unlink(); + $this->data = array(); + } + // If we've hit a collision just rerun it with caching disabled + elseif (isset($this->data['url']) && $this->data['url'] != $this->feed_url) + { + $cache = false; + $this->data = array(); + } + // If we've got a non feed_url stored (if the page isn't actually a feed, or is a redirect) use that URL. + elseif (isset($this->data['feed_url'])) + { + // If the autodiscovery cache is still valid use it. + if ($cache->mtime() + $this->autodiscovery_cache_duration > time()) + { + // Do not need to do feed autodiscovery yet. + if ($this->data['feed_url'] == $this->data['url']) + { + $cache->unlink(); + $this->data = array(); + } + else + { + $this->set_feed_url($this->data['feed_url']); + return $this->init(); + } + } + } + // Check if the cache has been updated + elseif ($cache->mtime() + $this->cache_duration < time()) + { + // If we have last-modified and/or etag set + if (isset($this->data['headers']['last-modified']) || isset($this->data['headers']['etag'])) + { + $headers = array(); + if (isset($this->data['headers']['last-modified'])) + { + $headers['if-modified-since'] = $this->data['headers']['last-modified']; + } + if (isset($this->data['headers']['etag'])) + { + $headers['if-none-match'] = '"' . $this->data['headers']['etag'] . '"'; + } + $file =& new $this->file_class($this->feed_url, $this->timeout/10, 5, $headers, $this->useragent, $this->force_fsockopen); + if ($file->success) + { + if ($file->status_code == 304) + { + $cache->touch(); + return true; + } + else + { + $headers = $file->headers; + } + } + else + { + unset($file); + } + } + } + // If the cache is still valid, just return true + else + { + return true; + } + } + // If the cache is empty, delete it + else + { + $cache->unlink(); + $this->data = array(); + } + } + // If we don't already have the file (it'll only exist if we've opened it to check if the cache has been modified), open it. + if (!isset($file)) + { + if (is_a($this->file, 'SimplePie_File') && $this->file->url == $this->feed_url) + { + $file =& $this->file; + } + else + { + $file =& new $this->file_class($this->feed_url, $this->timeout, 5, null, $this->useragent, $this->force_fsockopen); + } + } + // If the file connection has an error, set SimplePie::error to that and quit + if (!$file->success) + { + $this->error = $file->error; + if (!empty($this->data)) + { + return true; + } + else + { + return false; + } + } + + if (!$this->force_feed) + { + // Check if the supplied URL is a feed, if it isn't, look for it. + $locate =& new $this->locator_class($file, $this->timeout, $this->useragent, $this->file_class, $this->max_checked_feeds, $this->content_type_sniffer_class); + if (!$locate->is_feed($file)) + { + // We need to unset this so that if SimplePie::set_file() has been called that object is untouched + unset($file); + if ($file = $locate->find($this->autodiscovery)) + { + if ($cache) + { + $this->data = array('url' => $this->feed_url, 'feed_url' => $file->url, 'build' => SIMPLEPIE_BUILD); + if (!$cache->save($this)) + { + trigger_error("$cache->name is not writeable", E_USER_WARNING); + } + $cache = call_user_func(array($this->cache_class, 'create'), $this->cache_location, call_user_func($this->cache_name_function, $file->url), 'spc'); + } + $this->feed_url = $file->url; + } + else + { + $this->error = "A feed could not be found at $this->feed_url"; + SimplePie_Misc::error($this->error, E_USER_NOTICE, __FILE__, __LINE__); + return false; + } + } + $locate = null; + } + + $headers = $file->headers; + $data = $file->body; + $sniffer = new $this->content_type_sniffer_class($file); + $sniffed = $sniffer->get_type(); + } + else + { + $data = $this->raw_data; + } + + // Set up array of possible encodings + $encodings = array(); + + // First check to see if input has been overridden. + if ($this->input_encoding !== false) + { + $encodings[] = $this->input_encoding; + } + + $application_types = array('application/xml', 'application/xml-dtd', 'application/xml-external-parsed-entity'); + $text_types = array('text/xml', 'text/xml-external-parsed-entity'); + + // RFC 3023 (only applies to sniffed content) + if (isset($sniffed)) + { + if (in_array($sniffed, $application_types) || substr($sniffed, 0, 12) === 'application/' && substr($sniffed, -4) === '+xml') + { + if (isset($headers['content-type']) && preg_match('/;\x20?charset=([^;]*)/i', $headers['content-type'], $charset)) + { + $encodings[] = strtoupper($charset[1]); + } + $encodings = array_merge($encodings, SimplePie_Misc::xml_encoding($data)); + $encodings[] = 'UTF-8'; + } + elseif (in_array($sniffed, $text_types) || substr($sniffed, 0, 5) === 'text/' && substr($sniffed, -4) === '+xml') + { + if (isset($headers['content-type']) && preg_match('/;\x20?charset=([^;]*)/i', $headers['content-type'], $charset)) + { + $encodings[] = $charset[1]; + } + $encodings[] = 'US-ASCII'; + } + // Text MIME-type default + elseif (substr($sniffed, 0, 5) === 'text/') + { + $encodings[] = 'US-ASCII'; + } + } + + // Fallback to XML 1.0 Appendix F.1/UTF-8/ISO-8859-1 + $encodings = array_merge($encodings, SimplePie_Misc::xml_encoding($data)); + $encodings[] = 'UTF-8'; + $encodings[] = 'ISO-8859-1'; + + // There's no point in trying an encoding twice + $encodings = array_unique($encodings); + + // If we want the XML, just output that with the most likely encoding and quit + if ($this->xml_dump) + { + header('Content-type: text/xml; charset=' . $encodings[0]); + echo $data; + exit; + } + + // Loop through each possible encoding, till we return something, or run out of possibilities + foreach ($encodings as $encoding) + { + // Change the encoding to UTF-8 (as we always use UTF-8 internally) + if ($utf8_data = SimplePie_Misc::change_encoding($data, $encoding, 'UTF-8')) + { + // Create new parser + $parser =& new $this->parser_class(); + + // If it's parsed fine + if ($parser->parse($utf8_data, 'UTF-8')) + { + $this->data = $parser->get_data(); + if ($this->get_type() & ~SIMPLEPIE_TYPE_NONE) + { + if (isset($headers)) + { + $this->data['headers'] = $headers; + } + $this->data['build'] = SIMPLEPIE_BUILD; + + // Cache the file if caching is enabled + if ($cache && !$cache->save($this)) + { + trigger_error("$cache->name is not writeable", E_USER_WARNING); + } + return true; + } + else + { + $this->error = "A feed could not be found at $this->feed_url"; + SimplePie_Misc::error($this->error, E_USER_NOTICE, __FILE__, __LINE__); + return false; + } + } + } + } + // We have an error, just set SimplePie::error to it and quit + $this->error = sprintf('XML error: %s at line %d, column %d', $parser->get_error_string(), $parser->get_current_line(), $parser->get_current_column()); + SimplePie_Misc::error($this->error, E_USER_NOTICE, __FILE__, __LINE__); + return false; + } + elseif (!empty($this->multifeed_url)) + { + $i = 0; + $success = 0; + $this->multifeed_objects = array(); + foreach ($this->multifeed_url as $url) + { + if (SIMPLEPIE_PHP5) + { + // This keyword needs to defy coding standards for PHP4 compatibility + $this->multifeed_objects[$i] = clone($this); + } + else + { + $this->multifeed_objects[$i] = $this; + } + $this->multifeed_objects[$i]->set_feed_url($url); + $success |= $this->multifeed_objects[$i]->init(); + $i++; + } + return (bool) $success; + } + else + { + return false; + } + } + + /** + * Return the error message for the occured error + * + * @access public + * @return string Error message + */ + function error() + { + return $this->error; + } + + function get_encoding() + { + return $this->sanitize->output_encoding; + } + + function handle_content_type($mime = 'text/html') + { + if (!headers_sent()) + { + $header = "Content-type: $mime;"; + if ($this->get_encoding()) + { + $header .= ' charset=' . $this->get_encoding(); + } + else + { + $header .= ' charset=UTF-8'; + } + header($header); + } + } + + function get_type() + { + if (!isset($this->data['type'])) + { + $this->data['type'] = SIMPLEPIE_TYPE_ALL; + if (isset($this->data['child'][SIMPLEPIE_NAMESPACE_ATOM_10]['feed'])) + { + $this->data['type'] &= SIMPLEPIE_TYPE_ATOM_10; + } + elseif (isset($this->data['child'][SIMPLEPIE_NAMESPACE_ATOM_03]['feed'])) + { + $this->data['type'] &= SIMPLEPIE_TYPE_ATOM_03; + } + elseif (isset($this->data['child'][SIMPLEPIE_NAMESPACE_RDF]['RDF'])) + { + if (isset($this->data['child'][SIMPLEPIE_NAMESPACE_RDF]['RDF'][0]['child'][SIMPLEPIE_NAMESPACE_RSS_10]['channel']) + || isset($this->data['child'][SIMPLEPIE_NAMESPACE_RDF]['RDF'][0]['child'][SIMPLEPIE_NAMESPACE_RSS_10]['image']) + || isset($this->data['child'][SIMPLEPIE_NAMESPACE_RDF]['RDF'][0]['child'][SIMPLEPIE_NAMESPACE_RSS_10]['item']) + || isset($this->data['child'][SIMPLEPIE_NAMESPACE_RDF]['RDF'][0]['child'][SIMPLEPIE_NAMESPACE_RSS_10]['textinput'])) + { + $this->data['type'] &= SIMPLEPIE_TYPE_RSS_10; + } + if (isset($this->data['child'][SIMPLEPIE_NAMESPACE_RDF]['RDF'][0]['child'][SIMPLEPIE_NAMESPACE_RSS_090]['channel']) + || isset($this->data['child'][SIMPLEPIE_NAMESPACE_RDF]['RDF'][0]['child'][SIMPLEPIE_NAMESPACE_RSS_090]['image']) + || isset($this->data['child'][SIMPLEPIE_NAMESPACE_RDF]['RDF'][0]['child'][SIMPLEPIE_NAMESPACE_RSS_090]['item']) + || isset($this->data['child'][SIMPLEPIE_NAMESPACE_RDF]['RDF'][0]['child'][SIMPLEPIE_NAMESPACE_RSS_090]['textinput'])) + { + $this->data['type'] &= SIMPLEPIE_TYPE_RSS_090; + } + } + elseif (isset($this->data['child']['']['rss'])) + { + $this->data['type'] &= SIMPLEPIE_TYPE_RSS_ALL; + if (isset($this->data['child']['']['rss'][0]['attribs']['']['version'])) + { + switch (trim($this->data['child']['']['rss'][0]['attribs']['']['version'])) + { + case '0.91': + $this->data['type'] &= SIMPLEPIE_TYPE_RSS_091; + if (isset($this->data['child']['']['rss'][0]['child']['']['skiphours']['hour'][0]['data'])) + { + switch (trim($this->data['child']['']['rss'][0]['child']['']['skiphours']['hour'][0]['data'])) + { + case '0': + $this->data['type'] &= SIMPLEPIE_TYPE_RSS... [truncated message content] |
From: <ge...@us...> - 2009-06-14 18:47:55
|
Revision: 716 http://frhed.svn.sourceforge.net/frhed/?rev=716&view=rev Author: gerundt Date: 2009-06-14 18:47:53 +0000 (Sun, 14 Jun 2009) Log Message: ----------- Web: Init translations pages Modified Paths: -------------- trunk/Web/engine/css/default.css trunk/Web/engine/css/print.css trunk/Web/engine/page.inc Added Paths: ----------- trunk/Web/translations/ trunk/Web/translations/images/ trunk/Web/translations/images/fuzzy.png trunk/Web/translations/images/translated.png trunk/Web/translations/images/untranslated.png trunk/Web/translations/index.php trunk/Web/translations/status_branch.php trunk/Web/translations/status_branch_rss.php trunk/Web/translations/status_trunk.php trunk/Web/translations/status_trunk_rss.php trunk/Web/translations/translations.inc Modified: trunk/Web/engine/css/default.css =================================================================== --- trunk/Web/engine/css/default.css 2009-06-14 18:12:29 UTC (rev 715) +++ trunk/Web/engine/css/default.css 2009-06-14 18:47:53 UTC (rev 716) @@ -20,6 +20,7 @@ a {color: #FF3;} a:hover {color: #AA3;} +a[name] {color: #DDD;} body { background: #111 url(../images/bg.jpg) repeat-x; @@ -125,4 +126,40 @@ } #footer .left, .footer .right {padding: 10px 0;} #footer .right, .footer .right a {color: #555;} -#footer .right a:hover {color: #999;} \ No newline at end of file +#footer .right a:hover {color: #999;} + +/* Inline list */ +ul.inline { + margin: 1em; + padding: 0; +} + +ul.inline li { + margin: 0; + margin-right: 1em; + padding: 0; + display: inline; + list-style: none; +} + +/* Translations Status */ +.status { + border-collapse: collapse; + border: 1px solid #222; +} + +.status th { + padding: 3px; + background: #444; + border: 1px solid #222; +} + +.status td { + padding: 3px; + background: #333; + border: 1px solid #222; +} + +.translated { color: #2D802B; } +.fuzzy { color: #05359B; } +.untranslated { color: #D42323; } \ No newline at end of file Modified: trunk/Web/engine/css/print.css =================================================================== --- trunk/Web/engine/css/print.css 2009-06-14 18:12:29 UTC (rev 715) +++ trunk/Web/engine/css/print.css 2009-06-14 18:47:53 UTC (rev 716) @@ -6,4 +6,40 @@ /* footer */ #footer { display: none; -} \ No newline at end of file +} + +/* Inline list */ +ul.inline { + margin: 1em; + padding: 0; +} + +ul.inline li { + margin: 0; + margin-right: 1em; + padding: 0; + display: inline; + list-style: none; +} + +/* Translations Status */ +.status { + border-collapse: collapse; + border: 1px solid black; +} + +.status th { + padding: 3px; + background: white; + border: 1px solid black; +} + +.status td { + padding: 3px; + background: white; + border: 1px solid black; +} + +.translated { color: black; } +.fuzzy { color: black; } +.untranslated { color: black; } \ No newline at end of file Modified: trunk/Web/engine/page.inc =================================================================== --- trunk/Web/engine/page.inc 2009-06-14 18:12:29 UTC (rev 715) +++ trunk/Web/engine/page.inc 2009-06-14 18:47:53 UTC (rev 716) @@ -169,6 +169,11 @@ $sidenaventry->addSubEntry('http://sourceforge.net/projects/frhed', 'Project Page'); $sidenaventry->addSubEntry('/frhed_pad.xml', 'PAD File'); $sidenaventries[] = $sidenaventry; + $sidenaventry = new SideNavEntry('', 'Translations'); + $sidenaventry->addSubEntry('/translations/', 'Index'); + $sidenaventry->addSubEntry('/translations/status_branch.php', 'Status (Stable Branch)'); + $sidenaventry->addSubEntry('/translations/status_trunk.php', 'Status (Unstable Trunk)'); + $sidenaventries[] = $sidenaventry; $sidenaventry = new SideNavEntry('', 'Support'); $sidenaventry->addSubEntry('http://sourceforge.net/tracker/?atid=1100163&group_id=236485', 'Bugs'); $sidenaventry->addSubEntry('http://sourceforge.net/tracker/?atid=1100166&group_id=236485', 'Feature Requests'); Added: trunk/Web/translations/images/fuzzy.png =================================================================== (Binary files differ) Property changes on: trunk/Web/translations/images/fuzzy.png ___________________________________________________________________ Added: svn:mime-type + application/octet-stream Added: trunk/Web/translations/images/translated.png =================================================================== (Binary files differ) Property changes on: trunk/Web/translations/images/translated.png ___________________________________________________________________ Added: svn:mime-type + application/octet-stream Added: trunk/Web/translations/images/untranslated.png =================================================================== (Binary files differ) Property changes on: trunk/Web/translations/images/untranslated.png ___________________________________________________________________ Added: svn:mime-type + application/octet-stream Added: trunk/Web/translations/index.php =================================================================== --- trunk/Web/translations/index.php (rev 0) +++ trunk/Web/translations/index.php 2009-06-14 18:47:53 UTC (rev 716) @@ -0,0 +1,21 @@ +<?php + include('../engine/page.inc'); + + $page = new Page; + $page->addRssFeed('status_branch_rss.php', 'Frhed Translations Status (Stable Branch)'); + $page->addRssFeed('status_trunk_rss.php', 'Frhed Translations Status (Unstable Trunk)'); + $page->printHead('Translations - Frhed'); + +?> +<h2>Translations</h2> +<p>We currently have Frhed translated into the languages listed below:</p> +<p>...</p> +<h3><a name="status">Status</a></h3> +<p>The following two pages inform you about the translations status of the stable and developer version of Frhed:</p> +<ul> + <li><a href="status_branch.php">Stable Version (Branch)</a> <?php $page->printRssFeedLink('status_branch_rss.php'); ?></li> + <li><a href="status_trunk.php">Unstable Version (Trunk)</a> <?php $page->printRssFeedLink('status_trunk_rss.php'); ?></li> +</ul> +<?php + $page->printFoot(); +?> \ No newline at end of file Added: trunk/Web/translations/status_branch.php =================================================================== --- trunk/Web/translations/status_branch.php (rev 0) +++ trunk/Web/translations/status_branch.php 2009-06-14 18:47:53 UTC (rev 716) @@ -0,0 +1,21 @@ +<?php + include('../engine/page.inc'); + include('translations.inc'); + + $page = new Page; + $page->addRssFeed('status_branch_rss.php'); + $page->printHead('Translations Status (Stable Branch) - Frhed'); + + $page->printRssHeading('Translations Status (Stable Branch)', 'status_branch_rss.php'); + try { + $status = New TranslationsStatus('status_branch.xml'); + $status->svnUrl = 'http://frhed.svn.sourceforge.net/viewvc/frhed/branches/R1_6/Translations/'; + $status->printTOC(); + $status->printStatus(); + $status->printTranslators(); + } + catch (Exception $ex) { //If problems with translations status... + print("<p>The translations status is currently not available...</p>\n"); + } + $page->printFoot(); +?> \ No newline at end of file Added: trunk/Web/translations/status_branch_rss.php =================================================================== --- trunk/Web/translations/status_branch_rss.php (rev 0) +++ trunk/Web/translations/status_branch_rss.php 2009-06-14 18:47:53 UTC (rev 716) @@ -0,0 +1,18 @@ +<?php + //header('Content-type: application/rss+xml'); + + include('translations.inc'); + + try { + $status = New TranslationsStatus('status_branch.xml'); + $status->version = 'Stable Branch'; + $status->svnUrl = 'http://frhed.svn.sourceforge.net/viewvc/frhed/branches/R1_6/Translations/'; + $status->rssLink = 'http://frhed.sourceforge.net/translations/status_branch.php'; + $status->printRSS(); + } + catch (Exception $ex) { //If problems with translations status... + print("<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n"); + print("<rss version=\"2.0\">\n"); + print("</rss>\n"); + } +?> \ No newline at end of file Added: trunk/Web/translations/status_trunk.php =================================================================== --- trunk/Web/translations/status_trunk.php (rev 0) +++ trunk/Web/translations/status_trunk.php 2009-06-14 18:47:53 UTC (rev 716) @@ -0,0 +1,21 @@ +<?php + include('../engine/page.inc'); + include('translations.inc'); + + $page = new Page; + $page->addRssFeed('status_trunk_rss.php'); + $page->printHead('Translations Status (Unstable Trunk) - Frhed'); + + $page->printRssHeading('Translations Status (Unstable Trunk)', 'status_trunk_rss.php'); + try { + $status = New TranslationsStatus('status_trunk.xml'); + $status->svnUrl = 'http://frhed.svn.sourceforge.net/viewvc/frhed/trunk/Translations/'; + $status->printTOC(); + $status->printStatus(); + $status->printTranslators(); + } + catch (Exception $ex) { //If problems with translations status... + print("<p>The translations status is currently not available...</p>\n"); + } + $page->printFoot(); +?> \ No newline at end of file Added: trunk/Web/translations/status_trunk_rss.php =================================================================== --- trunk/Web/translations/status_trunk_rss.php (rev 0) +++ trunk/Web/translations/status_trunk_rss.php 2009-06-14 18:47:53 UTC (rev 716) @@ -0,0 +1,18 @@ +<?php + header('Content-type: application/rss+xml'); + + include('translations.inc'); + + try { + $status = New TranslationsStatus('status_trunk.xml'); + $status->version = 'Unstable Trunk'; + $status->svnUrl = 'http://frhed.svn.sourceforge.net/viewvc/frhed/trunk/Translations/'; + $status->rssLink = 'http://frhed.sourceforge.net/translations/status_trunk.php'; + $status->printRSS(); + } + catch (Exception $ex) { //If problems with translations status... + print("<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n"); + print("<rss version=\"2.0\">\n"); + print("</rss>\n"); + } +?> \ No newline at end of file Added: trunk/Web/translations/translations.inc =================================================================== --- trunk/Web/translations/translations.inc (rev 0) +++ trunk/Web/translations/translations.inc 2009-06-14 18:47:53 UTC (rev 716) @@ -0,0 +1,283 @@ +<?php +// This program is free software; you can redistribute it and/or modify +// it under the terms of the GNU General Public License as published by +// the Free Software Foundation; either version 2 of the License, or +// (at your option) any later version. +// +// This program is distributed in the hope that it will be useful, +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +// GNU General Public License for more details. + + /** + * ... + */ + class TranslationsStatus { + public $version; + public $svnUrl; + public $rssLink; + + private $_status; + + /** + * Constructor + */ + public function __construct($filename) { + $this->version = ''; + $this->svnUrl = ''; + $this->rssLink = ''; + + $this->_status = null; + + if (file_exists($filename)) { //if XML file exists... + $xml = @simplexml_load_file($filename); + if ($xml) { //if XML file was valid... + $this->_status = $xml; + } + else //if XML file was NOT valid... + throw new Exception('File not valid.'); + } + else //if XML file NOT exists... + throw new Exception('File not found.'); + } + + /** + * ... + * + * Based partially on the TortoiseSVN Drupal module: + * @link http://tortoisesvn.tigris.org/svn/tortoisesvn/trunk/contrib/drupal-modules/module/tortoisesvn.module + */ + private function getStatusGraph($count, $translated, $fuzzy, $untranslated) { + // Calculate width of bars + $wc = 150; + $wt = round($wc * $translated / $count); + $wf = round($wc * $fuzzy / $count); + $wu = round($wc * $untranslated / $count); + + // Make sure that each bar is at least 2px wide if its value is > 0 + if (($wt<2) && ($translated>0)) $wt=2; + if (($wf<2) && ($fuzzy>0)) $wf=2; + if (($wu<2) && ($untranslated>0)) $wu=2; + + // Make sure total width stays constant by determining the widest bar + // and subtracting the width of the shorter bars from it. + if ($wt+$wf+$wu!=$wc) { + if ($wt>=$wf && $wt>=$wu) { + $wt = $wc-$wf-$wu; + } else if ($wf>=$wt && $wf>=$wu) { + $wf = $wc-$wt-$wu; + } else { + $wu = $wc-$wt-$wf; + } + } + + // Calculate percentages + $pt = ($translated * 100) / $count; + $pf = ($fuzzy * 100) / $count; + $pu = ($untranslated * 100) / $count; + + $temp = ""; + if ($wt > 0) + $temp .= "<img src=\"images/translated.png\" alt=\"Translated\" title=\"Translated: " . round($pt, 1) . "%\" width=\"$wt\" height=\"16\">"; + if ($wf > 0) + $temp .= "<img src=\"images/fuzzy.png\" alt=\"Fuzzy\" title=\"Fuzzy: " . round($pf, 1) . "%\" width=\"$wf\" height=\"16\">"; + if ($wu > 0) + $temp .= "<img src=\"images/untranslated.png\" alt=\"Untranslated\" title=\"Untranslated: " . round($pu, 1) . "%\" width=\"$wu\" height=\"16\">"; + + return $temp; + } + + /** + * ... + */ + private function getStatusGraphLegend() { + $temp = "<ul class=\"inline\">\n"; + $temp .= " <li><img src=\"images/translated.png\" alt=\"*\" width=\"16\" height=\"16\"> Translated</li>\n"; + $temp .= " <li><img src=\"images/fuzzy.png\" alt=\"*\" width=\"16\" height=\"16\"> Fuzzy</li>\n"; + $temp .= " <li><img src=\"images/untranslated.png\" alt=\"*\" width=\"16\" height=\"16\"> Untranslated</li>\n"; + $temp .= "</ul>\n"; + return $temp; + } + + /** + * ... + */ + public function printTOC() { + $status = $this->_status; + + $temp = "<p>Status from <strong>" . $status->update . "</strong>:</p>\n"; + $temp .= "<ul>\n"; + foreach ($status->translations as $translations) { //for all projects... + $project = (string)$translations->attributes()->project; + $temp .= " <li><a href=\"#" . $project ."\">" . $project . "</a></li>\n"; + } + $temp .= " <li><a href=\"#translators\">Translators</a></li>\n"; + $temp .= "</ul>\n"; + print($temp); + } + + /** + * ... + */ + public function printStatus() { + $status = $this->_status; + + $temp = ''; + foreach ($status->translations as $translations) { //for all projects... + $project = (string)$translations->attributes()->project; + $temp .= "<h3><a name=\"" . $project . "\">" . $project . "</a></h3>\n"; + $temp .= "<table class=\"status\">\n"; + $temp .= " <tr>\n"; + $temp .= " <th class=\"left\">Language</th>\n"; + $temp .= " <th class=\"center\">Graph</th>\n"; + $temp .= " <th class=\"right translated\">Translated</th>\n"; + $temp .= " <th class=\"right fuzzy\">Fuzzy</th>\n"; + $temp .= " <th class=\"right untranslated\">Untranslated</th>\n"; + $temp .= " <th class=\"center\">Last Update</th>\n"; + $temp .= " </tr>\n"; + //TODO: Sort languages!? + foreach ($translations as $translation) { //for all translations... + $language_name = (string)$translation->language; + if ($language_name != 'en-US') { //If NOT English... + $file_name = (string)$translation->file; + $translation_update = (string)$translation->update; + $strings = $translation->strings; + $strings_count = (int)$strings->count; + $strings_translated = (int)$strings->translated; + $strings_fuzzy = (int)$strings->fuzzy; + $strings_untranslated = (int)$strings->untranslated; + + $temp .= " <tr>\n"; + $temp .= " <td class=\"left\"><a href=\"" . $this->svnUrl . $project . '/' . $file_name . "\" rel=\"nofollow\">" . $language_name . "</a></td>\n"; + $temp .= " <td class=\"center\">" . $this->getStatusGraph($strings_count, $strings_translated, $strings_fuzzy, $strings_untranslated) . "</td>\n"; + $temp .= " <td class=\"right translated\">" . $strings_translated . "</td>\n"; + $temp .= " <td class=\"right fuzzy\">" . $strings_fuzzy . "</td>\n"; + $temp .= " <td class=\"right untranslated\">" . $strings_untranslated . "</td>\n"; + $temp .= " <td class=\"center\">" . $translation_update . "</td>\n"; + $temp .= " </tr>\n"; + } + else { //If English... + $english_file_name = (string)$translation->file; + $english_translation_update = (string)$translation->update; + $english_strings_count = (int)$translation->strings->translated; + } + } + $temp .= " <tr>\n"; + $temp .= " <td class=\"left\"><a href=\"" . $this->svnUrl . $project . '/' . $english_file_name . "\" rel=\"nofollow\">English (Template)</a></td>\n"; + $temp .= " <td class=\"center\"></td>\n"; + $temp .= " <td colspan=\"3\" class=\"center\">Total: " . $english_strings_count . "</td>\n"; + $temp .= " <td class=\"center\">" . $english_translation_update . "</td>\n"; + $temp .= " </tr>\n"; + $temp .= "</table>\n"; + $temp .= $this->getStatusGraphLegend(); + } + print($temp); + } + + /** + * ... + */ + public function printRSS() { + $status = $this->_status; + + $temp = "<?xml version=\"1.0\" encoding=\"ISO-8859-1\"?>\n"; + $temp .= "<rss version=\"2.0\">\n"; + $temp .= " <channel>\n"; + $temp .= " <title>Frhed Translations Status (" . $this->version . ")</title>\n"; + $temp .= " <link>http://frhed.sourceforge.net/</link>\n"; + $temp .= " <description>...</description>\n"; + foreach ($status->translations as $translations) { //for all projects... + $project = (string)$translations->attributes()->project; + + $temp .= " <item>\n"; + $temp .= " <title>" . $project ." Status [" . $status->update . "]</title>\n"; + $temp .= " <description>\n"; + $temp .= " <![CDATA[\n"; + $temp .= "<ul>\n"; + //TODO: Sort languages!? + foreach ($translations as $translation) { //for all translations... + $language_name = (string)$translation->language; + if ($language_name != 'en-US') { //If NOT English... + $file_name = (string)$translation->file; + $translation_update = (string)$translation->update; + $strings_untranslated = (int)$translation->strings->untranslated; + + $temp .= " <li>\n"; + $temp .= " <a href=\"" . $this->svnUrl . $project . '/' . $file_name . "\">" . $language_name . "</a> (" . $strings_untranslated . " Untranslated)\n"; + $temp .= " </li>\n"; + } + } + $temp .= "</ul>\n"; + $temp .= " ]]>\n"; + $temp .= " </description>\n"; + $temp .= " <guid>" . $project . "_" . $status->update . "</guid>\n"; + $temp .= " <link>" . $this->rssLink . "#" . $project . "</link>\n"; + $temp .= " </item>\n"; + } + $temp .= " </channel>\n"; + $temp .= "</rss>\n"; + print($temp); + } + + /** + * ... + */ + public function printTranslators() { + $projects = array(); + $languages = array(); + + $status = $this->_status; + foreach ($status->translations as $translations) { //for all projects... + $project = (string)$translations->attributes()->project; + $projects[$project] = $project; + + //TODO: Sort languages!? + foreach ($translations as $translation) { //for all translations... + $language_name = (string)$translation->language; + + if ($language_name != 'en-US') { //If NOT English... + $temp = ''; + foreach ($translation->translators as $translators) { //for all translators... + foreach ($translators as $translator) { //for each translator... + $translator_name = (string)$translator->name; + $translator_mail = (string)$translator->mail; + $maintainer = (bool)$translator->attributes()->maintainer; + + if ($maintainer) + $temp .= "<strong title=\"Maintainer\">"; + if ($translator_mail != '') + $temp .= "<a href=\"mailto:" . $translator_mail . "\" title=\"" . htmlentities($translator_name) . " <" . $translator_mail . ">\">" . htmlentities($translator_name) . "</a>"; + else + $temp .= $translator_name; + if ($maintainer) + $temp .= "</strong>"; + $temp .= "<br>"; + } + } + + $languages[$language_name][$project] = $temp; + } + } + } + + $temp = "<h3><a name=\"translators\">Translators</a></h3>\n"; + $temp .= "<table class=\"status\">\n"; + $temp .= " <tr>\n"; + $temp .= " <th class=\"left\">Language</th>\n"; + foreach ($projects as $project) { //For all projects... + $temp .= " <th class=\"left\">" . $project . "</th>\n"; + } + $temp .= " </tr>\n"; + foreach ($languages as $language_name => $language_translators) { //For all languages... + $temp .= " <tr>\n"; + $temp .= " <td class=\"left\">" . $language_name . "</td>\n"; + foreach ($projects as $project_key => $project_name) { //For all projects... + $temp .= " <td class=\"left\">" . @$language_translators[$project_key] . "</td>"; + } + $temp .= " </tr>\n"; + } + $temp .= "</table>\n"; + print($temp); + } + } +?> \ No newline at end of file This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <ge...@us...> - 2009-06-25 17:57:06
|
Revision: 747 http://frhed.svn.sourceforge.net/frhed/?rev=747&view=rev Author: gerundt Date: 2009-06-25 17:56:14 +0000 (Thu, 25 Jun 2009) Log Message: ----------- Web: Update PAD file for Frhed 1.6.0 Modified Paths: -------------- trunk/Web/.htaccess trunk/Web/frhed_pad.xml Modified: trunk/Web/.htaccess =================================================================== --- trunk/Web/.htaccess 2009-06-23 17:54:27 UTC (rev 746) +++ trunk/Web/.htaccess 2009-06-25 17:56:14 UTC (rev 747) @@ -4,4 +4,4 @@ </FilesMatch> #Redirect PAD download URL to current Frhed version... -Redirect permanent /Frhed-Setup.exe http://downloads.sourceforge.net/frhed/Frhed-1.4.2-Setup.exe \ No newline at end of file +Redirect permanent /Frhed-Setup.exe http://downloads.sourceforge.net/frhed/Frhed-1.6.0-Setup.exe \ No newline at end of file Modified: trunk/Web/frhed_pad.xml =================================================================== --- trunk/Web/frhed_pad.xml 2009-06-23 17:54:27 UTC (rev 746) +++ trunk/Web/frhed_pad.xml 2009-06-25 17:56:14 UTC (rev 747) @@ -34,9 +34,9 @@ </Company_Info> <Program_Info> <Program_Name>Frhed</Program_Name> - <Program_Version>1.4.2</Program_Version> - <Program_Release_Month>04</Program_Release_Month> - <Program_Release_Day>07</Program_Release_Day> + <Program_Version>1.6.0</Program_Version> + <Program_Release_Month>06</Program_Release_Month> + <Program_Release_Day>23</Program_Release_Day> <Program_Release_Year>2009</Program_Release_Year> <Program_Cost_Dollars /> <Program_Cost_Other_Code /> @@ -45,15 +45,15 @@ <Program_Release_Status>New Release</Program_Release_Status> <Program_Install_Support>Install and Uninstall</Program_Install_Support> <Program_OS_Support>Win95,Win98,WinME,WinNT 4.x,Windows2000,WinXP,Windows2003,Windows Vista Starter,Windows Vista Home Basic,Windows Vista Home Premium,Windows Vista Business,Windows Vista Enterprise,Windows Vista Ultimate,Windows Vista Home Basic x64,Windows Vista Home Premium x64,Windows Vista Business x64,Windows Vista Enterprise x64,Windows Vista Ultimate x64</Program_OS_Support> - <Program_Language>English</Program_Language> + <Program_Language>Dutch,English,French,German</Program_Language> <Program_Change_Info /> <Program_Specific_Category>Utilities</Program_Specific_Category> <Program_Category_Class>System Utilities::Text/Document Editors</Program_Category_Class> <Program_System_Requirements /> <File_Info> - <File_Size_Bytes>531238</File_Size_Bytes> - <File_Size_K>518.79</File_Size_K> - <File_Size_MB>0.51</File_Size_MB> + <File_Size_Bytes>725124</File_Size_Bytes> + <File_Size_K>708.13</File_Size_K> + <File_Size_MB>0.69</File_Size_MB> </File_Info> <Expire_Info> <Has_Expire_Info>N</Has_Expire_Info> @@ -85,7 +85,7 @@ </Application_URLs> <Download_URLs> <Primary_Download_URL>http://frhed.sourceforge.net/Frhed-Setup.exe</Primary_Download_URL> - <Secondary_Download_URL>http://downloads.sourceforge.net/frhed/Frhed-1.4.2-Setup.exe</Secondary_Download_URL> + <Secondary_Download_URL>http://downloads.sourceforge.net/frhed/Frhed-1.6.0-Setup.exe</Secondary_Download_URL> <Additional_Download_URL_1 /> <Additional_Download_URL_2 /> </Download_URLs> This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <ge...@us...> - 2009-08-02 16:19:41
|
Revision: 791 http://frhed.svn.sourceforge.net/frhed/?rev=791&view=rev Author: gerundt Date: 2009-08-02 16:19:34 +0000 (Sun, 02 Aug 2009) Log Message: ----------- Web: Use a central engine page Modified Paths: -------------- trunk/Web/index.php trunk/Web/screenshots/index.php trunk/Web/translations/index.php trunk/Web/translations/status_branch.php trunk/Web/translations/status_trunk.php Added Paths: ----------- trunk/Web/engine/engine.inc Added: trunk/Web/engine/engine.inc =================================================================== --- trunk/Web/engine/engine.inc (rev 0) +++ trunk/Web/engine/engine.inc 2009-08-02 16:19:34 UTC (rev 791) @@ -0,0 +1,13 @@ +<?php +// This program is free software; you can redistribute it and/or modify +// it under the terms of the GNU General Public License as published by +// the Free Software Foundation; either version 2 of the License, or +// (at your option) any later version. +// +// This program is distributed in the hope that it will be useful, +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +// GNU General Public License for more details. + + include('page.inc'); +?> Modified: trunk/Web/index.php =================================================================== --- trunk/Web/index.php 2009-08-01 15:02:06 UTC (rev 790) +++ trunk/Web/index.php 2009-08-02 16:19:34 UTC (rev 791) @@ -1,5 +1,5 @@ <?php - include('engine/page.inc'); + include('engine/engine.inc'); include('engine/simplepie/simplepie.inc'); $page = new Page; Modified: trunk/Web/screenshots/index.php =================================================================== --- trunk/Web/screenshots/index.php 2009-08-01 15:02:06 UTC (rev 790) +++ trunk/Web/screenshots/index.php 2009-08-02 16:19:34 UTC (rev 791) @@ -1,5 +1,5 @@ <?php - include('../engine/page.inc'); + include('../engine/engine.inc'); $page = new Page; $page->printHead('Screenshots - Frhed'); Modified: trunk/Web/translations/index.php =================================================================== --- trunk/Web/translations/index.php 2009-08-01 15:02:06 UTC (rev 790) +++ trunk/Web/translations/index.php 2009-08-02 16:19:34 UTC (rev 791) @@ -1,5 +1,5 @@ <?php - include('../engine/page.inc'); + include('../engine/engine.inc'); include('translations.inc'); $page = new Page; Modified: trunk/Web/translations/status_branch.php =================================================================== --- trunk/Web/translations/status_branch.php 2009-08-01 15:02:06 UTC (rev 790) +++ trunk/Web/translations/status_branch.php 2009-08-02 16:19:34 UTC (rev 791) @@ -1,5 +1,5 @@ <?php - include('../engine/page.inc'); + include('../engine/engine.inc'); include('translations.inc'); $page = new Page; Modified: trunk/Web/translations/status_trunk.php =================================================================== --- trunk/Web/translations/status_trunk.php 2009-08-01 15:02:06 UTC (rev 790) +++ trunk/Web/translations/status_trunk.php 2009-08-02 16:19:34 UTC (rev 791) @@ -1,5 +1,5 @@ <?php - include('../engine/page.inc'); + include('../engine/engine.inc'); include('translations.inc'); $page = new Page; This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <ge...@us...> - 2009-08-02 17:10:47
|
Revision: 792 http://frhed.svn.sourceforge.net/frhed/?rev=792&view=rev Author: gerundt Date: 2009-08-02 17:10:27 +0000 (Sun, 02 Aug 2009) Log Message: ----------- Web: Add dummy translation functions Modified Paths: -------------- trunk/Web/engine/engine.inc trunk/Web/index.php Modified: trunk/Web/engine/engine.inc =================================================================== --- trunk/Web/engine/engine.inc 2009-08-02 16:19:34 UTC (rev 791) +++ trunk/Web/engine/engine.inc 2009-08-02 17:10:27 UTC (rev 792) @@ -10,4 +10,28 @@ // GNU General Public License for more details. include('page.inc'); + + function __($text) { + $numargs = func_num_args(); + if ($numargs > 1 ) { //if more the one argument... + $args = func_get_args(); + array_shift($args); + return vsprintf($text, $args); + } + else { //if one argument... + return $text; + } + } + + function __e($text) { + $numargs = func_num_args(); + if ($numargs > 1 ) { //if more the one argument... + $args = func_get_args(); + array_shift($args); + vprintf($text, $args); + } + else { //if one argument... + echo $text; + } + } ?> Modified: trunk/Web/index.php =================================================================== --- trunk/Web/index.php 2009-08-02 16:19:34 UTC (rev 791) +++ trunk/Web/index.php 2009-08-02 17:10:27 UTC (rev 792) @@ -3,11 +3,11 @@ include('engine/simplepie/simplepie.inc'); $page = new Page; - $page->setDescription('Frhed is an binary file editor for Windows. It is small but has many advanced features like ability to load big files partially.'); - $page->setKeywords('Frhed, free, hex editor, binary file, load partially, hexdump, compare'); - $page->addRssFeed('http://sourceforge.net/export/rss2_projnews.php?group_id=236485', 'Frhed News'); - $page->addRssFeed('http://sourceforge.net/export/rss2_projfiles.php?group_id=236485', 'Frhed File Releases'); - $page->printHead('Frhed - Free hex editor'); + $page->setDescription(__('Frhed is an binary file editor for Windows. It is small but has many advanced features like ability to load big files partially.')); + $page->setKeywords(__('Frhed, free, hex editor, binary file, load partially, hexdump, compare')); + $page->addRssFeed('http://sourceforge.net/export/rss2_projnews.php?group_id=236485', __('Frhed News')); + $page->addRssFeed('http://sourceforge.net/export/rss2_projfiles.php?group_id=236485', __('Frhed File Releases')); + $page->printHead(__('Frhed - Free hex editor')); ?> <p>Frhed is an binary file editor for Windows. It is small but has many advanced features like ability to load big files partially.</p> @@ -21,7 +21,7 @@ </ul> <?php - $page->printRssHeading('News', 'http://sourceforge.net/export/rss2_projnews.php?group_id=236485'); + $page->printRssHeading(__('News'), 'http://sourceforge.net/export/rss2_projnews.php?group_id=236485'); $feed = new SimplePie(); $feed->set_feed_url('http://sourceforge.net/export/rss2_projnews.php?group_id=236485'); $feed->set_cache_location('./engine/simplepie/cache'); @@ -35,7 +35,7 @@ ?> <?php - $page->printRssHeading('Download', 'http://sourceforge.net/export/rss2_projfiles.php?group_id=236485'); + $page->printRssHeading(__('Download'), 'http://sourceforge.net/export/rss2_projfiles.php?group_id=236485'); ?> <h3>Stable releases</h3> <ul> This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <ge...@us...> - 2009-08-05 11:33:14
|
Revision: 799 http://frhed.svn.sourceforge.net/frhed/?rev=799&view=rev Author: gerundt Date: 2009-08-05 11:33:02 +0000 (Wed, 05 Aug 2009) Log Message: ----------- Web: Simplify page title handling Modified Paths: -------------- trunk/Web/engine/page.inc trunk/Web/index.php trunk/Web/screenshots/index.php trunk/Web/translations/index.php trunk/Web/translations/status_branch.php trunk/Web/translations/status_trunk.php Modified: trunk/Web/engine/page.inc =================================================================== --- trunk/Web/engine/page.inc 2009-08-04 18:05:30 UTC (rev 798) +++ trunk/Web/engine/page.inc 2009-08-05 11:33:02 UTC (rev 799) @@ -23,7 +23,7 @@ */ function Page() { $this->_lang = 'en'; - $this->_title = 'Frhed'; + $this->_title = ''; $this->_charset = 'UTF-8'; $this->_description = ''; $this->_keywords = ''; @@ -76,13 +76,16 @@ * print the head from the page */ function printHead($title = '') { - if ($title != '') { - $this->_title = $title; - } + $this->_title = $title; $temp = "<!DOCTYPE html PUBLIC \"-//W3C//DTD XHTML 1.1//EN\" \"http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd\">\n"; $temp .= "<html xmlns=\"http://www.w3.org/1999/xhtml\" xml:lang=\"" . $this->_lang . "\">\n"; $temp .= "<head>\n"; - $temp .= " <title>" . $this->_title . "</title>\n"; + if ($this->_title != '') { + $temp .= " <title>" . $this->_title . " - " . __('Frhed') . "</title>\n"; + } + else { + $temp .= " <title>" . __('Frhed - Free hex editor') . "</title>\n"; + } $temp .= " <meta http-equiv=\"content-type\" content=\"text/html; charset=" . $this->_charset . "\"/>\n"; if ($this->_description != '') { $temp .= " <meta name=\"description\" content=\"" . $this->_description . "\"/>\n"; Modified: trunk/Web/index.php =================================================================== --- trunk/Web/index.php 2009-08-04 18:05:30 UTC (rev 798) +++ trunk/Web/index.php 2009-08-05 11:33:02 UTC (rev 799) @@ -7,7 +7,7 @@ $page->setKeywords(__('Frhed, free, hex editor, binary file, load partially, hexdump, compare')); $page->addRssFeed('http://sourceforge.net/export/rss2_projnews.php?group_id=236485', __('Frhed News')); $page->addRssFeed('http://sourceforge.net/export/rss2_projfiles.php?group_id=236485', __('Frhed File Releases')); - $page->printHead(__('Frhed - Free hex editor')); + $page->printHead(); ?> <p>Frhed is an binary file editor for Windows. It is small but has many advanced features like ability to load big files partially.</p> Modified: trunk/Web/screenshots/index.php =================================================================== --- trunk/Web/screenshots/index.php 2009-08-04 18:05:30 UTC (rev 798) +++ trunk/Web/screenshots/index.php 2009-08-05 11:33:02 UTC (rev 799) @@ -2,7 +2,7 @@ include('../engine/engine.inc'); $page = new Page; - $page->printHead(__('Screenshots - Frhed')); + $page->printHead(__('Screenshots')); $page->printHeading(__('Screenshots')); $page->printSubHeading(__('Main Window')); Modified: trunk/Web/translations/index.php =================================================================== --- trunk/Web/translations/index.php 2009-08-04 18:05:30 UTC (rev 798) +++ trunk/Web/translations/index.php 2009-08-05 11:33:02 UTC (rev 799) @@ -3,9 +3,9 @@ include('translations.inc'); $page = new Page; - $page->addRssFeed('status_branch_rss.php', 'Frhed Translations Status (Stable Branch)'); - $page->addRssFeed('status_trunk_rss.php', 'Frhed Translations Status (Unstable Trunk)'); - $page->printHead('Translations - Frhed'); + $page->addRssFeed('status_branch_rss.php', __('Frhed Translations Status (Stable Branch)')); + $page->addRssFeed('status_trunk_rss.php', __('Frhed Translations Status (Unstable Trunk)')); + $page->printHead(__('Translations')); ?> <h2>Translations</h2> @@ -17,11 +17,11 @@ $languages = $status->getLanguagesArray(); foreach ($languages as $language) { //for all languages... - print(" <li>" . $language . "</li>\n"); + print(" <li>" . __($language) . "</li>\n"); } } catch (Exception $ex) { //If problems with translations status... - print(" <li>English</li>\n"); + print(" <li>" . __('English') . "</li>\n"); } ?> </ul> Modified: trunk/Web/translations/status_branch.php =================================================================== --- trunk/Web/translations/status_branch.php 2009-08-04 18:05:30 UTC (rev 798) +++ trunk/Web/translations/status_branch.php 2009-08-05 11:33:02 UTC (rev 799) @@ -4,9 +4,9 @@ $page = new Page; $page->addRssFeed('status_branch_rss.php'); - $page->printHead('Translations Status (Stable Branch) - Frhed'); + $page->printHead(__('Translations Status (Stable Branch)')); - $page->printRssHeading('Translations Status (Stable Branch)', 'status_branch_rss.php'); + $page->printRssHeading(__('Translations Status (Stable Branch)'), 'status_branch_rss.php'); try { $status = New TranslationsStatus('status_branch.xml'); $status->svnUrl = 'http://frhed.svn.sourceforge.net/viewvc/frhed/branches/R1_6/Translations/'; @@ -15,7 +15,7 @@ $status->printTranslators(); } catch (Exception $ex) { //If problems with translations status... - print("<p>The translations status is currently not available...</p>\n"); + print("<p>" . __('The translations status is currently not available...') . "</p>\n"); } $page->printFoot(); ?> \ No newline at end of file Modified: trunk/Web/translations/status_trunk.php =================================================================== --- trunk/Web/translations/status_trunk.php 2009-08-04 18:05:30 UTC (rev 798) +++ trunk/Web/translations/status_trunk.php 2009-08-05 11:33:02 UTC (rev 799) @@ -4,9 +4,9 @@ $page = new Page; $page->addRssFeed('status_trunk_rss.php'); - $page->printHead('Translations Status (Unstable Trunk) - Frhed'); + $page->printHead(__('Translations Status (Unstable Trunk)')); - $page->printRssHeading('Translations Status (Unstable Trunk)', 'status_trunk_rss.php'); + $page->printRssHeading(__('Translations Status (Unstable Trunk)'), 'status_trunk_rss.php'); try { $status = New TranslationsStatus('status_trunk.xml'); $status->svnUrl = 'http://frhed.svn.sourceforge.net/viewvc/frhed/trunk/Translations/'; @@ -15,7 +15,7 @@ $status->printTranslators(); } catch (Exception $ex) { //If problems with translations status... - print("<p>The translations status is currently not available...</p>\n"); + print("<p>" . __('The translations status is currently not available...') . "</p>\n"); } $page->printFoot(); ?> \ No newline at end of file This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <ge...@us...> - 2010-11-07 15:40:38
|
Revision: 894 http://frhed.svn.sourceforge.net/frhed/?rev=894&view=rev Author: gerundt Date: 2010-11-07 15:40:32 +0000 (Sun, 07 Nov 2010) Log Message: ----------- Web: Move some translations files to engine directory Modified Paths: -------------- trunk/Web/translations/status_branch.php trunk/Web/translations/status_branch_rss.php trunk/Web/translations/status_trunk.php trunk/Web/translations/status_trunk_rss.php Added Paths: ----------- trunk/Web/engine/images/fuzzy.png trunk/Web/engine/images/translated.png trunk/Web/engine/images/untranslated.png trunk/Web/engine/translations.inc Removed Paths: ------------- trunk/Web/translations/images/ trunk/Web/translations/translations.inc Copied: trunk/Web/engine/images/fuzzy.png (from rev 893, trunk/Web/translations/images/fuzzy.png) =================================================================== (Binary files differ) Copied: trunk/Web/engine/images/translated.png (from rev 893, trunk/Web/translations/images/translated.png) =================================================================== (Binary files differ) Copied: trunk/Web/engine/images/untranslated.png (from rev 893, trunk/Web/translations/images/untranslated.png) =================================================================== (Binary files differ) Copied: trunk/Web/engine/translations.inc (from rev 893, trunk/Web/translations/translations.inc) =================================================================== --- trunk/Web/engine/translations.inc (rev 0) +++ trunk/Web/engine/translations.inc 2010-11-07 15:40:32 UTC (rev 894) @@ -0,0 +1,310 @@ +<?php +// This program is free software; you can redistribute it and/or modify +// it under the terms of the GNU General Public License as published by +// the Free Software Foundation; either version 2 of the License, or +// (at your option) any later version. +// +// This program is distributed in the hope that it will be useful, +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +// GNU General Public License for more details. + + /** + * ... + */ + class TranslationsStatus { + public $version; + public $svnUrl; + public $rssLink; + + private $_status; + + /** + * Constructor + */ + public function __construct($filename) { + $this->version = ''; + $this->svnUrl = ''; + $this->rssLink = ''; + + $this->_status = null; + + if (file_exists($filename)) { //if XML file exists... + $xml = @simplexml_load_file($filename); + if ($xml) { //if XML file was valid... + $this->_status = $xml; + } + else //if XML file was NOT valid... + throw new Exception(__('File not valid.')); + } + else //if XML file NOT exists... + throw new Exception(__('File not found.')); + } + + /** + * ... + * + * Based partially on the TortoiseSVN Drupal module: + * @link http://tortoisesvn.tigris.org/svn/tortoisesvn/trunk/contrib/drupal-modules/module/tortoisesvn.module + */ + private function getStatusGraph($count, $translated, $fuzzy, $untranslated) { + // Calculate width of bars + $wc = 150; + $wt = round($wc * $translated / $count); + $wf = round($wc * $fuzzy / $count); + $wu = round($wc * $untranslated / $count); + + // Make sure that each bar is at least 2px wide if its value is > 0 + if (($wt<2) && ($translated>0)) $wt=2; + if (($wf<2) && ($fuzzy>0)) $wf=2; + if (($wu<2) && ($untranslated>0)) $wu=2; + + // Make sure total width stays constant by determining the widest bar + // and subtracting the width of the shorter bars from it. + if ($wt+$wf+$wu!=$wc) { + if ($wt>=$wf && $wt>=$wu) { + $wt = $wc-$wf-$wu; + } else if ($wf>=$wt && $wf>=$wu) { + $wf = $wc-$wt-$wu; + } else { + $wu = $wc-$wt-$wf; + } + } + + // Calculate percentages + $pt = ($translated * 100) / $count; + $pf = ($fuzzy * 100) / $count; + $pu = ($untranslated * 100) / $count; + + $temp = ""; + if ($wt > 0) + $temp .= "<img src=\"/engine/images/translated.png\" alt=\"" . __('Translated') . "\" title=\"" . __('Translated: %d%%', round($pt, 1)) . "\" width=\"$wt\" height=\"16\" />"; + if ($wf > 0) + $temp .= "<img src=\"/engine/images/fuzzy.png\" alt=\"" . __('Fuzzy') . "\" title=\"" . __('Fuzzy: %d%%', round($pf, 1)) . "\" width=\"$wf\" height=\"16\" />"; + if ($wu > 0) + $temp .= "<img src=\"/engine/images/untranslated.png\" alt=\"" . __('Untranslated') . "\" title=\"" . __('Untranslated: %d%%', round($pu, 1)) . "\" width=\"$wu\" height=\"16\" />"; + + return $temp; + } + + /** + * ... + */ + private function getStatusGraphLegend() { + $temp = "<ul class=\"inline\">\n"; + $temp .= " <li><img src=\"/engine/images/translated.png\" alt=\"*\" width=\"16\" height=\"16\" /> " . __('Translated') . "</li>\n"; + $temp .= " <li><img src=\"/engine/images/fuzzy.png\" alt=\"*\" width=\"16\" height=\"16\" /> " . __('Fuzzy') . "</li>\n"; + $temp .= " <li><img src=\"/engine/images/untranslated.png\" alt=\"*\" width=\"16\" height=\"16\" /> " . __('Untranslated') . "</li>\n"; + $temp .= "</ul>\n"; + return $temp; + } + + /** + * ... + */ + public function printTOC() { + $status = $this->_status; + + $temp = "<p>Status from <strong>" . $status->update . "</strong>:</p>\n"; + $temp .= "<ul>\n"; + foreach ($status->translations as $translations) { //for all projects... + $project = (string)$translations->attributes()->project; + $temp .= " <li><a href=\"#" . $project ."\">" . $project . "</a></li>\n"; + } + $temp .= " <li><a href=\"#translators\">Translators</a></li>\n"; + $temp .= "</ul>\n"; + print($temp); + } + + /** + * ... + */ + public function printStatus() { + $status = $this->_status; + + $temp = ''; + foreach ($status->translations as $translations) { //for all projects... + $project = (string)$translations->attributes()->project; + $temp .= "<h3><a name=\"" . $project . "\">" . $project . "</a></h3>\n"; + $temp .= "<table class=\"status\">\n"; + $temp .= " <tr>\n"; + $temp .= " <th class=\"left\">" . __('Language') . "</th>\n"; + $temp .= " <th class=\"center\">" . __('Graph') . "</th>\n"; + $temp .= " <th class=\"right translated\">" . __('Translated') . "</th>\n"; + $temp .= " <th class=\"right fuzzy\">" . __('Fuzzy') . "</th>\n"; + $temp .= " <th class=\"right untranslated\">" . __('Untranslated') . "</th>\n"; + $temp .= " <th class=\"center\">" . __('Last Update') . "</th>\n"; + $temp .= " </tr>\n"; + //TODO: Sort languages!? + foreach ($translations as $translation) { //for all translations... + $language_name = (string)$translation->language; + + $template = (bool)$translation->attributes()->template; + if ($template == false) { //If NO template... + $file_name = (string)$translation->file; + $translation_update = (string)$translation->update; + $strings = $translation->strings; + $strings_count = (int)$strings->count; + $strings_translated = (int)$strings->translated; + $strings_fuzzy = (int)$strings->fuzzy; + $strings_untranslated = (int)$strings->untranslated; + + $temp .= " <tr>\n"; + $temp .= " <td class=\"left\"><a href=\"" . $this->svnUrl . $project . '/' . $file_name . "\" rel=\"nofollow\">" . __($language_name) . "</a></td>\n"; + $temp .= " <td class=\"center\">" . $this->getStatusGraph($strings_count, $strings_translated, $strings_fuzzy, $strings_untranslated) . "</td>\n"; + $temp .= " <td class=\"right translated\">" . $strings_translated . "</td>\n"; + $temp .= " <td class=\"right fuzzy\">" . $strings_fuzzy . "</td>\n"; + $temp .= " <td class=\"right untranslated\">" . $strings_untranslated . "</td>\n"; + $temp .= " <td class=\"center\">" . $translation_update . "</td>\n"; + $temp .= " </tr>\n"; + } + else { //If template... + $template_language_name = (string)$translation->language; + $template_file_name = (string)$translation->file; + $template_translation_update = (string)$translation->update; + $template_strings_count = (int)$translation->strings->translated; + } + } + $temp .= " <tr>\n"; + $temp .= " <td class=\"left\"><a href=\"" . $this->svnUrl . $project . '/' . $template_file_name . "\" rel=\"nofollow\">" . __($template_language_name) . " (" . __('Template') . ")</a></td>\n"; + $temp .= " <td class=\"center\"></td>\n"; + $temp .= " <td colspan=\"3\" class=\"center\">" . __('Total: %d' , $template_strings_count) . "</td>\n"; + $temp .= " <td class=\"center\">" . $template_translation_update . "</td>\n"; + $temp .= " </tr>\n"; + $temp .= "</table>\n"; + $temp .= $this->getStatusGraphLegend(); + } + print($temp); + } + + /** + * ... + */ + public function printRSS() { + $status = $this->_status; + + $temp = "<?xml version=\"1.0\" encoding=\"ISO-8859-1\"?>\n"; + $temp .= "<rss version=\"2.0\">\n"; + $temp .= " <channel>\n"; + $temp .= " <title>Frhed Translations Status (" . $this->version . ")</title>\n"; + $temp .= " <link>http://frhed.sourceforge.net/</link>\n"; + $temp .= " <description>...</description>\n"; + foreach ($status->translations as $translations) { //for all projects... + $project = (string)$translations->attributes()->project; + + $temp .= " <item>\n"; + $temp .= " <title>" . $project ." Status [" . $status->update . "]</title>\n"; + $temp .= " <description>\n"; + $temp .= " <![CDATA[\n"; + $temp .= "<ul>\n"; + //TODO: Sort languages!? + foreach ($translations as $translation) { //for all translations... + $language_name = (string)$translation->language; + + $template = (bool)$translation->attributes()->template; + if ($template == false) { //If NO template... + $file_name = (string)$translation->file; + $translation_update = (string)$translation->update; + $strings_untranslated = (int)$translation->strings->untranslated; + + $temp .= " <li>\n"; + $temp .= " <a href=\"" . $this->svnUrl . $project . '/' . $file_name . "\">" . $language_name . "</a> (" . $strings_untranslated . " Untranslated)\n"; + $temp .= " </li>\n"; + } + } + $temp .= "</ul>\n"; + $temp .= " ]]>\n"; + $temp .= " </description>\n"; + $temp .= " <guid>" . $project . "_" . $status->update . "</guid>\n"; + $temp .= " <link>" . $this->rssLink . "#" . $project . "</link>\n"; + $temp .= " </item>\n"; + } + $temp .= " </channel>\n"; + $temp .= "</rss>\n"; + print($temp); + } + + /** + * ... + */ + public function printTranslators() { + $projects = array(); + $languages = array(); + + $status = $this->_status; + foreach ($status->translations as $translations) { //for all projects... + $project = (string)$translations->attributes()->project; + $projects[$project] = $project; + + //TODO: Sort languages!? + foreach ($translations as $translation) { //for all translations... + $language_name = (string)$translation->language; + + $template = (bool)$translation->attributes()->template; + if ($template == false) { //If NO template... + $temp = ''; + foreach ($translation->translators as $translators) { //for all translators... + foreach ($translators as $translator) { //for each translator... + $translator_name = (string)$translator->name; + $translator_mail = (string)$translator->mail; + $maintainer = (bool)$translator->attributes()->maintainer; + + if ($maintainer) + $temp .= "<strong title=\"Maintainer\">"; + if ($translator_mail != '') + $temp .= "<a href=\"mailto:" . $translator_mail . "\" title=\"" . htmlentities($translator_name, ENT_COMPAT, 'UTF-8') . " <" . $translator_mail . ">\">" . htmlentities($translator_name, ENT_COMPAT, 'UTF-8') . "</a>"; + else + $temp .= $translator_name; + if ($maintainer) + $temp .= "</strong>"; + $temp .= "<br />"; + } + } + + $languages[$language_name][$project] = $temp; + } + } + } + + $temp = "<h3><a name=\"translators\">" . __('Translators') . "</a></h3>\n"; + $temp .= "<table class=\"status\">\n"; + $temp .= " <tr>\n"; + $temp .= " <th class=\"left\">" . __('Language') . "</th>\n"; + foreach ($projects as $project) { //For all projects... + $temp .= " <th class=\"left\">" . $project . "</th>\n"; + } + $temp .= " </tr>\n"; + foreach ($languages as $language_name => $language_translators) { //For all languages... + $temp .= " <tr>\n"; + $temp .= " <td class=\"left\">" . __($language_name) . "</td>\n"; + foreach ($projects as $project_key => $project_name) { //For all projects... + $temp .= " <td class=\"left\">" . @$language_translators[$project_key] . "</td>\n"; + } + $temp .= " </tr>\n"; + } + $temp .= "</table>\n"; + print($temp); + } + + /** + * ... + */ + public function getLanguagesArray() { + $languages = array(); + + $status = $this->_status; + foreach ($status->translations as $translations) { //for all projects... + foreach ($translations as $translation) { //for all translations... + $language_name = (string)$translation->language; + + if (!in_array($language_name, $languages)) { //if language NOT exists... + $languages[] = $language_name; + } + } + } + + sort($languages, SORT_STRING); + return $languages; + } + } +?> \ No newline at end of file Modified: trunk/Web/translations/status_branch.php =================================================================== --- trunk/Web/translations/status_branch.php 2010-11-04 20:27:54 UTC (rev 893) +++ trunk/Web/translations/status_branch.php 2010-11-07 15:40:32 UTC (rev 894) @@ -1,6 +1,6 @@ <?php include('../engine/engine.inc'); - include('translations.inc'); + include('../engine/translations.inc'); $page = new Page; $page->addRssFeed('status_branch_rss.php'); Modified: trunk/Web/translations/status_branch_rss.php =================================================================== --- trunk/Web/translations/status_branch_rss.php 2010-11-04 20:27:54 UTC (rev 893) +++ trunk/Web/translations/status_branch_rss.php 2010-11-07 15:40:32 UTC (rev 894) @@ -1,7 +1,7 @@ <?php - //header('Content-type: application/rss+xml'); + header('Content-type: application/rss+xml'); - include('translations.inc'); + include('../engine/translations.inc'); try { $status = New TranslationsStatus('status_branch.xml'); Modified: trunk/Web/translations/status_trunk.php =================================================================== --- trunk/Web/translations/status_trunk.php 2010-11-04 20:27:54 UTC (rev 893) +++ trunk/Web/translations/status_trunk.php 2010-11-07 15:40:32 UTC (rev 894) @@ -1,6 +1,6 @@ <?php include('../engine/engine.inc'); - include('translations.inc'); + include('../engine/translations.inc'); $page = new Page; $page->addRssFeed('status_trunk_rss.php'); Modified: trunk/Web/translations/status_trunk_rss.php =================================================================== --- trunk/Web/translations/status_trunk_rss.php 2010-11-04 20:27:54 UTC (rev 893) +++ trunk/Web/translations/status_trunk_rss.php 2010-11-07 15:40:32 UTC (rev 894) @@ -1,7 +1,7 @@ <?php header('Content-type: application/rss+xml'); - include('translations.inc'); + include('../engine/translations.inc'); try { $status = New TranslationsStatus('status_trunk.xml'); Deleted: trunk/Web/translations/translations.inc =================================================================== --- trunk/Web/translations/translations.inc 2010-11-04 20:27:54 UTC (rev 893) +++ trunk/Web/translations/translations.inc 2010-11-07 15:40:32 UTC (rev 894) @@ -1,310 +0,0 @@ -<?php -// This program is free software; you can redistribute it and/or modify -// it under the terms of the GNU General Public License as published by -// the Free Software Foundation; either version 2 of the License, or -// (at your option) any later version. -// -// This program is distributed in the hope that it will be useful, -// but WITHOUT ANY WARRANTY; without even the implied warranty of -// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -// GNU General Public License for more details. - - /** - * ... - */ - class TranslationsStatus { - public $version; - public $svnUrl; - public $rssLink; - - private $_status; - - /** - * Constructor - */ - public function __construct($filename) { - $this->version = ''; - $this->svnUrl = ''; - $this->rssLink = ''; - - $this->_status = null; - - if (file_exists($filename)) { //if XML file exists... - $xml = @simplexml_load_file($filename); - if ($xml) { //if XML file was valid... - $this->_status = $xml; - } - else //if XML file was NOT valid... - throw new Exception(__('File not valid.')); - } - else //if XML file NOT exists... - throw new Exception(__('File not found.')); - } - - /** - * ... - * - * Based partially on the TortoiseSVN Drupal module: - * @link http://tortoisesvn.tigris.org/svn/tortoisesvn/trunk/contrib/drupal-modules/module/tortoisesvn.module - */ - private function getStatusGraph($count, $translated, $fuzzy, $untranslated) { - // Calculate width of bars - $wc = 150; - $wt = round($wc * $translated / $count); - $wf = round($wc * $fuzzy / $count); - $wu = round($wc * $untranslated / $count); - - // Make sure that each bar is at least 2px wide if its value is > 0 - if (($wt<2) && ($translated>0)) $wt=2; - if (($wf<2) && ($fuzzy>0)) $wf=2; - if (($wu<2) && ($untranslated>0)) $wu=2; - - // Make sure total width stays constant by determining the widest bar - // and subtracting the width of the shorter bars from it. - if ($wt+$wf+$wu!=$wc) { - if ($wt>=$wf && $wt>=$wu) { - $wt = $wc-$wf-$wu; - } else if ($wf>=$wt && $wf>=$wu) { - $wf = $wc-$wt-$wu; - } else { - $wu = $wc-$wt-$wf; - } - } - - // Calculate percentages - $pt = ($translated * 100) / $count; - $pf = ($fuzzy * 100) / $count; - $pu = ($untranslated * 100) / $count; - - $temp = ""; - if ($wt > 0) - $temp .= "<img src=\"images/translated.png\" alt=\"" . __('Translated') . "\" title=\"" . __('Translated: %d%%', round($pt, 1)) . "\" width=\"$wt\" height=\"16\" />"; - if ($wf > 0) - $temp .= "<img src=\"images/fuzzy.png\" alt=\"" . __('Fuzzy') . "\" title=\"" . __('Fuzzy: %d%%', round($pf, 1)) . "\" width=\"$wf\" height=\"16\" />"; - if ($wu > 0) - $temp .= "<img src=\"images/untranslated.png\" alt=\"" . __('Untranslated') . "\" title=\"" . __('Untranslated: %d%%', round($pu, 1)) . "\" width=\"$wu\" height=\"16\" />"; - - return $temp; - } - - /** - * ... - */ - private function getStatusGraphLegend() { - $temp = "<ul class=\"inline\">\n"; - $temp .= " <li><img src=\"images/translated.png\" alt=\"*\" width=\"16\" height=\"16\" /> " . __('Translated') . "</li>\n"; - $temp .= " <li><img src=\"images/fuzzy.png\" alt=\"*\" width=\"16\" height=\"16\" /> " . __('Fuzzy') . "</li>\n"; - $temp .= " <li><img src=\"images/untranslated.png\" alt=\"*\" width=\"16\" height=\"16\" /> " . __('Untranslated') . "</li>\n"; - $temp .= "</ul>\n"; - return $temp; - } - - /** - * ... - */ - public function printTOC() { - $status = $this->_status; - - $temp = "<p>Status from <strong>" . $status->update . "</strong>:</p>\n"; - $temp .= "<ul>\n"; - foreach ($status->translations as $translations) { //for all projects... - $project = (string)$translations->attributes()->project; - $temp .= " <li><a href=\"#" . $project ."\">" . $project . "</a></li>\n"; - } - $temp .= " <li><a href=\"#translators\">Translators</a></li>\n"; - $temp .= "</ul>\n"; - print($temp); - } - - /** - * ... - */ - public function printStatus() { - $status = $this->_status; - - $temp = ''; - foreach ($status->translations as $translations) { //for all projects... - $project = (string)$translations->attributes()->project; - $temp .= "<h3><a name=\"" . $project . "\">" . $project . "</a></h3>\n"; - $temp .= "<table class=\"status\">\n"; - $temp .= " <tr>\n"; - $temp .= " <th class=\"left\">" . __('Language') . "</th>\n"; - $temp .= " <th class=\"center\">" . __('Graph') . "</th>\n"; - $temp .= " <th class=\"right translated\">" . __('Translated') . "</th>\n"; - $temp .= " <th class=\"right fuzzy\">" . __('Fuzzy') . "</th>\n"; - $temp .= " <th class=\"right untranslated\">" . __('Untranslated') . "</th>\n"; - $temp .= " <th class=\"center\">" . __('Last Update') . "</th>\n"; - $temp .= " </tr>\n"; - //TODO: Sort languages!? - foreach ($translations as $translation) { //for all translations... - $language_name = (string)$translation->language; - - $template = (bool)$translation->attributes()->template; - if ($template == false) { //If NO template... - $file_name = (string)$translation->file; - $translation_update = (string)$translation->update; - $strings = $translation->strings; - $strings_count = (int)$strings->count; - $strings_translated = (int)$strings->translated; - $strings_fuzzy = (int)$strings->fuzzy; - $strings_untranslated = (int)$strings->untranslated; - - $temp .= " <tr>\n"; - $temp .= " <td class=\"left\"><a href=\"" . $this->svnUrl . $project . '/' . $file_name . "\" rel=\"nofollow\">" . __($language_name) . "</a></td>\n"; - $temp .= " <td class=\"center\">" . $this->getStatusGraph($strings_count, $strings_translated, $strings_fuzzy, $strings_untranslated) . "</td>\n"; - $temp .= " <td class=\"right translated\">" . $strings_translated . "</td>\n"; - $temp .= " <td class=\"right fuzzy\">" . $strings_fuzzy . "</td>\n"; - $temp .= " <td class=\"right untranslated\">" . $strings_untranslated . "</td>\n"; - $temp .= " <td class=\"center\">" . $translation_update . "</td>\n"; - $temp .= " </tr>\n"; - } - else { //If template... - $template_language_name = (string)$translation->language; - $template_file_name = (string)$translation->file; - $template_translation_update = (string)$translation->update; - $template_strings_count = (int)$translation->strings->translated; - } - } - $temp .= " <tr>\n"; - $temp .= " <td class=\"left\"><a href=\"" . $this->svnUrl . $project . '/' . $template_file_name . "\" rel=\"nofollow\">" . __($template_language_name) . " (" . __('Template') . ")</a></td>\n"; - $temp .= " <td class=\"center\"></td>\n"; - $temp .= " <td colspan=\"3\" class=\"center\">" . __('Total: %d' , $template_strings_count) . "</td>\n"; - $temp .= " <td class=\"center\">" . $template_translation_update . "</td>\n"; - $temp .= " </tr>\n"; - $temp .= "</table>\n"; - $temp .= $this->getStatusGraphLegend(); - } - print($temp); - } - - /** - * ... - */ - public function printRSS() { - $status = $this->_status; - - $temp = "<?xml version=\"1.0\" encoding=\"ISO-8859-1\"?>\n"; - $temp .= "<rss version=\"2.0\">\n"; - $temp .= " <channel>\n"; - $temp .= " <title>Frhed Translations Status (" . $this->version . ")</title>\n"; - $temp .= " <link>http://frhed.sourceforge.net/</link>\n"; - $temp .= " <description>...</description>\n"; - foreach ($status->translations as $translations) { //for all projects... - $project = (string)$translations->attributes()->project; - - $temp .= " <item>\n"; - $temp .= " <title>" . $project ." Status [" . $status->update . "]</title>\n"; - $temp .= " <description>\n"; - $temp .= " <![CDATA[\n"; - $temp .= "<ul>\n"; - //TODO: Sort languages!? - foreach ($translations as $translation) { //for all translations... - $language_name = (string)$translation->language; - - $template = (bool)$translation->attributes()->template; - if ($template == false) { //If NO template... - $file_name = (string)$translation->file; - $translation_update = (string)$translation->update; - $strings_untranslated = (int)$translation->strings->untranslated; - - $temp .= " <li>\n"; - $temp .= " <a href=\"" . $this->svnUrl . $project . '/' . $file_name . "\">" . $language_name . "</a> (" . $strings_untranslated . " Untranslated)\n"; - $temp .= " </li>\n"; - } - } - $temp .= "</ul>\n"; - $temp .= " ]]>\n"; - $temp .= " </description>\n"; - $temp .= " <guid>" . $project . "_" . $status->update . "</guid>\n"; - $temp .= " <link>" . $this->rssLink . "#" . $project . "</link>\n"; - $temp .= " </item>\n"; - } - $temp .= " </channel>\n"; - $temp .= "</rss>\n"; - print($temp); - } - - /** - * ... - */ - public function printTranslators() { - $projects = array(); - $languages = array(); - - $status = $this->_status; - foreach ($status->translations as $translations) { //for all projects... - $project = (string)$translations->attributes()->project; - $projects[$project] = $project; - - //TODO: Sort languages!? - foreach ($translations as $translation) { //for all translations... - $language_name = (string)$translation->language; - - $template = (bool)$translation->attributes()->template; - if ($template == false) { //If NO template... - $temp = ''; - foreach ($translation->translators as $translators) { //for all translators... - foreach ($translators as $translator) { //for each translator... - $translator_name = (string)$translator->name; - $translator_mail = (string)$translator->mail; - $maintainer = (bool)$translator->attributes()->maintainer; - - if ($maintainer) - $temp .= "<strong title=\"Maintainer\">"; - if ($translator_mail != '') - $temp .= "<a href=\"mailto:" . $translator_mail . "\" title=\"" . htmlentities($translator_name, ENT_COMPAT, 'UTF-8') . " <" . $translator_mail . ">\">" . htmlentities($translator_name, ENT_COMPAT, 'UTF-8') . "</a>"; - else - $temp .= $translator_name; - if ($maintainer) - $temp .= "</strong>"; - $temp .= "<br />"; - } - } - - $languages[$language_name][$project] = $temp; - } - } - } - - $temp = "<h3><a name=\"translators\">" . __('Translators') . "</a></h3>\n"; - $temp .= "<table class=\"status\">\n"; - $temp .= " <tr>\n"; - $temp .= " <th class=\"left\">" . __('Language') . "</th>\n"; - foreach ($projects as $project) { //For all projects... - $temp .= " <th class=\"left\">" . $project . "</th>\n"; - } - $temp .= " </tr>\n"; - foreach ($languages as $language_name => $language_translators) { //For all languages... - $temp .= " <tr>\n"; - $temp .= " <td class=\"left\">" . __($language_name) . "</td>\n"; - foreach ($projects as $project_key => $project_name) { //For all projects... - $temp .= " <td class=\"left\">" . @$language_translators[$project_key] . "</td>\n"; - } - $temp .= " </tr>\n"; - } - $temp .= "</table>\n"; - print($temp); - } - - /** - * ... - */ - public function getLanguagesArray() { - $languages = array(); - - $status = $this->_status; - foreach ($status->translations as $translations) { //for all projects... - foreach ($translations as $translation) { //for all translations... - $language_name = (string)$translation->language; - - if (!in_array($language_name, $languages)) { //if language NOT exists... - $languages[] = $language_name; - } - } - } - - sort($languages, SORT_STRING); - return $languages; - } - } -?> \ No newline at end of file This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <ge...@us...> - 2010-11-07 16:09:36
|
Revision: 896 http://frhed.svn.sourceforge.net/frhed/?rev=896&view=rev Author: gerundt Date: 2010-11-07 16:09:30 +0000 (Sun, 07 Nov 2010) Log Message: ----------- Web: Move screenshots to "sites" directory Modified Paths: -------------- trunk/Web/.htaccess trunk/Web/frhed_pad.xml trunk/Web/screenshots/index.php Added Paths: ----------- trunk/Web/sites/ trunk/Web/sites/screenshots/ trunk/Web/sites/screenshots/frhed_icon.png trunk/Web/sites/screenshots/frhed_main_window.png trunk/Web/sites/screenshots/frhed_main_window_small.png Removed Paths: ------------- trunk/Web/screenshots/frhed_icon.png trunk/Web/screenshots/frhed_main_window.png trunk/Web/screenshots/frhed_main_window_small.png Modified: trunk/Web/.htaccess =================================================================== --- trunk/Web/.htaccess 2010-11-07 15:44:08 UTC (rev 895) +++ trunk/Web/.htaccess 2010-11-07 16:09:30 UTC (rev 896) @@ -32,4 +32,8 @@ </FilesMatch> #Redirect PAD download URL to current Frhed version... -Redirect permanent /Frhed-Setup.exe http://downloads.sourceforge.net/frhed/Frhed-1.6.0-Setup.exe \ No newline at end of file +Redirect permanent /Frhed-Setup.exe http://downloads.sourceforge.net/frhed/Frhed-1.6.0-Setup.exe + +#Move screenshots... +Redirect permanent /screenshots/frhed_main_window.png http://frhed.sourceforge.net/sites/screenshots/frhed_main_window.png +Redirect permanent /screenshots/frhed_icon.png http://frhed.sourceforge.net/sites/screenshots/frhed_icon.png \ No newline at end of file Modified: trunk/Web/frhed_pad.xml =================================================================== --- trunk/Web/frhed_pad.xml 2010-11-07 15:44:08 UTC (rev 895) +++ trunk/Web/frhed_pad.xml 2010-11-07 16:09:30 UTC (rev 896) @@ -79,8 +79,8 @@ <Application_URLs> <Application_Info_URL>http://frhed.sourceforge.net/</Application_Info_URL> <Application_Order_URL>http://frhed.sourceforge.net/</Application_Order_URL> - <Application_Screenshot_URL>http://frhed.sourceforge.net/screenshots/frhed_main_window.png</Application_Screenshot_URL> - <Application_Icon_URL>http://frhed.sourceforge.net/screenshots/frhed_icon.png</Application_Icon_URL> + <Application_Screenshot_URL>http://frhed.sourceforge.net/sites/screenshots/frhed_main_window.png</Application_Screenshot_URL> + <Application_Icon_URL>http://frhed.sourceforge.net/sites/screenshots/frhed_icon.png</Application_Icon_URL> <Application_XML_File_URL>http://frhed.sourceforge.net/frhed_pad.xml</Application_XML_File_URL> </Application_URLs> <Download_URLs> Deleted: trunk/Web/screenshots/frhed_icon.png =================================================================== (Binary files differ) Deleted: trunk/Web/screenshots/frhed_main_window.png =================================================================== (Binary files differ) Deleted: trunk/Web/screenshots/frhed_main_window_small.png =================================================================== (Binary files differ) Modified: trunk/Web/screenshots/index.php =================================================================== --- trunk/Web/screenshots/index.php 2010-11-07 15:44:08 UTC (rev 895) +++ trunk/Web/screenshots/index.php 2010-11-07 16:09:30 UTC (rev 896) @@ -7,7 +7,7 @@ $page->printSubHeading(__('Main Window')); ?> -<a href="frhed_main_window.png" target="_blank"><img src="frhed_main_window_small.png" alt="<?php __e('Main Window');?>" style="border:none;" /></a> +<a href="/sites/screenshots/frhed_main_window.png" target="_blank"><img src="/sites/screenshots/frhed_main_window_small.png" alt="<?php __e('Main Window');?>" style="border:none;" /></a> <?php $page->printPara(__('The main window from Frhed.')); Copied: trunk/Web/sites/screenshots/frhed_icon.png (from rev 893, trunk/Web/screenshots/frhed_icon.png) =================================================================== (Binary files differ) Copied: trunk/Web/sites/screenshots/frhed_main_window.png (from rev 893, trunk/Web/screenshots/frhed_main_window.png) =================================================================== (Binary files differ) Copied: trunk/Web/sites/screenshots/frhed_main_window_small.png (from rev 893, trunk/Web/screenshots/frhed_main_window_small.png) =================================================================== (Binary files differ) This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <ge...@us...> - 2010-11-28 12:10:18
|
Revision: 902 http://frhed.svn.sourceforge.net/frhed/?rev=902&view=rev Author: gerundt Date: 2010-11-28 12:10:11 +0000 (Sun, 28 Nov 2010) Log Message: ----------- Web: Move languages to own directories Modified Paths: -------------- trunk/Web/.htaccess trunk/Web/engine/engine.inc trunk/Web/engine/page.inc trunk/Web/engine/simpletranslate.inc Added Paths: ----------- trunk/Web/router.php trunk/Web/templates/ trunk/Web/templates/.htaccess trunk/Web/templates/index.php trunk/Web/templates/screenshots/ trunk/Web/templates/screenshots/index.php trunk/Web/templates/translations/ trunk/Web/templates/translations/index.php trunk/Web/templates/translations/status_branch.php trunk/Web/templates/translations/status_branch_rss.php trunk/Web/templates/translations/status_trunk.php trunk/Web/templates/translations/status_trunk_rss.php Removed Paths: ------------- trunk/Web/index.php trunk/Web/screenshots/ trunk/Web/translations/ Modified: trunk/Web/.htaccess =================================================================== --- trunk/Web/.htaccess 2010-11-17 14:36:51 UTC (rev 901) +++ trunk/Web/.htaccess 2010-11-28 12:10:11 UTC (rev 902) @@ -27,8 +27,8 @@ </IfModule> <FilesMatch "\.inc$"> - Order Deny,Allow - Deny from all + Order Deny,Allow + Deny from all </FilesMatch> #Redirect PAD download URL to current Frhed version... @@ -36,4 +36,13 @@ #Move screenshots... Redirect permanent /screenshots/frhed_main_window.png http://frhed.sourceforge.net/sites/screenshots/frhed_main_window.png -Redirect permanent /screenshots/frhed_icon.png http://frhed.sourceforge.net/sites/screenshots/frhed_icon.png \ No newline at end of file +Redirect permanent /screenshots/frhed_icon.png http://frhed.sourceforge.net/sites/screenshots/frhed_icon.png + +#... +<IfModule mod_rewrite.c> + RewriteEngine On + RewriteBase / + RewriteCond %{REQUEST_FILENAME} !-f + RewriteCond %{REQUEST_FILENAME} !-d + RewriteRule . /router.php [L] +</IfModule> \ No newline at end of file Modified: trunk/Web/engine/engine.inc =================================================================== --- trunk/Web/engine/engine.inc 2010-11-17 14:36:51 UTC (rev 901) +++ trunk/Web/engine/engine.inc 2010-11-28 12:10:11 UTC (rev 902) @@ -15,12 +15,12 @@ $languagesdir = dirname(__FILE__) . '/languages/'; $translations = new SimpleTranslate; - $translations->setUrlParameter('lang'); + $translations->setUseRootDirectory(true); $translations->addLanguage('en', __('English')); $translations->addLanguage('de', __('German'), $languagesdir . 'de.po'); $translations->addLanguage('fr', __('French'), $languagesdir . 'fr.po'); $translations->addLanguage('nl', __('Dutch'), $languagesdir . 'nl.po'); - if (!$translations->detectLanguageFromUrl()) { //if NOT detect language from URL... + if (!$translations->detectLanguageFromRootDirectory()) { //if NOT detect language from root directory... $translations->detectLanguageFromBrowser(); } Modified: trunk/Web/engine/page.inc =================================================================== --- trunk/Web/engine/page.inc 2010-11-17 14:36:51 UTC (rev 901) +++ trunk/Web/engine/page.inc 2010-11-28 12:10:11 UTC (rev 902) @@ -196,15 +196,15 @@ global $translations; $sidenaventry = new SideNavEntry('', __('Frhed')); - $sidenaventry->addSubEntry($translations->prepareLink('/'), __('Home')); - $sidenaventry->addSubEntry($translations->prepareLink('/screenshots/'), __('Screenshots')); + $sidenaventry->addSubEntry($translations->prepareLink('/{lang}/'), __('Home')); + $sidenaventry->addSubEntry($translations->prepareLink('/{lang}/screenshots/'), __('Screenshots')); $sidenaventry->addSubEntry('http://sourceforge.net/projects/frhed', __('Project Page')); $sidenaventry->addSubEntry('/frhed_pad.xml', __('PAD File')); $sidenaventries[] = $sidenaventry; $sidenaventry = new SideNavEntry('', __('Translations')); - $sidenaventry->addSubEntry($translations->prepareLink('/translations/'), __('Index')); - $sidenaventry->addSubEntry($translations->prepareLink('/translations/status_branch.php'), __('Status (Stable Branch)')); - $sidenaventry->addSubEntry($translations->prepareLink('/translations/status_trunk.php'), __('Status (Unstable Trunk)')); + $sidenaventry->addSubEntry($translations->prepareLink('/{lang}/translations/'), __('Index')); + $sidenaventry->addSubEntry($translations->prepareLink('/{lang}/translations/status_branch.php'), __('Status (Stable Branch)')); + $sidenaventry->addSubEntry($translations->prepareLink('/{lang}/translations/status_trunk.php'), __('Status (Unstable Trunk)')); $sidenaventries[] = $sidenaventry; $sidenaventry = new SideNavEntry('', __('Support')); $sidenaventry->addSubEntry('http://sourceforge.net/tracker/?atid=1100163&group_id=236485', __('Bugs')); Modified: trunk/Web/engine/simpletranslate.inc =================================================================== --- trunk/Web/engine/simpletranslate.inc 2010-11-17 14:36:51 UTC (rev 901) +++ trunk/Web/engine/simpletranslate.inc 2010-11-28 12:10:11 UTC (rev 902) @@ -11,9 +11,17 @@ /** * ... + * @todo Rename variables to camelCase and don't use _underscore? + * @todo Use 4 spaces for indent? */ class SimpleTranslate { /** + * Use root directory? + * @var string + * @access private + */ + private $_userootdirectory; + /** * Language placeholder * @var string * @access private @@ -60,6 +68,7 @@ * Constructor */ public function __construct() { + $this->_userootdirectory = false; $this->_langplaceholder = '{lang}'; $this->_urlparameter = 'lang'; $this->_forceurlparameter = false; @@ -70,6 +79,22 @@ } /** + * get using root directory... + * @return bool Use root directory? + */ + public function getUseRootDirectory() { + return $this->_userootdirectory; + } + + /** + * set using root directory... + * @param bool $userootdirectory Use root directory? + */ + public function setUseRootDirectory($userootdirectory) { + $this->_userootdirectory = $userootdirectory; + } + + /** * get the language placeholder... * @return string Language placeholder */ @@ -99,6 +124,21 @@ } /** + * replace root directory in link... + * @param string $link Link + * @param string $id Language ID + * @return string Link with replaced root directory + */ + public function replaceRootDirectory($link, $id = '') { + if (!empty($id)) { + return preg_replace('/^\/[a-z][a-z](\/?)/', '/' . $id . '$1', $link); + } + else { + return preg_replace('/^\/[a-z][a-z](\/?)/', '/$1', $link); + } + } + + /** * get the URL parameter... * @return string URL parameter */ @@ -351,10 +391,19 @@ return false; } else { //if language ID NOT committed... - if (isset($_GET[$this->_urlparameter])) { - return $this->existsLanguage(strtolower($_GET[$this->_urlparameter])); + if ($this->_userootdirectory) { //if use root directory... + $parts = explode('/', trim($_SERVER['REQUEST_URI'], '/')); + if (count($parts) > 0) { //if has parts... + return $this->existsLanguage($parts[0]); + } + return false; } - return true; + else { //if use URL parameter... + if (isset($_GET[$this->_urlparameter])) { + return $this->existsLanguage(strtolower($_GET[$this->_urlparameter])); + } + return true; + } } } @@ -374,7 +423,7 @@ * detect the language from the url... * @return bool Detected? */ - public function detectLanguageFromUrl() { + public function detectLanguageFromUrlParameter() { if (isset($_GET[$this->_urlparameter])) { return $this->setActiveLanguage($_GET[$this->_urlparameter]); } @@ -418,7 +467,31 @@ * @return string Prepared link */ public function prepareLink($link) { + if ($this->_userootdirectory) { //if use root directory... + return $this->prepareLinkWithRootDirectory($link); + } + else { //if use URL parameter... + return $this->prepareLinkWithUrlParameter($link); + } + } + + /** + * prepare link (with root directory)... + * @param string $link Link + * @return string Prepared link (with root directory) + */ + private function prepareLinkWithRootDirectory($link) { $activelanguage = $this->getActiveLanguage(); + return $this->replaceLanguagePlaceholder($link, $activelanguage->getId()); + } + + /** + * prepare link (with URL parameter)... + * @param string $link Link + * @return string Prepared link (with URL parameter) + */ + private function prepareLinkWithUrlParameter($link) { + $activelanguage = $this->getActiveLanguage(); if ((strtolower(get_class($activelanguage)) == 'simpletranslatelanguage') || ($this->_forceurlparameter == true)) { //if normal language OR forcing URL parameter... return $this->appendUrlParameter($link, $this->_urlparameter, $activelanguage->getId()); } @@ -434,6 +507,34 @@ * @return string Language link */ public function getLink($language = null, $forceurlparameter = null) { + if ($this->_userootdirectory) { //if use root directory... + return $this->getLinkWithRootDirectory($language); + } + else { //if use URL parameter... + return $this->getLinkWithUrlParameter($language, $forceurlparameter); + } + } + + /** + * get the language link (with root directory)... + * @param object $language Language + * @return string Language link (with root directory) + */ + private function getLinkWithRootDirectory($language = null) { + $requesturi = str_replace('index.php', '', $_SERVER['REQUEST_URI']); + if (isset($language)) { //if language committed... + return $this->replaceRootDirectory($requesturi, $language->getId()); + } + return $requesturi; + } + + /** + * get the language link (with URL parameter)... + * @param object $language Language + * @param bool $forceurlparameter Force URL parameter? + * @return string Language link (with URL parameter) + */ + private function getLinkWithUrlParameter($language = null, $forceurlparameter = null) { $phpself = str_replace('index.php', '', $_SERVER['PHP_SELF']); if (isset($language)) { //if language committed... $forceing = $this->_forceurlparameter; Deleted: trunk/Web/index.php =================================================================== --- trunk/Web/index.php 2010-11-17 14:36:51 UTC (rev 901) +++ trunk/Web/index.php 2010-11-28 12:10:11 UTC (rev 902) @@ -1,82 +0,0 @@ -<?php - include('engine/engine.inc'); - include('engine/simplepie/simplepie.inc'); - - $page = new Page; - $page->setDescription(__('Frhed is an binary file editor for Windows. It is small but has many advanced features like ability to load big files partially.')); - $page->setKeywords(__('Frhed, free, hex editor, binary file, load partially, hexdump, compare')); - $page->addRssFeed('http://sourceforge.net/export/rss2_projnews.php?group_id=236485', __('Frhed News')); - $page->addRssFeed('http://sourceforge.net/export/rss2_projfiles.php?group_id=236485', __('Frhed File Releases')); - $page->printHead(); - $page->printPara(__('Frhed is an binary file editor for Windows. It is small but has many advanced features like ability to load big files partially.')); - - $page->printHeading(__('Features')); -?> -<ul> - <li><?php __e('Editable file size limited only by available system memory')?></li> - <li><?php __e('Load files partially')?></li> - <li><?php __e('Export as hexdump to file or clipboard')?></li> - <li><?php __e('Search for any combination of text and binary values')?></li> - <li><?php __e('Compare files')?></li> -</ul> - -<?php - $page->printRssHeading(__('News'), 'http://sourceforge.net/export/rss2_projnews.php?group_id=236485'); - $feed = new SimplePie(); - $feed->set_feed_url('http://sourceforge.net/export/rss2_projnews.php?group_id=236485'); - $feed->set_cache_location('./engine/simplepie/cache'); - $feed->init(); - print("<ul class=\"rssfeeditems\">\n"); - foreach ($feed->get_items(0, 3) as $item) { //for the last 3 news items... - print(" <li><a href=\"".$item->get_link()."\">".$item->get_title()."</a> <em>".$item->get_date(__('Y-m-d'))."</em></li>\n"); - } - print(" <li><a href=\"http://sourceforge.net/news/?group_id=236485\">" . __('View all news …') . "</a></li>\n"); - print("</ul>\n"); -?> - -<?php - $page->printRssHeading(__('Download'), 'http://sourceforge.net/export/rss2_projfiles.php?group_id=236485'); - $page->printSubHeading(__('Stable releases')); -?> - <ul> - <li><a href="https://sourceforge.net/project/showfiles.php?group_id=236485&package_id=308801&release_id=688790"> - Frhed 1.6.0</a> (2009-06-23)</li> - <li><a href="https://sourceforge.net/project/showfiles.php?group_id=236485&package_id=308801&release_id=674196"> - Frhed 1.4.2</a> (2009-04-07)</li> - <li><a href="https://sourceforge.net/project/showfiles.php?group_id=236485&package_id=308801&release_id=658634"> - Frhed 1.4.0</a> (2009-02-04)</li> - </ul> -<?php - $page->printSubHeading(__('Beta releases')); -?> - <ul> - <li><a href="https://sourceforge.net/project/showfiles.php?group_id=236485&package_id=307097&release_id=688792"> - Frhed 1.5.10</a> (2009-06-10)</li> - </ul> -<?php - $page->printSubHeading(__('Alpha releases')); -?> - <ul> - <li><a href="https://sourceforge.net/projects/frhed/files/3.%20Alpha%20Releases/1.7.1/"> - Frhed 1.7.1</a> (2009-07-30)</li> - </ul> - -<?php - $page->printHeading(__('Support')); - $page->printPara(__('For support you can try the <a href="%1$s">forums</a> or the <a href="%2$s">mailing lists</a>.', 'http://apps.sourceforge.net/phpbb/frhed/', 'https://sourceforge.net/mail/?group_id=236485'), - __('If you found bugs, please submit them to our <a href="%1$s">bug tracker</a> or leave wishes at the <a href="%2$s">feature requests</a> list.', 'https://sourceforge.net/tracker/?atid=1100163&group_id=236485', 'https://sourceforge.net/tracker/?atid=1100166&group_id=236485')); - - $page->printHeading(__('Open Source')); - $page->printPara(__('Frhed is <a href="%1$s">open source</a> software and is licenced under the <a href="%2$s">GNU General Public License</a>. -This means everybody can download the source code and improve and modify them.', 'http://www.opensource.org/', 'http://www.gnu.org/licenses/gpl-2.0.html')); - - $page->printHeading(__('History')); - $page->printPara(__('Frhed is originally developed by <a href="%s">Raihan Kibria</a>.', 'http://www.kibria.de/frhed.html')); - $page->printPara(__('Version 1.1 included many improvements and new features from versions that several other programmers had been working on. -Unfortunately version 1.1 never matured to "stable" release. Latest 1.1 release is labeled as "beta" release.')); - $page->printPara(__('At autumn 2008 the <a href="%1$s">WinMerge Team</a> decided to use Frhed as binary file editor component -for WinMerge. For developing Frhed further new <a href="%2$s">SourceForge project</a> -was created. This new project will develop Frhed as stand alone product.', 'http://winmerge.org/' , 'https://sourceforge.net/projects/frhed')); - - $page->printFoot(); -?> Added: trunk/Web/router.php =================================================================== --- trunk/Web/router.php (rev 0) +++ trunk/Web/router.php 2010-11-28 12:10:11 UTC (rev 902) @@ -0,0 +1,47 @@ +<?php + include('engine/engine.inc'); + include('engine/simplepie/simplepie.inc'); + include('engine/translations.inc'); + + function Send301($url) { + header('HTTP/1.1 301 Moved Permanently'); + header('Location: ' . $url); + header('Connection: close'); + } + + $parse = parse_url($_SERVER['REQUEST_URI']); + $path = $parse['path']; + $basepath = $translations->replaceRootDirectory($parse['path'], '{lang}'); + + switch($basepath) { + case '/{lang}/': + include('templates/index.php'); + break; + case '/{lang}/screenshots/': + include('templates/screenshots/index.php'); + break; + case '/{lang}/translations/': + include('templates/translations/index.php'); + break; + case '/{lang}/translations/status_branch.php': + include('templates/translations/status_branch.php'); + break; + case '/{lang}/translations/status_branch_rss.php': + include('templates/translations/status_branch_rss.php'); + break; + case '/{lang}/translations/status_trunk.php': + include('templates/translations/status_trunk.php'); + break; + case '/{lang}/translations/status_trunk_rss.php': + include('templates/translations/status_trunk_rss.php'); + break; + case '/{lang}': + case '/{lang}/screenshots': + case '/{lang}/translations': + Send301($path . '/'); + break; + default: + header('HTTP/1.1 404 Not Found'); + header('Status: 404 Not Found'); + } +?> \ No newline at end of file Added: trunk/Web/templates/.htaccess =================================================================== --- trunk/Web/templates/.htaccess (rev 0) +++ trunk/Web/templates/.htaccess 2010-11-28 12:10:11 UTC (rev 902) @@ -0,0 +1,2 @@ +Order Deny,Allow +Deny from all \ No newline at end of file Copied: trunk/Web/templates/index.php (from rev 900, trunk/Web/index.php) =================================================================== --- trunk/Web/templates/index.php (rev 0) +++ trunk/Web/templates/index.php 2010-11-28 12:10:11 UTC (rev 902) @@ -0,0 +1,79 @@ +<?php + $page = new Page; + $page->setDescription(__('Frhed is an binary file editor for Windows. It is small but has many advanced features like ability to load big files partially.')); + $page->setKeywords(__('Frhed, free, hex editor, binary file, load partially, hexdump, compare')); + $page->addRssFeed('http://sourceforge.net/export/rss2_projnews.php?group_id=236485', __('Frhed News')); + $page->addRssFeed('http://sourceforge.net/export/rss2_projfiles.php?group_id=236485', __('Frhed File Releases')); + $page->printHead(); + $page->printPara(__('Frhed is an binary file editor for Windows. It is small but has many advanced features like ability to load big files partially.')); + + $page->printHeading(__('Features')); +?> +<ul> + <li><?php __e('Editable file size limited only by available system memory')?></li> + <li><?php __e('Load files partially')?></li> + <li><?php __e('Export as hexdump to file or clipboard')?></li> + <li><?php __e('Search for any combination of text and binary values')?></li> + <li><?php __e('Compare files')?></li> +</ul> + +<?php + $page->printRssHeading(__('News'), 'http://sourceforge.net/export/rss2_projnews.php?group_id=236485'); + $feed = new SimplePie(); + $feed->set_feed_url('http://sourceforge.net/export/rss2_projnews.php?group_id=236485'); + $feed->set_cache_location('./engine/simplepie/cache'); + $feed->init(); + print("<ul class=\"rssfeeditems\">\n"); + foreach ($feed->get_items(0, 3) as $item) { //for the last 3 news items... + print(" <li><a href=\"".$item->get_link()."\">".$item->get_title()."</a> <em>".$item->get_date(__('Y-m-d'))."</em></li>\n"); + } + print(" <li><a href=\"http://sourceforge.net/news/?group_id=236485\">" . __('View all news …') . "</a></li>\n"); + print("</ul>\n"); +?> + +<?php + $page->printRssHeading(__('Download'), 'http://sourceforge.net/export/rss2_projfiles.php?group_id=236485'); + $page->printSubHeading(__('Stable releases')); +?> + <ul> + <li><a href="https://sourceforge.net/project/showfiles.php?group_id=236485&package_id=308801&release_id=688790"> + Frhed 1.6.0</a> (2009-06-23)</li> + <li><a href="https://sourceforge.net/project/showfiles.php?group_id=236485&package_id=308801&release_id=674196"> + Frhed 1.4.2</a> (2009-04-07)</li> + <li><a href="https://sourceforge.net/project/showfiles.php?group_id=236485&package_id=308801&release_id=658634"> + Frhed 1.4.0</a> (2009-02-04)</li> + </ul> +<?php + $page->printSubHeading(__('Beta releases')); +?> + <ul> + <li><a href="https://sourceforge.net/project/showfiles.php?group_id=236485&package_id=307097&release_id=688792"> + Frhed 1.5.10</a> (2009-06-10)</li> + </ul> +<?php + $page->printSubHeading(__('Alpha releases')); +?> + <ul> + <li><a href="https://sourceforge.net/projects/frhed/files/3.%20Alpha%20Releases/1.7.1/"> + Frhed 1.7.1</a> (2009-07-30)</li> + </ul> + +<?php + $page->printHeading(__('Support')); + $page->printPara(__('For support you can try the <a href="%1$s">forums</a> or the <a href="%2$s">mailing lists</a>.', 'http://apps.sourceforge.net/phpbb/frhed/', 'https://sourceforge.net/mail/?group_id=236485'), + __('If you found bugs, please submit them to our <a href="%1$s">bug tracker</a> or leave wishes at the <a href="%2$s">feature requests</a> list.', 'https://sourceforge.net/tracker/?atid=1100163&group_id=236485', 'https://sourceforge.net/tracker/?atid=1100166&group_id=236485')); + + $page->printHeading(__('Open Source')); + $page->printPara(__('Frhed is <a href="%1$s">open source</a> software and is licenced under the <a href="%2$s">GNU General Public License</a>. +This means everybody can download the source code and improve and modify them.', 'http://www.opensource.org/', 'http://www.gnu.org/licenses/gpl-2.0.html')); + + $page->printHeading(__('History')); + $page->printPara(__('Frhed is originally developed by <a href="%s">Raihan Kibria</a>.', 'http://www.kibria.de/frhed.html')); + $page->printPara(__('Version 1.1 included many improvements and new features from versions that several other programmers had been working on. +Unfortunately version 1.1 never matured to "stable" release. Latest 1.1 release is labeled as "beta" release.')); + $page->printPara(__('At autumn 2008 the <a href="%1$s">WinMerge Team</a> decided to use Frhed as binary file editor component +for WinMerge. For developing Frhed further new <a href="%2$s">SourceForge project</a> +was created. This new project will develop Frhed as stand alone product.', 'http://winmerge.org/' , 'https://sourceforge.net/projects/frhed')); + + $page->printFoot(); +?> Copied: trunk/Web/templates/screenshots/index.php (from rev 900, trunk/Web/screenshots/index.php) =================================================================== --- trunk/Web/templates/screenshots/index.php (rev 0) +++ trunk/Web/templates/screenshots/index.php 2010-11-28 12:10:11 UTC (rev 902) @@ -0,0 +1,13 @@ +<?php + $page = new Page; + $page->printHead(__('Screenshots')); + $page->printHeading(__('Screenshots')); + + $page->printSubHeading(__('Main Window')); +?> +<a href="/sites/screenshots/frhed_main_window.png" target="_blank"><img src="/sites/screenshots/frhed_main_window_small.png" alt="<?php __e('Main Window');?>" style="border:none;" /></a> +<?php + $page->printPara(__('The main window from Frhed.')); + + $page->printFoot(); +?> Copied: trunk/Web/templates/translations/index.php (from rev 900, trunk/Web/translations/index.php) =================================================================== --- trunk/Web/templates/translations/index.php (rev 0) +++ trunk/Web/templates/translations/index.php 2010-11-28 12:10:11 UTC (rev 902) @@ -0,0 +1,32 @@ +<?php + $page = new Page; + $page->addRssFeed('status_branch_rss.php', __('Frhed Translations Status (Stable Branch)')); + $page->addRssFeed('status_trunk_rss.php', __('Frhed Translations Status (Unstable Trunk)')); + $page->printHead(__('Translations')); + + $page->printHeading(__('Translations')); + $page->printPara(__('We currently have Frhed translated into the languages listed below:')); + print("<ul>\n"); + try { + $status = New TranslationsStatus('status_trunk.xml'); + + $languages = $status->getLanguagesArray(); + foreach ($languages as $language) { //for all languages... + print(" <li>" . __($language) . "</li>\n"); + } + } + catch (Exception $ex) { //If problems with translations status... + print(" <li>" . __('English') . "</li>\n"); + } + print("</ul>\n"); + + $page->printSubHeading(__('Status')); + $page->printPara(__('The following two pages inform you about the translations status of the stable and developer version of Frhed:')); +?> +<ul> + <li><a href="status_branch.php"><?php __e('Stable Version (Branch)');?></a> <?php $page->printRssFeedLink('status_branch_rss.php'); ?></li> + <li><a href="status_trunk.php"><?php __e('Unstable Version (Trunk)');?></a> <?php $page->printRssFeedLink('status_trunk_rss.php'); ?></li> +</ul> +<?php + $page->printFoot(); +?> \ No newline at end of file Copied: trunk/Web/templates/translations/status_branch.php (from rev 900, trunk/Web/translations/status_branch.php) =================================================================== --- trunk/Web/templates/translations/status_branch.php (rev 0) +++ trunk/Web/templates/translations/status_branch.php 2010-11-28 12:10:11 UTC (rev 902) @@ -0,0 +1,18 @@ +<?php + $page = new Page; + $page->addRssFeed('status_branch_rss.php'); + $page->printHead(__('Translations Status (Stable Branch)')); + + $page->printRssHeading(__('Translations Status (Stable Branch)'), 'status_branch_rss.php'); + try { + $status = New TranslationsStatus('status_branch.xml'); + $status->svnUrl = 'http://frhed.svn.sourceforge.net/viewvc/frhed/branches/R1_6/Translations/'; + $status->printTOC(); + $status->printStatus(); + $status->printTranslators(); + } + catch (Exception $ex) { //If problems with translations status... + print("<p>" . __('The translations status is currently not available...') . "</p>\n"); + } + $page->printFoot(); +?> \ No newline at end of file Copied: trunk/Web/templates/translations/status_branch_rss.php (from rev 900, trunk/Web/translations/status_branch_rss.php) =================================================================== --- trunk/Web/templates/translations/status_branch_rss.php (rev 0) +++ trunk/Web/templates/translations/status_branch_rss.php 2010-11-28 12:10:11 UTC (rev 902) @@ -0,0 +1,16 @@ +<?php + header('Content-type: application/rss+xml'); + + try { + $status = New TranslationsStatus('status_branch.xml'); + $status->version = 'Stable Branch'; + $status->svnUrl = 'http://frhed.svn.sourceforge.net/viewvc/frhed/branches/R1_6/Translations/'; + $status->rssLink = 'http://frhed.sourceforge.net/translations/status_branch.php'; + $status->printRSS(); + } + catch (Exception $ex) { //If problems with translations status... + print("<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n"); + print("<rss version=\"2.0\">\n"); + print("</rss>\n"); + } +?> \ No newline at end of file Copied: trunk/Web/templates/translations/status_trunk.php (from rev 900, trunk/Web/translations/status_trunk.php) =================================================================== --- trunk/Web/templates/translations/status_trunk.php (rev 0) +++ trunk/Web/templates/translations/status_trunk.php 2010-11-28 12:10:11 UTC (rev 902) @@ -0,0 +1,18 @@ +<?php + $page = new Page; + $page->addRssFeed('status_trunk_rss.php'); + $page->printHead(__('Translations Status (Unstable Trunk)')); + + $page->printRssHeading(__('Translations Status (Unstable Trunk)'), 'status_trunk_rss.php'); + try { + $status = New TranslationsStatus('status_trunk.xml'); + $status->svnUrl = 'http://frhed.svn.sourceforge.net/viewvc/frhed/trunk/Translations/'; + $status->printTOC(); + $status->printStatus(); + $status->printTranslators(); + } + catch (Exception $ex) { //If problems with translations status... + print("<p>" . __('The translations status is currently not available...') . "</p>\n"); + } + $page->printFoot(); +?> \ No newline at end of file Copied: trunk/Web/templates/translations/status_trunk_rss.php (from rev 900, trunk/Web/translations/status_trunk_rss.php) =================================================================== --- trunk/Web/templates/translations/status_trunk_rss.php (rev 0) +++ trunk/Web/templates/translations/status_trunk_rss.php 2010-11-28 12:10:11 UTC (rev 902) @@ -0,0 +1,16 @@ +<?php + header('Content-type: application/rss+xml'); + + try { + $status = New TranslationsStatus('status_trunk.xml'); + $status->version = 'Unstable Trunk'; + $status->svnUrl = 'http://frhed.svn.sourceforge.net/viewvc/frhed/trunk/Translations/'; + $status->rssLink = 'http://frhed.sourceforge.net/translations/status_trunk.php'; + $status->printRSS(); + } + catch (Exception $ex) { //If problems with translations status... + print("<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n"); + print("<rss version=\"2.0\">\n"); + print("</rss>\n"); + } +?> \ No newline at end of file This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <ge...@us...> - 2010-11-28 12:41:55
|
Revision: 903 http://frhed.svn.sourceforge.net/frhed/?rev=903&view=rev Author: gerundt Date: 2010-11-28 12:41:49 +0000 (Sun, 28 Nov 2010) Log Message: ----------- Web: Redirect old paths Modified Paths: -------------- trunk/Web/router.php Added Paths: ----------- trunk/Web/index.php Added: trunk/Web/index.php =================================================================== --- trunk/Web/index.php (rev 0) +++ trunk/Web/index.php 2010-11-28 12:41:49 UTC (rev 903) @@ -0,0 +1,5 @@ +<?php + header('HTTP/1.1 301 Moved Permanently'); + header('Location: /en/'); + header('Connection: close'); +?> \ No newline at end of file Modified: trunk/Web/router.php =================================================================== --- trunk/Web/router.php 2010-11-28 12:10:11 UTC (rev 902) +++ trunk/Web/router.php 2010-11-28 12:41:49 UTC (rev 903) @@ -35,11 +35,24 @@ case '/{lang}/translations/status_trunk_rss.php': include('templates/translations/status_trunk_rss.php'); break; + //Directories without / at the end... case '/{lang}': case '/{lang}/screenshots': case '/{lang}/translations': Send301($path . '/'); break; + //Old "screenshots" and "translations" paths... + case '/{lang}reenshots': + case '/{lang}reenshots/': + case '/{lang}anslations': + case '/{lang}anslations/': + case '/{lang}anslations/status_branch.php': + case '/{lang}anslations/status_branch_rss.php': + case '/{lang}anslations/status_trunk.php': + case '/{lang}anslations/status_trunk_rss.php': + Send301('/en' . $path); + break; + //Unknown paths... default: header('HTTP/1.1 404 Not Found'); header('Status: 404 Not Found'); This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <ge...@us...> - 2010-11-30 18:54:55
|
Revision: 908 http://frhed.svn.sourceforge.net/frhed/?rev=908&view=rev Author: gerundt Date: 2010-11-30 18:54:49 +0000 (Tue, 30 Nov 2010) Log Message: ----------- Web: Add 404 error page Modified Paths: -------------- trunk/Web/.htaccess trunk/Web/engine/page.inc trunk/Web/router.php trunk/Web/templates/index.php Added Paths: ----------- trunk/Web/404.php Modified: trunk/Web/.htaccess =================================================================== --- trunk/Web/.htaccess 2010-11-30 18:02:17 UTC (rev 907) +++ trunk/Web/.htaccess 2010-11-30 18:54:49 UTC (rev 908) @@ -26,6 +26,8 @@ ExpiresDefault "access plus 24 hours" </IfModule> +ErrorDocument 404 /404.php + <FilesMatch "\.inc$"> Order Deny,Allow Deny from all Added: trunk/Web/404.php =================================================================== --- trunk/Web/404.php (rev 0) +++ trunk/Web/404.php 2010-11-30 18:54:49 UTC (rev 908) @@ -0,0 +1,25 @@ +<?php + //Send 404 headers... + header('HTTP/1.1 404 Not Found'); + header('Status: 404 Not Found'); + + include_once('engine/engine.inc'); + + $page = new Page; + $page->printHead(__('Error 404 (Page Not Found)'), TAB_HOME); + + $page->printHeading(__('Page Not Found...')); + $page->printPara(__('For some reason (mis-typed URL, faulty referral from another site, out-of-date search engine listing or we simply deleted a file) the page you were looking for could not be found.'), + __('This site has recently undergone a major re-working, so that might explain why you got this page instead.')); + + $page->printSubHeading(__('Were you looking for...')); +?> +<ul> + <li><?php __e('<a href="%s">Download</a>?', $translations->prepareLink('/{lang}/#download'));?></li> + <li><?php __e('<a href="%s">Screenshots</a>?', $translations->prepareLink('/{lang}/screenshots/'));?></li> + <li><?php __e('<a href="%s">Support</a>?', $translations->prepareLink('/{lang}/#support'));?></li> + <li><?php __e('<a href="%s">Translations</a>?', $translations->prepareLink('/{lang}/translations/'));?></li> +</ul> +<?php + $page->printFoot(); +?> \ No newline at end of file Modified: trunk/Web/engine/page.inc =================================================================== --- trunk/Web/engine/page.inc 2010-11-30 18:02:17 UTC (rev 907) +++ trunk/Web/engine/page.inc 2010-11-30 18:54:49 UTC (rev 908) @@ -130,15 +130,17 @@ /** * print a <h2> heading */ - function printHeading($title) { - print("<h2>" . $title . "</h2>\n"); + function printHeading($title, $id = '') { + $htmlId = empty($id) ? '' : ' id="' . $id. '"'; + print("<h2" . $htmlId . ">" . $title . "</h2>\n"); } /** * print a <h2> heading with a RSS feed link */ - function printRssHeading($title, $rssfeedurl) { - print("<h2>" . $title . " " . $this->getRssFeedLink($rssfeedurl) . "</h2>\n"); + function printRssHeading($title, $rssfeedurl, $id = '') { + $htmlId = empty($id) ? '' : ' id="' . $id. '"'; + print("<h2" . $htmlId . ">" . $title . " " . $this->getRssFeedLink($rssfeedurl) . "</h2>\n"); } /** Modified: trunk/Web/router.php =================================================================== --- trunk/Web/router.php 2010-11-30 18:02:17 UTC (rev 907) +++ trunk/Web/router.php 2010-11-30 18:54:49 UTC (rev 908) @@ -54,7 +54,7 @@ break; //Unknown paths... default: - header('HTTP/1.1 404 Not Found'); - header('Status: 404 Not Found'); + include('404.php'); + break; } ?> \ No newline at end of file Modified: trunk/Web/templates/index.php =================================================================== --- trunk/Web/templates/index.php 2010-11-30 18:02:17 UTC (rev 907) +++ trunk/Web/templates/index.php 2010-11-30 18:54:49 UTC (rev 908) @@ -32,7 +32,7 @@ ?> <?php - $page->printRssHeading(__('Download'), 'http://sourceforge.net/export/rss2_projfiles.php?group_id=236485'); + $page->printRssHeading(__('Download'), 'http://sourceforge.net/export/rss2_projfiles.php?group_id=236485', 'download'); $page->printSubHeading(__('Stable releases')); ?> <ul> @@ -59,7 +59,7 @@ </ul> <?php - $page->printHeading(__('Support')); + $page->printHeading(__('Support'), 'support'); $page->printPara(__('For support you can try the <a href="%1$s">forums</a> or the <a href="%2$s">mailing lists</a>.', 'http://apps.sourceforge.net/phpbb/frhed/', 'https://sourceforge.net/mail/?group_id=236485'), __('If you found bugs, please submit them to our <a href="%1$s">bug tracker</a> or leave wishes at the <a href="%2$s">feature requests</a> list.', 'https://sourceforge.net/tracker/?atid=1100163&group_id=236485', 'https://sourceforge.net/tracker/?atid=1100166&group_id=236485')); This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |