- Online content management.
- CSS style and theme selection and editing.
- Application functionality.
- Security.
I firstly started out using Stringbeans Portal (http://www.nabh.com/projects/sbportal ) because I liked the idea of being able to build a site up in grid like manner by either manually editing the content online or by including application functionality in the form of portlets.
I had a number of problems with Stringbeans such as the lack of communication between portlets and its layout is heavily table based.
I started to use Java Studio Creator or JSC which has now been replaced by Netbeans 6.1 to develop simple web applications. I made use of the drag and drop JSF web components that makes creating web application very easy.
I created a portal like project template that uses CSS to control its layout and styling.
The basic idea is to use web pages created in JSC or Netbeans to control the layout, navigation, security, login and registration of the site but to store all actual site content as HTML in a MySQL database. There is only one actual JSF web page per page layout type (e.g. two column wide narrow) and all the actual sites content pages are simply records in MySQL database tables.
So to navigate to the About Us page in the site the URL would be something like this:
…/Faces/Layout_2_col_NW.jsp?PageName=AboutUs
where the application root is www.sastudent/SAstudent/
When the Layout_2_col_NW.jsp page loads the PageName URL parameter is used to fetch the actual page content from the MySQL database. The Layout_2_col_NW.jsp page also contains logic to check if the user needs to be logged in to view the page to be loaded and if so they will first be redirected to the login page as shown below. Security could be implemented using Acegi and Spring.
http://www.springframework.org/
http://www.acegisecurity.org/
Also if the user is a site administrator edit links will be displayed for each grid section of the page. If the administrator clicks one of these links they will be redirected to the content editor page as shown below where they can edit the HTML content for that grid section.
Even the tab menu at the top of the home page is a simple HTML and CSS based menu that can be edited online using this HTML editor.
The TinyMCE editor is very versatile and images, tables and even multimedia can be added to the page content.
TinyMCE is used as the HTML editor. http://tinymce.moxiecode.com/
Using this method a new page can be added to the site by simply inserting a record into a table in the MySQL database and the page’s content can then be edited and styled online.
This means that a JSF web page can be created and used to add, change and delete the sites pages online providing portal like functionality.
Because the page layout and content is styled using CSS (NO TABLES) it is very easy to change the look and feel of the site.
TinyMCE also allows HTML templates to be created so inserting commonly used content such as a quick links box with rounded corners etc is very easy.
I am planning on using IFrames to include actual web application GUI’s within standard site pages. This means the business logic could be handled by a completely separate web application that has access to the same MySQL database as the presentation MVC application i.e. this project template.
An example of a page in a site using this project template is shown below. It does not look like much at this stage but I have been focusing more on getting the project template working and not so much on the actual site content or styling.
So basically what I want to be able to do is to load the project template deployed as a simple .war file and from then on edit the site contents online. New pages can be added online and the CSS style rules can also be changed online. The simple tab based menu and the side menu can both be maintained online.
So once the site is loaded graphic designers can the carry on styling the site and administrators can carry on adding the content while the development team focuses more on the application development side.
This project template is the MVC part and I am using the Spring application framework as the J2EE backbone for the application business logic etc and possibly Hibernate as the data access layer.
This will mean a J2EE web application based on an n-tier architecture.
I do know of some content management systems and portals such as:
but they are all a bit more complex that what I need and I think would over complicate things unnecessarily.
No comments:
Post a Comment