[php-blog-cvs] r2275 - in trunk: docs include templates/default/admin
A reliable, secure & extensible PHP blog | Not mainstream since 2002
Brought to you by:
garvinhicking,
jhermanns
From: garvinhicking at B. <gar...@ma...> - 2008-05-15 11:40:37
|
Author: garvinhicking Date: 2008-05-15 13:40:32 +0200 (Thu, 15 May 2008) New Revision: 2275 Modified: trunk/docs/NEWS trunk/include/functions_entries.inc.php trunk/templates/default/admin/entries.tpl Log: Added mor event hook SQL query parts Modified: trunk/docs/NEWS =================================================================== --- trunk/docs/NEWS 2008-05-13 13:45:05 UTC (rev 2274) +++ trunk/docs/NEWS 2008-05-15 11:40:32 UTC (rev 2275) @@ -3,6 +3,14 @@ Version 1.4 () ------------------------------------------------------------------------ + * Added possibility to access more SQL query parts of fetchEntries + through plugin API. New indexes of $eventData: + - 'single_group', 'single_having', 'single_orderby' for + serendipity_fetchEntry (through hook 'frontend_fetchentry') + - 'group', 'having' for + serendipity_fetchEntries (through hook 'frontend_fetchentries') + (judebert&garvinhicking) + * Added RewriteRule to ensure that admin panel can be called, thanks to rich4647 from the forums. Modified: trunk/include/functions_entries.inc.php =================================================================== --- trunk/include/functions_entries.inc.php 2008-05-13 13:45:05 UTC (rev 2274) +++ trunk/include/functions_entries.inc.php 2008-05-15 11:40:32 UTC (rev 2275) @@ -339,23 +339,23 @@ } } - serendipity_plugin_api::hook_event('frontend_fetchentries', $cond, array('noCache' => $noCache, 'noSticky' => $noSticky, 'source' => 'entries')); - if ($serendipity['dbType'] == 'postgres' || $serendipity['dbType'] == 'pdo-postgres') { - $group = ''; - $distinct = 'DISTINCT'; + $cond['group'] = ''; + $cond['distinct'] = 'DISTINCT'; } else { - $group = 'GROUP BY e.id'; - $distinct = ''; + $cond['group'] = 'GROUP BY e.id'; + $cond['distinct'] = ''; } if (!is_null($group_by)) { - $group = $group_by; + $cond['group'] = $group_by; } + serendipity_plugin_api::hook_event('frontend_fetchentries', $cond, array('noCache' => $noCache, 'noSticky' => $noSticky, 'source' => 'entries')); + if (is_null($select_key)) { - $select_key = "$distinct + $select_key = "{$cond['distinct']} {$cond['addkey']} e.id, @@ -406,7 +406,8 @@ $query = "SELECT $select_key $body {$serendipity['fullCountQuery']} - $group + {$cond['group']} + {$cond['having']} ORDER BY {$cond['orderby']} $limit"; @@ -537,6 +538,10 @@ WHERE e.$key " . ($key == 'id' ? '=' : 'LIKE') . " '" . serendipity_db_escape_string($val) . "' {$cond['and']} + + {$cond['single_group']} + {$cond['single_having']} + {$cond['single_orderby']} LIMIT 1"; $ret =& serendipity_db_query($querystring, true, 'assoc'); @@ -736,20 +741,20 @@ $cond = array(); if ($serendipity['dbType'] == 'postgres' || $serendipity['dbType'] == 'pdo-postgres') { - $group = ''; - $distinct = 'DISTINCT'; + $cond['group'] = ''; + $cond['distinct'] = 'DISTINCT'; $cond['find_part'] = "(title ILIKE '%$term%' OR body ILIKE '%$term%' OR extended ILIKE '%$term%')"; } elseif ($serendipity['dbType'] == 'sqlite' || $serendipity['dbType'] == 'sqlite3') { // Very extensive SQLite search. There currently seems no other way to perform fulltext search in SQLite // But it's better than no search at all :-D - $group = 'GROUP BY e.id'; - $distinct = ''; - $term = serendipity_mb('strtolower', $term); + $cond['group'] = 'GROUP BY e.id'; + $cond['distinct'] = ''; + $term = serendipity_mb('strtolower', $term); $cond['find_part'] = "(lower(title) LIKE '%$term%' OR lower(body) LIKE '%$term%' OR lower(extended) LIKE '%$term%')"; } else { - $group = 'GROUP BY e.id'; - $distinct = ''; - $term = str_replace('"', '"', $term); + $cond['group'] = 'GROUP BY e.id'; + $cond['distinct'] = ''; + $term = str_replace('"', '"', $term); if (preg_match('@["\+\-\*~<>\(\)]+@', $term)) { $cond['find_part'] = "MATCH(title,body,extended) AGAINST('$term' IN BOOLEAN MODE)"; } else { @@ -773,7 +778,7 @@ ({$cond['find_part']}) {$cond['and']}"; - $querystring = "SELECT $distinct + $querystring = "SELECT {$cond['distinct']} e.id, e.authorid, a.realname AS author, @@ -788,7 +793,8 @@ e.trackbacks, e.exflag {$serendipity['fullCountQuery']} - $group + {$cond['group']} + {$cond['having']} ORDER BY timestamp DESC $limit"; Modified: trunk/templates/default/admin/entries.tpl =================================================================== --- trunk/templates/default/admin/entries.tpl 2008-05-13 13:45:05 UTC (rev 2274) +++ trunk/templates/default/admin/entries.tpl 2008-05-15 11:40:32 UTC (rev 2275) @@ -6,7 +6,7 @@ {*** POSSIBLE ERROR MESSAGES END ***} {*** MAIN ENTRY FORM START ***} -<form {$entry_vars.entry.entry_form} action="{$entry_vars.targetURL}" method="post" id="serendipityEntry" style="margin-top: 0px; margin-bottom: 0px; padding-top: 0px; padding-bottom: 0px"> +<form {$entry_vars.entry.entry_form} action="{$entry_vars.targetURL}" method="post" name="serendipityEntry" id="serendipityEntry" style="margin-top: 0px; margin-bottom: 0px; padding-top: 0px; padding-bottom: 0px"> {$entry_vars.hidden} <table class="serendipityEntryEdit" border="0" width="100%"> |