Jump to content

Suggestion for site builder suite - IPS product line overhaul


Recommended Posts

Hi everyone, I have a rather lengthy suggestion that I feel would immensely improve the IPS product line as a powerful tool for building a site.

I would like to say that I love IPS products. Your forum software is hands down the best I've ever used, and in this latest release you've focused a lot on polishing the little details. However, little details aside, I think there the big picture is missing.

Since IPS specializes in community, this is what my suggestion concerns. Community is also what I specialize in. I've been running various large community sites for the better part of a decade now, and I've learned what is required, at a minimum, to create a community site. I've also learned what IPS products can and can't do with regards to creating a community site.

The basics of a community site
1. You need a member system. Forget forums for a second, you need a way for users to register and log in and interact with your site.
2. You need a home page/portal. The overwhelmingly most common thing to make a home page out of, is a news blog. That's it. 99.99% of community sites have news blogs as their home page.
3. You need forums
4. You need a way to create basic content pages (either static content, or user-driven)

The above illustrates that the forums are NOT the "primary app" for the site, they are merely a part of it. The actual focus is on the home page and content, and the forums are there as a place for the community to interact with itself.

The problem
IP.Board is the primary framework for the IPS product line, thus by sheer usability/application logic it makes it difficult to treat the forums as merely an application of a larger framework, rather than the framework itself. The result of this is despite having access to IP.Portal, IP.Blog, and IP.Content, it is actually far more difficult to create a home page for the site than it should be. The only way to properly create a "Home" tab that remains active, is to rename one of the application's tabs, hack it out of it's foreach loop in globalTemplate, and then place it BEFORE the forums tab. Just create the tab in System Settings -> General Configuration -> Website Name, then do something like move the index.php from IP.Content/tools to the root directory you say? Nope, that doesn't work. As soon as you click on the new Home tab, all it does is activate the IP.Content tab rather than keep the "Home" tab activated. This is just one example of a larger problem: you don't have REAL control over your navigation without hacking it apart in the template editor. Even still, IP.Content lacks the ability to create multiple tabs in case you want different databases for different tabs.

Additionally, IP.Portal does absolutely nothing. At the very least you would assume that when you enable IP.Portal, it would by default become the "Home" tab and appear before the forums. It also doesn't do anything other than display a bunch of widgets. Why is there no default news blog setting that at the very least allows you to point to a specific forum to make it your news blog?

The way I've built my site is I've built a common framework that the forums are merely an application of, not the entire framework itself (though admittedly I use ACP as the hub for controlling non-forum settings, simply because it was easier than building a separate control panel). I have full control over the navigation of the site, I have the ability to set up MULTIPLE portals and MULTIPLE content tabs within each portal (unlike IP.Content, which has one content tab dedicated to the entire application. What if I wanted a separate tab for a separate database?)

Here is a screenshot of my navigation manager. It behaves exactly the way topic polls do: you can add tabs, and then menu items for each tab, exactly like adding questions/options in a poll.


Now, this isn't quite as streamlined as it should be. While I can create new content types via ACP, I can't dynamically build list or display pages out of them unless I modify the core PHP code of my portal engine, and create the appropriate smarty templates to do so, and here is where IPS can shine.

IPS should re-think using the forums as the application framework, and instead strip out all of that functionality and place it into a more powerful, higher level framework called IP.Site. IP.Site would effectively be a combination of

- IP.Portal
- IP.Content
- a navigation manager
- a member database/login system
- the same hooks/applications framework that is currently part of IP.Board.

You would then install IP.Board into this framework as an application, much like you currently install IP.Blog into IP.Board.

The primary goal of IP.Site would be to make it super easy to set up what 99.99% of all community sites have: a news feed/blog as their home page. To do this, the content manager would come with a standard template and database for the very purpose of adding news stories and creating a news archive. You could then build additional databases and content pages as you currently do in IP.Content.

The kicker to this whole system is the control it gives you to organize your content any way you want via a navigation manager. The navigation manager would allow you to assign whichever content types you wanted, to whatever tabs you wanted, and then give you the ability to edit the names of each tab and re-arrange their order. So for example, by default the first tab would be called "Home", and it would reference the various news templates you've created (the news list and news display/details pages). From there, you could do the same for every other kind of content, and easily re-arrange the navigation.

When you install IP.Board, it allows you to do the same thing.

ACP for IP.Site would largely be what it is for IP.Board, minus the forum management. In fact, that's all IP.Board does: gives you forum management. IP.Site would contain all of the member management and user group settings IP.Board does currently.

For users that are not looking to build a site and instead just want a forum, IP.Board can still come with all of the member management tools and a basic portal engine that allows you to use a specific forum as a news feed if you wish.

Currently the IPS product line does not work seamlessly to give users a simple, and easy way to build a proper website (home page, content pages etc). While IP.Board is an amazingly powerful product in itself, the peripheral applications such as IP.Content, IP.Portal, and IP.Blog do not behave the way a proper CMS such as Drupal or Joomla do. Thus any user that is looking to build a website, would be compelled to use those products rather than IPS products.

Where IPS can differentiate itself is a proper site framework/CMS with a member/community backbone. This is something no other CMS does well at the moment. IPS has the community roots, but it lacks a simple and powerful way to build a non forum-based website. A new, central framework (e.g. "IP.Site") would allow people a more effortless way of building a website that is not centered around forums, giving them flexibility in controlling their home page, navigation, content pages, and various other elements. The forums could still be sold as a stand-alone app, but IP.Site itself would be the primary framework that the Boards are a mere application of.

Sorry for the long post, just my thoughts/ideas :)

Link to comment
Share on other sites

