new option: USE_CURL_FOR_ICONS (closes #101), add some CRs to error messages

This commit is contained in:
Andrew Dolgov 2006-08-20 11:27:25 +01:00
parent 69ff793a6d
commit c798704b29
3 changed files with 59 additions and 31 deletions

View File

@ -131,6 +131,9 @@
define('CHECK_FOR_NEW_VERSION', true); define('CHECK_FOR_NEW_VERSION', true);
// Check for new versions of tt-rss when entering preferences. // Check for new versions of tt-rss when entering preferences.
define('USE_CURL_FOR_ICONS', true);
// Fetch favicons using CURL, useful if your PHP has disabled remote fopen()
define('CONFIG_VERSION', 4); define('CONFIG_VERSION', 4);
// Expected config version. Please update this option in config.php // Expected config version. Please update this option in config.php
// if necessary (after migrating all new options from this file). // if necessary (after migrating all new options from this file).

View File

@ -213,32 +213,51 @@
$icon_file = ICONS_DIR . "/$feed.ico"; $icon_file = ICONS_DIR . "/$feed.ico";
if (!file_exists($icon_file)) { if (!file_exists($icon_file)) {
error_reporting(0);
$r = fopen($icon_url, "r");
error_reporting (DEFAULT_ERROR_LEVEL);
if ($r) { if (USE_CURL_FOR_ICONS) {
$tmpfname = tempnam(TMP_DIRECTORY, "ttrssicon"); //error_reporting(0);
$ch = curl_init($icon_url);
$t = fopen($tmpfname, "w"); $fp = fopen($icon_file, "w");
while (!feof($r)) { if ($fp) {
$buf = fread($r, 16384); curl_setopt($ch, CURLOPT_FILE, $fp);
fwrite($t, $buf); curl_setopt($ch, CURLOPT_FILE, $fp);
curl_exec($ch);
curl_close($ch);
fclose($fp);
} }
fclose($r); //error_reporting (DEFAULT_ERROR_LEVEL);
fclose($t);
} else {
error_reporting(0); error_reporting(0);
if (!rename($tmpfname, $icon_file)) { $r = fopen($icon_url, "r");
unlink($tmpfname);
}
chmod($icon_file, 0644);
error_reporting (DEFAULT_ERROR_LEVEL); error_reporting (DEFAULT_ERROR_LEVEL);
if ($r) {
$tmpfname = tempnam(TMP_DIRECTORY, "ttrssicon");
$t = fopen($tmpfname, "w");
while (!feof($r)) {
$buf = fread($r, 16384);
fwrite($t, $buf);
}
fclose($r);
fclose($t);
error_reporting(0);
if (!rename($tmpfname, $icon_file)) {
unlink($tmpfname);
}
chmod($icon_file, 0644);
error_reporting (DEFAULT_ERROR_LEVEL);
}
} }
} }

View File

@ -3,7 +3,7 @@
if (!file_exists("config.php")) { if (!file_exists("config.php")) {
print "<b>Fatal Error</b>: You forgot to copy print "<b>Fatal Error</b>: You forgot to copy
<b>config.php-dist</b> to <b>config.php</b> and edit it."; <b>config.php-dist</b> to <b>config.php</b> and edit it.\n";
exit; exit;
} }
@ -12,14 +12,14 @@
if (CONFIG_VERSION != EXPECTED_CONFIG_VERSION) { if (CONFIG_VERSION != EXPECTED_CONFIG_VERSION) {
print "<b>Fatal Error</b>: Your configuration file has print "<b>Fatal Error</b>: Your configuration file has
wrong version. Please copy new options from <b>config.php-dist</b> and wrong version. Please copy new options from <b>config.php-dist</b> and
update CONFIG_VERSION directive."; update CONFIG_VERSION directive.\n";
exit; exit;
} }
if (!defined('RSS_BACKEND_TYPE')) { if (!defined('RSS_BACKEND_TYPE')) {
print "<b>Fatal error</b>: RSS backend type is not defined print "<b>Fatal error</b>: RSS backend type is not defined
(config variable <b>RSS_BACKEND_TYPE</b>) - please check your (config variable <b>RSS_BACKEND_TYPE</b>) - please check your
configuration file."; configuration file.\n";
exit; exit;
} }
@ -27,7 +27,7 @@
print "<b>Fatal Error</b>: You forgot to place print "<b>Fatal Error</b>: You forgot to place
<a href=\"http://magpierss.sourceforge.net\">MagpieRSS</a> <a href=\"http://magpierss.sourceforge.net\">MagpieRSS</a>
distribution in <b>magpierss/</b> distribution in <b>magpierss/</b>
subdirectory of TT-RSS tree."; subdirectory of TT-RSS tree.\n";
exit; exit;
} }
@ -35,35 +35,41 @@
print "<b>Fatal Error</b>: You forgot to place print "<b>Fatal Error</b>: You forgot to place
<a href=\"http://simplepie.org\">SimplePie</a> <a href=\"http://simplepie.org\">SimplePie</a>
distribution in <b>simplepie/</b> distribution in <b>simplepie/</b>
subdirectory of TT-RSS tree."; subdirectory of TT-RSS tree.\n";
exit; exit;
} }
if (RSS_BACKEND_TYPE != "simplepie" && RSS_BACKEND_TYPE != "magpie") { if (RSS_BACKEND_TYPE != "simplepie" && RSS_BACKEND_TYPE != "magpie") {
print "<b>Fatal Error</b>: Invalid RSS_BACKEND_TYPE"; print "<b>Fatal Error</b>: Invalid RSS_BACKEND_TYPE\n";
exit; exit;
} }
if (CONFIG_VERSION != EXPECTED_CONFIG_VERSION) { if (CONFIG_VERSION != EXPECTED_CONFIG_VERSION) {
return "config: your config file version is incorrect. See config.php-dist."; return "config: your config file version is incorrect. See config.php-dist.\n";
} }
if (file_exists("xml-export.php") || file_exists("xml-import.php")) { if (file_exists("xml-export.php") || file_exists("xml-import.php")) {
print "<b>Fatal Error</b>: XML Import/Export tools (<b>xml-export.php</b> print "<b>Fatal Error</b>: XML Import/Export tools (<b>xml-export.php</b>
and <b>xml-import.php</b>) could be used maliciously. Please remove them and <b>xml-import.php</b>) could be used maliciously. Please remove them
from your TT-RSS instance."; from your TT-RSS instance.\n";
exit; exit;
} }
if (RSS_BACKEND_TYPE != "magpie") { if (RSS_BACKEND_TYPE != "magpie") {
print "<b>Fatal Error</b>: RSS backends other than magpie are not print "<b>Fatal Error</b>: RSS backends other than magpie are not
supported now."; supported now.\n";
exit; exit;
} }
if (SINGLE_USER_MODE && DAEMON_UPDATE_LOGIN_LIMIT > 0) { if (SINGLE_USER_MODE && DAEMON_UPDATE_LOGIN_LIMIT > 0) {
print "<b>Fatal Error</b>: Please set DAEMON_UPDATE_LOGIN_LIMIT print "<b>Fatal Error</b>: Please set DAEMON_UPDATE_LOGIN_LIMIT
to 0 in single user mode."; to 0 in single user mode.\n";
exit; exit;
} }
if (USE_CURL_FOR_ICONS && ! function_exists("curl_init")) {
print "<b>Fatal Error</b>: You have enabled USE_CURL_FOR_ICONS, but your PHP
doesn't seem to support CURL functions.";
exit;
}
?> ?>