About my SMF fork (yes, another one)
A while ago I too fell for the idea of forking SMF and creating a software more inline with what I think that SMF should always have been. Wedge had had my interest for a while and I liked the ideas they were having, so I thought I should wait for the first version and see how exactly it would turn out.
Still, I could not get all of my own ideas and wishes out of my head, and now that I see more and more forks popping up as well as this board opening up, I have finally decided to start working on my own. It has no name yet, but I have some ideas that I will not share for now.
I’m aware many, if not most, of these features are already planned in Wedge and other projects, but I feel that makes the whole concept even more interesting, as eventually we will be able to see several unique implementations and clever versions of ideas that were initially very similar.
I ask you to note that this project is currently being done just for fun, and for practice. My main goal is not to provide the next generation forum software, but rather to 1) challange myself 2) give myself something interesting to do 3) show the world what I think SMF could - and should - have been, had things gone differently in the past.
Below is a list of all the things I have currently thrown into the mix. To be honest, I only started to really think this over a couple of days ago so not much thought has gone into it yet. That means this list will
change over time.
Finally, and this is where you come in, I would really like everyone who’s interested in this to let me know if there’s any feature, change or addition you would like to see, or if there’s anything you have to say about what I already have. “Give me the place to stand, and I shall move the earth”, it’s said. But I don’t need the place to stand, I already have that. I just need your help to find me a real friggin’ good way to actually lift that thing.
And also, I have decided to post this anonymously for now, since I’m not 100% sure if this is going to be done. I don’t want to make a false promise. If I decide to create this fork, I will return under my real name. That said, it should be quite easy for people to figure out who I am. Really, in the end, I’m only doing it like this because I can and it makes me feel cool. Honestly.
Enough talking, here’s what I had in mind:Features New features
Old features improved and re-imagined
- Let users know when something new happens, as it happens.
- Can be a new reply to a topic, the user’s post being quoted, a new PM, etc.
- Let admins and users choose exactly what notifications are shown.
- Menu editor
- Allow themes to specify several different menus in the template(s) that can each be edited individually if desired
- Topic tags
- Topic prefixes
- Ghost posters
- Set annoying posters to be ghost posters. A ghost’s posts do not show up for regular members, but a ghost see no difference. This leads to the ghost being effectively ignored by everyone.
- Custom pages (CMS)
- Custom pages work using widgets, see below.
- Introduce WordPress-like “widgets” to the templates.
- A theme can specify an unlimited amount of “widget areas” in each template, which in turn show up in a new area of the ACP.
- The admin can choose between several different widgets to add to each defined area.
- Custom widgets can be easily installed.
- The name of these will likely change. “Modules” comes to my mind, but that will probably not be the final term either.
- Topic solved button
- Ad management
- Likely as a part of widgets, see above.
- Bookmarking of topics
- Some way to be able to leave a topic and return to the page you were currently reading later on.
- Auto-merge double posts
- Give users a custom little icon on their posts and/or profiles to show that they’ve done something special
- As an example, this can be used to show who has donated to the forum without changing their membergroup and badge.
- Limit number of topics/posts per day and per membergroup
- Per-group signature settings
- BBC editor
- “Leaving forum” warning on external links
- Obviously customizable and optional.
- Let admins define a default membergroup for new users, other than “regular member”
- Alert user when caps-lock is on while typing a password
- Auto-purge “moved” topics after a set time.
- Send a PM to the topic author when moving a topic.
- Facebook login, Twitter login, etc, etc
- Sharing of topics
- Automatic sharing of new topics
- Tagging mebers in posts
- Like/dislike buttons
- Replace karma system with like/dislike buttons
- Will have a more unique name
- Activity feeds
- See what the people you follow have been up to.
- May include status updates of different kinds
- See buddies (followers) below
- See who posted in a topic through the message index
- "Drawer" - NEW!
- Yes, a drawer. Figure it out and I'll even give you access to the first alpha version later on.
- That's a joke, it's mine.
- Force users to use their full, real name and auto-ban them if they don't follow the correct format. - NEW!
- That's also a joke. And I don't have a problem with Google+.
- Pretty URLs or something - NEW!
Features that will no longer exist
- Private messages
- PMs will be less like e-mails and more like the messages seen on social networking sites.
- The three different viewing methods that SMF offers will be replaced with a single global view that shows all messages as a conversation. - NEW!
- Sent messages will always be saved. And don't come to me and tell me off for removing part of the users' privacy. - NEW!
- May or may not include a chat system built on top of private messages.
- If there’s not a chat system, PMs will at the very least be integrated to the notifications system so you immediately see when you have new messages.
- PM attachments, dammit, PM attachments! - NEW!
- Public polls.
- Public polls show who voted what. Permission based, of course.
- Proper mobile support (really, this time)
- Focus on modern day smartphones
- Use JQuery Mobile
- Buddies (Followers)
- Rework buddies into “followers” (in lack of a better name) and give the system greater purpose.
- This must be very customisable
- Twitter-like followers, i.e follow freely without the other person’s approval?
- Facebook-like friends, i.e request to befriend another person.
- Facebook-based but both persons do not need to follow each other (i.e, a person asks to follow another. If the other person approves, the first person becomes their follower, but not vice versa)
- Admins choose, users choose, permissions choose, nyan cat chooses - Must be 100% customisable throughout.
- See activity feeds above.
- Allow to specify a reason upon editing a post.
- Only show online groups in the group key on who’s online.
- Default avatars (per membergroup as well)
- Allow avatars to be shown on the board index and/or message index
- Remove or replace the default avatars that come with SMF
- May add Gravatar support
- Cropable avatars
- Allow avatars to be displayed in a larger format on profiles, and smaller in topics (sort of like Facebook!)
- WYSIQYG & BBC
- A version of TinyMCE will be included. May or may not be optional.
- An advanced quick reply option that features BBC and maybe more. - NEW!
- Proper syntax highlighting for [code]-tags using a JQuery plugin.
- reCaptcha, maybe? - NEW!
Related to the theme and user interface
- The Calendar will see its end as a core feature
- MySQL will be the only database system
- This software will focus on modern PHP and MySQL versions, not paying attention to older ones at all.
- The “popular” icons on topics that are supposed to tell the user if a topic is hot or not will be trashed.
About the customisation of the forum Related to hooks and modding in itself
- Brand new default theme
- Curve, Core, Babylon and Classic - forever gone.
- New colour scheme - blue is nice, but not that nice.
- CSS3 and HTML5
- Not paying much attention to older browsers. This is modern. Die, IE6, Just die.
- Re-think the entire UI
- Modernise it and make it more easy to use.
- The ACP will have a brand new UI that doesn't confuse the ****** out of new users - NEW!
- JQuery support
- Improve the look, feel and responsiveness of everything.
- Theme maker (???!)
- If no theme editor is included, the default theme will at least utilise ColorizeIt to allow for some basic customisation out-of-the-box.
- When the forum is installed for the first time, it will offer to give the admin a visual walkthrough of some of the basic features functions.
- Accesible again later on.
- Offer something similar for users as well, if the admin enables it.
- Customisable and extendable, see the customsation section below.
- List views - NEW!
- Different kinds of list views, such as a "grid view", in the member list for example.
- Kill off ugly and duplicate icons and images - NEW!
- Will probably use one of those lovely free icon packs.
- I dislike GIFs.
As we all know, SMF 2.0 features a small yet quite powerful hook system that allows mods to plug in to different parts of SMF without file edits. However, for most mods, and especially larger ones, it is simply impossible to utilise hook to 100%. There’s just too few of them, and a huge part of the system lacks hooks all together. This fork, like most others out there, will change this once and for all, by adding a bunch of useful (and less useful) hooks to many different parts of the software. The goal is to allow most, if not all, possible modifications to be done without editing source files, nor template files (that’s right, templates will have their own hooks too, as well as being rebuilt in some places to work more closely with the source files).
That said, the terminology of the package manger and the world of customisation will see some changes. Gone are modifications, gone are packages - Killed of to give room to what I have decided to call applications
, or apps
The basic idea is to allow applications to be added to the system by simply putting them in a folder called /apps/, or moving them there directly through the package manager (which will also be renamed to avoid confusion). Once there, the system will automatically recognise them and run the hooks they utilise. It may or may not be better to drop this in favour of using the database to store apps, or maybe even use both methods together, I am not sure yet. This is obviously one of the bigger parts of this fork - as with any other - and will take much time and thought to get right. Also, hooks will have their very own, brand new name. Just to confuse you. Yep. Related to Package Manager
The old and outdated package manager will be reworked and redesigned to feature a brand new user interface as well as a better and easier way of handling apps.
Direct editing of files will be largely discouraged, but still possible since some apps will always *have* to carry out edits that are not achievable through hooks. Apps that edit files will likely be referred to by another name.
At some point, there may even be a utility that automatically packages a mod for you. I like cookies.