remove LastBooksByType from the WS
This commit is contained in:
@@ -181,83 +181,6 @@ class AudioBook extends DbMapping
|
||||
return $row['NoticeId'];
|
||||
}
|
||||
|
||||
/**
|
||||
* Retrieve the last books for each type. If 'type' is an empty string, then
|
||||
* it returns all types.
|
||||
*/
|
||||
public static function lastBooksByType($type, $itemsByGroup = 10)
|
||||
{
|
||||
$type_before_escape = $type;
|
||||
$type = Connection::escape(utf8_decode($type));
|
||||
|
||||
if ($type_before_escape == "Jeunesse") {
|
||||
if ($itemsByGroup < 20)
|
||||
$itemsByGroup = 20;
|
||||
|
||||
$sqlQuery = " SELECT top " . $itemsByGroup . " Notices.NoticeId AS id, ";
|
||||
$sqlQuery .= " Notices.title AS title, ";
|
||||
$sqlQuery .= " Notices.author AS author, ";
|
||||
$sqlQuery .= " LTRIM(RTRIM(Notices.NoticeNr)) AS code, ";
|
||||
$sqlQuery .= " 'Jeunesse' AS type, 0 as score, ";
|
||||
$sqlQuery .= " convert(varchar, CreationDate, 102) as date ";
|
||||
$sqlQuery .= " FROM Notices ";
|
||||
$sqlQuery .= " WHERE Notices.NoticeNr NOT LIKE '%~%' ";
|
||||
$sqlQuery .= " AND Notices.NoticeNr NOT LIKE '%V%' ";
|
||||
$sqlQuery .= " AND Notices.NoticeNr NOT LIKE '%T%' ";
|
||||
$sqlQuery .= " AND Notices.MediaType1Code = 'CDD' ";
|
||||
$sqlQuery .= " AND Notices.Visible = 1 ";
|
||||
$sqlQuery .= " AND Notices.AgeCode in ('E', 'J') ";
|
||||
$sqlQuery .= " ORDER BY date DESC;";
|
||||
|
||||
} else {
|
||||
|
||||
$sqlQuery = "WITH cte AS ( ";
|
||||
$sqlQuery .= " SELECT Notices.NoticeId AS id, ";
|
||||
$sqlQuery .= " Notices.title AS title, ";
|
||||
$sqlQuery .= " Notices.author AS author, ";
|
||||
$sqlQuery .= " LTRIM(RTRIM(Notices.NoticeNr)) AS code, ";
|
||||
$sqlQuery .= " Codes.TextFre AS type, ";
|
||||
$sqlQuery .= " convert(varchar, CreationDate, 102) as date, ";
|
||||
$sqlQuery .= " rank() OVER ( ";
|
||||
$sqlQuery .= " PARTITION BY Codes.TextFre ";
|
||||
$sqlQuery .= " ORDER BY cast(LTRIM(RTRIM(Notices.NoticeNr)) as int) DESC ";
|
||||
$sqlQuery .= " ) AS num ";
|
||||
$sqlQuery .= " FROM Notices ";
|
||||
|
||||
$sqlQuery .= " INNER JOIN Codes ";
|
||||
$sqlQuery .= " ON Notices.MediaType2Code = Codes.Code ";
|
||||
$sqlQuery .= " WHERE Codes.Type = 2 ";
|
||||
if (strlen($type))
|
||||
$sqlQuery .= " AND Codes.TextFre = " . $type . " ";
|
||||
|
||||
$sqlQuery .= " AND Notices.NoticeNr NOT LIKE '%~%' ";
|
||||
$sqlQuery .= " AND Notices.NoticeNr NOT LIKE '%V%' ";
|
||||
$sqlQuery .= " AND Notices.NoticeNr NOT LIKE '%T%' ";
|
||||
$sqlQuery .= " AND Notices.MediaType1Code = 'CDD' ";
|
||||
$sqlQuery .= " AND Notices.Visible = 1 ";
|
||||
|
||||
$sqlQuery .= " GROUP BY Codes.TextFre, ";
|
||||
$sqlQuery .= " Notices.NoticeNr, ";
|
||||
$sqlQuery .= " Notices.NoticeId, ";
|
||||
$sqlQuery .= " Notices.title, ";
|
||||
$sqlQuery .= " Notices.author, ";
|
||||
$sqlQuery .= " Notices.CreationDate ";
|
||||
|
||||
$sqlQuery .= ") ";
|
||||
$sqlQuery .= "SELECT id, title, author, code, type, 0 as score, date ";
|
||||
$sqlQuery .= "FROM cte ";
|
||||
$sqlQuery .= "WHERE num <= " . intval($itemsByGroup) . " ";
|
||||
$sqlQuery .= "ORDER BY date DESC;";
|
||||
}
|
||||
|
||||
$resultSet = Connection::execute($sqlQuery);
|
||||
$result = array();
|
||||
while (($row = $resultSet->next()))
|
||||
$result[] = new AudioBook($row, TRUE);
|
||||
|
||||
return $result;
|
||||
}
|
||||
|
||||
/**
|
||||
* Retrieve the list of all readers (volunteers) having read at least 4 books (2 notices per book).
|
||||
* Returns an associative array containing $lastname and $firstname
|
||||
@@ -267,7 +190,7 @@ class AudioBook extends DbMapping
|
||||
$sql = "SELECT
|
||||
count(*),
|
||||
ContentShortPart AS name
|
||||
FROM noticefields
|
||||
FROM NoticeFields
|
||||
WHERE Tag=901
|
||||
GROUP BY ContentShortPart
|
||||
HAVING count(*) > 6
|
||||
|
||||
Reference in New Issue
Block a user