From LeonWiki!
Goals: Provide a system that can create and manage a good looking website while allowing a non-technical marketing staff to edit content in a WYSIWYG format.
- Joomla
- Ok, I said I didn't want a php-based system, but I've reconsidered
- Php is very java-like and seems very easy to use. My main objection was how cluttered the code can get, but like jsp pages it's really up to the programmer how spaghetti-like it can get. Php is object-oriented, so careful design should handle the clutter factor.
- OpenCMS
- This is an incredibly powerful CMS. Because it is so powerful, there is a somewhat higher learning curve, made easier by the fact that the language is Java Server Pages (JSP), a widely used technology. The documentation is in the form of actual websites, making it easier to learn and also to copy/paste code snippets. JSP Templates are the dynamic element in openCMS's equation and as of version 6.0 (I think) they moved from something called XMLTemplateLanguage (or something like that) to JSP. Of course, JSP can be difficult to read, although proper formatting makes it less so. Despite these drawbacks however, I believe that once it is setup and configured this system has the best chance of meeting Symmetry's immediate goals while also supporting future website enhancements.
- Pros
- Browser based explorer interface gives ability to edit website from anywhere.
- Property-based files with ability for user-defined properties as well.
- File versioning and recovery. Has ability to go back to any file version you want if anything goes wrong. Complete histories and audit trails. Very nice.
- Excellent editors with true WYSIWYG editing. This is one of the most powerful aspects of the system and allows the editing staff to avoid any markup languages.
- Powerful templating feature allowing consistent look and feel as well as Don't Repeat Yourself (DRY) programming.
- Website Import/Export.
- Offline/Online mode
- Direct editing of webpages in browser when in offline mode.
- Works with MySql, PostgreSQL and MSSQL.
- Cons
- Editors can be a little clunky at times (i.e. tabbing doesn't work correctly in free text editor)
- Interface doesn't allow >1 file open for editing at a time
- Documentation of a sandbox website installation/setup/development site
- Deployment
- All that is needed to deploy OpenCms is to unzip the war file into the webapps directory of Tomcat. (any JSP container will work)
- Installation
- Installation is very straightforward. It is web-based and also creates all the database tables.
- Sandbox website description
- I used the Boston Siewerts website as the sandbox. I wanted to see how easy it might be to pick out a website design from freecsstemplates.org that uses only div tags and CSS, instead of tables to layout a website. The idea is to use the CSS and the structure of the site (obtained in the index.html they provide) and create a template to display that look/feel and then build the site from the content. Note: I added jstl so the jars noted in the opencms docs on jstl need to be installed in any new opencms installation.
- Workspace navigation/creation, editing, deletion of files
- File types and purpose of each
- This is fairly confusing. There are many file types and the file suffixes do not necessarily agree with the OpenCms file type name. They have added xml structured content to version 7.x, which makes for a more powerful system, albeit, one that takes longer to learn.
- Templates (extremely powerful for website coherency)
- The templating feature is one of the most powerful features of this system. By designating a JSP page as a template (which is nothing more than adding templating tags to the page structures) any content page can have its content parsed through that JSP template, giving a similar look and feel. The content is run through that template and the template will pick out the tags and content for that particular page at runtime.
- Publishing
- Publishing seems to be very straightforward and comprehensive in terms of calculating all the dependencies.
- URL rewrite setup to get rid of opencms/opencms portion of URL
- We are using mod_jk to connect apache to tomcat so this tutorial outlines the steps to access the website as thedomain.com/xxxx instead of thedomain.com/opencms/opencms/xxxx. The tutorial is here.
- External Database Access
- connection pool setup
- Adding XmlContent Types
- defining xmlcontent types
- Plone
- This is another incredibly powerful CMS. Plone is an entirely different animal than OpenCms.
- Pros
- Interface
- Versioning
- Excellent authorization/authentication mechanisms and interface
- Rollback
- Add-on product availability
- Community support
- Skin concept
- Cons
- Doesn't appear easy to implement different look and feels despite skin concept mentioned above because getting at the code doesn't seem to be easy
- Installation
- Sandbox website description
- visual design
- Definitive Guide to Plone
Initial setup for a buildout project [only run this once]:
The following installs an executable called 'easy_install'
*Run ez_setup.py (get it on the web)
*Now run this: easy_install ZopeSkel (these are the templates) [only run this once]
Now run these commands each time you want to create a new project:
*paster create -t plone3_buildout <name of project>
*cd to project just created
*Now run: python bootstrap.py
*Next run: bin/buildout
*cd to src/<namespace.packagename> and run: python setup.py install (not sure if this did it but my product showed up)
*Now you should be able to run the instance by: bin/instance fg
Current Plone/Zope configuration for accessibility on a Windows Box. Because my firewall opens ports on a global basis,
I cannot have more than one webserver running on the same port number on different machines. Hence, to run an Apache web
server on Windows on port 80, in addition to my standard server running on Linux on port 80, I have to do the following
configuration to make that happen.
On Linux, ssh port forwarding is used to forward from port 8090 to port 80 (Apache) on Windows. Use this command to initiate
port forwarding: ssh -L 192.168.1.201:8090:localhost:80 192.168.1.205, where 192.168.1.205 is the Windows
box and 192.168.1.201 is the Linux box.
The following is the correct Virtual Host directive for a Window's system with a Zope server on port 8090 and Apache on port
80.
Apache rewrites the url to point to the Zope server using these commands:
<VirtualHost *:80>
ServerAdmin ron.siewert@alchemysoft.com
ServerName thespacetimecontinuum.com
RewriteEngine on
RewriteRule ^(/bswebsite.*) http://localhost:8090/VirtualHostBase/http/www.thespacetimecontinuum.com:8090/VirtualHostRoot/$1 [L,P]
ErrorLog "logs/dummy-host.locahost-error.log"
CustomLog "logs/dummy-host.locahost-access.log" common
</VirtualHost>