]> git.wh0rd.org - tt-rss.git/blobdiff - classes/pref/prefs.php
support loading themes from themes.local
[tt-rss.git] / classes / pref / prefs.php
index dd62a4271b5ff1639079c8bd8b3c437726bba612..bc7d9212f233faf9e02a838a4fd1d8b520f8f41d 100644 (file)
@@ -23,7 +23,6 @@ class Pref_Prefs extends Handler_Protected {
 
                $this->pref_help = array(
                        "ALLOW_DUPLICATE_POSTS" => array(__("Allow duplicate articles"), ""),
-                       "AUTO_ASSIGN_LABELS" => array(__("Assign articles to labels automatically"), ""),
                        "BLACKLISTED_TAGS" => array(__("Blacklisted tags"), __("When auto-detecting tags in articles these tags will not be applied (comma-separated list).")),
                        "CDM_AUTO_CATCHUP" => array(__("Automatically mark articles as read"), __("This option enables marking articles as read automatically while you scroll article list.")),
                        "CDM_EXPANDED" => array(__("Automatically expand articles in combined mode"), ""),
@@ -40,7 +39,7 @@ class Pref_Prefs extends Handler_Protected {
                        "FRESH_ARTICLE_MAX_AGE" => array(__("Maximum age of fresh articles (in hours)"), ""),
                        "HIDE_READ_FEEDS" => array(__("Hide feeds with no unread articles"), ""),
                        "HIDE_READ_SHOWS_SPECIAL" => array(__("Show special feeds when hiding read feeds"), ""),
-                       "LONG_DATE_FORMAT" => array(__("Long date format"), __("Follows php's <a href='http://php.net/manual/function.date.php'>date() function</a>")),
+                       "LONG_DATE_FORMAT" => array(__("Long date format"), __("The syntax used is identical to the PHP <a href='http://php.net/manual/function.date.php'>date()</a> function.")),
                        "ON_CATCHUP_SHOW_NEXT_FEED" => array(__("On catchup show next feed"), __("Automatically open next feed with unread articles after marking one as read")),
                        "PURGE_OLD_DAYS" => array(__("Purge articles after this number of days (0 - disables)"), ""),
                        "PURGE_UNREAD_ARTICLES" => array(__("Purge unread articles"), ""),
@@ -181,7 +180,8 @@ class Pref_Prefs extends Handler_Protected {
                global $access_level_names;
 
                $prefs_blacklist = array("STRIP_UNSAFE_TAGS", "REVERSE_HEADLINES",
-                       "SORT_HEADLINES_BY_FEED_DATE", "DEFAULT_ARTICLE_LIMIT");
+                       "SORT_HEADLINES_BY_FEED_DATE", "DEFAULT_ARTICLE_LIMIT",
+                       "FEEDS_SORT_BY_UNREAD");
 
                /* "FEEDS_SORT_BY_UNREAD", "HIDE_READ_FEEDS", "REVERSE_HEADLINES" */
 
@@ -570,7 +570,10 @@ class Pref_Prefs extends Handler_Protected {
 
                        } else if ($pref_name == "USER_CSS_THEME") {
 
-                               $themes = array_map("basename", glob("themes/*.css"));
+                               $themes = array_merge(glob("themes/*.css"), glob("themes.local/*.css"));
+                               $themes = array_map("basename", $themes);
+                               $themes = array_filter($themes, "theme_valid");
+                               asort($themes);
 
                                print_select($pref_name, $value, $themes,
                                        'dojoType="dijit.form.Select"');
@@ -765,7 +768,9 @@ class Pref_Prefs extends Handler_Protected {
                                                dojoType=\"dijit.form.CheckBox\" $checked
                                                type=\"checkbox\"></td>";
 
-                               print "<td>$name</td>";
+                               $plugin_icon = $checked ? "plugin.png" : "plugin_disabled.png";
+
+                               print "<td><label><img src='images/$plugin_icon' alt=''> $name</label></td>";
                                print "<td>" . htmlspecialchars($about[1]);
                                if (@$about[4]) {
                                        print " &mdash; <a target=\"_blank\" class=\"visibleLink\"
@@ -818,11 +823,13 @@ class Pref_Prefs extends Handler_Protected {
 
                                print "<tr class='$rowclass'>";
 
+                               $plugin_icon = $checked ? "plugin.png" : "plugin_disabled.png";
+
                                print "<td align='center'><input id='FPCHK-$name' name='plugins[]' value='$name' onclick='toggleSelectRow2(this);'
                                        dojoType=\"dijit.form.CheckBox\" $checked $disabled
                                        type=\"checkbox\"></td>";
 
-                               print "<td><label for='FPCHK-$name'>$name</label></td>";
+                               print "<td><label for='FPCHK-$name'><img src='images/$plugin_icon' alt=''> $name</label></td>";
                                print "<td><label for='FPCHK-$name'>" . htmlspecialchars($about[1]) . "</label>";
                                if (@$about[4]) {
                                        print " &mdash; <a target=\"_blank\" class=\"visibleLink\"
@@ -883,8 +890,9 @@ class Pref_Prefs extends Handler_Protected {
 
                if (!$otp_enabled) {
                        $secret = $base32->encode(sha1($this->dbh->fetch_result($result, 0, "salt")));
-                       $topt = new \OTPHP\TOTP($secret);
-                       print QRcode::png($topt->provisioning_uri($login));
+             print QRcode::png("otpauth://totp/".urlencode($login).
+                               "?secret=$secret&issuer=".urlencode("Tiny Tiny RSS"));
+
                }
        }
 
@@ -962,7 +970,7 @@ class Pref_Prefs extends Handler_Protected {
 
                $value = str_replace("<br/>", "\n", $value);
 
-               print_notice(T_sprintf("You can override colors, fonts and layout of your currently selected theme with custom CSS declarations here. <a target=\"_blank\" class=\"visibleLink\" href=\"%s\">This file</a> can be used as a baseline.", "tt-rss.css"));
+               print_notice(T_sprintf("You can override colors, fonts and layout of your currently selected theme with custom CSS declarations here. <a target=\"_blank\" class=\"visibleLink\" href=\"%s\">This file</a> can be used as a baseline.", "css/tt-rss.css"));
 
                print "<input dojoType=\"dijit.form.TextBox\" style=\"display : none\" name=\"op\" value=\"rpc\">";
                print "<input dojoType=\"dijit.form.TextBox\" style=\"display : none\" name=\"method\" value=\"setpref\">";