[support] optional module dependency, hooks was: tracking module suggestions
Ivan Sergio Borgonovo
mail at webthatworks.it
Tue Dec 15 14:13:39 UTC 2009
On Fri, 11 Dec 2009 00:20:02 +0100
Ivan Sergio Borgonovo <mail at webthatworks.it> wrote:
> On Thu, 10 Dec 2009 23:13:44 +0200
> Fred Jones <fredthejonester at gmail.com> wrote:
>
> > >> I'd like to track access to pages with certain parameters in
> > >> the urls.
> > >>
> > >
> > > Google Analytics?
> >
> > http://piwik.org/ :)
>
> I'm already using Google Analytics (and related drupal module).
> I'll give a look to piwik, since I'd prefer not to share my data
> with Google (there should be a piwik module too).
>
> But it seems it doesn't suit:
> - I'd like to use it for affiliates
> - I'd like to use it to track advertisement campaign and offer an
> interface to build them
> - I'd like to avoid js
I decided to write something of my own.
The idea was I want to track hit history that took to an event.
I don't want to track all hits, but just selected ones containing
a parameter in the url.
I'd like to build up a sort of API.
Several modules *may* trigger "events" (events looks like "actions"
in D6 somehow).
Modules *may* provide advanced event logging (extra data).
Part of the problems are in these *may*.
That may imply an abuse of "function_exists".
Another problem is turning on and off extra data logging.
Currently I have a function that "relate" hit history to events.
function tracky_event() {
$args = function_get_args();
$event = array_shift($args);
// save and return eventid
// ...
$args = array_unshift($args, $eventid);
module_invoke_all('tracky_'.$event, $args);
}
Now I can build for each module/event an additional module that will
log extra data and have install/uninstall function for tables that
will store extra data.
Now I could define the extra data logging modules in other modules
so that table creation and extra logging becomes optional.
I got this working but:
- I didn't get rid of the function_exists problem if I really want
to make my modules optionally dependent on the general tracking
module.
- naming of hooks and modules is going to be a pain
- having finer control on what events I want to log with more
details a) requires a module for each module/hook b) hand made
install/uninstall function for each event I'd like to track
Is there something I miss that drupal offers that could make all this
cleaner?
--
Ivan Sergio Borgonovo
http://www.webthatworks.it
More information about the support
mailing list