Fix issue #189: Disparition de la dernière catégorie

La dernière catégorie n'était pas générée correctement si elle ne possédait
qu'un seul flux. Le bug venait de HelperCategorie::daoToCategoryPrepopulated
Je l'ai réécrite pour qu'elle soit un peu plus claire
pull/209/head
Marien Fressinaud 11 years ago
parent 46d9e0417a
commit d94d948706
  1. 34
      app/models/Category.php

@ -175,7 +175,7 @@ class CategoryDAO extends Model_pdo {
}
}
public function listCategories ($prePopulateFeeds = true) { //TODO: Search code-base for places where $prePopulateFeeds should be false
public function listCategories ($prePopulateFeeds = true) {
if ($prePopulateFeeds) {
$sql = 'SELECT c.id as c_id, c.name as c_name, c.color as c_color, count(e.id) as nbNotRead, f.* '
. 'FROM ' . $this->prefix . 'category c '
@ -276,14 +276,9 @@ class HelperCategory {
$previousLine = null;
$feedsDao = array();
$nbLinesMinus1 = count($listDAO) - 1;
for ($i = 0; $i <= $nbLinesMinus1; $i++) {
$line = $listDAO[$i];
$cat_id = $line['c_id'];
if (($i > 0) && (($cat_id !== $previousLine['c_id']) || ($i === $nbLinesMinus1))) { //End of current category
if ($i === $nbLinesMinus1) { //End of table
$feedsDao[] = $line;
}
foreach ($listDAO as $line) {
if ($previousLine['c_id'] != null && $line['c_id'] !== $previousLine['c_id']) {
// End of the current category, we add it to the $list
$cat = new Category (
$previousLine['c_name'],
$previousLine['c_color'],
@ -292,13 +287,22 @@ class HelperCategory {
$cat->_id ($previousLine['c_id']);
$list[] = $cat;
$feedsDao = array(); //Prepare for next category
$previousLine = $line;
$feedsDao[] = $line;
} else {
$previousLine = $line;
$feedsDao[] = $line;
$feedsDao = array(); //Prepare for next category
}
$previousLine = $line;
$feedsDao[] = $line;
}
// add the last category
if ($previousLine != null) {
$cat = new Category (
$previousLine['c_name'],
$previousLine['c_color'],
HelperFeed::daoToFeed ($feedsDao)
);
$cat->_id ($previousLine['c_id']);
$list[] = $cat;
}
return $list;

Loading…
Cancel
Save