[geeklog-devtalk] geeklog-devel digest, Vol 1 #208 - 2 msgs
geeklog-devtalk-admin at lists.geeklog.net
geeklog-devtalk-admin at lists.geeklog.net
Mon Oct 20 13:00:10 EDT 2003
Send geeklog-devel mailing list submissions to
geeklog-devel at lists.geeklog.net
To subscribe or unsubscribe via the World Wide Web, visit
http://lists.geeklog.net/listinfo/geeklog-devel
or, via email, send a message with subject or body 'help' to
geeklog-devel-request at lists.geeklog.net
You can reach the person managing the list at
geeklog-devel-admin at lists.geeklog.net
When replying, please edit your Subject line so it is more specific
than "Re: Contents of geeklog-devel digest..."
Today's Topics:
1. Re: Geeklog 2 Module API (Vincent Furia)
2. Re: Re: Geeklog 2 Module API (Tom Willett)
--__--__--
Message: 1
Date: Mon, 20 Oct 2003 02:29:41 -0400
From: Vincent Furia <vmf at abtech.org>
To: Tony Bibbs <tony at tonybibbs.com>
Cc: Geeklog Development <geeklog-devel at lists.geeklog.net>
Subject: [geeklog-devel] Re: Geeklog 2 Module API
Reply-To: geeklog-devel at lists.geeklog.net
OK, here is a first go at the module/plugin API to get things started.
I thought that I would start by recommending that plugins "register"
themselves during install with geeklog, including whether they use the
different plugin APIs (moderation, comments, ratings, search, etc) so as
to eliminate the "doesXXXX" type functions that may be needed otherwise
(should also make things more efficient when calling functions for
multiple plugins).
In any case, please make lots of recommendations. This doesn't really
add much to what a plugin can do in GL 1.3.x, any new ideas would be
very much appreciated.
-Vinny
<?php
interface glPlugin {
/* installation functions */
function install(); /* install the plugin */
function uninstall(); /* uninstall the plugin */
function upgrade(); /* upgrade the plugin from a
previous version */
function getVersion(); /* return plugin name and version
(author(s)?, website?)*/
/* user modifications */
function onNewUser(); /* process new user */
function onDeleteUser(); /* process user deletion */
/* moderation */
function getSubmissionForm(); /* return the form for plugin
submission */
function getModerationList(); /* return list of items for
moderation */
function onApproveSubmission(); /* process a submission approval */
function onDeleteSubmission(); /* delete a submission */
function onEditSubmission(); /* return the form to edit a
submission */
function getSubmissionCount(); /* return count of current
submissions */
/* search functions */
function getSearchResults(); /* search items for keywords */
function getSearchTypes(); /* return plugin search options */
/* comment functions */
function onCommentAction(); /* plugin action on comment
submit, delete, etc */
function getCommentParent(); /* for display of the parent above
comments */
/* ratings functions */
function onRatingAction(); /* plugin action on ratings
actions (submit rating) */
/* menu/display items */
function getMenuItems(); /* return menu items related to the
plugin */
function getUserMenu(); /* return user menu options */
function getAdminMenu(); /* return admin menu options */
function getControlMenu(); /* return control menu options */
function getCenterBlock(); /* return centerblock */
/* profile */
function getProfileBlock(); /* display plugin block profile
values */
function getEditProfileBlock(); /* return form to edit block
profile values */
function getProfileVar(); /* display plugin variable profile
values */
function getEditProfileVar(); /* return form to edit variable
profile values */
function saveProfileOptions(); /* save plugin profile options */
/* export files (rdf feeds, ical files, etc) */
function getExportNames(); /* return export file names the
plugin uses */
function getExportContent(); /* return export file content */
function getExportCurrent(); /* return if exports are current */
/* other */
function getHeaderCode(); /* return plugin JS or Meta Data */
function getStats(); /* return plugin stats information */
}
--__--__--
Message: 2
From: "Tom Willett" <tomw at pigstye.net>
To: geeklog-devel at lists.geeklog.net
Subject: Re: [geeklog-devel] Re: Geeklog 2 Module API
Date: Mon, 20 Oct 2003 13:25:03 +0000
Reply-To: geeklog-devel at lists.geeklog.net
Vinny,
Looks like a good start! Now some suggestions: Along with the ability to
register APIs at the start, it would be good to be able to register and
unregister them after the plugin is installed. That would allow the plugin
writer to turn on and off such things as stats display from the interface
easier. The plugin could then make the appropriate calls to turn on any
APIs it needed (the default being off) when it installs itself. Thus you
could have:
/* installation functions */
function install(); /* install the plugin */
function uninstall(); /* uninstall the plugin */
function upgrade(); /* upgrade the plugin from a previous
version */
function regAPI(); /* register availability of API */
function unregAPI(); /* unregister availability of API */
function getVersion(); /* return plugin name and version (author
(s)?, website?)*/
instead of:
/* installation functions */
function install(); /* install the plugin */
function uninstall(); /* uninstall the plugin */
function upgrade(); /* upgrade the plugin from a previous
version */
function getVersion(); /* return plugin name and version author
(s)?, website?)*/
Some other thoughts.
What about the ability for a plugin to publish an API for other plugins to
use. A simple example: Blaines use of chatterblock functions in the forum.
This might require you to further virtualize the plugin API so that the
plugin could query the API interface in the same way the program itself does.
What about the ability to replace an internal Geeklog function? This would
allow the plugin to replace/enhance core Geeklog functionality. Of course
this would require Geeklog to moderate, we would not want two plugins trying
to replace the same Geeklog function.
Some of this may already be planned with the new modular structure, if so
ignore me.
I would love to have the time to contribute more than suggestions, but at
the present do not.
--
Tom Willett
tomw at pigstye.net
---------- Original Message -----------
From: Vincent Furia <vmf at abtech.org>
To: Tony Bibbs <tony at tonybibbs.com>
Cc: Geeklog Development <geeklog-devel at lists.geeklog.net>
Sent: Mon, 20 Oct 2003 02:29:41 -0400
Subject: [geeklog-devel] Re: Geeklog 2 Module API
> OK, here is a first go at the module/plugin API to get things
> started. I thought that I would start by recommending that plugins
> "register" themselves during install with geeklog, including whether
> they use the different plugin APIs (moderation, comments, ratings,
> search, etc) so as to eliminate the "doesXXXX" type functions that
> may be needed otherwise
> (should also make things more efficient when calling functions for
> multiple plugins).
>
> In any case, please make lots of recommendations. This doesn't
> really add much to what a plugin can do in GL 1.3.x, any new ideas
> would be very much appreciated.
>
> -Vinny
>
> <?php
> interface glPlugin {
> /* installation functions */
> function install(); /* install the plugin */
> function uninstall(); /* uninstall the plugin */
> function upgrade(); /* upgrade the plugin from a
> previous version */
> function getVersion(); /* return plugin name and
> version
> (author(s)?, website?)*/
>
> /* user modifications */
> function onNewUser(); /* process new user */
> function onDeleteUser(); /* process user deletion */
>
> /* moderation */
> function getSubmissionForm(); /* return the form for plugin
> submission */
> function getModerationList(); /* return list of items for
> moderation */
> function onApproveSubmission(); /* process a submission
> approval */ function onDeleteSubmission(); /* delete a
> submission */ function onEditSubmission(); /* return the form
> to edit a submission */ function getSubmissionCount(); /* return
> count of current submissions */
>
> /* search functions */
> function getSearchResults(); /* search items for keywords */
> function getSearchTypes(); /* return plugin search
> options */
>
> /* comment functions */
> function onCommentAction(); /* plugin action on comment
> submit, delete, etc */
> function getCommentParent(); /* for display of the parent
> above comments */
>
> /* ratings functions */
> function onRatingAction(); /* plugin action on ratings
> actions (submit rating) */
>
> /* menu/display items */
> function getMenuItems(); /* return menu items related to
> the plugin */ function getUserMenu(); /* return user
> menu options */ function getAdminMenu(); /* return admin
> menu options */ function getControlMenu(); /* return
> control menu options */ function getCenterBlock(); /*
> return centerblock */
>
> /* profile */
> function getProfileBlock(); /* display plugin block
> profile values */ function getEditProfileBlock(); /* return
> form to edit block profile values */ function getProfileVar();
> /* display plugin variable profile values */ function
> getEditProfileVar(); /* return form to edit variable profile
> values */ function saveProfileOptions(); /* save plugin profile
> options */
>
> /* export files (rdf feeds, ical files, etc) */
> function getExportNames(); /* return export file names
> the plugin uses */ function getExportContent(); /* return
> export file content */ function getExportCurrent(); /* return
> if exports are current */
>
> /* other */
> function getHeaderCode(); /* return plugin JS or Meta
> Data */ function getStats(); /* return plugin stats
> information */ }
>
> _______________________________________________
> geeklog-devel mailing list
> geeklog-devel at lists.geeklog.net
> http://lists.geeklog.net/listinfo/geeklog-devel
------- End of Original Message -------
--__--__--
_______________________________________________
geeklog-devel mailing list
geeklog-devel at lists.geeklog.net
http://lists.geeklog.net/listinfo/geeklog-devel
End of geeklog-devel Digest
More information about the geeklog-devtalk
mailing list