Jump to content

Forum Ideas


PrateekSaxena

Recommended Posts

Hello,I have started work on a new Forum software in PHP that will be Open Source. I am planning to use PHP and JavaScript to load the pages kind of dynamically. I will use the MySQL server. I was thinking that this forum should be differnt than the others and wanted some ideas of new features. Could you also please suggest a name as well. HEre are a few of my won ideas -

  • Status Message and Busy/Idle/Away/Available like in Yahoo Messenger
  • RSS Feed - The person will give the URL of his blogs RSS feed and the 2 latest posts will be shown on his profile page
  • Permission to add more user details my the admin(I am not sure if this feature already exists!)

Please give your ideas too!EDIT:Another IdeaThe reply system would berelative. like you could add a reply to the main post or to the reply of the main post. one would only be notified if his/her post is replied to. Somewhat like it is in deviantArt.com

Edited by Jonas
Fixed title.
Link to comment
Share on other sites

  • Status Message and Busy/Idle/Away/Available - Status is available in this version of IPB. In phpBB, it's achieveable by mods I believe. For the exact status (other then offline and online), there are mods for this too, but it's not built into any forum as far as I'm aware of.
  • RSS Feed - IPB is probably the only forum NOT to have this feature yet.
  • Permission to add more user details by the admin - It already exists in all popular forum boards.
  • The reply system would be relative - IPB too has a relative reply system. Check out "Options > Switch to: Outline". It will tell you exactly who replyed to who. Unfortunatly, this is irrelevant to the email notifications I think. Perhaps IPB has some options on whether to reveive a reply from the whole topic or only to replyes to self. If there are, I haven't seen them.

Before I waste my time trying to give you any ideas, I would like to see some raw version of what you plan. You know... some core (no real features, just a framework to build upon).If you want your new forum board system to be revolutionary, here is my advise: build it in a platform independant manner. Separate PHP from (X)HTML so that ASP or any other S3L using MS SQL or any other SQL engine is easily constructable. If you want to get really extreme, use thousands of XML files as a data storage and use XSLT to manipulate them. Reconstructing the XSLT processors across S3Ls should be a piece of cake, though constructing the XSLTs and thinking up the XMLs in efficiant fashion would feel worse then shooting yourself in the head.A name... hm... consider the spelling mystake in the title of this topic the perfect title: IDead. Or better yet IMDead (pronounced "I am Dead").

Link to comment
Share on other sites

Hello,Status Message : Well I meant more of something like, people put on Orkut. For example - "Making Next Best App", "Eating","JS is killing me!" etc!RSS: Sory I did not know. This is the only forum I am active on.Reply System : I mean it will be displayed as it is displayed in dA. Also you will get a notification email when "your" topic gets a reply! I dont think that is in IPB.Language to Use : Sorry I do not know ASP whatsoever, I have never used it. I dont know XSLT thought I am fimilar with searching XML files with PHP. I dont know anything about XSLT. I thought that I would use XML only but then thought that there is more security and faster search in MySQL, so decided to use it.FrameWork : I will start work on this project soon, as I am currently working on an Animation JS library to create graphs and all. Once it is ready I will post it ASAP.Name : Well that was supposed to be Ideas which I misspelled as Idead. Though that now that you have pointed it out it seems pretty nice, but I would like to get more suggestionsBTW : WTF is SL3

Link to comment
Share on other sites

Not SL3, but S3L. Look at my signature.For the status, IPB and all other boards have this feature. Look at the forum's initial page below all active users there's "Show detailed by: Last Click, Member name". It would be good if this is available on all pages though, which is what you have in mind I guess.I would have been surprised if you did know XSLT. But still. You must devide the XHTML from PHP. Otherwise it will be hard for people to make templates and a lack of extras is usually what makes the difference between a bad board and a good one. And if you can make it easy for others to write versions in other S3Ls, you'll earn yourself some extra users.As for XML efficiency, that's why I said thousands of XML files, isntead of a few big ones. Parsing a few small files to get a single result instead of one big is almost always more efficient. But you are right. SQL engines are faster then XML files without good logic behind them. That's why I said thinking them up would be a big pain.

Link to comment
Share on other sites

Maybe a section with a HTML sandbox.NOTE: Strip all "?" and "script" So people can't add JavaScript or PHP code'sAnd put it in a Iframe so it doesn't mess up your validation

Link to comment
Share on other sites

No offense but why do you need to design a new forum software? There is a lot of options out there (Phpbb, IPB, vBulletin...). You might want something different than all these guys but any of those can be modded the way you want them. I had phpbb before and I changed the design of the board myself it's pretty straight forward. You can even add some functionalities yourself. To me it just seems like a waste of time to design from scratch a forum software that is secure, fast, reliable, and more...

Link to comment
Share on other sites

