diff options
| author | 2014-01-26 22:32:30 +0100 | |
|---|---|---|
| committer | 2014-01-26 22:32:30 +0100 | |
| commit | 311ea6f52f1bdff15b92078d94ddca2921ff808e (patch) | |
| tree | 69050be0da91db15e84f5e6c9477f13895fd5d83 /p | |
| parent | 3fd1e051a736b26606b1f7118c0643102835a325 (diff) | |
Meilleure mise à jour avec les favicons
Implémente
https://github.com/marienfressinaud/FreshRSS/issues/327#issuecomment-33329115
Diffstat (limited to 'p')
| -rw-r--r-- | p/i/install.php | 74 |
1 files changed, 50 insertions, 24 deletions
diff --git a/p/i/install.php b/p/i/install.php index 5addfb527..8002a45da 100644 --- a/p/i/install.php +++ b/p/i/install.php @@ -87,6 +87,8 @@ SET f.cache_nbEntries=x.nbEntries, f.cache_nbUnreads=x.nbUnreads '); define('SQL_UPDATE_HISTORYv007b', 'UPDATE `%1$sfeed` SET keep_history = CASE WHEN keep_history = 0 THEN -2 WHEN keep_history = 1 THEN -1 ELSE keep_history END;'); + +define('SQL_GET_FEEDS', 'SELECT id, url, website FROM `%1$sfeed`;'); //</updates> // gestion internationalisation @@ -310,14 +312,6 @@ function updateDatabase($perform = false) { $stm->execute(); } - $sql = sprintf(SQL_UPDATE_HISTORYv007b, $_SESSION['bd_prefix_user']); - $stm = $c->prepare($sql); - $stm->execute(); - - $sql = sprintf(SQL_UPDATE_CACHED_VALUES, $_SESSION['bd_prefix_user']); - $stm = $c->prepare($sql); - $stm->execute(); - $sql = sprintf(SQL_CONVERT_SELECTv006, $_SESSION['bd_prefix'], $_SESSION['bd_prefix_user']); if (!$perform) { $sql .= ' LIMIT 1'; @@ -339,6 +333,7 @@ function updateDatabase($perform = false) { $content = unserialize(gzinflate(base64_decode($row['content']))); $stm2->execute(array($content, $id)); } + return true; } catch (PDOException $e) { return false; @@ -346,6 +341,51 @@ function updateDatabase($perform = false) { return false; } +function newPdo() { + switch ($_SESSION['bd_type']) { + case 'mysql': + $str = 'mysql:host=' . $_SESSION['bd_host'] . ';dbname=' . $_SESSION['bd_base']; + $driver_options = array( + PDO::MYSQL_ATTR_INIT_COMMAND => 'SET NAMES utf8', + ); + break; + case 'sqlite': + $str = 'sqlite:' . DATA_PATH . $_SESSION['bd_base'] . '.sqlite'; + $driver_options = null; + break; + default: + return false; + } + return new PDO($str, $_SESSION['bd_user'], $_SESSION['bd_password'], $driver_options); +} + +function postUpdate() { + $c = newPdo(); + + $sql = sprintf(SQL_UPDATE_HISTORYv007b, $_SESSION['bd_prefix_user']); + $stm = $c->prepare($sql); + $stm->execute(); + + $sql = sprintf(SQL_UPDATE_CACHED_VALUES, $_SESSION['bd_prefix_user']); + $stm = $c->prepare($sql); + $stm->execute(); + + //<favicons> + $sql = sprintf(SQL_GET_FEEDS, $_SESSION['bd_prefix_user']); + $stm = $c->prepare($sql); + $stm->execute(); + $res = $stm->fetchAll(PDO::FETCH_ASSOC); + foreach ($res as $feed) { + if (empty($feed['url'])) { + continue; + } + $hash = hash('crc32b', $_SESSION['salt'] . $feed['url']); + @file_put_contents(DATA_PATH . '/favicons/' . $hash . '.txt', + empty($feed['website']) ? $feed['url'] : $feed['website']); + } + //</favicons> +} + function deleteInstall () { $res = unlink (INDEX_PATH . '/install.php'); if ($res) { @@ -360,22 +400,7 @@ function deleteInstall () { } try { - switch ($_SESSION['bd_type']) { - case 'mysql': - $str = 'mysql:host=' . $_SESSION['bd_host'] . ';dbname=' . $_SESSION['bd_base']; - $driver_options = array( - PDO::MYSQL_ATTR_INIT_COMMAND => 'SET NAMES utf8', - ); - break; - case 'sqlite': - $str = 'sqlite:' . DATA_PATH . $_SESSION['bd_base'] . '.sqlite'; - $driver_options = null; - break; - default: - return false; - } - - $c = new PDO($str, $_SESSION['bd_user'], $_SESSION['bd_password'], $driver_options); + $c = newPdo(); $sql = sprintf(SQL_DROP_BACKUPv006, $_SESSION['bd_prefix']); $stm = $c->prepare($sql); $stm->execute(); @@ -987,6 +1012,7 @@ case 4: } break; case 5: + postUpdate(); break; case 6: deleteInstall (); |
