summaryrefslogtreecommitdiff
path: root/app/Models
diff options
context:
space:
mode:
authorGravatar Alexandre Alapetite <alexandre@alapetite.fr> 2014-01-19 22:25:49 +0100
committerGravatar Alexandre Alapetite <alexandre@alapetite.fr> 2014-01-19 22:25:49 +0100
commit4e4b0f717fe0a8378e2b751393a8c19d1ada6eb2 (patch)
tree6b268cfe46eb3eee8ebaddcd1e17067eaca0214f /app/Models
parent12e0b6b094041fc22937520b3218e4f61915fd50 (diff)
parent79d4893fc792119c390d2f744246df210b74f637 (diff)
Merge remote-tracking branch 'origin/dev' into beta
Diffstat (limited to 'app/Models')
-rw-r--r--app/Models/Configuration.php6
-rw-r--r--app/Models/Entry.php2
-rw-r--r--app/Models/EntryDAO.php3
-rw-r--r--app/Models/Themes.php28
4 files changed, 32 insertions, 7 deletions
diff --git a/app/Models/Configuration.php b/app/Models/Configuration.php
index c29e74603..f3fb76e72 100644
--- a/app/Models/Configuration.php
+++ b/app/Models/Configuration.php
@@ -9,6 +9,7 @@ class FreshRSS_Configuration {
'keep_history_default' => 0,
'mail_login' => '',
'token' => '',
+ 'passwordHash' => '', //CRYPT_BLOWFISH
'posts_per_page' => 20,
'view_mode' => 'normal',
'default_view' => 'not_read',
@@ -24,7 +25,7 @@ class FreshRSS_Configuration {
'scroll' => false,
'reception' => false,
),
- 'theme' => 'default',
+ 'theme' => 'Origine',
'shortcuts' => array(
'mark_read' => 'r',
'mark_favorite' => 'f',
@@ -162,6 +163,9 @@ class FreshRSS_Configuration {
}
}
}
+ public function _passwordHash ($value) {
+ $this->data['passwordHash'] = ctype_graph($value) && (strlen($value) >= 60) ? $value : '';
+ }
public function _mail_login ($value) {
$value = filter_var($value, FILTER_VALIDATE_EMAIL);
if ($value) {
diff --git a/app/Models/Entry.php b/app/Models/Entry.php
index 83f68ce78..a6c67221b 100644
--- a/app/Models/Entry.php
+++ b/app/Models/Entry.php
@@ -159,7 +159,7 @@ class FreshRSS_Entry extends Minz_Model {
try {
// l'article n'est pas en BDD, on va le chercher sur le site
$this->content = get_content_by_parsing(
- $this->link(), $pathEntries
+ htmlspecialchars_decode($this->link(), ENT_QUOTES), $pathEntries
);
} catch (Exception $e) {
// rien à faire, on garde l'ancien contenu (requête a échoué)
diff --git a/app/Models/EntryDAO.php b/app/Models/EntryDAO.php
index 9070ae426..aaf4dcf6a 100644
--- a/app/Models/EntryDAO.php
+++ b/app/Models/EntryDAO.php
@@ -293,6 +293,9 @@ class FreshRSS_EntryDAO extends Minz_ModelPdo {
case 'read':
$where .= 'AND e1.is_read = 1 ';
break;
+ case 'favorite':
+ $where .= 'AND e1.is_favorite = 1 ';
+ break;
default:
throw new FreshRSS_EntriesGetter_Exception ('Bad state in Entry->listByType: [' . $state . ']!');
}
diff --git a/app/Models/Themes.php b/app/Models/Themes.php
index a52812339..c7099a1df 100644
--- a/app/Models/Themes.php
+++ b/app/Models/Themes.php
@@ -3,13 +3,17 @@
class FreshRSS_Themes extends Minz_Model {
private static $themesUrl = '/themes/';
private static $defaultIconsUrl = '/themes/icons/';
+ public static $defaultTheme = 'Origine';
- public static function get() {
- $themes_list = array_diff(
+ public static function getList() {
+ return array_values(array_diff(
scandir(PUBLIC_PATH . self::$themesUrl),
array('..', '.')
- );
+ ));
+ }
+ public static function get() {
+ $themes_list = self::getList();
$list = array();
foreach ($themes_list as $theme_dir) {
$theme = self::get_infos($theme_dir);
@@ -28,7 +32,7 @@ class FreshRSS_Themes extends Minz_Model {
$content = file_get_contents($json_filename);
$res = json_decode($content, true);
if ($res && isset($res['files']) && is_array($res['files'])) {
- $res['path'] = $theme_id;
+ $res['id'] = $theme_id;
return $res;
}
}
@@ -39,12 +43,26 @@ class FreshRSS_Themes extends Minz_Model {
private static $themeIconsUrl;
private static $themeIcons;
- public static function setThemeId($theme_id) {
+ public static function load($theme_id) {
+ $infos = self::get_infos($theme_id);
+ if (!$infos) {
+ if ($theme_id !== self::$defaultTheme) { //Fall-back to default theme
+ return self::load(self::$defaultTheme);
+ }
+ $themes_list = self::getList();
+ if (!empty($themes_list)) {
+ if ($theme_id !== $themes_list[0]) { //Fall-back to first theme
+ return self::load($themes_list[0]);
+ }
+ }
+ return false;
+ }
self::$themeIconsUrl = self::$themesUrl . $theme_id . '/icons/';
self::$themeIcons = is_dir(PUBLIC_PATH . self::$themeIconsUrl) ? array_fill_keys(array_diff(
scandir(PUBLIC_PATH . self::$themeIconsUrl),
array('..', '.')
), 1) : array();
+ return $infos;
}
public static function icon($name, $urlOnly = false) {