From 12d3552fe61d7d26817f6644d8cd90e72307a0e6 Mon Sep 17 00:00:00 2001 From: Marien Fressinaud Date: Wed, 24 Apr 2013 19:54:56 +0200 Subject: Corrige soucis #41 : ajout d'images png en fallback des images SVG + petite modif pour annuler l'attribut height sur les images --- public/theme/freshrss.css | 6 ++++++ public/theme/global.css | 22 ++++++++++++++++++++++ public/theme/icons/add.png | Bin 0 -> 246 bytes public/theme/icons/all.png | Bin 0 -> 223 bytes public/theme/icons/category.png | Bin 0 -> 294 bytes public/theme/icons/close.png | Bin 0 -> 405 bytes public/theme/icons/configure.png | Bin 0 -> 526 bytes public/theme/icons/down.png | Bin 0 -> 460 bytes public/theme/icons/help.png | Bin 0 -> 687 bytes public/theme/icons/link.png | Bin 0 -> 719 bytes public/theme/icons/login.png | Bin 0 -> 333 bytes public/theme/icons/logout.png | Bin 0 -> 339 bytes public/theme/icons/non-starred.png | Bin 0 -> 600 bytes public/theme/icons/note.png | Bin 0 -> 427 bytes public/theme/icons/note_empty.png | Bin 0 -> 517 bytes public/theme/icons/read.png | Bin 0 -> 656 bytes public/theme/icons/refresh.png | Bin 0 -> 577 bytes public/theme/icons/rss.png | Bin 0 -> 483 bytes public/theme/icons/search.png | Bin 0 -> 571 bytes public/theme/icons/share.png | Bin 0 -> 541 bytes public/theme/icons/starred.png | Bin 0 -> 528 bytes public/theme/icons/unread.png | Bin 0 -> 434 bytes public/theme/icons/up.png | Bin 0 -> 411 bytes 23 files changed, 28 insertions(+) create mode 100644 public/theme/icons/add.png create mode 100644 public/theme/icons/all.png create mode 100644 public/theme/icons/category.png create mode 100644 public/theme/icons/close.png create mode 100644 public/theme/icons/configure.png create mode 100644 public/theme/icons/down.png create mode 100644 public/theme/icons/help.png create mode 100644 public/theme/icons/link.png create mode 100644 public/theme/icons/login.png create mode 100644 public/theme/icons/logout.png create mode 100644 public/theme/icons/non-starred.png create mode 100644 public/theme/icons/note.png create mode 100644 public/theme/icons/note_empty.png create mode 100644 public/theme/icons/read.png create mode 100644 public/theme/icons/refresh.png create mode 100644 public/theme/icons/rss.png create mode 100644 public/theme/icons/search.png create mode 100644 public/theme/icons/share.png create mode 100644 public/theme/icons/starred.png create mode 100644 public/theme/icons/unread.png create mode 100644 public/theme/icons/up.png (limited to 'public') diff --git a/public/theme/freshrss.css b/public/theme/freshrss.css index ed6646269..d39ca7fc8 100644 --- a/public/theme/freshrss.css +++ b/public/theme/freshrss.css @@ -127,6 +127,7 @@ } .categories .feeds .item .dropdown-target:target ~ .dropdown-toggle i, .categories .feeds .item:hover .dropdown-toggle i { + background-image: url("icons/configure.png"); background-image: url("icons/configure.svg"); } .categories .notRead { @@ -199,6 +200,7 @@ display: inline-block; width: 30px; height: 40px; + background: url("icons/read.png") center center no-repeat; background: url("icons/read.svg") center center no-repeat; vertical-align: middle; } @@ -206,12 +208,14 @@ text-decoration: none; } .flux.not_read .flux_header .item.manage .read { + background: url("icons/unread.png") center center no-repeat; background: url("icons/unread.svg") center center no-repeat; } .flux_header .item.manage .bookmark { display: inline-block; width: 30px; height: 40px; + background: url("icons/non-starred.png") center center no-repeat; background: url("icons/non-starred.svg") center center no-repeat; vertical-align: middle; } @@ -219,6 +223,7 @@ text-decoration: none; } .flux.favorite .flux_header .item.manage .bookmark { + background: url("icons/starred.png") center center no-repeat; background: url("icons/starred.svg") center center no-repeat; } .flux_header .item.website { @@ -260,6 +265,7 @@ display: inline-block; width: 35px; height: 40px; + background: url("icons/link.png") center center no-repeat; background: url("icons/link.svg") center center no-repeat; vertical-align: middle; } diff --git a/public/theme/global.css b/public/theme/global.css index c08463b8b..7bae3f432 100644 --- a/public/theme/global.css +++ b/public/theme/global.css @@ -42,6 +42,7 @@ h1, h2, h3 { /* IMG */ img { + height: auto; max-width: 100%; vertical-align: middle; } @@ -432,65 +433,86 @@ input, select, textarea { background: center center no-repeat; } .icon.i_refresh { + background-image: url("icons/refresh.png"); background-image: url("icons/refresh.svg"); } .icon.i_bookmark { + background-image: url("icons/starred.png"); background-image: url("icons/starred.svg"); } .icon.i_not_bookmark { + background-image: url("icons/unstarred.png"); background-image: url("icons/unstarred.svg"); } .icon.i_read { + background-image: url("icons/read.png"); background-image: url("icons/read.svg"); } .icon.i_unread { + background-image: url("icons/unread.png"); background-image: url("icons/unread.svg"); } .icon.i_all { + background-image: url("icons/all.png"); background-image: url("icons/all.svg"); } .icon.i_close { + background-image: url("icons/close.png"); background-image: url("icons/close.svg"); } .icon.i_search { + background-image: url("icons/search.png"); background-image: url("icons/search.svg"); } .icon.i_configure { + background-image: url("icons/configure.png"); background-image: url("icons/configure.svg"); } .icon.i_login { + background-image: url("icons/login.png"); background-image: url("icons/login.svg"); } .icon.i_logout { + background-image: url("icons/logout.png"); background-image: url("icons/logout.svg"); } .icon.i_add { + background-image: url("icons/add.png"); background-image: url("icons/add.svg"); } .icon.i_link { + background-image: url("icons/link.png"); background-image: url("icons/link.svg"); } .icon.i_down { + background-image: url("icons/down.png"); background-image: url("icons/down.svg"); } .icon.i_up { + background-image: url("icons/up.png"); background-image: url("icons/up.svg"); } .icon.i_help { + background-image: url("icons/help.png"); background-image: url("icons/help.svg"); } .icon.i_note { + background-image: url("icons/note.png"); background-image: url("icons/note.svg"); } .icon.i_note_empty { + background-image: url("icons/note_empty.png"); background-image: url("icons/note_empty.svg"); } .icon.i_category { + background-image: url("icons/category.png"); background-image: url("icons/category.svg"); } .icon.i_rss { + background-image: url("icons/rss.png"); background-image: url("icons/rss.svg"); } .icon.i_share { + background-image: url("icons/share.png"); background-image: url("icons/share.svg"); } diff --git a/public/theme/icons/add.png b/public/theme/icons/add.png new file mode 100644 index 000000000..90cdf4830 Binary files /dev/null and b/public/theme/icons/add.png differ diff --git a/public/theme/icons/all.png b/public/theme/icons/all.png new file mode 100644 index 000000000..b0dbe5483 Binary files /dev/null and b/public/theme/icons/all.png differ diff --git a/public/theme/icons/category.png b/public/theme/icons/category.png new file mode 100644 index 000000000..e3a9bf34b Binary files /dev/null and b/public/theme/icons/category.png differ diff --git a/public/theme/icons/close.png b/public/theme/icons/close.png new file mode 100644 index 000000000..452f1d1cf Binary files /dev/null and b/public/theme/icons/close.png differ diff --git a/public/theme/icons/configure.png b/public/theme/icons/configure.png new file mode 100644 index 000000000..8c6fb531c Binary files /dev/null and b/public/theme/icons/configure.png differ diff --git a/public/theme/icons/down.png b/public/theme/icons/down.png new file mode 100644 index 000000000..5a647245f Binary files /dev/null and b/public/theme/icons/down.png differ diff --git a/public/theme/icons/help.png b/public/theme/icons/help.png new file mode 100644 index 000000000..aa63c5411 Binary files /dev/null and b/public/theme/icons/help.png differ diff --git a/public/theme/icons/link.png b/public/theme/icons/link.png new file mode 100644 index 000000000..de2b187d7 Binary files /dev/null and b/public/theme/icons/link.png differ diff --git a/public/theme/icons/login.png b/public/theme/icons/login.png new file mode 100644 index 000000000..cebe0cf7d Binary files /dev/null and b/public/theme/icons/login.png differ diff --git a/public/theme/icons/logout.png b/public/theme/icons/logout.png new file mode 100644 index 000000000..49255fccd Binary files /dev/null and b/public/theme/icons/logout.png differ diff --git a/public/theme/icons/non-starred.png b/public/theme/icons/non-starred.png new file mode 100644 index 000000000..4aafb6d8a Binary files /dev/null and b/public/theme/icons/non-starred.png differ diff --git a/public/theme/icons/note.png b/public/theme/icons/note.png new file mode 100644 index 000000000..d819ebd02 Binary files /dev/null and b/public/theme/icons/note.png differ diff --git a/public/theme/icons/note_empty.png b/public/theme/icons/note_empty.png new file mode 100644 index 000000000..c26ad2b16 Binary files /dev/null and b/public/theme/icons/note_empty.png differ diff --git a/public/theme/icons/read.png b/public/theme/icons/read.png new file mode 100644 index 000000000..a402689c7 Binary files /dev/null and b/public/theme/icons/read.png differ diff --git a/public/theme/icons/refresh.png b/public/theme/icons/refresh.png new file mode 100644 index 000000000..dba399981 Binary files /dev/null and b/public/theme/icons/refresh.png differ diff --git a/public/theme/icons/rss.png b/public/theme/icons/rss.png new file mode 100644 index 000000000..c20455af0 Binary files /dev/null and b/public/theme/icons/rss.png differ diff --git a/public/theme/icons/search.png b/public/theme/icons/search.png new file mode 100644 index 000000000..48e7373c4 Binary files /dev/null and b/public/theme/icons/search.png differ diff --git a/public/theme/icons/share.png b/public/theme/icons/share.png new file mode 100644 index 000000000..74c4c5dda Binary files /dev/null and b/public/theme/icons/share.png differ diff --git a/public/theme/icons/starred.png b/public/theme/icons/starred.png new file mode 100644 index 000000000..a6c076358 Binary files /dev/null and b/public/theme/icons/starred.png differ diff --git a/public/theme/icons/unread.png b/public/theme/icons/unread.png new file mode 100644 index 000000000..ab6e3fb39 Binary files /dev/null and b/public/theme/icons/unread.png differ diff --git a/public/theme/icons/up.png b/public/theme/icons/up.png new file mode 100644 index 000000000..8bfc2fb13 Binary files /dev/null and b/public/theme/icons/up.png differ -- cgit v1.2.3 From 7b75289a294a0f4865e8d5b9564b6583f5d01aec Mon Sep 17 00:00:00 2001 From: Marien Fressinaud Date: Wed, 24 Apr 2013 20:39:28 +0200 Subject: Fix issue #63 : gestion des couleurs dégradés et des transitions pour plus de navigateurs (utilisation des préfixes dans une feuille fallback.css) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- app/App_FrontController.php | 1 + public/theme/fallback.css | 65 +++++++++++++++++++++++++++++++++++++++++++++ public/theme/freshrss.css | 2 +- public/theme/global.css | 19 +++++-------- 4 files changed, 74 insertions(+), 13 deletions(-) create mode 100644 public/theme/fallback.css (limited to 'public') diff --git a/app/App_FrontController.php b/app/App_FrontController.php index 5a66ae1dd..cf32a1c44 100644 --- a/app/App_FrontController.php +++ b/app/App_FrontController.php @@ -41,6 +41,7 @@ class App_FrontController extends FrontController { } private function loadStylesAndScripts () { + View::appendStyle (Url::display ('/theme/fallback.css')); View::appendStyle (Url::display ('/theme/global.css')); View::appendStyle (Url::display ('/theme/freshrss.css')); if (login_is_conf ($this->conf)) { diff --git a/public/theme/fallback.css b/public/theme/fallback.css new file mode 100644 index 000000000..579b2eaa8 --- /dev/null +++ b/public/theme/fallback.css @@ -0,0 +1,65 @@ +.btn { + background: #fff; + background: -moz-linear-gradient(top, #fff 0%, #eee 100%); + background: -webkit-linear-gradient(top, #fff 0%, #eee 100%); + background: -o-linear-gradient(top, #fff 0%, #eee 100%); + background: -ms-linear-gradient(top, #fff 0%, #eee 100%); +} + .btn:hover { + background: #f0f0f0; + background: -moz-linear-gradient(top, #f8f8f8 0%, #f0f0f0 100%); + background: -webkit-linear-gradient(top, #f8f8f8 0%, #f0f0f0 100%); + background: -o-linear-gradient(top, #f8f8f8 0%, #f0f0f0 100%); + background: -ms-linear-gradient(top, #f8f8f8 0%, #f0f0f0 100%); + } + .btn.btn-important { + background: #0084CC; + background: -moz-linear-gradient(top, #0084CC 0%, #0045CC 100%); + background: -webkit-linear-gradient(top, #0084CC 0%, #0045CC 100%); + background: -o-linear-gradient(top, #0084CC 0%, #0045CC 100%); + background: -ms-linear-gradient(top, #0084CC 0%, #0045CC 100%); + } + .btn.btn-important:hover { + background: -moz-linear-gradient(top, #0066CC 0%, #0045CC 100%); + background: -webkit-linear-gradient(top, #0066CC 0%, #0045CC 100%); + background: -o-linear-gradient(top, #0066CC 0%, #0045CC 100%); + background: -ms-linear-gradient(top, #0066CC 0%, #0045CC 100%); + } + .btn.btn-attention { + background: #E95B57; + background: -moz-linear-gradient(top, #E95B57 0%, #BD362F 100%); + background: -webkit-linear-gradient(top, #E95B57 0%, #BD362F 100%); + background: -o-linear-gradient(top, #E95B57 0%, #BD362F 100%); + background: -ms-linear-gradient(top, #E95B57 0%, #BD362F 100%); + } + .btn.btn-attention:hover { + background: -moz-linear-gradient(top, #D14641 0%, #BD362F 100%); + background: -webkit-linear-gradient(top, #D14641 0%, #BD362F 100%); + background: -o-linear-gradient(top, #D14641 0%, #BD362F 100%); + background: -ms-linear-gradient(top, #D14641 0%, #BD362F 100%); + } + + +.nav-head { + background: #fff; + background: -moz-linear-gradient(top, #fff 0%, #f0f0f0 100%); + background: -webkit-linear-gradient(top, #fff 0%, #f0f0f0 100%); + background: -o-linear-gradient(top, #fff 0%, #f0f0f0 100%); + background: -ms-linear-gradient(top, #fff 0%, #f0f0f0 100%); +} + +.header > .item.search input { + -moz-transition: width 200ms linear; + -webkit-transition: width 200ms linear; + -o-transition: width 200ms linear; + -ms-transition: width 200ms linear; +} + +@media(max-width: 840px) { + .aside { + -moz-transition: width 200ms linear; + -webkit-transition: width 200ms linear; + -o-transition: width 200ms linear; + -ms-transition: width 200ms linear; + } +} diff --git a/public/theme/freshrss.css b/public/theme/freshrss.css index d39ca7fc8..95809f653 100644 --- a/public/theme/freshrss.css +++ b/public/theme/freshrss.css @@ -24,7 +24,7 @@ } .header > .item.search input { width: 200px; - transition: all 200ms linear; + transition: width 200ms linear; } .header .item.search input:focus { width: 300px; diff --git a/public/theme/global.css b/public/theme/global.css index 7bae3f432..84fbca3cb 100644 --- a/public/theme/global.css +++ b/public/theme/global.css @@ -173,8 +173,7 @@ input, select, textarea { min-height: 37px; min-width: 15px; padding: 5px 10px; - background: #fff; - background: linear-gradient(#fff, #eee); + background: linear-gradient(to bottom, #fff 0%, #eee 100%); border-radius: 3px; border: 1px solid #ddd; border-bottom: 1px solid #aaa; @@ -190,8 +189,7 @@ input, select, textarea { line-height: 25px; } .btn:hover { - background: #f0f0f0; - background: linear-gradient(#f8f8f8, #f0f0f0); + background: linear-gradient(to bottom, #f8f8f8, #f0f0f0); text-decoration: none; } .btn.active, @@ -201,14 +199,13 @@ input, select, textarea { } .btn.btn-important { - background: #0084CC; - background: linear-gradient(#0084CC, #0045CC); + background: linear-gradient(to bottom, #0084CC, #0045CC); color: #fff; border: 1px solid #0062B7; text-shadow: 0px -1px 0 #aaa; } .btn.btn-important:hover { - background: linear-gradient(#0066CC, #0045CC); + background: linear-gradient(to bottom, #0066CC, #0045CC); } .btn.btn-important:active { background: #0044CB; @@ -216,14 +213,13 @@ input, select, textarea { } .btn.btn-attention { - background: #E95B57; - background: linear-gradient(#E95B57, #BD362F); + background: linear-gradient(to bottom, #E95B57, #BD362F); color: #fff; border: 1px solid #C44742; text-shadow: 0px -1px 0px #666; } .btn.btn-attention:hover { - background: linear-gradient(#D14641, #BD362F); + background: linear-gradient(to bottom, #D14641, #BD362F); } .btn.btn-attention:active { background: #BD362F; @@ -289,8 +285,7 @@ input, select, textarea { .nav-head { display: block; margin: 0; - background: #fff; - background: linear-gradient(#fff, #f0f0f0); + background: linear-gradient(to bottom, #fff, #f0f0f0); border-bottom: 1px solid #ddd; text-align: right; } -- cgit v1.2.3 From a6982216253d1356621916bb2b7734320fedec0d Mon Sep 17 00:00:00 2001 From: Marien Fressinaud Date: Wed, 24 Apr 2013 22:14:49 +0200 Subject: Fix issue #55 : affichage des tags associés aux articles MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- app/models/Entry.php | 3 +- app/views/index/index.phtml | 18 ++++++ public/theme/global.css | 4 ++ public/theme/icons/tag.png | Bin 0 -> 196 bytes public/theme/icons/tag.svg | 134 ++++++++++++++++++++++++++++++++++++++++++++ 5 files changed, 158 insertions(+), 1 deletion(-) create mode 100644 public/theme/icons/tag.png create mode 100644 public/theme/icons/tag.svg (limited to 'public') diff --git a/app/models/Entry.php b/app/models/Entry.php index 230b457bf..3daec5aa9 100755 --- a/app/models/Entry.php +++ b/app/models/Entry.php @@ -216,7 +216,7 @@ class Entry extends Model { class EntryDAO extends Model_pdo { public function addEntry ($valuesTmp) { - $sql = 'INSERT INTO entry(id, guid, title, author, content, link, date, is_read, is_favorite, is_public, id_feed, lastUpdate) VALUES(?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?)'; + $sql = 'INSERT INTO entry(id, guid, title, author, content, link, date, is_read, is_favorite, is_public, id_feed, lastUpdate, tags) VALUES(?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?)'; $stm = $this->bd->prepare ($sql); $values = array ( @@ -232,6 +232,7 @@ class EntryDAO extends Model_pdo { $valuesTmp['is_public'], $valuesTmp['id_feed'], $valuesTmp['lastUpdate'], + $valuesTmp['tags'], ); if ($stm && $stm->execute ($values)) { diff --git a/app/views/index/index.phtml b/app/views/index/index.phtml index 6889a8b51..ff7325996 100644 --- a/app/views/index/index.phtml +++ b/app/views/index/index.phtml @@ -89,6 +89,24 @@ if (isset ($this->entryPaginator)) { + tags(); ?> + +
  • + +
  • + diff --git a/public/theme/global.css b/public/theme/global.css index 84fbca3cb..d619c4e99 100644 --- a/public/theme/global.css +++ b/public/theme/global.css @@ -511,3 +511,7 @@ input, select, textarea { background-image: url("icons/share.png"); background-image: url("icons/share.svg"); } + .icon.i_tag { + background-image: url("icons/tag.png"); + background-image: url("icons/tag.svg"); + } diff --git a/public/theme/icons/tag.png b/public/theme/icons/tag.png new file mode 100644 index 000000000..cb1a13833 Binary files /dev/null and b/public/theme/icons/tag.png differ diff --git a/public/theme/icons/tag.svg b/public/theme/icons/tag.svg new file mode 100644 index 000000000..688aca7a4 --- /dev/null +++ b/public/theme/icons/tag.svg @@ -0,0 +1,134 @@ + + + + + + + + image/svg+xml + + Gnome Symbolic Icon Theme + + + + + + + Gnome Symbolic Icon Theme + + + + + + + + + + + + + -- cgit v1.2.3 From 10b9797da7696babc092354c3a156ff1683e0e0d Mon Sep 17 00:00:00 2001 From: Marien Fressinaud Date: Sat, 27 Apr 2013 18:58:09 +0200 Subject: L'installateur gère désormais l'internationalisation et détecte la langue préférée de l'utilisateur (fix bug #38) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- app/i18n/en.php | 52 +++++++++++ app/i18n/fr.php | 52 +++++++++++ app/models/Category.php | 2 +- public/install.php | 231 ++++++++++++++++++++++++++++++++++++------------ 4 files changed, 278 insertions(+), 59 deletions(-) (limited to 'public') diff --git a/app/i18n/en.php b/app/i18n/en.php index 203904c9d..921f86ddc 100644 --- a/app/i18n/en.php +++ b/app/i18n/en.php @@ -51,6 +51,7 @@ return array ( 'error_occurred' => 'An error occured', 'error_occurred_update' => 'An error occured during update', + 'default_category' => 'Uncategorized', 'categories_updated' => 'Categories have been updated', 'categories_management' => 'Categories management', 'feed_updated' => 'Feed has been updated', @@ -214,4 +215,55 @@ return array ( // format for date() function, %s allows to indicate month in letter 'format_date' => '%s dS Y', 'format_date_hour' => '%s dS Y \a\t H\.i', + + // INSTALLATION + 'freshrss_installation' => 'Installation - FreshRSS', + 'freshrss' => 'FreshRSS', + 'installation_step' => 'Installation - step %d', + 'steps' => 'Steps', + 'checks' => 'Checks', + 'bdd_configuration' => 'Database configuration', + 'this_is_the_end' => 'This is the end', + + 'ok' => 'Ok!', + 'congratulations' => 'Congratulations!', + 'attention' => 'Attention!', + 'damn' => 'Damn!', + 'oops' => 'Oops!', + 'next_step' => 'Go to the next step', + + 'language_defined' => 'Language has been defined.', + 'choose_language' => 'Choose a language for FreshRSS', + + 'javascript_is_better' => 'FreshRSS is more pleasant with Javascript enabled', + 'php_is_ok' => 'Your PHP version is %s and it\'s compatible with FreshRSS', + 'php_is_nok' => 'Your PHP version is %s. You must have at least version %s', + 'minz_is_ok' => 'You have Minz framework', + 'minz_is_nok' => 'You haven\'t Minz framework. You should execute build.sh script or download it on Github and install in %s directory the content of its /lib directory.', + 'curl_is_ok' => 'You have version %s of cURL', + 'curl_is_nok' => 'You haven\'t cURL', + 'pdomysql_is_ok' => 'You have PDO and its driver for MySQL', + 'pdomysql_is_nok' => 'You haven\'t PDO or its driver for MySQL', + 'cache_is_ok' => 'Permissions on cache directory are good', + 'log_is_ok' => 'Permissions on logs directory are good', + 'conf_is_ok' => 'Permissions on configuration directory are good', + 'data_is_ok' => 'Permissions on data directory are good', + 'file_is_nok' => 'Check permissions on %s directory. HTTP server must have rights to write into', + 'fix_errors_before' => 'Fix errors before skip to the next step.', + + 'general_conf_is_ok' => 'General configuration has been saved.', + 'random_string' => 'Random string', + 'change_value' => 'You should change this value by any other', + 'base_url' => 'Base URL', + 'do_not_change_if_doubt' => 'Don\'t change if you doubt about it', + + 'bdd_conf_is_ok' => 'Database configuration has been saved.', + 'host' => 'Host', + 'username' => 'Username', + 'password' => 'Password', + 'bdd' => 'Database', + + 'installation_is_ok' => 'Installation process is finished. You must delete install.php file to access FreshRSS... or simply click on following button :)', + 'finish_installation' => 'Finish installation', + 'install_not_deleted' => 'Something was going wrong, you muste delete %s file manually.', ); diff --git a/app/i18n/fr.php b/app/i18n/fr.php index 0473a8f94..3178f3687 100644 --- a/app/i18n/fr.php +++ b/app/i18n/fr.php @@ -51,6 +51,7 @@ return array ( 'error_occurred' => 'Une erreur est survenue', 'error_occurred_update' => 'Une erreur est survenue lors de la mise à jour', + 'default_category' => 'Sans catégorie', 'categories_updated' => 'Les catégories ont été mises à jour', 'categories_management' => 'Gestion des catégories', 'feed_updated' => 'Le flux a été mis à jour', @@ -214,4 +215,55 @@ return array ( // format pour la fonction date(), %s permet d'indiquer le mois en toutes lettres 'format_date' => 'd %s Y', 'format_date_hour' => '\l\e d %s Y \à H\:i', + + // INSTALLATION + 'freshrss_installation' => 'Installation - FreshRSS', + 'freshrss' => 'FreshRSS', + 'installation_step' => 'Installation - étape %d', + 'steps' => 'Étapes', + 'checks' => 'Vérifications', + 'bdd_configuration' => 'Configuration de la base de données', + 'this_is_the_end' => 'This is the end', + + 'ok' => 'Ok !', + 'congratulations' => 'Félicitations !', + 'attention' => 'Attention !', + 'damn' => 'Arf !', + 'oops' => 'Oups !', + 'next_step' => 'Passer à l\'étape suivante', + + 'language_defined' => 'La langue a bien été définie.', + 'choose_language' => 'Choisissez la langue pour FreshRSS', + + 'javascript_is_better' => 'FreshRSS est plus agréable à utiliser avec le Javascript d\'activé', + 'php_is_ok' => 'Votre version de PHP est la %s et est compatible avec FreshRSS', + 'php_is_nok' => 'Votre version de PHP est la %s. Vous devriez avoir au moins la version %s', + 'minz_is_ok' => 'Vous disposez du framework Minz', + 'minz_is_nok' => 'Vous ne disposez pas de la librairie Minz. Vous devriez exécuter le script build.sh ou bien la télécharger sur Github et installer dans le répertoire %s le contenu de son répertoire /lib.', + 'curl_is_ok' => 'Vous disposez de cURL dans sa version %s', + 'curl_is_nok' => 'Vous ne disposez pas de cURL', + 'pdomysql_is_ok' => 'Vous disposez de PDO et de son driver pour MySQL', + 'pdomysql_is_nok' => 'Vous ne disposez pas de PDO ou de son driver pour MySQL', + 'cache_is_ok' => 'Les droits sur le répertoire de cache sont bons', + 'log_is_ok' => 'Les droits sur le répertoire des logs sont bons', + 'conf_is_ok' => 'Les droits sur le répertoire de configuration sont bons', + 'data_is_ok' => 'Les droits sur le répertoire de data sont bons', + 'file_is_nok' => 'Veuillez vérifier les droits sur le répertoire %s. Le serveur HTTP doit être capable d\'écrire dedans', + 'fix_errors_before' => 'Veuillez corriger les erreurs avant de passer à l\'étape suivante.', + + 'general_conf_is_ok' => 'La configuration générale a été enregistrée.', + 'random_string' => 'Chaîne aléatoire', + 'change_value' => 'Vous devriez changer cette valeur par n\'importe quelle autre', + 'base_url' => 'Base de l\'url', + 'do_not_change_if_doubt' => 'Laissez tel quel dans le doute', + + 'bdd_conf_is_ok' => 'La configuration de la base de données a été enregistrée.', + 'host' => 'Hôte', + 'username' => 'Nom utilisateur', + 'password' => 'Mot de passe', + 'bdd' => 'Base de données', + + 'installation_is_ok' => 'L\'installation s\'est bien passée. Il faut maintenant supprimer le fichier install.php pour pouvoir accéder à FreshRSS... ou simplement cliquer sur le bouton ci-dessous :)', + 'finish_installation' => 'Terminer l\'installation', + 'install_not_deleted' => 'Quelque chose s\'est mal passé, vous devez supprimer le fichier %s à la main.', ); diff --git a/app/models/Category.php b/app/models/Category.php index 7ce572e71..273559b1e 100755 --- a/app/models/Category.php +++ b/app/models/Category.php @@ -176,7 +176,7 @@ class CategoryDAO extends Model_pdo { $def_cat = $this->searchById ('000000'); if (!$def_cat) { - $cat = new Category ('Sans catégorie'); + $cat = new Category (Translate::t ('default_category')); $cat->_id ('000000'); $values = array ( diff --git a/public/install.php b/public/install.php index 7065e3a77..e83b74eb8 100644 --- a/public/install.php +++ b/public/install.php @@ -70,7 +70,66 @@ function writeArray ($f, $array) { } } +// gestion internationalisation +$translates = array (); +$actual = 'en'; +function initTranslate () { + global $translates; + global $actual; + + $l = getBetterLanguage ('en'); + if (isset ($_SESSION['language'])) { + $l = $_SESSION['language']; + } + $actual = $l; + + $file = APP_PATH . '/i18n/' . $actual . '.php'; + if (file_exists ($file)) { + $translates = include ($file); + } +} +function getBetterLanguage ($fallback) { + $available = availableLanguages (); + $accept = $_SERVER['HTTP_ACCEPT_LANGUAGE']; + $language = strtolower (substr ($accept, 0, 2)); + + if (isset ($available[$language])) { + return $language; + } else { + return $fallback; + } +} +function availableLanguages () { + return array ( + 'en' => 'English', + 'fr' => 'Français' + ); +} +function _t ($key) { + global $translates; + $translate = $key; + if (isset ($translates[$key])) { + $translate = $translates[$key]; + } + + $args = func_get_args (); + unset($args[0]); + + return vsprintf ($translate, $args); +} + /*** SAUVEGARDES ***/ +function saveLanguage () { + if (!empty ($_POST)) { + if (!isset ($_POST['language'])) { + return false; + } + + $_SESSION['language'] = $_POST['language']; + + header ('Location: index.php?step=1'); + } +} function saveStep2 () { if (!empty ($_POST)) { if (empty ($_POST['sel']) || @@ -95,6 +154,7 @@ function saveStep2 () { writeLine ($f, ' $_SESSION['language'], 'old_entries' => $_SESSION['old_entries'], 'mail_login' => $_SESSION['mail_login'] )); @@ -149,10 +209,13 @@ function deleteInstall () { /*** VÉRIFICATIONS ***/ function checkStep () { + $s0 = checkStep0 (); $s1 = checkStep1 (); $s2 = checkStep2 (); $s3 = checkStep3 (); - if (STEP > 1 && $s1['all'] != 'ok') { + if (STEP > 0 && $s0['all'] != 'ok') { + header ('Location: index.php?step=0'); + } elseif (STEP > 1 && $s1['all'] != 'ok') { header ('Location: index.php?step=1'); } elseif (STEP > 2 && $s2['all'] != 'ok') { header ('Location: index.php?step=2'); @@ -160,6 +223,16 @@ function checkStep () { header ('Location: index.php?step=3'); } } +function checkStep0 () { + $languages = availableLanguages (); + $language = isset ($_SESSION['language']) && + isset ($languages[$_SESSION['language']]); + + return array ( + 'language' => $language ? 'ok' : 'ko', + 'all' => $language ? 'ok' : 'ko' + ); +} function checkStep1 () { $php = version_compare (PHP_VERSION, '5.1.0') >= 0; $minz = file_exists (LIB_PATH . '/minz'); @@ -234,64 +307,98 @@ function checkBD () { } /*** AFFICHAGE ***/ +function printStep0 () { + global $actual; +?> + +

    + + +
    + +
    + +
    + +
    +
    + +
    +
    + + + + + +
    +
    +
    + - + -

    Ok ! Votre version de PHP est la et est compatible avec FreshRSS

    +

    -

    Arf ! Votre version de PHP est la . Vous devriez avoir au moins la version 5.1.0

    +

    -

    Ok ! Vous disposez du framework Minz

    +

    -

    Arf ! Vous ne disposez pas de la librairie Minz. Vous devriez exécuter le script build.sh ou bien la télécharger sur Github et installer dans le répertoire le contenu de son répertoire /lib.

    +

    -

    Ok ! Vous disposez de cURL dans sa version

    +

    -

    Arf ! Vous ne disposez pas de cURL

    +

    -

    Ok ! Vous disposez de PDO et de son driver pour MySQL

    +

    -

    Arf ! Vous ne disposez pas de PDO ou de son driver pour MySQL

    +

    -

    Ok ! Les droits sur le répertoire de cache sont bons

    +

    -

    Arf ! Veuillez vérifier les droits sur le répertoire . Le serveur HTTP doit être capable d'écrire dedans

    +

    -

    Ok ! Les droits sur le répertoire des logs sont bons

    +

    -

    Arf ! Veuillez vérifier les droits sur le répertoire . Le serveur HTTP doit être capable d'écrire dedans

    +

    -

    Ok ! Les droits sur le répertoire de configuration sont bons

    +

    -

    Arf ! Veuillez vérifier les droits sur le répertoire . Le serveur HTTP doit être capable d'écrire dedans

    +

    -

    Ok ! Les droits sur le répertoire de data sont bons

    +

    -

    Arf ! Veuillez vérifier les droits sur le répertoire . Le serveur HTTP doit être capable d'écrire dedans

    +

    - Passer à l'étape suivante + - Veuillez corriger les erreurs avant de passer à l'étape suivante. +

    -

    Ok ! La configuration générale a été enregistrée.

    +

    - Configuration générale +
    - +
    - Vous devriez changer cette valeur par n'importe quelle autre +
    @@ -315,40 +422,40 @@ function printStep2 () { $url = substr ($_SERVER['PHP_SELF'], 0, -10); ?>
    - +
    - Laissez tel quel dans le doute +
    - +
    - +
    - +
    - mois +
    - +
    - - + +
    - - + + - Passer à l'étape suivante +
    @@ -359,34 +466,34 @@ function printStep2 () { function printStep3 () { ?> -

    Ok ! La configuration de la base de données a été enregistrée.

    +

    - Configuration de la base de données +
    - +
    - +
    - +
    - +
    @@ -394,10 +501,10 @@ function printStep3 () {
    - - + + - Passer à l'étape suivante +
    @@ -407,23 +514,27 @@ function printStep3 () { function printStep4 () { ?> -

    Félicitations ! L'installation s'est bien passée. Il faut maintenant supprimer le fichier install.php pour pouvoir accéder à FreshRSS... ou simplement cliquer sur le bouton ci-dessous ;)

    - Terminer l'installation +

    + -

    Oups ! Quelque chose s'est mal passé, vous devriez supprimer le fichier à la main.

    +

    - Installation - FreshRSS + <?php echo _t ('freshrss_installation'); ?> @@ -451,25 +562,29 @@ case 5:
    -

    FreshRSS

    -

    Installation - étape

    +

    +

    Date: Sat, 27 Apr 2013 19:00:54 +0200 Subject: Ajout du fichier fallback.css pour l'installateur --- public/install.php | 1 + 1 file changed, 1 insertion(+) (limited to 'public') diff --git a/public/install.php b/public/install.php index e83b74eb8..672bb4418 100644 --- a/public/install.php +++ b/public/install.php @@ -555,6 +555,7 @@ case 5: <?php echo _t ('freshrss_installation'); ?> + -- cgit v1.2.3 From a0d9d93ad2f6a174c0476bd596d6fddda77d0b04 Mon Sep 17 00:00:00 2001 From: Marien Fressinaud Date: Sun, 28 Apr 2013 13:30:34 +0200 Subject: Fix issue #62 : création d'un logo (temporaire ?) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- app/layout/header.phtml | 1 + app/layout/layout.phtml | 3 + public/favicon.ico | Bin 0 -> 1150 bytes public/favicon.png | Bin 0 -> 685 bytes public/logo.png | Bin 0 -> 1743 bytes public/logo.svg | 535 ++++++++++++++++++++++++++++++++++++++++++++++ public/theme/freshrss.css | 7 + 7 files changed, 546 insertions(+) create mode 100644 public/favicon.ico create mode 100644 public/favicon.png create mode 100644 public/logo.png create mode 100644 public/logo.svg (limited to 'public') diff --git a/app/layout/header.phtml b/app/layout/header.phtml index cab56e7d8..d6fe41950 100644 --- a/app/layout/header.phtml +++ b/app/layout/header.phtml @@ -11,6 +11,7 @@

    +