Add new "joinown" and "entryprops" parameters to
{serendipity_fetchPrintEntries}
			
			
This commit is contained in:
		| @@ -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> | ||||
|   | ||||
		Reference in New Issue
	
	Block a user