@boen_robot : I knew what Server Side Scripting Languages are but I did not know that they were usually called S3L. I will be using PHP.Okay! So I also found out about XSLT, it is used to make XML more readable by using CSS, right? What is the problem with MySQL, PHP can return xmlHttpRequests even after searshing a MySQL file. Also I do not understand how thousands of XML files will make searching easier than one big XML file?@The_Master : I dont really understand what you are saying. The PHP code or JS code that people will write might be malicious too and oucld mess with the working of the forums and cause loss of private data.@vchris : IPB charges money, vBulliten charges money and I know that phpBB is free but I do not know of any other good opensource foum software. I want this one to have AJAX like functionalities. Also I would be a learning experience for me.

Link to comment
Share on other sites

Hey boen_robot,I think I understand what you mean by keeping the HTML and PHP divided. You mean to say that I should not make the PHP file "echo" everything out for the forum website. What we can do is that the JS wil give out an xmlHttpRequest and then the PHP will do whatever and return with an echo. And then the JS will change the innerHTML's of the DIV or the TABLE.One more thing, the homepage or anyother page of the forums are made up of tables or divs. It seems that it would be easier with tables, but what should be used according to you? DIV's or TABLE'sEDIT : Someone already owns http://imdead.com/ boo hoo 20.gif

Link to comment
Share on other sites

But it seems easier with TABLES. I will try with DIV firstCan you think of something away from imdead?

Link to comment
Share on other sites

@boen_robot : I knew what Server Side Scripting Languages are but I did not know that they were usually called S3L. I will be using PHP.Okay! So I also found out about XSLT, it is used to make XML more readable by using CSS, right? What is the problem with MySQL, PHP can return xmlHttpRequests even after searshing a MySQL file. Also I do not understand how thousands of XML files will make searching easier than one big XML file?
Actually, I'm the only one using the buzzword S3L... for now at least. I got tired of writing "Server Side Scripting Languages" all the time, so I made myself an abbreviation to use, and to avoid people asking me what it means, I put the explanation in my signature. I'll be really proud if others start using it as well :) .No. XSLT doesn't make XML more readable by using CSS. XSLT converts an XML file into another XML based file. Scince XHTML is XML based, you can convert XML into XHTML, thus deviding the data (XML) from structure (XHTML), while still keeping the presentation (CSS), interactivity (JavaScript) and functionality (PHP) separated.The problem with MySQL... it requres special software for it's handling. This applies for every SQL engine like MS SQL, Oracle, etc. - They all requre their own special engine. XML is a standart, and as such, any XML parser can do the same job.XML efficiency has always been THE reason for a lack of big projects using it. It has to be really carefully thought or it will result in a very unefficient application. If you have one big file, PHP will have to load it, check it for well formdness and validity (if requred), and then transform it, and pass it to PHP for further processing (if requred). All that on every request. If you have a small file, that's OK, but if you have a file with 100000+ elements, doing this for 100+ requrests per minute might slow things down. Having XML files to index and describe other XML files seems like the perfect solution, but this too has to be carefully thought.I don't mean just not to "echo the stuff", but keeping PHP files completely separated from XHTML. Look at smarty for example. Instead of having
<?php //some PHP stuff here ?><html><?php //some more PHP stuff here ?></html>

you'll have

{PHPstuff}<html>{morePHPstuff}</html>

A single PHP file will be responsible for differing PHPstuff from morePHPstuff and will take proper actions against each of them. The author of the HTML template doesn't need to know PHP in order to tweak the template.XSLT takes a similar approach by the way. The author of the XHTML template doesn't need to know the XML data nor the PHP file that will process it.Last but not least- I have to agree with vchris. Unless you're planning to do something revolutionary, there's no point of creating just another forum system.

Link to comment
Share on other sites

But how will one keep XML file secured??I do plan to make it revolutionary that is if I do get some good ideas..In the end I am sure that it will be a good learning experience for me!It does make sense to keep the HTML away from everything else for the template thing you pointed out, I was thinking about that as well!

Link to comment
Share on other sites

But how will one keep XML file secured??
Um, yep. That's the other big problem. In order to secure an XML file, you must have access to the server's configuration, be it in .htaccess files (Apache), .config files (IIS), or having a full control of the server altogether. Even when you do, XML data is visible in plain text for the server itself or simply put- to you and anyone having access to the server machine. There is a standart for XML encryption, but it's not implemented anywhere yet, making it useless at this time. You can encrypt the password strings with MD5 or something like that, but the encrypted string itself is still easy to locate.In other words, XML security is not an impossible thing, but it's a really hard thing to do, due to it's requrements. I sure have never done it, though I have thought many times about it.
Link to comment
Share on other sites

So MySQL it is. Maybe what we can do is that all the data can be kept in MySQL...then every time there is a request to the server, an XML file would be generated that would be given to the JS, who will search it parse it do whatever with it and then display it with XSLT.Or we could save XML tagged text in MySQLwhat do you have to say about that?

Link to comment
Share on other sites

