dr:zeitgeist
Differences
This shows you the differences between two versions of the page.
Both sides previous revisionPrevious revisionNext revision | Previous revision | ||
dr:zeitgeist [2005/11/30 07:17] – changes to search fgm | dr:zeitgeist [2020/11/23 17:23] (current) – external edit 127.0.0.1 | ||
---|---|---|---|
Line 4: | Line 4: | ||
Ensuing discussion on [[irc:// | Ensuing discussion on [[irc:// | ||
+ | |||
* the idea was interesting | * the idea was interesting | ||
* the implementation was too fragile to be used as such | * the implementation was too fragile to be used as such | ||
- | I looked deeper into this and I think that making this feature more resilient would involve changing watchdog. The idea is therefore as follows | + | I looked deeper into this and I think that making this feature more resilient would involve changing watchdog. The idea is therefore as documented below. |
+ | As this involves changes to core features, I hope developers with a deeper understanding of core than me will comment on this/edit this page to improve it before I write code involving these core changes. The wiki structure allows this more easily than comments on the patch page. | ||
- | ===== Changes to watchdog ===== | ||
- | * add a new column | + | ===== Problems with the current patch ===== |
- | | + | |
+ | If you look at the patch, what it basically does is this, along with the definition of a new block in search_block: | ||
+ | |||
+ | <code php> | ||
+ | function _search_recent() | ||
+ | { | ||
+ | $sq = " | ||
+ | SELECT | ||
+ | distinct message query | ||
+ | FROM | ||
+ | {watchdog} | ||
+ | WHERE | ||
+ | (type = ' | ||
+ | ORDER BY timestamp DESC | ||
+ | | ||
+ | $q = db_query_range($sq, | ||
+ | $ar = array(); | ||
+ | while ($o = db_fetch_object($q)) | ||
+ | { | ||
+ | $term = substr(substr($o-> | ||
+ | $ar[] = l($term, ' | ||
+ | } | ||
+ | $output = theme_item_list($ar, NULL); | ||
+ | | ||
+ | return $output ; | ||
+ | } | ||
+ | </code> | ||
+ | |||
+ | You'll notice the " | ||
+ | |||
+ | Also, processing is done in PHP whereas | ||
+ | |||
+ | ===== Changes to watchdog ===== | ||
- | <php> | + | * Implemented in v2 of the patch: |
+ | * add a new column (say, " | ||
+ | * modify bootstrap.inc/ | ||
+ | <code php> | ||
function watchdog( | function watchdog( | ||
$type, | $type, | ||
Line 22: | Line 58: | ||
$severity = WATCHDOG_NOTICE, | $severity = WATCHDOG_NOTICE, | ||
$link = NULL, | $link = NULL, | ||
- | $data = NULL) {</php> | + | $data = NULL) { |
+ | </code> | ||
The new parameter could be used by modules aware of this new feature to store content of their choice in the watchdog along with the standard parameters, while retaining compatibility with existing call through the use of a default NULL. | The new parameter could be used by modules aware of this new feature to store content of their choice in the watchdog along with the standard parameters, while retaining compatibility with existing call through the use of a default NULL. | ||
Line 33: | Line 70: | ||
In the current 4.6.x core, only watchdog module queries the watchdog table, and does so with queries like: | In the current 4.6.x core, only watchdog module queries the watchdog table, and does so with queries like: | ||
+ | |||
<code sql> | <code sql> | ||
+ | |||
which means no outside modules should be impacted. These queries could be improved to avoid querying this additional column if it is not needed. | which means no outside modules should be impacted. These queries could be improved to avoid querying this additional column if it is not needed. | ||
===== Changes to search ===== | ===== Changes to search ===== | ||
+ | * Implemented in v2 of the patch: | ||
+ | * searches beyond " | ||
+ | * with this information available, recent searches could be displayed by unserializing these data instead of processing the HTML-formatted contents of the current columns, allowing full i18n compatibility. | ||
* having this new column available would allow search to store more usable information in the watchdog, typically by storing a serialized version of the query stats: | * having this new column available would allow search to store more usable information in the watchdog, typically by storing a serialized version of the query stats: | ||
* term searched | * term searched | ||
* result count | * result count | ||
* something else ? | * something else ? | ||
- | * with this information available, recent searches could be displayed by unserializing these data instead of processing the HTML-formatted contents of the current columns, allowing full i18n compatibility. | ||
* as suggested by Boris Mann, having this more resilient content would allow for this feature to serve better, possibly by creating a RSS feed on recent searches | * as suggested by Boris Mann, having this more resilient content would allow for this feature to serve better, possibly by creating a RSS feed on recent searches | ||
- | * the current display, limited to a fixed count of recent searches, could be improved | + | * the current display, limited to a fixed count of recent searches, could be improved |
- | * searches beyond " | + | |
+ | ===== TODO ===== | ||
+ | |||
+ | 2005-11-29 8:33 chx says: | ||
+ | |||
+ | If you want to win the developers' | ||
+ | 2005-1129 20:33 After further discussion, it looks like the idea is to log the debug_backtrace() information in the additional field. |
dr/zeitgeist.1133335060.txt.gz · Last modified: 2020/11/23 17:23 (external edit)