]> git.wh0rd.org - tt-rss.git/commitdiff
simplify default global config, expand sanity_check messages
authorAndrew Dolgov <fox@fakecake.org>
Tue, 13 Dec 2011 15:20:26 +0000 (19:20 +0400)
committerAndrew Dolgov <fox@fakecake.org>
Tue, 13 Dec 2011 15:20:26 +0000 (19:20 +0400)
12 files changed:
classes/feeds.php
classes/pref_users.php
classes/rpc.php
config.php-dist
include/db.php
include/functions.php
include/rssfuncs.php
include/sanity_check.php
include/sanity_config.php
include/sessions.php
register.php
utility.css

index 98ea55c0bc629372a7c15cc3adf8ab01d753a716..5ecac494ac4929c13066cf5d2d50734711b5be06 100644 (file)
@@ -715,12 +715,10 @@ class Feeds extends Protected_Handler {
                                                onclick=\"editArticleNote($id)\"\r
                                                alt='PubNote' title='".__('Edit article note')."'>";\r
 \r
-                                       if (DIGEST_ENABLE) {\r
-                                               $reply['content'] .= "<img src=\"".theme_image($this->link, 'images/art-email.png')."\"\r
-                                                       style=\"cursor : pointer\"\r
-                                                       onclick=\"emailArticle($id)\"\r
-                                                       alt='Zoom' title='".__('Forward by email')."'>";\r
-                                       }\r
+                                       $reply['content'] .= "<img src=\"".theme_image($this->link, 'images/art-email.png')."\"\r
+                                               style=\"cursor : pointer\"\r
+                                               onclick=\"emailArticle($id)\"\r
+                                               alt='Zoom' title='".__('Forward by email')."'>";\r
 \r
                                        if (ENABLE_TWEET_BUTTON) {\r
                                                $reply['content'] .= "<img src=\"".theme_image($this->link, 'images/art-tweet.png')."\"\r
index 63e1fd22ccdbe76b4486d33c905a07db12b59469..b9d162fd295b93ccf51695cd476c07ea2552d30e 100644 (file)
@@ -308,16 +308,16 @@ class Pref_Users extends Protected_Handler {
 
                                $mail->CharSet = "UTF-8";
 
-                               $mail->From = DIGEST_FROM_ADDRESS;
-                               $mail->FromName = DIGEST_FROM_NAME;
+                               $mail->From = SMTP_FROM_ADDRESS;
+                               $mail->FromName = SMTP_FROM_NAME;
                                $mail->AddAddress($email, $login);
 
-                               if (DIGEST_SMTP_HOST) {
-                                       $mail->Host = DIGEST_SMTP_HOST;
+                               if (SMTP_HOST) {
+                                       $mail->Host = SMTP_HOST;
                                        $mail->Mailer = "smtp";
-                                       $mail->SMTPAuth = DIGEST_SMTP_LOGIN != '';
-                                       $mail->Username = DIGEST_SMTP_LOGIN;
-                                       $mail->Password = DIGEST_SMTP_PASSWORD;
+                                       $mail->SMTPAuth = SMTP_LOGIN != '';
+                                       $mail->Username = SMTP_LOGIN;
+                                       $mail->Password = SMTP_PASSWORD;
                                }
 
                                $mail->IsHTML(false);
index c553b9b90bd01c58fe272a952dd35df0c9db1166..272c25ef4b74f8e2c381d15b3beb886cfb882661 100644 (file)
@@ -570,7 +570,7 @@ class RPC extends Protected_Handler {
 
                $reply = array();
 
-               if (DIGEST_ENABLE && $_SESSION['email_secretkey'] &&
+               if ($_SESSION['email_secretkey'] &&
                $secretkey == $_SESSION['email_secretkey']) {
 
                        $_SESSION['email_secretkey'] = '';
@@ -593,12 +593,12 @@ class RPC extends Protected_Handler {
                        $mail->FromName = $fromname;
                        $mail->AddAddress($destination);
 
-                       if (DIGEST_SMTP_HOST) {
-                               $mail->Host = DIGEST_SMTP_HOST;
+                       if (SMTP_HOST) {
+                               $mail->Host = SMTP_HOST;
                                $mail->Mailer = "smtp";
-                               $mail->SMTPAuth = DIGEST_SMTP_LOGIN != '';
-                               $mail->Username = DIGEST_SMTP_LOGIN;
-                               $mail->Password = DIGEST_SMTP_PASSWORD;
+                               $mail->SMTPAuth = SMTP_LOGIN != '';
+                               $mail->Username = SMTP_LOGIN;
+                               $mail->Password = SMTP_PASSWORD;
                        }
 
                        $mail->IsHTML(false);
index 4e231a6f0c81d9a81085dc9e85b3b33c33452038..e4b5ae32d74fa8f31e2594a8c31d2dee6437a42f 100644 (file)
@@ -1,5 +1,8 @@
 <?php
-       // Database server configuration
+       // *******************************************
+       // *** Database configuration (important!) ***
+       // *******************************************
+
        define('DB_TYPE', "pgsql"); // or mysql
        define('DB_HOST', "localhost");
        define('DB_USER', "fox");
        define('DB_PASS', "XXXXXX");
        //define('DB_PORT', '5432'); // when neeeded, PG-only
 
+       define('MYSQL_CHARSET', 'UTF8');
+       // Connection charset for MySQL. If you have a legacy database and/or experience
+       // garbage unicode characters with this option, try setting it to a blank string.
+
+       // ***********************************
+       // *** Basic settings (important!) ***
+       // ***********************************
+
        define('SELF_URL_PATH', 'http://yourserver/tt-rss/');
        // Full URL of your tt-rss installation. This should be set to the
        // location of tt-rss directory, e.g. http://yourserver/tt-rss/
        // You need to set this option correctly otherwise several features
        // including PUSH, bookmarklets and browser integration will not work properly.
 
-       define('SINGLE_USER_MODE', true);
+       define('SINGLE_USER_MODE', false);
        // Operate in single user mode, disables all functionality related to
        // multiple users.
-       
+
+       // *****************************
+       // *** Files and directories ***
+       // *****************************
+
+       define('PHP_EXECUTABLE', '/usr/bin/php');
+       // Path to PHP executable, used for various command-line tt-rss programs
+
+       define('LOCK_DIRECTORY', 'lock');
+       // Directory for lockfiles, must be writable to the user you run
+       // daemon process or cronjobs under.
+
        define('CACHE_DIR', 'cache');
        // Local cache directory for RSS feed content.
 
-       define('SIMPLEPIE_CACHE_IMAGES', false);
-       // Allow caching feed images when using SimplePie, to bypass hotlink
-       // prevention and such at expense of local disk space and bandwidth.
-       // Note that you (or your users) also have to enable image caching 
-       // in feed editor.
+       define('TMP_DIRECTORY', '/tmp');
+       // Directory for temporary files
 
        define('ICONS_DIR', "feed-icons");
        define('ICONS_URL', "feed-icons");
        // Unless you really know what you're doing, please keep those relative
        // to tt-rss main directory.
 
-       define('TMP_DIRECTORY', '/tmp');
-       // Directory for temporary files
-
-       define('DAEMON_SLEEP_INTERVAL', 120);
-       // Interval between update daemon update runs
-
-       define('DATABASE_BACKED_SESSIONS', false);
-       // Store session information in a database, recommended for multiuser 
-       // configurations. Doesn't seem to work for everyone, so enable with caution.
-       // tt-rss uses default PHP session storing mechanism if disabled.
+       // *********************
+       // *** Feed settings ***
+       // *********************
 
-       define('SESSION_CHECK_ADDRESS', 1);
-       // Check client IP address when validating session:
-       // 0 - disable checking
-       // 1 - check first 3 octets of an address (recommended)
-       // 2 - check first 2 octets of an address
-       // 3 - check entire address
-
-       define('SESSION_COOKIE_LIFETIME', 0);
-       // Default lifetime of a session (e.g. login) cookie. In seconds, 
-       // 0 means cookie will be deleted when browser closes.
-
-       define('SESSION_EXPIRE_TIME', 86400);
-       // Hard expiration limit for sessions. Should be
-       // greater or equal to SESSION_COOKIE_LIFETIME
-
-       define('DAEMON_UPDATE_LOGIN_LIMIT', 0);
-       // Stop updating feeds of user who haven't logged in specified 
-       // amount of days. 0 disables.
-
-       define('CHECK_FOR_NEW_VERSION', true);
-       // Check for new versions of tt-rss automatically.
-
-       define('DIGEST_ENABLE', true);
-       // Global option to enable daily digests. Also toggles the ability of users
-       // to forward articles by email.
-
-       define('DIGEST_EMAIL_LIMIT', 10);
-       // The maximum amount of emails sent in one digest batch
-
-       define('DAEMON_SENDS_DIGESTS', true);
-       // If update daemon and update_feeds should send digests
-       // Disable if you prefer querying special URL (see wiki)
-
-       define('MYSQL_CHARSET', 'UTF8');
-       // Connection charset for MySQL. If you have a legacy database and/or experience
-       // garbage unicode characters with this option, try setting it to a blank string.
+       define('SIMPLEPIE_CACHE_IMAGES', false);
+       // Allow caching feed images when using SimplePie, to bypass hotlink
+       // prevention and such at expense of local disk space and bandwidth.
+       // Note that you (or your users) also have to enable image caching 
+       // in feed editor.
 
        define('DEFAULT_UPDATE_METHOD', 0);
        // Which feed parsing library to use as default:
        // 0 - Magpie
        // 1 - SimplePie
 
-       define('COUNTERS_MAX_AGE', 365);
-       // Hard limit for unread counters calculation. Try tweaking this
-       // parameter to speed up tt-rss when having a huge number of articles
-       // in the database (better yet, enable purging!)
+       define('FORCE_ARTICLE_PURGE', 0);
+       // When this option is not 0, users ability to control feed purging
+       // intervals is disabled and all articles (which are not starred) 
+       // older than this amount of days are purged.
 
-       define('DIGEST_FROM_NAME', 'Tiny Tiny RSS');
-       define('DIGEST_FROM_ADDRESS', 'noreply@your.domain.dom');
-       // Name, address and subject for sending outgoing mail. This applies
-       // to password reset notifications, digest emails and any other mail.
+       // *** PubSubHubbub settings ***
 
-       define('DIGEST_SUBJECT', '[tt-rss] New headlines for last 24 hours');
-       // Subject line for email digests
+       define('PUBSUBHUBBUB_HUB', '');
+       // URL to a PubSubHubbub-compatible hub server. If defined, "Published
+       // articles" generated feed would automatically become PUSH-enabled.
 
-       define('DIGEST_SMTP_HOST', '');
-       // SMTP Host to send outgoing mail. Blank - use system MTA.
+       define('PUBSUBHUBBUB_ENABLED', true);
+       // Enable client PubSubHubbub support in tt-rss. When disabled, tt-rss
+       // won't try to subscribe to PUSH feed updates.
 
-       define('DIGEST_SMTP_LOGIN', '');
-       define('DIGEST_SMTP_PASSWORD', '');
-       // These two options enable SMTP authentication when sending
-       // outgoing mail. Require DIGEST_SMTP_HOST.
+       // *********************
+       // *** Sphinx search ***
+       // *********************
+
+       define('SPHINX_ENABLED', false);
+       // Enable fulltext search using Sphinx (http://www.sphinxsearch.com)
+       // Please see http://tt-rss.org/wiki/SphinxSearch for more information.
 
-       define('DAEMON_FEED_LIMIT', 100);
-       // Limits the amount of feeds daemon (or a cronjob) updates on one run
+       define('SPHINX_INDEX', 'ttrss');
+       // Index name in Sphinx configuration. You can specify multiple indexes
+       // as a comma-separated string.
+
+       // **********************
+       // *** Authentication ***
+       // **********************
 
        define('ALLOW_REMOTE_USER_AUTH', false);
        // Set to 'true' if you trust your web server's REMOTE_USER 
        // You want new users to be automaticaly created in tt-rss database
        // on first login
 
-       define('LOCK_DIRECTORY', 'lock');
-       // Directory for lockfiles, must be writable to the user you run
-       // daemon process or cronjobs under.
-
-       define('ENABLE_GZIP_OUTPUT', false);
-       // Selectively gzip output to improve wire performance. This requires
-       // PHP Zlib extension on the server.
-
-       define('PHP_EXECUTABLE', '/usr/bin/php');
-       // Path to PHP executable
+       // ***********************************
+       // *** Self-registrations by users ***
+       // ***********************************
 
        define('ENABLE_REGISTRATION', false);
        // Allow users to register themselves. Please be vary that allowing
        // Maximum amount of users which will be allowed to register on this
        // system. 0 - no limit.
 
-       define('FEEDBACK_URL', '');
-       // Displays an URL for users to provide feedback or comments regarding
-       // this instance of tt-rss. Can lead to a forum, contact email, etc.
+       // **********************************
+       // *** Cookies and login sessions ***
+       // **********************************
+       
+       define('SESSION_COOKIE_LIFETIME', 0);
+       // Default lifetime of a session (e.g. login) cookie. In seconds, 
+       // 0 means cookie will be deleted when browser closes.
 
-       define('FORCE_ARTICLE_PURGE', 0);
-       // When this option is not 0, users ability to control feed purging
-       // intervals is disabled and all articles (which are not starred) 
-       // older than this amount of days are purged.
+       define('SESSION_EXPIRE_TIME', 86400);
+       // Hard expiration limit for sessions. Should be
+       // greater or equal to SESSION_COOKIE_LIFETIME
 
-       define('SPHINX_ENABLED', false);
-       // Enable fulltext search using Sphinx (http://www.sphinxsearch.com)
-       // Please see http://tt-rss.org/wiki/SphinxSearch for more information.
+       define('SESSION_CHECK_ADDRESS', 1);
+       // Check client IP address when validating session:
+       // 0 - disable checking
+       // 1 - check first 3 octets of an address (recommended)
+       // 2 - check first 2 octets of an address
+       // 3 - check entire address
 
-       define('SPHINX_INDEX', 'ttrss');
-       // Index name in Sphinx configuration. You can specify multiple indexes
-       // as a comma-separated string.
+       // *********************************
+       // *** Email and digest settings ***
+       // *********************************
 
+       define('SMTP_FROM_NAME', 'Tiny Tiny RSS');
+       define('SMTP_FROM_ADDRESS', 'noreply@your.domain.dom');
+       // Name, address and subject for sending outgoing mail. This applies
+       // to password reset notifications, digest emails and any other mail.
+
+       define('DIGEST_SUBJECT', '[tt-rss] New headlines for last 24 hours');
+       // Subject line for email digests
+
+       define('SMTP_HOST', '');
+       // SMTP Host to send outgoing mail. Blank - use system MTA.
+
+       define('SMTP_LOGIN', '');
+       define('SMTP_PASSWORD', '');
+       // These two options enable SMTP authentication when sending
+       // outgoing mail. Only used with SMTP_HOST
+
+       // ************************************
+       // *** Twitter integration settings ***
+       // ************************************
+       
        define('ENABLE_TWEET_BUTTON', false);
        // Enable 'tweet this' button for articles
 
        // Your OAuth instance authentication information for Twitter, visit
        // http://twitter.com/oauth_clients to register your instance.
 
-       define('PUBSUBHUBBUB_HUB', '');
-       // URL to a PubSubHubbub-compatible hub server. If defined, "Published
-       // articles" generated feed would automatically become PUSH-enabled.
+       // ***************************************
+       // *** Other settings (less important) ***
+       // ***************************************
 
-       define('PUBSUBHUBBUB_ENABLED', true);
-       // Enable client PubSubHubbub support in tt-rss. When disabled, tt-rss
-       // won't try to subscribe to PUSH feed updates.
+       define('CHECK_FOR_NEW_VERSION', true);
+       // Check for new versions of tt-rss automatically.
+
+       define('COUNTERS_MAX_AGE', 365);
+       // Hard limit for unread counters calculation. Try tweaking this
+       // parameter to speed up tt-rss when having a huge number of articles
+       // in the database (better yet, enable purging!)
 
-       define('ISCONFIGURED', false);
-       // Please set this to true if you have read everything above and
-       // finished setting configuration options.
+       define('ENABLE_GZIP_OUTPUT', false);
+       // Selectively gzip output to improve wire performance. This requires
+       // PHP Zlib extension on the server.
 
-       define('CONFIG_VERSION', 23);
+       define('FEEDBACK_URL', '');
+       // Displays an URL for users to provide feedback or comments regarding
+       // this instance of tt-rss. Can lead to a forum, contact email, etc.
+       
+       define('CONFIG_VERSION', 24);
        // Expected config version. Please update this option in config.php
        // if necessary (after migrating all new options from this file).
 
index 1401c089b0474e2cf4f64ee89ac2e8ebd736a1d7..7b2bd2a77c8ffc768d4160be3fbdde5225dc82c2 100644 (file)
@@ -22,7 +22,7 @@ function db_connect($host, $user, $pass, $db) {
                $link = pg_connect($string);
 
                if (!$link) {
-                       die("Connection failed: " . pg_last_error($link));
+                       die("Unable to connect to database (as $user to $host, database $db):" . pg_last_error());
                }
 
                return $link;
@@ -36,7 +36,7 @@ function db_connect($host, $user, $pass, $db) {
                        }
                        return $link;
                } else {
-                       die("Connection failed: " . mysql_error($link));
+                       die("Unable to connect to database (as $user to $host, database $db): " . mysql_error());
                }
        }
 }
index 2118858cac0bdbf756067b1d646fc10fe881e5cd..ec31a1f165537f5759ba0ad73dbcf3a388711d30 100644 (file)
 
                require_once 'lib/phpmailer/class.phpmailer.php';
 
-               if (!DIGEST_ENABLE) return false;
-
-               $user_limit = DIGEST_EMAIL_LIMIT;
+               $user_limit = 15; // amount of users to process (e.g. emails to send out)
                $days = 1;
 
                print "Sending digests, batch of max $user_limit users, days = $days, headline limit = $limit\n\n";
 
                                        $mail->CharSet = "UTF-8";
 
-                                       $mail->From = DIGEST_FROM_ADDRESS;
-                                       $mail->FromName = DIGEST_FROM_NAME;
+                                       $mail->From = SMTP_FROM_ADDRESS;
+                                       $mail->FromName = SMTP_FROM_NAME;
                                        $mail->AddAddress($line["email"], $line["login"]);
 
-                                       if (DIGEST_SMTP_HOST) {
-                                               $mail->Host = DIGEST_SMTP_HOST;
+                                       if (SMTP_HOST) {
+                                               $mail->Host = SMTP_HOST;
                                                $mail->Mailer = "smtp";
-                                               $mail->SMTPAuth = DIGEST_SMTP_LOGIN != '';
-                                               $mail->Username = DIGEST_SMTP_LOGIN;
-                                               $mail->Password = DIGEST_SMTP_PASSWORD;
+                                               $mail->SMTPAuth = SMTP_LOGIN != '';
+                                               $mail->Username = SMTP_LOGIN;
+                                               $mail->Password = SMTP_PASSWORD;
                                        }
 
                                        $mail->IsHTML(true);
                                                onclick=\"editArticleNote($id)\"
                                                alt='PubNote' title='".__('Edit article note')."'>";
 
-                               if (DIGEST_ENABLE) {
-                                       $rv['content'] .= "<img src=\"".theme_image($link, 'images/art-email.png')."\"
-                                               class='tagsPic' style=\"cursor : pointer\"
-                                               onclick=\"emailArticle($id)\"
-                                               alt='Zoom' title='".__('Forward by email')."'>";
-                               }
+                               $rv['content'] .= "<img src=\"".theme_image($link, 'images/art-email.png')."\"
+                                       class='tagsPic' style=\"cursor : pointer\"
+                                       onclick=\"emailArticle($id)\"
+                                       alt='Zoom' title='".__('Forward by email')."'>";
 
                                if (ENABLE_TWEET_BUTTON) {
                                        $rv['content'] .= "<img src=\"".theme_image($link, 'images/art-tweet.png')."\"
index 3dbcb34b2fc41fb8b65d508c7d854f105764e0be..7588428de958b14d1838c45e1c5cf54599bf840e 100644 (file)
@@ -1,4 +1,8 @@
 <?php
+       define('DAEMON_UPDATE_LOGIN_LIMIT', 30);
+       define('DAEMON_FEED_LIMIT', 100);
+       define('DAEMON_SLEEP_INTERVAL', 120);
+
        function update_feedbrowser_cache($link) {
 
                $result = db_query($link, "SELECT feed_url, site_url, title, COUNT(id) AS subscribers
@@ -57,7 +61,7 @@
                // Process all other feeds using last_updated and interval parameters
 
                // Test if the user has loggued in recently. If not, it does not update its feeds.
-               if (DAEMON_UPDATE_LOGIN_LIMIT > 0) {
+               if (!SINGLE_USER_MODE && DAEMON_UPDATE_LOGIN_LIMIT > 0) {
                        if (DB_TYPE == "pgsql") {
                                $login_thresh_qpart = "AND ttrss_users.last_login >= NOW() - INTERVAL '".DAEMON_UPDATE_LOGIN_LIMIT." days'";
                        } else {
                }
 
                // Send feed digests by email if needed.
-               if (DAEMON_SENDS_DIGESTS) send_headlines_digests($link);
+               send_headlines_digests($link);
 
        } // function update_daemon_common
 
index 2769b4b59f480a07d39f7676aeb0a3045e9edf4b..aebe4f89db20be3957ea9b8737e1163186d541b7 100644 (file)
        require_once "functions.php";
 
        if (!file_exists("config.php")) {
-               print "<b>Fatal Error</b>: You forgot to copy
-               <b>config.php-dist</b> to <b>config.php</b> and edit it.\n";
-               exit;
-       }
-
-       define('EXPECTED_CONFIG_VERSION', 23);
-       define('SCHEMA_VERSION', 86);
-
-       require_once "config.php";
-       require_once "sanity_config.php";
-
-       if (CONFIG_VERSION != EXPECTED_CONFIG_VERSION) {
-               $err_msg = "config: your config file version is incorrect. See config.php-dist.\n";
-       }
-
-       $purifier_cache_dir = CACHE_DIR . "/htmlpurifier";
+               $err_msg = "Configuration file not found. Looks like you forgot to copy config.php-dist to config.php and edit it.";
+       } else {
 
-       if (!is_writable($purifier_cache_dir)) {
-               $err_msg = "config: HTMLPurifier cache directory should be writable by anyone (chmod -R 777 $purifier_cache_dir)";
-       }
+               define('EXPECTED_CONFIG_VERSION', 24);
+               define('SCHEMA_VERSION', 86);
 
-       if (GENERATED_CONFIG_CHECK != EXPECTED_CONFIG_VERSION) {
-               $err_msg = "config: your sanity_config.php is outdated, please recreate it using ./utils/regen_config_checks.sh";
-       }
+               require_once "config.php";
+               require_once "sanity_config.php";
 
-       foreach ($requred_defines as $d) {
-               if (!defined($d)) {
-                       $err_msg = "config: required constant $d is not defined. Please check config.php";
+               if (CONFIG_VERSION != EXPECTED_CONFIG_VERSION) {
+                       $err_msg = "Configuration file (config.php) has incorrect version. Update it with new options from config.php-dist and set CONFIG_VERSION to the correct value.";
                }
-       }
-
-       if (defined('RSS_BACKEND_TYPE')) {
-               print "<b>Fatal error</b>: RSS_BACKEND_TYPE is deprecated. Please remove this
-                       option from config.php\n";
-               exit;
-       }
-
-       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>
-               and <b>xml-import.php</b>) could be used maliciously. Please remove them
-               from your TT-RSS instance.\n";
-               exit;
-       }
-
-       if (SINGLE_USER_MODE && DAEMON_UPDATE_LOGIN_LIMIT > 0) {
-               print "<b>Fatal Error</b>: Please set DAEMON_UPDATE_LOGIN_LIMIT
-                       to 0 in single user mode.\n";
-               exit;
-       }
 
-       if (!defined('SESSION_EXPIRE_TIME')) {
-               $err_msg = "config: SESSION_EXPIRE_TIME is undefined";
-       }
+               $purifier_cache_dir = CACHE_DIR . "/htmlpurifier";
 
-       if (SESSION_EXPIRE_TIME < 60) {
-               $err_msg = "config: SESSION_EXPIRE_TIME is too low (less than 60)";
-       }
+               if (!is_writable($purifier_cache_dir)) {
+                       $err_msg = "HTMLPurifier cache directory should be writable by anyone (chmod -R 777 $purifier_cache_dir)";
+               }
 
-       if (SESSION_EXPIRE_TIME < SESSION_COOKIE_LIFETIME) {
-               $err_msg = "config: SESSION_EXPIRE_TIME should be greater or equal to" .
-                       "SESSION_COOKIE_LIFETIME";
-       }
+               if (GENERATED_CONFIG_CHECK != EXPECTED_CONFIG_VERSION) {
+                       $err_msg = "Configuration option checker sanity_config.php is outdated, please recreate it using ./utils/regen_config_checks.sh";
+               }
 
-/*     if (defined('DISABLE_SESSIONS')) {
-               $err_msg = "config: you have enabled DISABLE_SESSIONS. Please disable this option.";
-} */
+               foreach ($requred_defines as $d) {
+                       if (!defined($d)) {
+                               $err_msg = "Required configuration file parameter $d is not defined in config.php. You might need to copy it from config.php-dist.";
+                       }
+               }
 
-       if (DATABASE_BACKED_SESSIONS && SINGLE_USER_MODE) {
-               $err_msg = "config: DATABASE_BACKED_SESSIONS is incompatible with SINGLE_USER_MODE";
-       }
+               if (SESSION_EXPIRE_TIME < 60) {
+                       $err_msg = "SESSION_EXPIRE_TIME set in config.php is too low, please set it to an integer value >= 60";
+               }
 
-       if (DATABASE_BACKED_SESSIONS && DB_TYPE == "mysql") {
-               $err_msg = "config: DATABASE_BACKED_SESSIONS are currently broken with MySQL";
-       }
+               if (SESSION_EXPIRE_TIME < SESSION_COOKIE_LIFETIME) {
+                       $err_msg = "SESSION_EXPIRE_TIME set in config.php should be >= to SESSION_COOKIE_LIFETIME";
+               }
 
-       if (SINGLE_USER_MODE) {
-               $link = db_connect(DB_HOST, DB_USER, DB_PASS, DB_NAME);
+               if (SINGLE_USER_MODE) {
+                       $link = db_connect(DB_HOST, DB_USER, DB_PASS, DB_NAME);
 
-               if ($link) {
-                       $result = db_query($link, "SELECT id FROM ttrss_users WHERE id = 1");
+                       if ($link) {
+                               $result = db_query($link, "SELECT id FROM ttrss_users WHERE id = 1");
 
-                       if (db_num_rows($result) != 1) {
-                               $err_msg = "config: SINGLE_USER_MODE is enabled but default admin account (UID=1) is not found.";
+                               if (db_num_rows($result) != 1) {
+                                       $err_msg = "SINGLE_USER_MODE is enabled in config.php but default admin account is not found.";
+                               }
                        }
                }
-       }
-
-       if (defined('MAIL_FROM')) {
-               $err_msg = "config: MAIL_FROM has been split into DIGEST_FROM_NAME and DIGEST_FROM_ADDRESS";
-       }
-
-       if (!defined('COUNTERS_MAX_AGE')) {
-               $err_msg = "config: option COUNTERS_MAX_AGE expected, but not defined";
-       }
 
-       if (defined('DAEMON_REFRESH_ONLY')) {
-               $err_msg = "config: option DAEMON_REFRESH_ONLY is obsolete. Please remove this option and read about other ways to update feeds on the <a href='http://tt-rss.org/wiki/UpdatingFeeds'>wiki</a>.";
+               if (SELF_URL_PATH == "http://yourserver/tt-rss/") {
+                       if ($_SERVER['HTTP_REFERER']) {
+                               $err_msg = "Please set SELF_URL_PATH to the correct value for your server (possible value: <b>" . $_SERVER['HTTP_REFERER'] . "</b>)";
+                       } else {
+                               $err_msg = "Please set SELF_URL_PATH to the correct value for your server.";
+                       }
+               }
 
-       }
+               if (!is_writable(ICONS_DIR)) {
+                       $err_msg = "ICONS_DIR defined in config.php is not writable (chmod -R 777 ".ICONS_DIR.").\n";
+               }
 
-       if (defined('ENABLE_SIMPLEPIE')) {
-               $err_msg = "config: ENABLE_SIMPLEPIE is obsolete and replaced with DEFAULT_UPDATE_METHOD. Please adjust your config.php.";
-       }
+               if (ini_get("open_basedir")) {
+                       $err_msg = "PHP configuration option open_basedir is not supported. Please disable this in PHP settings file (php.ini).";
+               }
 
-       if (!defined('DEFAULT_UPDATE_METHOD') || (DEFAULT_UPDATE_METHOD != 0 &&
-                       DEFAULT_UPDATE_METHOD != 1)) {
-               $err_msg = "config: DEFAULT_UPDATE_METHOD should be either 0 or 1.";
-       }
+               if (!function_exists("curl_init") && !ini_get("allow_url_fopen")) {
+                       $err_msg = "PHP configuration option allow_url_fopen is disabled, and CURL functions are not present. Either enable allow_url_fopen or install PHP extension for CURL.";
+               }
 
-       if (SELF_URL_PATH == "http://yourserver/tt-rss/") {
-               $err_msg = "config: please set SELF_URL_PATH to the correct value.";
-       }
+               if (!function_exists("json_encode")) {
+                       $err_msg = "PHP support for JSON is required, but was not found.";
+               }
 
-       if (!is_writable(ICONS_DIR)) {
-               $err_msg = "config: your ICONS_DIR (" . ICONS_DIR . ") is not writable.\n";
-       }
+               if (DB_TYPE == "mysql" && !function_exists("mysql_connect")) {
+                       $err_msg = "PHP support for MySQL is required for configured DB_TYPE in config.php.";
+               }
 
-       if (ini_get("open_basedir")) {
-               $err_msg = "php.ini: open_basedir is not supported.";
-       }
+               if (DB_TYPE == "pgsql" && !function_exists("pg_connect")) {
+                       $err_msg = "PHP support for PostgreSQL is required for configured DB_TYPE in config.php";
+               }
 
-       if (!function_exists("curl_init") && !ini_get("allow_url_fopen")) {
-               $err_msg = "php.ini: either allow_url_fopen or CURL needs to be enabled.";
-       }
+               if (!function_exists("mb_strlen")) {
+                       $err_msg = "PHP support for mbstring functions is required, but was not found.";
+               }
 
-       if (!function_exists("json_encode")) {
-               $err_msg = "PHP: json functions not found.";
-       }
+               if (!function_exists("ctype_lower")) {
+                       $err_msg = "PHP support for ctype functions are required by HTMLPurifier.";
+               }
 
-       if (DB_TYPE == "mysql" && !function_exists("mysql_connect")) {
-               $err_msg = "PHP: MySQL functions not found.";
-       }
+               if (ini_get("safe_mode")) {
+                       $err_msg = "PHP safe mode setting is not supported.";
+               }
 
-       if (DB_TYPE == "pgsql" && !function_exists("pg_connect")) {
-               $err_msg = "PHP: PostgreSQL functions not found.";
-       }
+               if ((PUBSUBHUBBUB_HUB || PUBSUBHUBBUB_ENABLED) && !function_exists("curl_init")) {
+                       $err_msg = "PHP support for CURL is required for PubSubHubbub.";
+               }
 
-       if (!function_exists("mb_strlen")) {
-               $err_msg = "PHP: mbstring functions not found.";
+               if (!class_exists("DOMDocument")) {
+                       $err_msg = "PHP support for DOMDocument is required, but was not found.";
+               }
        }
 
-       if (!function_exists("ctype_lower")) {
-               $err_msg = "PHP: ctype functions not found (required for HTMLPurifier).";
-       }
+       if ($err_msg) { ?>
+               <html>
+               <head>
+               <title>Fatal error</title>
+                       <meta http-equiv="Content-Type" content="text/html; charset=utf-8">
+                       <link rel="stylesheet" type="text/css" href="utility.css">
+               </head>
 
-       if (ini_get("safe_mode")) {
-               $err_msg = "php.ini: Safe mode is not supported. If you wish to continue, remove this test from sanity_check.php and proceeed at your own risk. Please note that your bug reports will not be accepted or reviewed.";
-       }
+       <div class="floatingLogo"><img src="images/logo_wide.png"></div>
 
-       if ((PUBSUBHUBBUB_HUB || PUBSUBHUBBUB_ENABLED) && !function_exists("curl_init")) {
-               $err_msg = "CURL is required for PubSubHubbub support.";
-       }
+               <h1>Fatal error</h1>
 
-       if (!class_exists("DOMDocument")) {
-               $err_msg = "PHP: DOMDocument extension not found.";
-       }
+               <p>Tiny Tiny RSS was unable to initialize properly. This usually means a misconfiguration or an incomplete upgrade. Please fix
+               the error indicated by the following message:</p>
 
-       if (SELF_URL_PATH == "http://local.host/tt-rss") {
-               $err_msg = "config: please set SELF_URL_PATH to the correct value";
-       }
+               <p>You might want to check tt-rss <a href="http://tt-rss.org/wiki">wiki</a> or the
+                       <a href="http://tt-rss.org/forum">forums</a> for more information. Please search the forums before creating new topic
+                       for your question.</p>
 
-       if (!ISCONFIGURED) {
-               $err_msg = "config: please read config.php completely.";
-       }
+               <body>
+                       <?php echo format_error($err_msg) ?>
+               </body>
+               </html>
 
-       if ($err_msg) {
-               print "<b>Fatal Error</b>: $err_msg\n";
-               exit;
+       <?php
+               die;
        }
 
 ?>
index 51c9d52be9cea9d5a3e404f221a406e299967333..5ed49de51d193f3e93c702eec4e073418b4fa2aa 100644 (file)
@@ -1,3 +1,3 @@
-<?php # This file has been generated at:  Tue Apr 26 18:40:48 MSD 2011
-define('GENERATED_CONFIG_CHECK', 23);
-$requred_defines = array( 'DB_TYPE', 'DB_HOST', 'DB_USER', 'DB_NAME', 'DB_PASS', 'SELF_URL_PATH', 'SINGLE_USER_MODE', 'CACHE_DIR', 'SIMPLEPIE_CACHE_IMAGES', 'ICONS_DIR', 'ICONS_URL', 'TMP_DIRECTORY', 'DAEMON_SLEEP_INTERVAL', 'DATABASE_BACKED_SESSIONS', 'SESSION_CHECK_ADDRESS', 'SESSION_COOKIE_LIFETIME', 'SESSION_EXPIRE_TIME', 'DAEMON_UPDATE_LOGIN_LIMIT', 'CHECK_FOR_NEW_VERSION', 'DIGEST_ENABLE', 'DIGEST_EMAIL_LIMIT', 'DAEMON_SENDS_DIGESTS', 'MYSQL_CHARSET', 'DEFAULT_UPDATE_METHOD', 'COUNTERS_MAX_AGE', 'DIGEST_FROM_NAME', 'DIGEST_FROM_ADDRESS', 'DIGEST_SUBJECT', 'DIGEST_SMTP_HOST', 'DIGEST_SMTP_LOGIN', 'DIGEST_SMTP_PASSWORD', 'DAEMON_FEED_LIMIT', 'ALLOW_REMOTE_USER_AUTH', 'AUTO_LOGIN', 'AUTO_CREATE_USER', 'LOCK_DIRECTORY', 'ENABLE_GZIP_OUTPUT', 'PHP_EXECUTABLE', 'ENABLE_REGISTRATION', 'REG_NOTIFY_ADDRESS', 'REG_MAX_USERS', 'FEEDBACK_URL', 'FORCE_ARTICLE_PURGE', 'SPHINX_ENABLED', 'SPHINX_INDEX', 'ENABLE_TWEET_BUTTON', 'CONSUMER_KEY', 'CONSUMER_SECRET', 'PUBSUBHUBBUB_HUB', 'PUBSUBHUBBUB_ENABLED', 'ISCONFIGURED', 'CONFIG_VERSION'); ?>
+<?php # This file has been generated at:  Tue Dec 13 18:57:11 MSK 2011
+define('GENERATED_CONFIG_CHECK', 24);
+$requred_defines = array( 'DB_TYPE', 'DB_HOST', 'DB_USER', 'DB_NAME', 'DB_PASS', 'MYSQL_CHARSET', 'SELF_URL_PATH', 'SINGLE_USER_MODE', 'PHP_EXECUTABLE', 'LOCK_DIRECTORY', 'CACHE_DIR', 'TMP_DIRECTORY', 'ICONS_DIR', 'ICONS_URL', 'SIMPLEPIE_CACHE_IMAGES', 'DEFAULT_UPDATE_METHOD', 'FORCE_ARTICLE_PURGE', 'PUBSUBHUBBUB_HUB', 'PUBSUBHUBBUB_ENABLED', 'SPHINX_ENABLED', 'SPHINX_INDEX', 'ALLOW_REMOTE_USER_AUTH', 'AUTO_LOGIN', 'AUTO_CREATE_USER', 'ENABLE_REGISTRATION', 'REG_NOTIFY_ADDRESS', 'REG_MAX_USERS', 'SESSION_COOKIE_LIFETIME', 'SESSION_EXPIRE_TIME', 'SESSION_CHECK_ADDRESS', 'SMTP_FROM_NAME', 'SMTP_FROM_ADDRESS', 'DIGEST_SUBJECT', 'SMTP_HOST', 'SMTP_LOGIN', 'SMTP_PASSWORD', 'ENABLE_TWEET_BUTTON', 'CONSUMER_KEY', 'CONSUMER_SECRET', 'CHECK_FOR_NEW_VERSION', 'COUNTERS_MAX_AGE', 'ENABLE_GZIP_OUTPUT', 'FEEDBACK_URL', 'CONFIG_VERSION'); ?>
index 8588f58078f2c396a6a87d78d71d6016b46334f7..5aeda62ff1f21e037117ddad4701ffefa8822222 100644 (file)
@@ -96,7 +96,7 @@
                db_query($session_connection, $query);
        }
 
-       if (DATABASE_BACKED_SESSIONS) {
+       if (!SINGLE_USER_MODE && DB_TYPE == "pgsql") {
                session_set_save_handler("ttrss_open",
                        "ttrss_close", "ttrss_read", "ttrss_write",
                        "ttrss_destroy", "ttrss_gc");
index 33a6628f41cf1a78141234bf7ced39d5f8f592fc..d63fc251affd8d8a779de81d445291b7dd38b6b0 100644 (file)
 
                                        $mail->CharSet = "UTF-8";
 
-                                       $mail->From = DIGEST_FROM_ADDRESS;
-                                       $mail->FromName = DIGEST_FROM_NAME;
+                                       $mail->From = SMTP_FROM_ADDRESS;
+                                       $mail->FromName = SMTP_FROM_NAME;
                                        $mail->AddAddress($email);
 
-                                       if (DIGEST_SMTP_HOST) {
-                                               $mail->Host = DIGEST_SMTP_HOST;
+                                       if (SMTP_HOST) {
+                                               $mail->Host = SMTP_HOST;
                                                $mail->Mailer = "smtp";
-                                               $mail->Username = DIGEST_SMTP_LOGIN;
-                                               $mail->Password = DIGEST_SMTP_PASSWORD;
+                                               $mail->Username = SMTP_LOGIN;
+                                               $mail->Password = SMTP_PASSWORD;
                                        }
 
                        //              $mail->IsHTML(true);
 
                                        $mail->CharSet = "UTF-8";
 
-                                       $mail->From = DIGEST_FROM_ADDRESS;
-                                       $mail->FromName = DIGEST_FROM_NAME;
+                                       $mail->From = SMTP_FROM_ADDRESS;
+                                       $mail->FromName = SMTP_FROM_NAME;
                                        $mail->AddAddress(REG_NOTIFY_ADDRESS);
 
-                                       if (DIGEST_SMTP_HOST) {
-                                               $mail->Host = DIGEST_SMTP_HOST;
+                                       if (SMTP_HOST) {
+                                               $mail->Host = SMTP_HOST;
                                                $mail->Mailer = "smtp";
-                                               $mail->Username = DIGEST_SMTP_LOGIN;
-                                               $mail->Password = DIGEST_SMTP_PASSWORD;
+                                               $mail->Username = SMTP_LOGIN;
+                                               $mail->Password = SMTP_PASSWORD;
                                        }
 
                        //              $mail->IsHTML(true);
index 0b80789c28b34eecc59d9da09f12517a76f845f1..14357b4da0219c50314844163c21abc12296236a 100644 (file)
@@ -60,7 +60,6 @@ div.error {
        padding : 5px;
        margin : 0px 0px 5px 0px;
        font-size : 9pt;
-       width : 50%;
 }
 
 h1 {