So MySQL it is.
In the next few years at least, yes.
Or we could save XML tagged text in MySQL
There isn't much point in this. Quering plain text is more efficient, but as noted above, platform independancy is lost completely... in either ways.
Maybe what we can do is that all the data can be kept in MySQL...then every time there is a request to the server, an XML file would be generated that would be given to the JS, who will search it parse it do whatever with it and then display it with XSLT.
Better, but still not exactly platform independant.Instead of giving the generated XML file to the client, you should use PHP itself to transform it with XSLT and only give the client the resulted XHTML from it. Not only is it more efficient, scince the client won't download the whole XML before seeing the result, but because XSLT processors in browsers are different and when you process it on the server, you'll be sure to get the same XHTML across browsers. If you do this, you'll also unlock another possibility which XML presents. You can use PHP to detect the client's preferences and use a different XSLT file depending on them. For example, one for XHTML and another for XSL-FO, which you'll then transform to PDF. Usefull for printing topics. Or a third one for a lite version, used for mobile phones (a forum on a cell phone... now that's new).
Link to comment
Share on other sites

Cell phone on is a good idea. Cant it be converted to PDF using dompdf?I have told MrAdam to start work on XSLT and stuff. I am right now making the raw and basic layout of everything

Link to comment
Share on other sites

Cell phone on is a good idea. Cant it be converted to PDF using dompdf?I have told MrAdam to start work on XSLT and stuff. I am right now making the raw and basic layout of everything
What's dompdf? Whatever it is, it's probably dependant on PHP. XSL-FO on the other hand is a standart. Any FO processor will do a FO-to-PDF transformation and different S3Ls use different FO processors... if they have one built in to begin with, which brings us to the bad news. PHP doesn't have a built in FO processor, though there's a PEAR extension that provides this functionality. This also applies for ASP.NET. I'm not sure about Cold Fusion and the rest.Let MrAdam work on the plain XHTML and CSS. One you think up the XML structure, you'll be ready to turn the XHTML into XSLT templates.
Link to comment
Share on other sites

Here is a link to domPDF :: http://www.digitaljunkies.ca/dompdf/MrAdam and I have switched places. I am studying XML and XSLT from W3School Tutorials. Please suggest if I should study from somewhere else!

Link to comment
Share on other sites

I read the XSLT tutorial on W3Schools. It seems that is is very very very very very useful. I mean it can even kind of query the XML file that is given to it, as it seen in this example. We are definitely using XML and XSLT. But the security issue still remains.I found this really nice encryption code for JavaScript and it is called TEA. It is based on a password, and we can ask the user to keep the password that should not be disclosed to anyone(obviously) in the PHP file during installation. We will encrypt only the user and password XML file and rest we will leave like they are cause they dont need any protection. We dont care if some crazy user sees the posts in that XML file. Or should we??

Link to comment
Share on other sites

Inactivity Alert I will now be active on this topic after 2-3 days. You will see a lot getting done on 2nd March 2007 probably!

Link to comment
Share on other sites

I read the XSLT tutorial on W3Schools. It seems that is is very very very very very useful. I mean it can even kind of query the XML file that is given to it, as it seen in this example. We are definitely using XML and XSLT. But the security issue still remains.I found this really nice encryption code for JavaScript and it is called TEA. It is based on a password, and we can ask the user to keep the password that should not be disclosed to anyone(obviously) in the PHP file during installation. We will encrypt only the user and password XML file and rest we will leave like they are cause they dont need any protection. We dont care if some crazy user sees the posts in that XML file. Or should we??
I'm very happy to hear read you like it. One more to the dark side :) .Sounds good, but there's one problem. You need a PHP TEA implementation so that you could decrypt the file on the server and then query it. The C implementation could easily be coverted to C#, and as such used in ASP.NET, but for PHP, you'll need... something else. Also, every time a new user is created, the file will have to be decrypted and reencrypted again. For efficiency and size's sake, I suggest you store only the user ID and it's corresponding password, not the whole user name itself.Also, note that even though the file will be encrypted and undecryptable without a password, you should still advise your users to hide it to increase security. It's not critical for this file to be revealed, but users must be advised to hide it whenever possible.
Link to comment
Share on other sites

Ah! so you mean encrypt the password by the username. It is not necessary that we use TEA. We can use some Private key encryption algorithm for PHP. I am sure there are many of them!!The dark side is brighter than the bright one :)

Link to comment
Share on other sites

Ah! so you mean encrypt the password by the username.
No. I mean for the unencrypted passwords XML file to contain something like
<user><id>1</id><pass>mypass</pass></user>

instead of

<user><name>Prateek</name><pass>mypass</pass></user>

Shorter, and as such- faster to encrypt and decrypt.

It is not necessary that we use TEA. We can use some Private key encryption algorithm for PHP. I am sure there are many of them!!
OK then. As long as it needs password for decryption, it's all good.[edit]
Please suggest if I should study from somewhere else!
W3Schools cover pretty much everything. If you read the XML, XPath and XSLT tutorials, you know alsmost all you need. Just be sure to read about XSLT's functions and read the XSLT FAQ in the XSLT forum. The rest is practice.
Oh! So you mean somethin like an ID for each user...like I am ID-8609 and you are ID-70?
Yes.[/edit]
Link to comment
Share on other sites

I dont get what you are saying

Link to comment
Share on other sites

Oh! So you mean somethin like an ID for each user...like I am ID-8609 and you are ID-70?

Link to comment
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
×
×
  • Create New...