Not sure if you're on 2.3 or 3.0, but this is pretty much exactly what IP.Board 3 is ;)
In IP.Board 3, the forums application is just that, an application of a framework. You can easily change the default application to IP.Blog if you want a blog as your homepage, or to IP.Content if you want to create your own (you have to do this via an edit to the initdata.php file since it needs to be loaded before anything else, but it's just a one line edit).
You can also reorder the tabs quite easily by dragging and dropping the order of the applications in the manage applications page - true, it won't let you move non-default applications above default ones, but that's just an interface thing - if you really want any tab to be at the front, you can edit the order value in the database.

You should have a delve around in the 3.0 code - you'll notice that the bulk of the code is in /admin/applications/* and /admin/applications_addon/* which are the application code resides - one of them is forums, one is members, etc... it's pretty much exactly what you're suggesting :)

Link to comment
Share on other sites

I am using 3.0 and all of the latest versions of products for a new site I am starting, and I guess my point is this:

Is a FAR bigger deal than you make it seem. And changing the default application doesn't work the way it should.

I have my forums stored /forums/, meaning I want the forums to be the ONLY application in /forums/. Currently /forums/ is also the root for IP.Content, IP.Blog, and IP.Portal since they're all based on IP.Board's installation directory and are referenced via urls like /forums/index.php?/blogs/ or /forums/index.php?app=ccs

If I change the default application from /forums/ to something else in initdata.php, all it does is redirect you to /forums/ :P I just want the root of my domain to show the default application, and then forums to be in /forums/

What's more is, my point is that you shouldn't even have to edit a php configuration file to choose your default home page. It should be possible to do that from within ACP, and it's currently not.

it won't let you move non-default applications above default ones, but that's just an interface thing - if you really want any tab to be at the front, you can edit the order value in the database.

Link to comment
Share on other sites

[quote name='Darky999' date='25 November 2009 - 08:54 AM' timestamp='1259157293' post='1882334']
What's more is, my point is that you shouldn't even have to edit a php configuration file to choose your default home page. It should be possible to do that from within ACP, and it's currently not.

Setting aside the rest of your suggestion (which has some interesting implications, regardless of whether it's the direction we want to go), this here presents a chicken and egg scenario. We can't easily change this.

When the framework starts loading everything it needs (settings, caches, etc.) it needs to know what application is being accessed BEFORE the settings are loaded, so anything saved via the ACP isn't "known" at the point we need to know which application to load - hence why a file edit is required for this particular change.

Sometimes we need data before settings are actually loaded, so we can't store that data in the settings.

Link to comment
Share on other sites

Well they do have a sort of framework called IP.Nexus that was supposed to do something very similar. Unfortunately the plan was to keep IP.Board separate from this. I would have suggested that IP.Board just be an "application" of IP.Nexus :P (IP.Nexus was put on hold - it does a lot of business releated things).

Issue is right now IPB is to much the framework, and that is too difficult to change at this point. And even if they were to make IPB an application in a generic framework made by IPS, that still doesn't solve the problem of your site uses XYZ framework. The best you can really do is IP.Converge which links login systems (basically). IPB might have it's users table, but all the authentication can be based on something else by using IP.Converge.

I do agree that linking the design from any forum to an existing site using a third party content management system is rather difficult. But that really can't be helped. To help with this, there's IP.Content to create your site within IPB.

Also agree that the tabs on the skin could be more easily managed. Again you could hack it out of the templates and create an app to manage this. Perhaps just make a hook to override it without changing the templates.

Link to comment
Share on other sites

True, but having logical, clean, and consistent navigation is one of the most important parts of building a successful website, thus from the perspective of a customer who has paid for a product that's supposed to make it easy to set up a website, I find it a bit silly that one of the "fundamental" components of the site needs me to essentially create it manually.

IPB (or whatever framework you're using to build your site) should

1. Automatically create tabs based on applications you already have (check)
2. Allow you to easily and completely change their order/arrangement (fail - no, re-ordering the apps doesn't count :P)
3. Allow you to easily add custom links (fail)
4. Allow you to easily rename existing tabs (check)
5. Allow you to easily turn certain tabs off and on (check)
6. Allow you to associate which apps/pages/content activate which tabs (fail)
7. Allow you to set visibility permission masks so that only certain groups can see certain tabs (fail)
8. A centralized manager in addition to having those options split across each app (fail)

Granted point #5 doesn't apply to everyone. Not everyone's design will have the need for active tabs, though speaking from experience as a UI designer, tabs of some kind are one of the most effective ways of displaying your navigation. It allows the user to know where they are at all times, and helps them build a "mental map" of the site as they use it. As such, I no longer design sites that don't use tabs to visualize the navigation.

Also agree that the tabs on the skin could be more easily managed. Again you could hack it out of the templates and create an app to manage this. Perhaps just make a hook to override it without changing the templates.

Link to comment
Share on other sites

  • Management

IP.Board is a framework, but we've tailored its implementation to serve up forum-ish content. It is a very flexible framework in that you can drop in new apps but we've made a deliberate effort to keep forums at the front as that the main module that 'ships' with the framework.

To really make it a true framework (in the sense of zend, etc) would require epic levels of abstraction that would just add overhead to each request.

That said, the tabs thing is just a presentation 'issue' in that that's how we coded the default templates. You can create your own templates to totally change the ordering and presentation.

Link to comment
Share on other sites

Matt, fair enough about abstraction and wanting to keep the forums at the front of your community suite, though I don't think tab/navigation management is something that should be handled via hacking apart templates. Giving users easier and more accessible control over their site's navigation isn't something that should be underestimated in terms of its importance.

Anyway, thanks for the replies :)

Link to comment
Share on other sites


This topic is now archived and is closed to further replies.

  • Recently Browsing   0 members

    • No registered users viewing this page.
  • Create New...