UNIVERSAL CONTENT MANAGEMENT SYSTEM WITH AJAX TECHNOLOGY D. ŚWIERAD, W. ZABIEROWSKI, A. NAPIERALSKI Abstract - Present work is an attempt to create universal editorial content management system, which uses Ajax technology. A system which is simple to use for non technical staff and which has a clear user interface. A system which isn’t overloaded with functions of questionable utility and which is just plain fast. This task was chosen with regard to present absence of similar content management systems, in whitch Ajax technology is core of the system and is not used just for little enhancement. There is also absence of simple systems, whose users can learn very quickly how to use them, and immediately begin to make website, but which give freedom in website creation. There is also absence of content management systems which aren’t overloaded with functions, which many of users just don’t have time and will to get to know. Keywords – PHP, Ajax, CMS, simplicity
I. INTRODUCTION There are many content management systems on the market. There are available commercial and free ones, professional and amateur, closed source and open source software, for professional and novice users, free and paid systems, in the end there are also universal and specialized content management systems. Why then, the author wanted to write it’s own CMS? Answer is not simple. In a few words, author wanted to write this application because he likes simple things and because he used several other CMS.
follows: “Feature creep (or feeping creaturism) is the proliferation of features in a product such as computer software. Extra features go beyond the basic function of the product and so can result in baroque overcomplication rather than simple, elegant design”. Feature creep is a common problem in many developed for long time software. One function there, another here and in little time we end in large application, with many features that nobody really knows how and why to use them. Author decided to wrote new simple to use, and convenient in use content management system – he called it SofaCMS.
II. SYSTEM DESTINATION This application was written with small websites in mind. Websites which page count dosn’t exceed one hundred. This doesn’t mean that the system will not manage more pages, because it will. Essential is the ease of use while using CMS. Navigation in page structure is available only by the help of simple tree structured page list, and therefore can be difficult when there is a lot of pages. SofaCMS after installation is ready to be used in working on own simple and small website. What’s important is what we understand under the term simple and small. That means that website will be providing information, the interaction between users and web pages is limited to few actions like sending contact form to page owner. SofaCMS is not designed to out of the box providing services to users. It doesn’t offer any data processing or storage. Website that you can build can be only prepared to serve information, without difference if it will be articles, photos of files. With SofaCMS you can create website that is newspaper, blog, homepage, photo gallery, presentation of certain product or company and many others similar mentioned websites.
III. FUTURE GROWTH
Fig 1. Application view In the Internet we can find definition of new term called “feature creep”. Wikipedia defines the term as
Future extension of application functionality is connected with writing new modules which will provide needed functionality. Changes made in core of application can be difficult because all existing modules should be compatible with new system version. Sometimes it will be easier to just make new, not compatible version, but then we lose all available modules. Therefore we will discuss only new modules. Visit statistics module. Every website should have more or less expanded statistics collection module.
Damian Świerad, Wojciech Zabierowski MSc, PhD, Professor Andrzej Napieralski MSc, PhD, DSc, SM IEEE Department of Microelectronics and Computer Science, Technical University of Lodz, al. Politechniki 11, 90-924 Lodz, Poland - E-mail:
[email protected]
Statistical data can provide general information about how the website is used by visitors, for example which pages do they read and how long they stay on other pages. Collected information can be then used to adapt site content to users. Poll module. Users can vote or pick an earlier defined answer to question. The purpose of voting polls most of the time is only for fun, but of course it can also be used to ask users valuable information about the website. Search engine module. Search engine can exist inside application and help editors in finding information, and outside to be used by website visitors. For example editor can find articles written by specific author or words in articles that haven’t been published. Page map module. Purpose of this module is to display to website visitors overall structure of website, and make possible to jump to other pages. RSS feed. Module is useful in websites that often change or add information. Module can gather in one place up-to-date information from whole website and make it available to visitors in short form. Visitors don’t have to open page in their web browser to be noticed about changes, and where they have been made.
Author decided to limit page reload to minimum. Rich text editor used in application must be loaded and embedded in its place every time the page loads. If on the page there is a couple of editable content, the editor must be embedded for each content. This process takes some time, and can be noticeable when amount of editor grows. When user must wait over and over for action to be completed, he can become irritated. Author solves this problem by almost complete elimination of need for page to be reloaded, and by getting needed data in the background. While waiting for one action to finish, user can still use application. Also, user can make a few requests one after another, without waiting for first request to be completed. For example, let’s consider deleting files from file library. User can request to delete many files and when application asks for confirmation it can confirm file deletion one after another. Therefore this operation can be completed a lot faster than the same action but with user waiting between page reloads. In the same time user can delete a lot more files.
Fig 2. Photo galery module view Shoutbox. Shoutbox is simple communication module. Shoutbox is similar to chat, but it doesn’t require login, and last few entered sentences is remembered and will always appear on visitor screen. It’s designed to provide possibility of leaving messages for other users. Mailing list. This module can be very useful for website owners. Website visitor can subscribe to that list and then receive information from owner. Website owner send information to all recipients at once. Content preview before publishing. Editor can preview unpublished content in form that will be shown to website visitors. Module purpose is to eliminate occurring errors, that will be only visible on website page.
IV. AUTHOR SOLUTIONS
Fig 3. Textfield module view Navigation in page structure is made as a tree page list. It’s not based on content type. Therefore if user wants to change something on specific page, he has to display content of this page, and then find place where change has to be made. That navigation method differs from what we can find in CMS like Mambo or Joomla. Author believes that this navigation method is easier to understand and maintain for first-time users. Another author’s solution is to provide different versions of content for one module. This function was implemented in textfield module. Editors can write few different versions of textfield, but only one of them can be published for website visitors. Content of texfield can be easily and quickly changed whenever it is necessary. Meanwhile editors can write next different content version. This can be useful to make seasonal
Damian Świerad, Wojciech Zabierowski MSc, PhD, Professor Andrzej Napieralski MSc, PhD, DSc, SM IEEE Department of Microelectronics and Computer Science, Technical University of Lodz, al. Politechniki 11, 90-924 Lodz, Poland - E-mail:
[email protected]
versions of textfield, like version for Christmas. Published content can be changed without deleting any of the available version. Gallery module is equipped with drag-and-drop functionality. Editor can sort, and add new photos to gallery simply by dragging them around. When adding new photos editor should simply drag them out of the photo tray to where the gallery is, and dragged photos will be added at the end. When editor want to sort existing photos he should activate the sort mode, then change order of photos as desired, and exit sort mode which will save new photos order.
V. TECHNOLOGIES Author had chosen PHP as programming language in which he had written SofaCMS. There were a few reasons: • High scalability and performance – PHP can be used to design small and large application. It can be used to make homepage or big service. • PHP is used by Flickr, Facebook, Nasza-klasa, Allegro or Wikipedia • PHP is easy to learn, offer good documentation and many examples of use • There are many extensions and plugins for PHP • Almost any hosting allows to execute PHP scripts, while hostings for .NET or Java are more rare. Template Lite is PHP extension designed to provide easy templating solution for programmers and webdesigners, allowing them to separate business logic from page layout. Template Lite was chosen for following reasons: • To separate PHP language from HTML website templates • Template Lite is compatible with popular Smarty template solution, but is faster and smaller As a database author has chosen MySQL. MySQL was chosen similarly like PHP because almost any hosting if provides a database, it provides MySQL database. It’s more uncommon to find PostgreSQL and other databases. Also, MySQL has enough capabilities for SofaCMS. jQuery was chosen as a JavaScript framework for following reasons: • jQuery provide advanced traversing and manipulating methods to modify and search DOM tree • jQuery is fast and small, it weights only 15KB when minified and gzipped • there are many plugins written for jQuery • jQuery has a great set of documentation, and many books available • it has built in support for Ajax request As rich text editor author has chosen TinyMCE. TinyMCE is one of the most commonly used
WYSIWYG editor on the market. It has support for XHTML 1.1, many configuration directives, plugins, while looking simple for the final user. It’s behavior is similar to behaviour of big standalone text editors, and all functions should be no surprise to editors who use it. TinyMCE is used in many applications, for example in powerful and popular blog platform named Wordpress. TinyMCE authors state it is compatible with all major web browsers.
Ι. SUMMARY Author managed to make editorial system which has simple and clean user interface, which uses everywhere it can Ajax technology. Application is light and it responds fast to user commands. Because of modular structure programmers can easily expand its functionality whenever it is necessary. Author in creation of this system used his own ideas like maintaining many contents of the same part of the page, using drag-and-drop technique to sort photos in a gallery, understandable error reporting, grouping website structure in tree view and many others.
VI. REFERENCES [1] Dave Mercer et al., „Beginning PHP5”, Wrox Press, 2004 [2] Chris Ullman, Lucinda Dykes, „Beginning Ajax”, Wiley Publishing, Inc., 2007 [3] Bear Bibeault, Yehuda Katz, „jQuery in Action”, Manning Publications Co., 2008 [4] Luke Welling, Laura Thomson, „PHP i MySQL. Tworzenie stron WWW. Vademecum profesjonalisty. Wydanie trzecie”, Helion, 2005 [5] Mehdi Achour, Friedhelm Betz i inni, „Podręcznik PHP”, PHP Documentation Group, 2008 [6] „MySQL 5.0 Reference Manual”, MySQL AB, 2008 [7] Wikipedia http://en.wikipedia.org/wiki/Feature_creep
Damian Świerad, Wojciech Zabierowski MSc, PhD, Professor Andrzej Napieralski MSc, PhD, DSc, SM IEEE Department of Microelectronics and Computer Science, Technical University of Lodz, al. Politechniki 11, 90-924 Lodz, Poland - E-mail:
[email protected]