Add new "joinown" and "entryprops" parameters to
{serendipity_fetchPrintEntries}
This commit is contained in:
parent
bb25db8d4c
commit
83205fb019
@ -3,6 +3,11 @@
|
||||
Version 1.3 ()
|
||||
------------------------------------------------------------------------
|
||||
|
||||
* Added new parameter "joinown" and "entryprops" to {serendipity_
|
||||
fetchPrintEntries} smarty function, to be able to fetch entries
|
||||
according to their entryprops or other custom SQL.
|
||||
(garvinhicking)
|
||||
|
||||
* Added LifeType importer (garvinhicking)
|
||||
|
||||
* Updated Textile library to 2.0, by Lars Strojny
|
||||
|
@ -206,9 +206,10 @@ function &serendipity_fetchEntryCategories($entryid) {
|
||||
* @param string If set to "array", the array of entries will be returned. "flat-array" will only return the articles without their entryproperties. "single" will only return a 1-dimensional array. "query" will only return the used SQL.
|
||||
* @param bool Should an SQL-join be made to the AUTHORS DB table?
|
||||
* @param bool Should an SQL-join be made to the CATEGORIES DB table?
|
||||
* @param string SQL-Parts to add to JOIN
|
||||
* @return array Holds the super-array of all entries with all additional information
|
||||
*/
|
||||
function &serendipity_fetchEntries($range = null, $full = true, $limit = '', $fetchDrafts = false, $modified_since = false, $orderby = 'timestamp DESC', $filter_sql = '', $noCache = false, $noSticky = false, $select_key = null, $group_by = null, $returncode = 'array', $joinauthors = true, $joincategories = true) {
|
||||
function &serendipity_fetchEntries($range = null, $full = true, $limit = '', $fetchDrafts = false, $modified_since = false, $orderby = 'timestamp DESC', $filter_sql = '', $noCache = false, $noSticky = false, $select_key = null, $group_by = null, $returncode = 'array', $joinauthors = true, $joincategories = true, $joinown = null) {
|
||||
global $serendipity;
|
||||
|
||||
$cond = array();
|
||||
@ -393,6 +394,10 @@ function &serendipity_fetchEntries($range = null, $full = true, $limit = '', $fe
|
||||
LEFT JOIN {$serendipity['dbPrefix']}category c
|
||||
ON ec.categoryid = c.categoryid";
|
||||
}
|
||||
|
||||
if ($joinown) {
|
||||
$cond['joins'] .= $joinown;
|
||||
}
|
||||
|
||||
$serendipity['fullCountQuery'] .="
|
||||
{$cond['joins']}
|
||||
@ -813,7 +818,14 @@ function serendipity_printEntryFooter($suffix = '.html', $totalEntries = null) {
|
||||
if ($totalEntries === null) {
|
||||
$totalEntries = serendipity_getTotalEntries();
|
||||
}
|
||||
$totalPages = ceil($totalEntries / $serendipity['fetchLimit']);
|
||||
|
||||
$limits = explode(',', $serendipity['fetchLimit']);
|
||||
if (!empty($limits[1])) {
|
||||
$limit = (int)$limits[1];
|
||||
} else {
|
||||
$limit = (int)$limits[0];
|
||||
}
|
||||
$totalPages = ceil($totalEntries / $limit);
|
||||
|
||||
if (!isset($serendipity['GET']['page'])) {
|
||||
$serendipity['GET']['page'] = 1;
|
||||
|
@ -146,6 +146,8 @@ function serendipity_ifRemember($name, $value, $isDefault = false, $att = 'check
|
||||
* returncode (string) If set to "array", the array of entries will be returned. "flat-array" will only return the articles without their entryproperties. "single" will only return a 1-dimensional array. "query" will only return the used SQL.
|
||||
* joinauthors (bool) Should an SQL-join be made to the AUTHORS DB table?
|
||||
* joincategories (bool) Should an SQL-join be made to the CATEGORIES DB table?
|
||||
* joinown (string) SQL-Parts to add to the "JOIN" query
|
||||
* entryprops (string) Condition list of commaseparated entryproperties that an entry must have to be displayed (example: "ep_CustomField='customVal',ep_CustomField2='customVal2'")
|
||||
*
|
||||
* [PRINTING]
|
||||
* template: (string) Name of the template file to print entries with
|
||||
@ -184,6 +186,18 @@ function serendipity_smarty_fetchPrintEntries($params, &$smarty) {
|
||||
if (empty($params['fetchDrafts'])) {
|
||||
$params['fetchDrafts'] = false;
|
||||
}
|
||||
|
||||
if (!empty($params['entryprops'])) {
|
||||
if (preg_match_all('@(.*)(!)?=[\'"]*(.*)[\'"]*(,|$)@imsU', $params['entryprops'], $m)) {
|
||||
foreach($m[0] AS $idx => $p) {
|
||||
$params['joinown'] .= "\n JOIN {$serendipity['dbPrefix']}entryproperties
|
||||
AS ep" . $idx . "
|
||||
ON (ep" . $idx . ".entryid = e.id AND
|
||||
ep" . $idx . ".property = '" . serendipity_db_escape_string($m[1][$idx]) . "' AND
|
||||
ep" . $idx . ".value " . $m[2][$idx] . "= '" . serendipity_db_escape_string($m[3][$idx]) . "') \n";
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
if (empty($params['modified_since'])) {
|
||||
$params['modified_since'] = false;
|
||||
@ -295,7 +309,8 @@ function serendipity_smarty_fetchPrintEntries($params, &$smarty) {
|
||||
$params['group_by'],
|
||||
$params['returncode'],
|
||||
$params['joinauthors'],
|
||||
$params['joincategories']
|
||||
$params['joincategories'],
|
||||
$params['joinown']
|
||||
);
|
||||
|
||||
// Check whether the returned entries shall be grouped specifically
|
||||
|
@ -363,6 +363,7 @@
|
||||
{/if}
|
||||
|
||||
{$raw_data}
|
||||
|
||||
{serendipity_hookPlugin hook="frontend_footer"}
|
||||
{if $is_embedded != true}
|
||||
</body>
|
||||
|
Loading…
x
Reference in New Issue
Block a user