MyBB Community Forums

Full Version: Plugin Maker, build plugins with ease
You're currently viewing a stripped down version of our content. View the full version with proper formatting.
Pages: 1 2
So some days ago I started to write down a new utility called Plugin Maker which will help both new and experienced developers to build their own plugins with a intuitive interface, speeding up the process.

Plugin Maker is a stunning new web application to help you building up MyBB plugins.

How does it work?

Plugin Maker will guide you into building the main structure of MyBB plugins. You will have full control over your custom plugin: you will decide whatever you want to add or remove. These are some things Plugin Maker will let you add to your plugins:
  • PluginLibrary support;
  • settings;
  • templates;
  • stylesheets;
  • core edits;
  • template edits;
  • ACP modules;
  • language files;
  • other functions;
  • and much more!
Also, it will have a solid database of MyBB hooks, ordered by board's components (homepage, posts, threads, forums, etc.) so you can easily decide where to inject your custom code.

Examples, please?

Imagine you want to create, let's say, a "latest threads" box in your Homepage. You might start creating a new file in DreamWeaver and start writing down the entire plugin yourself. Pretty boring, as you have to copy and paste a lot of things from other plugins or - even worse - you have to write down from scratch.

Or you might open Plugin Maker, add two basic settings, add some templates, select the index_end hook from the Homepage hooks list and write down the function which returns the latest threads. You finally click a button and you download your plugin. What fun! This is exactly what Plugin Maker does: speeding up the development process by automatically handling all the boring structuring part and building up the plugin with an easy to understand interface.

This is for beginners...

Not at all. Plugin Maker will be designed both for beginners with few coding skills to help them moving their first steps in MyBB's world, and for advanced coders with solid PHP and MyBB knowledges helping them speeding up at least the initial setup of the plugin structure. I was kinda bored having to copy&paste language files, templates, etc. and edit them for new plugins, thus why I've made this helpful wizard for me and for everybody else who wants to code quickly and having fun while you code. You still think this app is for n00bs? Don't use it and keep on developing the way you're used.

It's Open Source but currently it doesn't really work. The project is in early development stages and you can try it on the Test Board doing whatever you'd like to do, it's a safe environment. Here's what I got so far:

  1. a simple and fast filecache which handles settings and internal variables without using a MySQL database;
  2. a simple apply-or-revert system to write and revert code written on plugins, which is done by "steps". Every step has its own unique number/string which can be easily reverted with a single line of code;
  3. the saved plugin list;

I'm also open to collaboration, contact me if interested into developing it with me. Thank you!
You are always thinking . . . and thinking of others as well.

Nice work, I had thought to create something like this but still don't feel that I am ready yet. So good on you for getting something started.

I tried the test site, and see what you are doing and have a couple of questions:

Name spacing looks to be required. Is there no way to avoid it (which will bump PHP requirement up to 5.3)?

Is PluginLibrary optional or must you use it? (or is it too early too say?)

Finally, would you think of including some optional libraries to use later? I ask because I have been working on some helper classes for MyBB plugins that might fit into the scheme of things.

In any event, nice work as always! Smile
Thank you WildCard! Smile

Namespacing should not be required (if empty, we just strtolower(str_replace(" ", "", $name)) the plugin's name).

PluginLibrary will be optional. Developers might want it or not, but PM will feature PL support if specified.

As an early idea, I was thinking about adding external functions to a class if specified. The goal is to have a plugin manager with the highest number of option possible. For example, you will be able to add plain functions to your plugin editing with CodeMirror or similar client-side parsers.
Okay I will gather my thoughts and either PM you or fork and pull something on GitHub when there is time.
(2013-09-23, 05:28 PM)Shade Wrote: [ -> ]Or you might open Plugin Maker, add two basic settings, add some templates, select the index_end hook from the Homepage hooks list and write down the function which returns the latest threads.

This sounds like a fancy version of what I did with my Hooks/Patches plugins. The central step is identical, you still have to write the index_end hook code. Which is usually the hardest part of writing a plugin. My plugins don't offer any fancy forms for plugins or settings, but you can create those in the ACP already. Of course, that doesn't make it a portable plugin to share with other people. (Hooks/Patches can be exported, in case of Hooks even as a plugin file, but if you wanted settings or templates to go with in the plugin file, you'd have to edit them in yourself).

Good luck with it.
That looks like a very nice concept mate, will love to see it Big Grin
This looks like a great concept that could save many developers a lot of time. Looking forward to watching how it develops! Big Grin
Looks great imo. Can't wait to try the full version out.
Woah it has been so long that I've been away from this. Aaaand it looks so sweet now.

[Image: Schermata%2004-2456760%20alle%2019.04.40.png]
An amazing job i want to test it, and thanks to share it, maybe now i can understand how plugin library works more easy xD.

I received this error when i create template:

New plugin
We lost you in the clouds
Sorry, but you seem to be landed on a page which is not ready yet or what you tried to find is not in this application. You may like to report this error to @Shade and get a response back in days. Thank you.
Pages: 1 2