Yep. Last night I made version 0.8 of TDO Mini Forms (a WordPress Plugin) available (download it now from WordPress.org). It contains a major new feature, the ability to upload files. I’ve promised this a while, so I’m glad to finally be able to deliver it. I also sneaked into two other new features; tagging and some category support.
The category support currently only allows a user to select one category not several. It’s a start. Allowing a user to select more than one requires creating my own internal version of wp_dropdown_categories(). This way I was able to release “something”.
I hope the new upload feature does what people need. If it doesn’t, please tell me. Uploading works like this. BTW the storage area should be somewhere not public, TDO Mini Forms will control who can download file. This is to prevent your site from becoming the next illegal file-sharing site without you know.
A user must first upload files before submission. These files are stored in a temporary directory, normally under either their username or IP (if not logged in). If they are not moved in an hour, they will be deleted. Once the files are uploaded, the user can then submit his post where they get moved out of the temporary directory and into another directory for that post. If the post is deleted, so are the files. There is little or no management required to handle uploads. Files associated with a post that is draft (not approved) can only be downloaded by the admins (so they can preview the content). Once the post is published (approved) the files can be downloaded by everyone. The Upload Files widget also gives a number of options. Files can be automatically added as links or images to the post content. They can also optionally be added as a WordPress attachment to the post or the link can be added as a Custom Field. I also added an option to allow a command to be run, once the file is claimed for a post. You could use this to run a virus scanner automatically for example. I was using the unix command “stat” to get more detailed info about the file. The command output gets added to the admin email automatically. You can see it in action on the demo site!
I plan to take a little break from TDO Mini Forms. I have another project I need to get back to (Reboot!) and right now with our four month old baby and our demanding three year old toddler, it’s the best I can do to support one personal project at a time. However, if there are bugs or other fixes required, I will release new versions as appropriate. Of course, if you feel like donating you can help encouraging me back (but do note, I’m doing this plugin for free anyway).
What’s next for TDO Mini Forms? More widgets I think. Improvements for existing widgets like quicktags for post content and selecting multiple categories. New widgets like URL submission and Custom Fields. Any and all ideas are welcome (just drop a comment or head over to the forum).
This is my current TODO list.
- Allow moderators append a message to the approved/rejected notification
- Allow admins to modify messages to user for…
- Submitted post awaiting moderation
- Submitted post automatically published
- Banned IP, Banned user and other insufficient privileges messages
- Multiple copies of the same widget – not applicable to all widgets but a generic widget, say like a descriptive text, this would be very useful.
- Widget Manager Menu
- Info about loaded widgets
- Disable loaded widgets?
- Add/select custom styles for form
- Multiple form support – some day, in the far future…
- Edit post support – actually quite possible though how to support unregistered users?
- AJAX support – maybe not
- Spam Protection – integration with Aksimet? This will only cover post-content though. Is spam a problem yet?
- Force Preview – user must preview first before submission
- Allow newly submitted posts be set to “Post ready for review” (WordPress 2.3 feature) or alternatively also include “Post ready for review” in the moderation screens too.
- A “manage download” menu (like manage users and IPs)
- Some general improvements on widgets including documentation on creating your own.
Anything in particular you’d like to see? Ideas? feedback?