Lisa,
I understand what you are saying, it’s what the docs say as well, and maybe that is a good way to make a distinction between what each was intended for. But, at least the way I see it and in my experience the reality is a little different.
You say they are quite different. But I am not seeing it. You mention three things in your post:
- “A plugin simply outputs or changes data output in a template”
Yes, but that can be very powerful. I can simply create a template with on Plugin Tag and my plugin can render and entire page, process form input, and through template parameters and all the other Codeigniter and Expression Engine tools I can do almost anything. Is there something here that a module can do that a plugin can’t?
- “A module could have a back-end control panel”
Ok. Plugins don’t have ready access to the EE control panel or installation procedures. This is important if you are distributing an add-on or are working for an outside client. I understand these differences but to me and my needs they are inconsequential.
- “A module could have ... database tables”
So can a plugin. It’s very easy with CI and EE. My current plugin interacts with a second db that I have configured in the EE config file. Works great. The same database that I am using for a separate CI Restful API application running on the same site.
So, the way I see it the only difference seems to be the Control Panel and Installation.
Is that really the only difference? Is there something else that I can’t do (or as easily do) with a plugin compared to a module?