Let's say we were to create a new folder called applications/*/
plugins, put stuff in there and modify web2py to handle the code in
there in some special way. That the current mechanism in admin for
packing, unpacking, deleting would still work. It is because plugins
in a subfolder are simply more specialized plugins than the ones I am
defining. Let me play with with words:

- What I call plugins should instead be called
random_applications_subsets

- What you call plugins are special types of
random_applications_subset that are somewhat isolated.

What you call plugins does not exist yet. It needs to be created. I am
taking a top-down approach instead of bottom-up approach because I am
afraid of building something that turn out to be too restrictive. When
we have in trunk is a convention. We can decide tomorrow not to follow
it any more and remove the page in admin and no application would
break. This is the beginning of a story that is yet to be written.
Before we write it we need to learn what others have done (Drupal for
example).

I do not want to create a single plugin system (I do not believe in a
one size fits all solution here) but I want to give people like you
the ability to create their own plugin system. Some plugins may be
specialized for a particular web2py CMS or other type of specialized
type of app.

Now I am going to redefine:

plugin_0 := random_application_subset
plugin_2 := what Mr Freeze calls a plugin
plugin_3 := what Alvaro calls a plugin
plugin_N := what Yarko calls a plugin

where _i indicates a higher level of abstraction/encapsulation of
functionality.

plugin_0 is simple. It is done. It is just a
random_application_subset. The thing being plugged (plug) is a bunch
of files. The thing it plugs into (socket) is an existing application,
and it may very well break if socket and plug are not compatible.

plugin_{i>0} are more complex because we need to define more clearly
types of plugs and sockets. I am thinking about functions that need to
dynamically create tables, insert records, change layout, add cron
jobs, add internationalization strings, generate js, pieces of the app
that need to communicate client-server, server-server, client-client
(same client or different client).

I think this is going to take time. Drupal provides a limited but
successful approach that can help kick off a more concrete discussion.
--~--~---------~--~----~------------~-------~--~----~
You received this message because you are subscribed to the Google Groups 
"web2py-users" group.
To post to this group, send email to web2py@googlegroups.com
To unsubscribe from this group, send email to 
web2py+unsubscr...@googlegroups.com
For more options, visit this group at 
http://groups.google.com/group/web2py?hl=en
-~----------~----~----~----~------~----~------~--~---

Reply via email to