mirror of
https://git.tt-rss.org/git/tt-rss.git
synced 2026-01-28 11:07:10 +00:00
wip: initial for config object
This commit is contained in:
@@ -57,7 +57,7 @@ class API extends Handler {
|
||||
$password = clean($_REQUEST["password"]);
|
||||
$password_base64 = base64_decode(clean($_REQUEST["password"]));
|
||||
|
||||
if (SINGLE_USER_MODE) $login = "admin";
|
||||
if (Config::get(Config::SINGLE_USER_MODE)) $login = "admin";
|
||||
|
||||
if ($uid = UserHelper::find_user_by_login($login)) {
|
||||
if (get_pref("ENABLE_API_ACCESS", $uid)) {
|
||||
@@ -361,9 +361,10 @@ class API extends Handler {
|
||||
}
|
||||
|
||||
function getConfig() {
|
||||
$config = array(
|
||||
"icons_dir" => ICONS_DIR,
|
||||
"icons_url" => ICONS_URL);
|
||||
$config = [
|
||||
"icons_dir" => Config::get(Config::ICONS_DIR),
|
||||
"icons_url" => Config::get(Config::ICONS_URL)
|
||||
];
|
||||
|
||||
$config["daemon_is_running"] = file_is_locked("update_daemon.lock");
|
||||
|
||||
|
||||
@@ -85,7 +85,7 @@ class Article extends Handler_Protected {
|
||||
content = ?, content_hash = ? WHERE id = ?");
|
||||
$sth->execute([$content, $content_hash, $ref_id]);
|
||||
|
||||
if (DB_TYPE == "pgsql"){
|
||||
if (Config::get(Config::DB_TYPE) == "pgsql") {
|
||||
$sth = $pdo->prepare("UPDATE ttrss_entries
|
||||
SET tsvector_combined = to_tsvector( :ts_content)
|
||||
WHERE id = :id");
|
||||
@@ -130,7 +130,7 @@ class Article extends Handler_Protected {
|
||||
|
||||
if ($row = $sth->fetch()) {
|
||||
$ref_id = $row["id"];
|
||||
if (DB_TYPE == "pgsql"){
|
||||
if (Config::get(Config::DB_TYPE) == "pgsql"){
|
||||
$sth = $pdo->prepare("UPDATE ttrss_entries
|
||||
SET tsvector_combined = to_tsvector( :ts_content)
|
||||
WHERE id = :id");
|
||||
@@ -475,7 +475,7 @@ class Article extends Handler_Protected {
|
||||
|
||||
// purge orphaned posts in main content table
|
||||
|
||||
if (DB_TYPE == "mysql")
|
||||
if (Config::get(Config::DB_TYPE) == "mysql")
|
||||
$limit_qpart = "LIMIT 5000";
|
||||
else
|
||||
$limit_qpart = "";
|
||||
|
||||
@@ -21,9 +21,9 @@ class Db
|
||||
$db_host = defined('DB_HOST') && DB_HOST ? ';host=' . DB_HOST : '';
|
||||
|
||||
try {
|
||||
$pdo = new PDO(DB_TYPE . ':dbname=' . DB_NAME . $db_host . $db_port,
|
||||
DB_USER,
|
||||
DB_PASS);
|
||||
$pdo = new PDO(Config::get(Config::DB_TYPE) . ':dbname=' . Config::get(Config::DB_NAME) . $db_host . $db_port,
|
||||
Config::get(Config::DB_USER),
|
||||
Config::get(Config::DB_PASS));
|
||||
} catch (Exception $e) {
|
||||
print "<pre>Exception while creating PDO object:" . $e->getMessage() . "</pre>";
|
||||
exit(101);
|
||||
@@ -31,14 +31,14 @@ class Db
|
||||
|
||||
$pdo->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
|
||||
|
||||
if (DB_TYPE == "pgsql") {
|
||||
if (Config::get(Config::DB_TYPE) == "pgsql") {
|
||||
|
||||
$pdo->query("set client_encoding = 'UTF-8'");
|
||||
$pdo->query("set datestyle = 'ISO, european'");
|
||||
$pdo->query("set TIME ZONE 0");
|
||||
$pdo->query("set cpu_tuple_cost = 0.5");
|
||||
|
||||
} else if (DB_TYPE == "mysql") {
|
||||
} else if (Config::get(Config::DB_TYPE) == "mysql") {
|
||||
$pdo->query("SET time_zone = '+0:0'");
|
||||
|
||||
if (defined('MYSQL_CHARSET') && MYSQL_CHARSET) {
|
||||
@@ -68,7 +68,7 @@ class Db
|
||||
}
|
||||
|
||||
public static function sql_random_function() {
|
||||
if (DB_TYPE == "mysql") {
|
||||
if (Config::get(Config::DB_TYPE) == "mysql") {
|
||||
return "RAND()";
|
||||
} else {
|
||||
return "RANDOM()";
|
||||
|
||||
@@ -8,9 +8,9 @@ class Digest
|
||||
|
||||
Debug::log("Sending digests, batch of max $user_limit users, headline limit = $limit");
|
||||
|
||||
if (DB_TYPE == "pgsql") {
|
||||
if (Config::get(Config::DB_TYPE) == "pgsql") {
|
||||
$interval_qpart = "last_digest_sent < NOW() - INTERVAL '1 days'";
|
||||
} else /* if (DB_TYPE == "mysql") */ {
|
||||
} else /* if (Config::get(Config::DB_TYPE) == "mysql") */ {
|
||||
$interval_qpart = "last_digest_sent < DATE_SUB(NOW(), INTERVAL 1 DAY)";
|
||||
}
|
||||
|
||||
@@ -91,19 +91,19 @@ class Digest
|
||||
|
||||
$tpl->setVariable('CUR_DATE', date('Y/m/d', $local_ts));
|
||||
$tpl->setVariable('CUR_TIME', date('G:i', $local_ts));
|
||||
$tpl->setVariable('TTRSS_HOST', SELF_URL_PATH);
|
||||
$tpl->setVariable('TTRSS_HOST', Config::get(Config.Config::get(Config::SELF_URL_PATH)));
|
||||
|
||||
$tpl_t->setVariable('CUR_DATE', date('Y/m/d', $local_ts));
|
||||
$tpl_t->setVariable('CUR_TIME', date('G:i', $local_ts));
|
||||
$tpl_t->setVariable('TTRSS_HOST', SELF_URL_PATH);
|
||||
$tpl_t->setVariable('TTRSS_HOST', Config::get(Config.Config::get(Config::SELF_URL_PATH)));
|
||||
|
||||
$affected_ids = array();
|
||||
|
||||
$days = (int) $days;
|
||||
|
||||
if (DB_TYPE == "pgsql") {
|
||||
if (Config::get(Config::DB_TYPE) == "pgsql") {
|
||||
$interval_qpart = "ttrss_entries.date_updated > NOW() - INTERVAL '$days days'";
|
||||
} else /* if (DB_TYPE == "mysql") */ {
|
||||
} else /* if (Config::get(Config::DB_TYPE) == "mysql") */ {
|
||||
$interval_qpart = "ttrss_entries.date_updated > DATE_SUB(NOW(), INTERVAL $days DAY)";
|
||||
}
|
||||
|
||||
|
||||
@@ -191,7 +191,7 @@ class DiskCache {
|
||||
];
|
||||
|
||||
public function __construct($dir) {
|
||||
$this->dir = CACHE_DIR . "/" . basename(clean($dir));
|
||||
$this->dir = Config::get(Config::CACHE_DIR) . "/" . basename(clean($dir));
|
||||
}
|
||||
|
||||
public function get_dir() {
|
||||
@@ -339,7 +339,7 @@ class DiskCache {
|
||||
}
|
||||
|
||||
static function expire() {
|
||||
$dirs = array_filter(glob(CACHE_DIR . "/*"), "is_dir");
|
||||
$dirs = array_filter(glob(Config::get(Config::CACHE_DIR) . "/*"), "is_dir");
|
||||
|
||||
foreach ($dirs as $cache_dir) {
|
||||
$num_deleted = 0;
|
||||
@@ -396,7 +396,7 @@ class DiskCache {
|
||||
|
||||
$tmppluginhost = new PluginHost();
|
||||
|
||||
$tmppluginhost->load(PLUGINS, PluginHost::KIND_SYSTEM);
|
||||
$tmppluginhost->load(Config::get(Config::PLUGINS), PluginHost::KIND_SYSTEM);
|
||||
//$tmppluginhost->load_data();
|
||||
|
||||
if ($tmppluginhost->run_hooks_until(PluginHost::HOOK_SEND_LOCAL_FILE, true, $filename))
|
||||
|
||||
@@ -179,7 +179,7 @@ abstract class FeedItem_Common extends FeedItem {
|
||||
|
||||
$cat = preg_replace('/[,\'\"]/', "", $cat);
|
||||
|
||||
if (DB_TYPE == "mysql") {
|
||||
if (Config::get(Config::DB_TYPE) == "mysql") {
|
||||
$cat = preg_replace('/[\x{10000}-\x{10FFFF}]/u', "\xEF\xBF\xBD", $cat);
|
||||
}
|
||||
|
||||
|
||||
@@ -186,7 +186,7 @@ class Feeds extends Handler_Protected {
|
||||
$id = $line["id"];
|
||||
|
||||
// frontend doesn't expect pdo returning booleans as strings on mysql
|
||||
if (DB_TYPE == "mysql") {
|
||||
if (Config::get(Config::DB_TYPE) == "mysql") {
|
||||
foreach (["unread", "marked", "published"] as $k) {
|
||||
$line[$k] = $line[$k] === "1";
|
||||
}
|
||||
@@ -576,7 +576,7 @@ class Feeds extends Handler_Protected {
|
||||
|
||||
function search() {
|
||||
print json_encode([
|
||||
"show_language" => DB_TYPE == "pgsql",
|
||||
"show_language" => Config::get(Config::DB_TYPE) == "pgsql",
|
||||
"show_syntax_help" => count(PluginHost::getInstance()->get_hooks(PluginHost::HOOK_SEARCH)) == 0,
|
||||
"all_languages" => Pref_Feeds::get_ts_languages(),
|
||||
"default_language" => get_pref('DEFAULT_SEARCH_LANGUAGE')
|
||||
@@ -716,21 +716,21 @@ class Feeds extends Handler_Protected {
|
||||
|
||||
switch ($mode) {
|
||||
case "1day":
|
||||
if (DB_TYPE == "pgsql") {
|
||||
if (Config::get(Config::DB_TYPE) == "pgsql") {
|
||||
$date_qpart = "date_entered < NOW() - INTERVAL '1 day' ";
|
||||
} else {
|
||||
$date_qpart = "date_entered < DATE_SUB(NOW(), INTERVAL 1 DAY) ";
|
||||
}
|
||||
break;
|
||||
case "1week":
|
||||
if (DB_TYPE == "pgsql") {
|
||||
if (Config::get(Config::DB_TYPE) == "pgsql") {
|
||||
$date_qpart = "date_entered < NOW() - INTERVAL '1 week' ";
|
||||
} else {
|
||||
$date_qpart = "date_entered < DATE_SUB(NOW(), INTERVAL 1 WEEK) ";
|
||||
}
|
||||
break;
|
||||
case "2week":
|
||||
if (DB_TYPE == "pgsql") {
|
||||
if (Config::get(Config::DB_TYPE) == "pgsql") {
|
||||
$date_qpart = "date_entered < NOW() - INTERVAL '2 week' ";
|
||||
} else {
|
||||
$date_qpart = "date_entered < DATE_SUB(NOW(), INTERVAL 2 WEEK) ";
|
||||
@@ -807,7 +807,7 @@ class Feeds extends Handler_Protected {
|
||||
|
||||
$intl = (int) get_pref("FRESH_ARTICLE_MAX_AGE");
|
||||
|
||||
if (DB_TYPE == "pgsql") {
|
||||
if (Config::get(Config::DB_TYPE) == "pgsql") {
|
||||
$match_part = "date_entered > NOW() - INTERVAL '$intl hour' ";
|
||||
} else {
|
||||
$match_part = "date_entered > DATE_SUB(NOW(),
|
||||
@@ -900,7 +900,7 @@ class Feeds extends Handler_Protected {
|
||||
|
||||
$intl = (int) get_pref("FRESH_ARTICLE_MAX_AGE", $owner_uid);
|
||||
|
||||
if (DB_TYPE == "pgsql") {
|
||||
if (Config::get(Config::DB_TYPE) == "pgsql") {
|
||||
$match_part .= " AND date_entered > NOW() - INTERVAL '$intl hour' ";
|
||||
} else {
|
||||
$match_part .= " AND date_entered > DATE_SUB(NOW(), INTERVAL $intl HOUR) ";
|
||||
@@ -1332,7 +1332,7 @@ class Feeds extends Handler_Protected {
|
||||
list($search_query_part, $search_words) = self::_search_to_sql($search, $search_language, $owner_uid);
|
||||
}
|
||||
|
||||
if (DB_TYPE == "pgsql") {
|
||||
if (Config::get(Config::DB_TYPE) == "pgsql") {
|
||||
$test_sth = $pdo->prepare("select $search_query_part
|
||||
FROM ttrss_entries, ttrss_user_entries WHERE id = ref_id limit 1");
|
||||
|
||||
@@ -1469,7 +1469,7 @@ class Feeds extends Handler_Protected {
|
||||
} else if ($feed == -6) { // recently read
|
||||
$query_strategy_part = "unread = false AND last_read IS NOT NULL";
|
||||
|
||||
if (DB_TYPE == "pgsql") {
|
||||
if (Config::get(Config::DB_TYPE) == "pgsql") {
|
||||
$query_strategy_part .= " AND last_read > NOW() - INTERVAL '1 DAY' ";
|
||||
} else {
|
||||
$query_strategy_part .= " AND last_read > DATE_SUB(NOW(), INTERVAL 1 DAY) ";
|
||||
@@ -1486,7 +1486,7 @@ class Feeds extends Handler_Protected {
|
||||
|
||||
$intl = (int) get_pref("FRESH_ARTICLE_MAX_AGE", $owner_uid);
|
||||
|
||||
if (DB_TYPE == "pgsql") {
|
||||
if (Config::get(Config::DB_TYPE) == "pgsql") {
|
||||
$query_strategy_part .= " AND date_entered > NOW() - INTERVAL '$intl hour' ";
|
||||
} else {
|
||||
$query_strategy_part .= " AND date_entered > DATE_SUB(NOW(), INTERVAL $intl HOUR) ";
|
||||
@@ -1605,7 +1605,7 @@ class Feeds extends Handler_Protected {
|
||||
if ($feed == -3)
|
||||
$first_id_query_strategy_part = "true";
|
||||
|
||||
if (DB_TYPE == "pgsql") {
|
||||
if (Config::get(Config::DB_TYPE) == "pgsql") {
|
||||
$sanity_interval_qpart = "date_entered >= NOW() - INTERVAL '1 hour' AND";
|
||||
$yyiw_qpart = "to_char(date_entered, 'IYYY-IW') AS yyiw";
|
||||
|
||||
@@ -1705,7 +1705,7 @@ class Feeds extends Handler_Protected {
|
||||
} else {
|
||||
// browsing by tag
|
||||
|
||||
if (DB_TYPE == "pgsql") {
|
||||
if (Config::get(Config::DB_TYPE) == "pgsql") {
|
||||
$distinct_columns = str_replace("desc", "", strtolower($order_by));
|
||||
$distinct_qpart = "DISTINCT ON (id, $distinct_columns)";
|
||||
} else {
|
||||
@@ -1948,10 +1948,10 @@ class Feeds extends Handler_Protected {
|
||||
if ($row = $sth->fetch()) {
|
||||
$owner_uid = $row["owner_uid"];
|
||||
|
||||
if (FORCE_ARTICLE_PURGE != 0) {
|
||||
Debug::log("purge_feed: FORCE_ARTICLE_PURGE is set, overriding interval to " . FORCE_ARTICLE_PURGE, Debug::$LOG_VERBOSE);
|
||||
if (Config::get(Config::FORCE_ARTICLE_PURGE) != 0) {
|
||||
Debug::log("purge_feed: FORCE_ARTICLE_PURGE is set, overriding interval to " . Config::get(Config::FORCE_ARTICLE_PURGE), Debug::$LOG_VERBOSE);
|
||||
$purge_unread = true;
|
||||
$purge_interval = FORCE_ARTICLE_PURGE;
|
||||
$purge_interval = Config::get(Config::FORCE_ARTICLE_PURGE);
|
||||
} else {
|
||||
$purge_unread = get_pref("PURGE_UNREAD_ARTICLES", $owner_uid, false);
|
||||
}
|
||||
@@ -1970,7 +1970,7 @@ class Feeds extends Handler_Protected {
|
||||
else
|
||||
$query_limit = "";
|
||||
|
||||
if (DB_TYPE == "pgsql") {
|
||||
if (Config::get(Config::DB_TYPE) == "pgsql") {
|
||||
$sth = $pdo->prepare("DELETE FROM ttrss_user_entries
|
||||
USING ttrss_entries
|
||||
WHERE ttrss_entries.id = ref_id AND
|
||||
@@ -2153,7 +2153,7 @@ class Feeds extends Handler_Protected {
|
||||
array_push($query_keywords, "(".SUBSTRING_FOR_DATE."(updated,1,LENGTH('$k')) $not = '$k')");
|
||||
} else {
|
||||
|
||||
if (DB_TYPE == "pgsql") {
|
||||
if (Config::get(Config::DB_TYPE) == "pgsql") {
|
||||
$k = mb_strtolower($k);
|
||||
array_push($search_query_leftover, $not ? "!$k" : $k);
|
||||
} else {
|
||||
@@ -2168,7 +2168,7 @@ class Feeds extends Handler_Protected {
|
||||
|
||||
if (count($search_query_leftover) > 0) {
|
||||
|
||||
if (DB_TYPE == "pgsql") {
|
||||
if (Config::get(Config::DB_TYPE) == "pgsql") {
|
||||
|
||||
// if there's no joiners consider this a "simple" search and
|
||||
// concatenate everything with &, otherwise don't try to mess with tsquery syntax
|
||||
|
||||
@@ -43,7 +43,7 @@ class Handler_Public extends Handler {
|
||||
$user_plugins = get_pref("_ENABLED_PLUGINS", $owner_uid);
|
||||
|
||||
$tmppluginhost = new PluginHost();
|
||||
$tmppluginhost->load(PLUGINS, PluginHost::KIND_ALL);
|
||||
$tmppluginhost->load(Config::get(Config::PLUGINS), PluginHost::KIND_ALL);
|
||||
$tmppluginhost->load((string)$user_plugins, PluginHost::KIND_USER, $owner_uid);
|
||||
//$tmppluginhost->load_data();
|
||||
|
||||
@@ -309,7 +309,7 @@ class Handler_Public extends Handler {
|
||||
$format = clean($_REQUEST['format'] ?? "atom");
|
||||
$orig_guid = clean($_REQUEST["orig_guid"] ?? false);
|
||||
|
||||
if (SINGLE_USER_MODE) {
|
||||
if (Config::get(Config::SINGLE_USER_MODE)) {
|
||||
UserHelper::authenticate("admin", null);
|
||||
}
|
||||
|
||||
@@ -347,7 +347,7 @@ class Handler_Public extends Handler {
|
||||
}
|
||||
|
||||
function login() {
|
||||
if (!SINGLE_USER_MODE) {
|
||||
if (!Config::get(Config::SINGLE_USER_MODE)) {
|
||||
|
||||
$login = clean($_POST["login"]);
|
||||
$password = clean($_POST["password"]);
|
||||
@@ -355,7 +355,7 @@ class Handler_Public extends Handler {
|
||||
$safe_mode = checkbox_to_sql_bool(clean($_POST["safe_mode"] ?? false));
|
||||
|
||||
if ($remember_me) {
|
||||
@session_set_cookie_params(SESSION_COOKIE_LIFETIME);
|
||||
@session_set_cookie_params(Config::get(Config::SESSION_COOKIE_LIFETIME));
|
||||
} else {
|
||||
@session_set_cookie_params(0);
|
||||
}
|
||||
@@ -398,7 +398,7 @@ class Handler_Public extends Handler {
|
||||
|
||||
$return = clean($_REQUEST['return']);
|
||||
|
||||
if ($_REQUEST['return'] && mb_strpos($return, SELF_URL_PATH) === 0) {
|
||||
if ($_REQUEST['return'] && mb_strpos($return, Config::get(Config::SELF_URL_PATH)) === 0) {
|
||||
header("Location: " . clean($_REQUEST['return']));
|
||||
} else {
|
||||
header("Location: " . get_self_url_prefix());
|
||||
@@ -559,7 +559,7 @@ class Handler_Public extends Handler {
|
||||
|
||||
$tpl->setVariable('LOGIN', $login);
|
||||
$tpl->setVariable('RESETPASS_LINK', $resetpass_link);
|
||||
$tpl->setVariable('TTRSS_HOST', SELF_URL_PATH);
|
||||
$tpl->setVariable('TTRSS_HOST', Config::get(Config::SELF_URL_PATH));
|
||||
|
||||
$tpl->addBlock('message');
|
||||
|
||||
@@ -613,7 +613,7 @@ class Handler_Public extends Handler {
|
||||
function dbupdate() {
|
||||
startup_gettext();
|
||||
|
||||
if (!SINGLE_USER_MODE && $_SESSION["access_level"] < 10) {
|
||||
if (!Config::get(Config::SINGLE_USER_MODE) && $_SESSION["access_level"] < 10) {
|
||||
$_SESSION["login_error_msg"] = __("Your access level is insufficient to run this script.");
|
||||
$this->_render_login_form();
|
||||
exit;
|
||||
@@ -660,7 +660,7 @@ class Handler_Public extends Handler {
|
||||
|
||||
<?php
|
||||
@$op = clean($_REQUEST["subop"]);
|
||||
$updater = new DbUpdater(Db::pdo(), DB_TYPE, SCHEMA_VERSION);
|
||||
$updater = new DbUpdater(Db::pdo(), Config::get(Config::DB_TYPE), SCHEMA_VERSION);
|
||||
|
||||
if ($op == "performupdate") {
|
||||
if ($updater->is_update_required()) {
|
||||
@@ -709,7 +709,7 @@ class Handler_Public extends Handler {
|
||||
print "<h2>".T_sprintf("Tiny Tiny RSS database needs update to the latest version (%d to %d).",
|
||||
$updater->get_schema_version(), SCHEMA_VERSION)."</h2>";
|
||||
|
||||
if (DB_TYPE == "mysql") {
|
||||
if (Config::get(Config::DB_TYPE) == "mysql") {
|
||||
print_error("<strong>READ THIS:</strong> Due to MySQL limitations, your database is not completely protected while updating. ".
|
||||
"Errors may put it in an inconsistent state requiring manual rollback. <strong>BACKUP YOUR DATABASE BEFORE CONTINUING.</strong>");
|
||||
} else {
|
||||
|
||||
@@ -594,7 +594,7 @@ class OPML extends Handler_Protected {
|
||||
}
|
||||
|
||||
if (is_uploaded_file($_FILES['opml_file']['tmp_name'])) {
|
||||
$tmp_file = (string)tempnam(CACHE_DIR . '/upload', 'opml');
|
||||
$tmp_file = (string)tempnam(Config::get(Config::CACHE_DIR) . '/upload', 'opml');
|
||||
|
||||
$result = move_uploaded_file($_FILES['opml_file']['tmp_name'],
|
||||
$tmp_file);
|
||||
|
||||
@@ -9,7 +9,7 @@ class Pref_Feeds extends Handler_Protected {
|
||||
public static function get_ts_languages() {
|
||||
$rv = [];
|
||||
|
||||
if (DB_TYPE == "pgsql") {
|
||||
if (Config::get(Config::DB_TYPE) == "pgsql") {
|
||||
$dbh = Db::pdo();
|
||||
|
||||
$res = $dbh->query("SELECT cfgname FROM pg_ts_config");
|
||||
@@ -453,7 +453,7 @@ class Pref_Feeds extends Handler_Protected {
|
||||
header("Content-type: text/html");
|
||||
|
||||
if (is_uploaded_file($_FILES['icon_file']['tmp_name'])) {
|
||||
$tmp_file = tempnam(CACHE_DIR . '/upload', 'icon');
|
||||
$tmp_file = tempnam(Config::get(Config::CACHE_DIR) . '/upload', 'icon');
|
||||
|
||||
if (!$tmp_file)
|
||||
return;
|
||||
@@ -529,7 +529,7 @@ class Pref_Feeds extends Handler_Protected {
|
||||
$local_update_intervals = $update_intervals;
|
||||
$local_update_intervals[0] .= sprintf(" (%s)", $update_intervals[get_pref("DEFAULT_UPDATE_INTERVAL")]);
|
||||
|
||||
if (FORCE_ARTICLE_PURGE == 0) {
|
||||
if (Config::get(Config::FORCE_ARTICLE_PURGE) == 0) {
|
||||
$local_purge_intervals = $purge_intervals;
|
||||
$default_purge_interval = get_pref("PURGE_OLD_DAYS");
|
||||
|
||||
@@ -539,7 +539,7 @@ class Pref_Feeds extends Handler_Protected {
|
||||
$local_purge_intervals[0] .= " " . sprintf("(%s)", __("Disabled"));
|
||||
|
||||
} else {
|
||||
$purge_interval = FORCE_ARTICLE_PURGE;
|
||||
$purge_interval = Config::get(Config::FORCE_ARTICLE_PURGE);
|
||||
$local_purge_intervals = [ T_nsprintf('%d day', '%d days', $purge_interval, $purge_interval) ];
|
||||
}
|
||||
|
||||
@@ -550,13 +550,13 @@ class Pref_Feeds extends Handler_Protected {
|
||||
"select" => \Controls\select_feeds_cats("cat_id", $row["cat_id"]),
|
||||
],
|
||||
"plugin_data" => $plugin_data,
|
||||
"force_purge" => (int)FORCE_ARTICLE_PURGE,
|
||||
"force_purge" => (int)Config::get(Config::FORCE_ARTICLE_PURGE),
|
||||
"intervals" => [
|
||||
"update" => $local_update_intervals,
|
||||
"purge" => $local_purge_intervals,
|
||||
],
|
||||
"lang" => [
|
||||
"enabled" => DB_TYPE == "pgsql",
|
||||
"enabled" => Config::get(Config::DB_TYPE) == "pgsql",
|
||||
"default" => get_pref('DEFAULT_SEARCH_LANGUAGE'),
|
||||
"all" => $this::get_ts_languages(),
|
||||
]
|
||||
@@ -614,7 +614,7 @@ class Pref_Feeds extends Handler_Protected {
|
||||
</fieldset>
|
||||
<?php } ?>
|
||||
|
||||
<?php if (DB_TYPE == "pgsql") { ?>
|
||||
<?php if (Config::get(Config::DB_TYPE) == "pgsql") { ?>
|
||||
<fieldset>
|
||||
<label><?= __('Language:') ?></label>
|
||||
<?= \Controls\select_tag("feed_language", "", $this::get_ts_languages(), ["disabled"=> 1]) ?>
|
||||
@@ -632,7 +632,7 @@ class Pref_Feeds extends Handler_Protected {
|
||||
<?= $this->_batch_toggle_checkbox("update_interval") ?>
|
||||
</fieldset>
|
||||
|
||||
<?php if (FORCE_ARTICLE_PURGE == 0) { ?>
|
||||
<?php if (Config::get(Config::FORCE_ARTICLE_PURGE) == 0) { ?>
|
||||
<fieldset>
|
||||
<label><?= __('Article purging:') ?></label>
|
||||
<?= \Controls\select_hash("purge_interval", "", $local_purge_intervals, ["disabled" => 1]) ?>
|
||||
@@ -1147,7 +1147,7 @@ class Pref_Feeds extends Handler_Protected {
|
||||
|
||||
function inactiveFeeds() {
|
||||
|
||||
if (DB_TYPE == "pgsql") {
|
||||
if (Config::get(Config::DB_TYPE) == "pgsql") {
|
||||
$interval_qpart = "NOW() - INTERVAL '3 months'";
|
||||
} else {
|
||||
$interval_qpart = "DATE_SUB(NOW(), INTERVAL 3 MONTH)";
|
||||
|
||||
@@ -236,7 +236,7 @@ class Pref_Prefs extends Handler_Protected {
|
||||
|
||||
$tpl->setVariable('LOGIN', $row["login"]);
|
||||
$tpl->setVariable('NEWMAIL', $email);
|
||||
$tpl->setVariable('TTRSS_HOST', SELF_URL_PATH);
|
||||
$tpl->setVariable('TTRSS_HOST', Config::get(Config::SELF_URL_PATH));
|
||||
|
||||
$tpl->addBlock('message');
|
||||
|
||||
@@ -625,7 +625,7 @@ class Pref_Prefs extends Handler_Protected {
|
||||
continue;
|
||||
}
|
||||
|
||||
if ($pref_name == "DEFAULT_SEARCH_LANGUAGE" && DB_TYPE != "pgsql") {
|
||||
if ($pref_name == "DEFAULT_SEARCH_LANGUAGE" && Config::get(Config::DB_TYPE) != "pgsql") {
|
||||
continue;
|
||||
}
|
||||
|
||||
@@ -705,7 +705,7 @@ class Pref_Prefs extends Handler_Protected {
|
||||
|
||||
array_push($listed_boolean_prefs, $pref_name);
|
||||
|
||||
if ($pref_name == "PURGE_UNREAD_ARTICLES" && FORCE_ARTICLE_PURGE != 0) {
|
||||
if ($pref_name == "PURGE_UNREAD_ARTICLES" && Config::get(Config::FORCE_ARTICLE_PURGE) != 0) {
|
||||
$is_disabled = true;
|
||||
$is_checked = true;
|
||||
} else {
|
||||
@@ -719,9 +719,9 @@ class Pref_Prefs extends Handler_Protected {
|
||||
} else if (in_array($pref_name, ['FRESH_ARTICLE_MAX_AGE',
|
||||
'PURGE_OLD_DAYS', 'LONG_DATE_FORMAT', 'SHORT_DATE_FORMAT'])) {
|
||||
|
||||
if ($pref_name == "PURGE_OLD_DAYS" && FORCE_ARTICLE_PURGE != 0) {
|
||||
if ($pref_name == "PURGE_OLD_DAYS" && Config::get(Config::FORCE_ARTICLE_PURGE) != 0) {
|
||||
$attributes = ["disabled" => true, "required" => true];
|
||||
$value = FORCE_ARTICLE_PURGE;
|
||||
$value = Config::get(Config::FORCE_ARTICLE_PURGE);
|
||||
} else {
|
||||
$attributes = ["required" => true];
|
||||
}
|
||||
@@ -829,7 +829,7 @@ class Pref_Prefs extends Handler_Protected {
|
||||
private function index_plugins_system() {
|
||||
print_notice("System plugins are enabled in <strong>config.php</strong> for all users.");
|
||||
|
||||
$system_enabled = array_map("trim", explode(",", (string)PLUGINS));
|
||||
$system_enabled = array_map("trim", explode(",", (string)Config::get(Config::PLUGINS)));
|
||||
|
||||
$tmppluginhost = new PluginHost();
|
||||
$tmppluginhost->load_all($tmppluginhost::KIND_ALL, $_SESSION["uid"], true);
|
||||
@@ -862,7 +862,7 @@ class Pref_Prefs extends Handler_Protected {
|
||||
}
|
||||
|
||||
private function index_plugins_user() {
|
||||
$system_enabled = array_map("trim", explode(",", (string)PLUGINS));
|
||||
$system_enabled = array_map("trim", explode(",", (string)Config::get(Config::PLUGINS)));
|
||||
$user_enabled = array_map("trim", explode(",", get_pref("_ENABLED_PLUGINS")));
|
||||
|
||||
$tmppluginhost = new PluginHost();
|
||||
@@ -1135,7 +1135,7 @@ class Pref_Prefs extends Handler_Protected {
|
||||
$tpl->readTemplateFromFile("otp_disabled_template.txt");
|
||||
|
||||
$tpl->setVariable('LOGIN', $row["login"]);
|
||||
$tpl->setVariable('TTRSS_HOST', SELF_URL_PATH);
|
||||
$tpl->setVariable('TTRSS_HOST', Config::get(Config::SELF_URL_PATH));
|
||||
|
||||
$tpl->addBlock('message');
|
||||
|
||||
|
||||
@@ -174,7 +174,7 @@ class RPC extends Handler_Protected {
|
||||
static function updaterandomfeed_real() {
|
||||
|
||||
// Test if the feed need a update (update interval exceded).
|
||||
if (DB_TYPE == "pgsql") {
|
||||
if (Config::get(Config::DB_TYPE) == "pgsql") {
|
||||
$update_limit_qpart = "AND ((
|
||||
ttrss_feeds.update_interval = 0
|
||||
AND ttrss_feeds.last_updated < NOW() - CAST((ttrss_user_prefs.value || ' minutes') AS INTERVAL)
|
||||
@@ -199,7 +199,7 @@ class RPC extends Handler_Protected {
|
||||
}
|
||||
|
||||
// Test if feed is currently being updated by another process.
|
||||
if (DB_TYPE == "pgsql") {
|
||||
if (Config::get(Config::DB_TYPE) == "pgsql") {
|
||||
$updstart_thresh_qpart = "AND (ttrss_feeds.last_update_started IS NULL OR ttrss_feeds.last_update_started < NOW() - INTERVAL '5 minutes')";
|
||||
} else {
|
||||
$updstart_thresh_qpart = "AND (ttrss_feeds.last_update_started IS NULL OR ttrss_feeds.last_update_started < DATE_SUB(NOW(), INTERVAL 5 MINUTE))";
|
||||
@@ -361,7 +361,7 @@ class RPC extends Handler_Protected {
|
||||
$params["safe_mode"] = !empty($_SESSION["safe_mode"]);
|
||||
$params["check_for_updates"] = CHECK_FOR_UPDATES;
|
||||
$params["icons_url"] = ICONS_URL;
|
||||
$params["cookie_lifetime"] = SESSION_COOKIE_LIFETIME;
|
||||
$params["cookie_lifetime"] = Config::get(Config::SESSION_COOKIE_LIFETIME);
|
||||
$params["default_view_mode"] = get_pref("_DEFAULT_VIEW_MODE");
|
||||
$params["default_view_limit"] = (int) get_pref("_DEFAULT_VIEW_LIMIT");
|
||||
$params["default_view_order_by"] = get_pref("_DEFAULT_VIEW_ORDER_BY");
|
||||
@@ -433,7 +433,7 @@ class RPC extends Handler_Protected {
|
||||
$data["labels"] = Labels::get_all($_SESSION["uid"]);
|
||||
|
||||
if (LOG_DESTINATION == 'sql' && $_SESSION['access_level'] >= 10) {
|
||||
if (DB_TYPE == 'pgsql') {
|
||||
if (Config::get(Config::DB_TYPE) == 'pgsql') {
|
||||
$log_interval = "created_at > NOW() - interval '1 hour'";
|
||||
} else {
|
||||
$log_interval = "created_at > DATE_SUB(NOW(), INTERVAL 1 HOUR)";
|
||||
@@ -452,13 +452,13 @@ class RPC extends Handler_Protected {
|
||||
}
|
||||
}
|
||||
|
||||
if (file_exists(LOCK_DIRECTORY . "/update_daemon.lock")) {
|
||||
if (file_exists(Config::get(Config::LOCK_DIRECTORY) . "/update_daemon.lock")) {
|
||||
|
||||
$data['daemon_is_running'] = (int) file_is_locked("update_daemon.lock");
|
||||
|
||||
if (time() - ($_SESSION["daemon_stamp_check"] ?? 0) > 30) {
|
||||
|
||||
$stamp = (int) @file_get_contents(LOCK_DIRECTORY . "/update_daemon.stamp");
|
||||
$stamp = (int) @file_get_contents(Config::get(Config::LOCK_DIRECTORY) . "/update_daemon.stamp");
|
||||
|
||||
if ($stamp) {
|
||||
$stamp_delta = time() - $stamp;
|
||||
|
||||
@@ -61,8 +61,8 @@ class RSSUtils {
|
||||
|
||||
$pdo = Db::pdo();
|
||||
|
||||
if (!SINGLE_USER_MODE && DAEMON_UPDATE_LOGIN_LIMIT > 0) {
|
||||
if (DB_TYPE == "pgsql") {
|
||||
if (!Config::get(Config::SINGLE_USER_MODE) && DAEMON_UPDATE_LOGIN_LIMIT > 0) {
|
||||
if (Config::get(Config::DB_TYPE) == "pgsql") {
|
||||
$login_thresh_qpart = "AND ttrss_users.last_login >= NOW() - INTERVAL '".DAEMON_UPDATE_LOGIN_LIMIT." days'";
|
||||
} else {
|
||||
$login_thresh_qpart = "AND ttrss_users.last_login >= DATE_SUB(NOW(), INTERVAL ".DAEMON_UPDATE_LOGIN_LIMIT." DAY)";
|
||||
@@ -71,7 +71,7 @@ class RSSUtils {
|
||||
$login_thresh_qpart = "";
|
||||
}
|
||||
|
||||
if (DB_TYPE == "pgsql") {
|
||||
if (Config::get(Config::DB_TYPE) == "pgsql") {
|
||||
$update_limit_qpart = "AND ((
|
||||
ttrss_feeds.update_interval = 0
|
||||
AND ttrss_user_prefs.value != '-1'
|
||||
@@ -96,7 +96,7 @@ class RSSUtils {
|
||||
}
|
||||
|
||||
// Test if feed is currently being updated by another process.
|
||||
if (DB_TYPE == "pgsql") {
|
||||
if (Config::get(Config::DB_TYPE) == "pgsql") {
|
||||
$updstart_thresh_qpart = "AND (last_update_started IS NULL OR last_update_started < NOW() - INTERVAL '10 minutes')";
|
||||
} else {
|
||||
$updstart_thresh_qpart = "AND (last_update_started IS NULL OR last_update_started < DATE_SUB(NOW(), INTERVAL 10 MINUTE))";
|
||||
@@ -106,7 +106,7 @@ class RSSUtils {
|
||||
|
||||
// Update the least recently updated feeds first
|
||||
$query_order = "ORDER BY last_updated";
|
||||
if (DB_TYPE == "pgsql") $query_order .= " NULLS FIRST";
|
||||
if (Config::get(Config::DB_TYPE) == "pgsql") $query_order .= " NULLS FIRST";
|
||||
|
||||
$query = "SELECT DISTINCT ttrss_feeds.feed_url, ttrss_feeds.last_updated
|
||||
FROM
|
||||
@@ -182,7 +182,7 @@ class RSSUtils {
|
||||
if (self::function_enabled('passthru')) {
|
||||
$exit_code = 0;
|
||||
|
||||
passthru(PHP_EXECUTABLE . " update.php --update-feed " . $tline["id"] . " --pidlock feed-" . $tline["id"] . " $quiet $log $log_level", $exit_code);
|
||||
passthru(Config::get(Config::PHP_EXECUTABLE) . " update.php --update-feed " . $tline["id"] . " --pidlock feed-" . $tline["id"] . " $quiet $log $log_level", $exit_code);
|
||||
|
||||
Debug::log(sprintf("<= %.4f (sec) exit code: %d", microtime(true) - $fstarted, $exit_code));
|
||||
|
||||
@@ -275,7 +275,7 @@ class RSSUtils {
|
||||
$pluginhost = new PluginHost();
|
||||
$user_plugins = get_pref("_ENABLED_PLUGINS", $owner_uid);
|
||||
|
||||
$pluginhost->load(PLUGINS, PluginHost::KIND_ALL);
|
||||
$pluginhost->load(Config::get(Config::PLUGINS), PluginHost::KIND_ALL);
|
||||
$pluginhost->load((string)$user_plugins, PluginHost::KIND_USER, $owner_uid);
|
||||
//$pluginhost->load_data();
|
||||
|
||||
@@ -395,12 +395,12 @@ class RSSUtils {
|
||||
|
||||
$date_feed_processed = date('Y-m-d H:i');
|
||||
|
||||
$cache_filename = CACHE_DIR . "/feeds/" . sha1($fetch_url) . ".xml";
|
||||
$cache_filename = Config::get(Config::CACHE_DIR) . "/feeds/" . sha1($fetch_url) . ".xml";
|
||||
|
||||
$pluginhost = new PluginHost();
|
||||
$user_plugins = get_pref("_ENABLED_PLUGINS", $owner_uid);
|
||||
|
||||
$pluginhost->load(PLUGINS, PluginHost::KIND_ALL);
|
||||
$pluginhost->load(Config::get(Config::PLUGINS), PluginHost::KIND_ALL);
|
||||
$pluginhost->load((string)$user_plugins, PluginHost::KIND_USER, $owner_uid);
|
||||
//$pluginhost->load_data();
|
||||
|
||||
@@ -488,7 +488,7 @@ class RSSUtils {
|
||||
}
|
||||
|
||||
// cache vanilla feed data for re-use
|
||||
if ($feed_data && !$auth_pass && !$auth_login && is_writable(CACHE_DIR . "/feeds")) {
|
||||
if ($feed_data && !$auth_pass && !$auth_login && is_writable(Config::get(Config::CACHE_DIR) . "/feeds")) {
|
||||
$new_rss_hash = sha1($feed_data);
|
||||
|
||||
if ($new_rss_hash != $rss_hash) {
|
||||
@@ -561,7 +561,7 @@ class RSSUtils {
|
||||
Debug::log("language: $feed_language", Debug::$LOG_VERBOSE);
|
||||
Debug::log("processing feed data...", Debug::$LOG_VERBOSE);
|
||||
|
||||
if (DB_TYPE == "pgsql") {
|
||||
if (Config::get(Config::DB_TYPE) == "pgsql") {
|
||||
$favicon_interval_qpart = "favicon_last_checked < NOW() - INTERVAL '12 hour'";
|
||||
} else {
|
||||
$favicon_interval_qpart = "favicon_last_checked < DATE_SUB(NOW(), INTERVAL 12 HOUR)";
|
||||
@@ -755,7 +755,7 @@ class RSSUtils {
|
||||
$e->type, $e->length, $e->title, $e->width, $e->height);
|
||||
|
||||
// Yet another episode of "mysql utf8_general_ci is gimped"
|
||||
if (DB_TYPE == "mysql" && MYSQL_CHARSET != "UTF8MB4") {
|
||||
if (Config::get(Config::DB_TYPE) == "mysql" && MYSQL_CHARSET != "UTF8MB4") {
|
||||
for ($i = 0; $i < count($e_item); $i++) {
|
||||
if (is_string($e_item[$i])) {
|
||||
$e_item[$i] = self::strip_utf8mb4($e_item[$i]);
|
||||
@@ -833,7 +833,7 @@ class RSSUtils {
|
||||
Debug::log("plugin data: $entry_plugin_data", Debug::$LOG_VERBOSE);
|
||||
|
||||
// Workaround: 4-byte unicode requires utf8mb4 in MySQL. See https://tt-rss.org/forum/viewtopic.php?f=1&t=3377&p=20077#p20077
|
||||
if (DB_TYPE == "mysql" && MYSQL_CHARSET != "UTF8MB4") {
|
||||
if (Config::get(Config::DB_TYPE) == "mysql" && MYSQL_CHARSET != "UTF8MB4") {
|
||||
foreach ($article as $k => $v) {
|
||||
// i guess we'll have to take the risk of 4byte unicode labels & tags here
|
||||
if (is_string($article[$k])) {
|
||||
@@ -1079,7 +1079,7 @@ class RSSUtils {
|
||||
|
||||
Debug::log("resulting RID: $entry_ref_id, IID: $entry_int_id", Debug::$LOG_VERBOSE);
|
||||
|
||||
if (DB_TYPE == "pgsql")
|
||||
if (Config::get(Config::DB_TYPE) == "pgsql")
|
||||
$tsvector_qpart = "tsvector_combined = to_tsvector(:ts_lang, :ts_content),";
|
||||
else
|
||||
$tsvector_qpart = "";
|
||||
@@ -1107,7 +1107,7 @@ class RSSUtils {
|
||||
":lang" => $entry_language,
|
||||
":id" => $ref_id];
|
||||
|
||||
if (DB_TYPE == "pgsql") {
|
||||
if (Config::get(Config::DB_TYPE) == "pgsql") {
|
||||
$params[":ts_lang"] = $feed_language;
|
||||
$params[":ts_content"] = mb_substr(strip_tags($entry_title . " " . $entry_content), 0, 900000);
|
||||
}
|
||||
@@ -1375,7 +1375,7 @@ class RSSUtils {
|
||||
|
||||
$pdo = Db::pdo();
|
||||
|
||||
if (DB_TYPE == "pgsql") {
|
||||
if (Config::get(Config::DB_TYPE) == "pgsql") {
|
||||
$pdo->query("DELETE FROM ttrss_error_log
|
||||
WHERE created_at < NOW() - INTERVAL '7 days'");
|
||||
} else {
|
||||
@@ -1396,8 +1396,8 @@ class RSSUtils {
|
||||
|
||||
$num_deleted = 0;
|
||||
|
||||
if (is_writable(LOCK_DIRECTORY)) {
|
||||
$files = glob(LOCK_DIRECTORY . "/*.lock");
|
||||
if (is_writable(Config::get(Config::LOCK_DIRECTORY))) {
|
||||
$files = glob(Config::get(Config::LOCK_DIRECTORY) . "/*.lock");
|
||||
|
||||
if ($files) {
|
||||
foreach ($files as $file) {
|
||||
@@ -1589,9 +1589,9 @@ class RSSUtils {
|
||||
|
||||
$days = DAEMON_UNSUCCESSFUL_DAYS_LIMIT;
|
||||
|
||||
if (DB_TYPE == "pgsql") {
|
||||
if (Config::get(Config::DB_TYPE) == "pgsql") {
|
||||
$interval_query = "last_successful_update < NOW() - INTERVAL '$days days' AND last_updated > NOW() - INTERVAL '1 days'";
|
||||
} else /* if (DB_TYPE == "mysql") */ {
|
||||
} else /* if (Config::get(Config::DB_TYPE) == "mysql") */ {
|
||||
$interval_query = "last_successful_update < DATE_SUB(NOW(), INTERVAL $days DAY) AND last_updated > DATE_SUB(NOW(), INTERVAL 1 DAY)";
|
||||
}
|
||||
|
||||
|
||||
@@ -2,7 +2,7 @@
|
||||
class UserHelper {
|
||||
|
||||
static function authenticate(string $login = null, string $password = null, bool $check_only = false, string $service = null) {
|
||||
if (!SINGLE_USER_MODE) {
|
||||
if (!Config::get(Config::SINGLE_USER_MODE)) {
|
||||
$user_id = false;
|
||||
$auth_module = false;
|
||||
|
||||
@@ -88,7 +88,7 @@ class UserHelper {
|
||||
static function login_sequence() {
|
||||
$pdo = Db::pdo();
|
||||
|
||||
if (SINGLE_USER_MODE) {
|
||||
if (Config::get(Config::SINGLE_USER_MODE)) {
|
||||
@session_start();
|
||||
self::authenticate("admin", null);
|
||||
startup_gettext();
|
||||
@@ -98,7 +98,7 @@ class UserHelper {
|
||||
|
||||
if (empty($_SESSION["uid"])) {
|
||||
|
||||
if (AUTH_AUTO_LOGIN && self::authenticate(null, null)) {
|
||||
if (Config::get(Config::AUTH_AUTO_LOGIN) && self::authenticate(null, null)) {
|
||||
$_SESSION["ref_schema_version"] = get_schema_version(true);
|
||||
} else {
|
||||
self::authenticate(null, null, true);
|
||||
|
||||
Reference in New Issue
Block a user