ATTENTION: You are viewing a page formatted for mobile devices; to view the full web page, click HERE.

Removed Areas > DonationCoder Projects

DC Homebrew Mini-CMS Discussion

(1/10) > >>

mouser:
This thread is to plan the mini-CMS features that need to be added to the site to support articles/reviews and templates, and better coding snack files, etc., as well as the amazing blogportal idea.

mouser:
The Goal:

* A way to make it easier for users to create content for the website, in the form of Reviews, Articles, Blogs, which can be organized in a clean, standard hierarchical form, like the normal website pages here - the pages should look identical to other real pages on the websites with sidebars, etc.
* A way for programmers to have their sofware available for download, in nice fashion similar to the software currently available in the software section (with thumbnails, screenshots, etc.).
* In other words, we want to make it easy for users to create content for the website that looks like the static content on this website, with minimal intervention.
Requirements

* Has to be "safe" and protect against a malicious user trying to run arbitrary php code.
* Can't be too hard for users to write content and format it nicely.
* Output should be static html/php pages for minimal cpu performance hit.
* Ideally the same sysem could be use to organize the entire EXISTING website content, to help unify everything.
* Ideally it would integrate into the forum software to support searching.
* It must integrate into the forum to the extent that its easy for people to add comments on downloads and articles.
Some Ideas

* A generic template system that can build on demand create static html website hierarchy of pages from "templates" and a hierarchy of content pages.
* Support for special kind of content/template fields that can instruct the engine to go grab and extract content from forum posts/threads.
* In this way, comments could on a download or review could actually be extracted and ADDED to a website page whenever a new comment is posted - very nice.
* This would also let us build a unique idea - a blog portal into the forum - where an admin could mark posts that should be automatically extracted and added to a "blog"-like page listing the day's hotest threads.  Think about a Lifehacker like page created from interesting forum posts.
* Because of the complexity of articles, users will need to be able to edit them gradually without making them public, until it comes time to "publish" them, which might require permission from an administrator.
* My idea was to perhaps create a kind of "virtual" forum area for EVERY user, where they could write articles as if they were writing posts (perhaps using same bbcode, etc), and then have some system of moving these special private user articles (posts) into main areas of the forum, or "publishing" them as pages on the main website.
* Extra features would probably need to be added to such posts (articles), like excerpts and preview images.
* I am concerned that the forum bbcode might not be rich enough to support full articles, but there is a lot to be said for keeping all articles as posts.  It may be possible to allow richer html editing inside these posts.
* Such a system of being able to extract info from posts might also enable us to build a kind of "bookmarking" system where users can mark which posts threads they want to assemble on a page like a portal.
* A generic rebuilding-table might be kept track of so the system knows which static pages need to be rebuild when certain forum "posts" change or are added.

mouser:
to sort of summarizing the approach i am suggesting, it basically says that we use the forum data table to hold not just posts, but blog entries, articles, download descriptions, maybe even wiki entries, (and bugtracking entries?), and then write custom code to extract and present these items in different ways in an organized website.

there are advantages and disadvantages to this of course..

crono:
Hello Admins and Mods :)

this sounds really well, but there are some unsolved issues.
1) I keep wondering how the Pages could be integrated in the Navigation, without letting users change the Navi?

2) The Sidebars: Should a User be able to create a Sidebar for her / his own Article? Or would it be better if there are several standard sidebars, which could be inserted "context sensitiv"?

3)
* Output should be static HTML/php pages for minimal CPU performance hit.-mouser (May 18, 2006, 10:23 AM)
--- End quote ---
I like the semi-static PHP approach - if we have comments on the pages, it is nearly impossible to be 100% static - but 1 call to the Forums DB should be cheap.
BUT this approach makes it harder to offer full text search on the page, without having something like Apache Lucene running in the background. The Zend Framework offers a interface for Lucene, but Lucene is still needed in the backend, because Zend haven't done the indexer port to PHP now...

4)
* Ideally it would integrate into the forum software to support searching.-mouser (May 18, 2006, 10:23 AM)
--- End quote ---
this would solve my point above, but then it is not possible to do it "static"? Or do I miss the point?

5)
* It must integrate into the forum to the extent that its easy for people to add comments on downloads and articles.-mouser (May 18, 2006, 10:23 AM)
--- End quote ---
This is one method - anotherone would be to create something like a "summery" Post in the Forum for each "content" page. Then the comments can easily go to the forum (which means no spam, new members and authentication for free). Displaying on the "content" page would very easy - just pulling them out of the database.

6)
* A generic template system that can build on demand create static HTML website hierarchy of pages from "templates" and a hierarchy of content pages.-mouser (May 18, 2006, 10:23 AM)
--- End quote ---
Huh??? - Sorry, I don't get it...

7)
* Such a system of being able to extract info from posts might also enable us to build a kind of "bookmarking" system where users can mark which posts threads they want to assemble on a page like a portal.-mouser (May 18, 2006, 10:23 AM)
--- End quote ---
This would be a great feature - something like a personal portal

8)
* A generic rebuilding-table might be kept track of so the system knows which static pages need to be rebuild when certain forum "posts" change or are added.-mouser (May 18, 2006, 10:23 AM)
--- End quote ---
Such a table could be really painfull - and this is the BIG problem with the static approach *ImScared* - and I don't know how often we had to generate static pages - maybe we should drop the static approach and invest time on some caching strategies?


I had some (very "raw") ideas - I told mouser via PM - on how to do this CMS. In the last few hours I thought about some details. I think my approach can satisfy most of the requirements... Give me a little time (Saturday) to put it into words... :)

mouser:
here is what i was thinking about static page rebuilding - i think you got the flavor at the end.  this is what movabletype does. it knows that when someone posts a reply, it needs to build the blog page.

a similar system could be used - all static pages that relied on a thread would have an entry on a table.  whenever a thread is modified that a static page depends on, the static page would be rebuild.

when you think of the # views vs. the number of times a new post is made, there should be no comparison in terms of cpu usage.  even if you had 1000 posts a day it would still be a big winner in terms of speed.

it's not just average speed of course - the real win comes when you get something like a digg or slashdot, because in that case you get 20,000 views and no new posts.  a static page suffers no hit at all.  a dynamic page will kill the server.

while i don't worry about this soo much with forum, i would be VERY reluctant to have a popular page of our site use such a dynamic approach.  if i am write and the blog portal idea gets popular, it will get a huge # of hits a day.

Navigation

[0] Message Index

[#] Next page

Go to full version