Welcome to the WhichCMS Workshop WhichCMS Workshop • Present CMS solutions as an option between static and code orientated web development • Research survey: – 2, 4 and 6 month surveys via newsletter subscription • Research outcomes: – Track participant interest in various CMS options – Track participant interest in coding – Analyse impact on current study path WhichCMS? Drupal Joomla! ExpressionEngine WordPress Concrete5 Tumblr Level of complexity & Learning curve What is Web 1.0? • Static sites, HTML & XHTML • Content ‘embedded’ like text in a word processing document • Site development based on tables not CSS (cascading style sheets) • Sites were like online brochures • No dynamic interaction with/ from the audience – Comments – Posts – Uploading content etc What is Web2.0? • Web2.0 actually equates to just a handful of enabling technologies and websites… Wikis Blogs, RSS, Tagging, Podcasts, AJAX, Mashups • It has provided a ‘self-service’ web where ease-ofaccessibility is quick, painless, easy and (normally) free. Go to site > sign-up > use What is Web 2.0? • It has enabled a read/write web for the masses. – Rather than what used to be a read-only web for the majority of people in Web 1.0 Web2.0 is… What is a CMS? • Content Management System (CMS) • CMSs allow users to easily create and manage websites without previous technical knowledge. • CMS allow users to add content, upload images and files and perform general maintenance functions on a website. What is a CMS? • Ability to move, add, edit and delete webpage content • Ability to upload or remove images • Choose from a variety of design templates • Create website navigation • Create text and image links • Embed videos and slideshows What is a CMS? Icons via – freeiconsweb.com Static vs. Dynamic Static html document Icons via – freeiconsweb.com Dynamic CMS What is a CMS? Dynamic sites Files Apache software web server Content owner MySQL database Email Browser Presentation What is Apache? • Apache is primarily used to serve both static content and dynamic Web pages on the World Wide Web. • Many web applications are designed expecting the environment and features that Apache provides. • In 2009 it became the first web server software to surpass the 100 million web site milestone Icons via – freeiconsweb.com What is MySQL? • MySQL is a relational database management system that has more than 6 million installations • MySQL stands for "My Structured Query Language". • The program runs as a server providing multi-user access to a number of databases What is MySQL? Scripting vs. Programming • Scripting requires a ‘host’ application or interpreter. – The host effectively carries out all the processing – Examples are HTML, PHP, .net, Ruby, Python, JavaScript. • Programming does not require a host application and can run on its own – These are compiled self executable files – Examples are and .exe file or application What is PHP? • PHP is a general-purpose scripting language that is especially suited for web development. • PHP originally stood for personal home page. • April 2007, over 20 million Internet domains were hosted on servers with PHP installed • Used with the MYSQL database • Popular amongst blogging and small CMS community sites What is PHP? • PHP primarily acts as a filter, taking input from a file or stream containing text and/or PHP instructions and outputs another stream of data; most commonly the output will be HTML. • Has security issues • Current Version 5 PHP Test Hello World What is PHP? • Significant websites are written in PHP including: – Facebook – Wikipedia (MediaWiki) – Yahoo! – MyYearbook – Digg – Joomla!, Drupal, WordPress – YouTube and Tagged. Your first PHP script! <?php $Greeting = 'Hello World!'; ?> <html> <head> <title><?php echo $Greeting; ?></title> </head> <body> <?php echo $Greeting; ?> </body> </html> Other web scripting environments • Ruby on Rails • Python – Google uses it! • Perl • Active Server Pages – ASP (Microsoft) • ASP + the .net framework - ASP.net (faster than ASP) • Java Server Pages - JSP • ColdFusion Hosting a CMS • Local environments – MAMP - Mac – WAMP - PC – XAMPP - Mac, PC & Linux – LAMP - Linux • External Internet Service Provider (ISP) environment – PHP supported – Wizard like support with cPanel Hosting a CMS User MySQL database PHP Apache web server } or or or Apache + MySQL + PHP bundled software Internet MAMP – local host • www.mamp.info WAMP – local host • www.wampserver.com XAMPP – local host • www.apachefriends.org/en/xampp.html LAMP – local host • http://wiki.debian.org/LaMp phpMyAdmin • A free software tool intended to handle the administration of MySQL over the World Wide Web • Provides an easy interface to create databases, delete, administer phpMyAdmin Putting it all together.. locally User Files uploaded locally Database creation and management XAMPP Internet Content Management System Putting it all together.. externally User Files uploaded via FTP application Database creation and management Hosted Environment Internet Content Management System ISP help cPanel – external ISP host • cPanel is a unix based web hosting control panel that provides a graphical interface and automation tools designed to simplify the process of hosting a web site. Choosing an ISP host • Does the host support you in creating a database? – cPanel – phpMyAdmin (creation of databases) • Does the host offer you the ability to set up more than 1 database? • You will need FTP access to upload files • Costs range from $3 – $10 per month depending on options • www.hostgator.com $9 per month What is Open Source? Community of content/ system designers Icons via – freeiconsweb.com CMS Under license and conditions offered FREE Internet What is Open Source? • Open source is an approach to the design, development, and distribution of software, offering practical accessibility to a software's source code. Source (Wikipedia) • The term open source gained popularity with the rise of the Internet, which provided access to diverse production models, communication paths, and interactive communities. • Provides the software under license for free. • The principles and practices are commonly applied to the peer production development of source code for software that is made available for public collaboration Other Open Source examples • Content Management Systems – Drupal – Joomla! – Wordpress • Online applications – OpenOffice, AbiWord (word processing) – Wikipedia – Redmine (project management) • Software – – – – Linux operating system Audacity (sound) Blender 3D (3D modeling and animation) FileZilla (ftp client) Uploading/editing you site • Locally – via copying files with Finder or Windows Explorer into the htdocs folder in site your local host application as MAMP, WAMP or XAAMP Uploading/editing you site • Remote via FTP (File Transfer Protocol) – Transmit, Fetch, CuteFTP 10 Things To Consider When Choosing The Perfect CMS Who are you choosing the CMS for? • Are they technical or non-technical users? • How many people will need access? • Do you need to be able to control what content individuals or groups can change? • How high of security will they need? source: Website Owner’s Manual (Boag 2009) What are the project needs? • What type of website is it? • What tasks is the client going to need to be able to accomplish on their own? • How do these tasks equate to needed features • What is the process for posting content? • Will it be reviewed/ edited? plugins/ extensions, etc source: Website Owner’s Manual (Boag 2009) 1. Core functionality • Not all Content Management Systems can – create, delete, edit, format and organizing pages • There is no guarantee that such functionality will be presented in an intuitive way • Consider carefully the basic functionality you need. • Even if you do not require the ability to structure and organize pages now, you may in future source: Website Owner’s Manual (Boag 2009) 1. Core functionality • Not all blogging platforms, for example, allow the owner to manage and organize pages in a tree hierarchy. Instead, individual “posts” are automatically organized by such criteria as date and category. 2. The editor • The majority of content management systems have a WYSIWYG editor • The danger of traditional WYSIWYG editors is two-fold – Content providers are given too much control over the design. They are able to customize the appearance of a page so much that they undermine the consistency of the design and branding. – In order to achieve this level of design control, the CMS mixes design and content. source: Website Owner’s Manual (Boag 2009) source: Website Owner’s Manual (Boag 2009) 3. Managing assets • Management of images and files is badly handled in some CMS’. Badly designed systems can frustrate users with poor accessibility and usability • CMS should provide basic image editing tools, such as cropping, resizing and rotating • Uploading and attaching PDFs, Word documents and other files. How are they displayed to end users? source: Website Owner’s Manual (Boag 2009) 4. Search • Approximately half of all users start with search when looking for content. • Thoroughness: does it index the entire content of each page? What about attached files, such as PDFs and Word, Excel and PowerPoint documents? • Speed: some search engines can take ages to return results. This is especially common on large websites. • Scope: can you limit the scope of the search function to a particular section of the website or refine search results once returned? • Ranking: how does the search engine determine the ranking of results? Can this be customized by either the website owner or user? source: Website Owner’s Manual (Boag 2009) 5. Customization • You need a content management system that allows flexibility in the way content is retrieved and presented • For example, can you retrieve news stories in reverse chronological order? Can you display events in a calendar? Is it possible to extract the most recent user comments and display them on the home page? • Flexibility makes a CMS stand out • Can you control the design aspects? source: Website Owner’s Manual (Boag 2009) 6. User interaction • If you intend to gather user feedback, your CMS must provide chat, forums, comments and ratings • At a minimum, you will need to be able to post forms and collect responses. Can you customize fields or does that require technical expertise? • Also ask what tools exist for communicating with customers. Can you send email newsletters? • Do you need to be able to reset passwords, set permissions or export user information to other systems? source: Website Owner’s Manual (Boag 2009) 7. Roles and permissions • As the number of content providers on your website increases, you will want more control over who can edit what. For example, one group may need to be able to post job advertisements but not add content to the home page • You need a CMS that supports multiple roles. This can be as simple as having one “Editor” and one “Approver” • Enterprise-level content management systems support entire workflows in which page updates have to go through a series of checkpoints before going live source: Website Owner’s Manual (Boag 2009) 8. Versioning • Being able to revert to a previous version of a page allows you to quickly recover if something is posted by accident • Some content management systems have complex versioning functionality that allows you to roll back to a specific date • Not really used by authors source: Website Owner’s Manual (Boag 2009) 9. Multiple website support • More and more content management systems allow multiple websites from the same installation • One install, multiple domain names • Set up and module configuration takes time • Mobile Web, you may want to create a separate website especially for mobile devices. Content will need to be pulled from your current database into your mobile site source: Website Owner’s Manual (Boag 2009) 10. Multilingual support • Your website may specifically target the domestic market, or you may sell a language-specific product • Google translate is not a quality translation • Requires double or more entries of content by a native speaker/writer • We live in a multicultural society in which numerous languages are spoken. source: Website Owner’s Manual (Boag 2009) cmscritic.com cmsmatrix.org cmsreport.com cmsreview.com cmswire.com independentdesign.com.au/whichcms/ Tumblr Tumblr – Overview • Tumblr is a minibloging tool, great entry level with no technical ability necessary • Offers rich media tools such as photos, video support, and feeds • Blog appears as a digital scrapbook • Tumblr combines the quick Web-posting and mobile-posting with standard blog features such as a choice of page themes, rich-text formatting, and your own URL. Entries get their own pages, but they're not longer than the post on the main page. Tumblr – Advantages • Site is fully hosted • All posting happens at the Dashboard, where there are options for Text, Photo, Quote, Link, Chat, and Video • Ability to make custom theme very easy • Great community feeling and sharing of information • Completely free Tumblr – Disadvantages • Don't be fooled by the Chat button—it's just a text entry where you're supposed to paste text from a chat dialog you had or saw: The post will be formatted to look like a conversation. • These pages don't have the comment capability you'd find on a fuller-fledged blogging service. Comments need to be done via an external provider – Disqus Tumblr Showcase • http://www.tumblr.com/popular Tumblr Training • http://speckyboy.com/2008/01/30/ a-rough-guide-to-the-excellent-tumblr/ • http://www.webmonkey.com/tutorial/ Get_Started_With_Tumblr • http://www.tumblr.com/docs/custom_themes • http://www.tumblr.com/themes/ • http://www.tumblr.com/popular Concrete5 Concrete5 – Overview • Concrete5 is best for non-programmers that want a static website. In other words, a finite set of Web pages like: About, Contact, Services, etc. • Its real attraction may be in-page editing of content. All you need to do is click some content and a popup allows you to change its contents. Concrete5 – Advantages • Great for client to edit ‘live’ pages • Has versionising • Extremely simple to use • It handles links, images, and all sorts of different “blocks” of content wonderfully. • Blocks can be moved around easily. • Themeing is extremely easy Concrete5 – Disadvantages • Very new, version 5 announced in 2008 • Limited community, 9000 registered members • Only about 40 additional plugins • No central content tracking Concrete5 Showcase • http://www.concrete5.org/about/showcase/ Concrete5 Training • www.vimeo.com/user997513 • http://c5mix.com/tutorials/ ten-great-concrete5-tutorials • http://hungred.com/how-to/ tutorial-making-a-template-for-concrete5/ Wordpress Wordpress – Overview • The number 1 Blogging tool • Wordpress is technically a blogging system, but it has grown into a formidable CMS by adding good page management features, media uploading and management, as well as numerous other features that help it to manage content. Wordpress – Advantages • Wordpress is best for bloggers, but is certainly capable of much more. • Plug and play interface • Easy operations • It has everything it needs for what most people want and need for blogging: Posts, comments, media, links, simple pages, users, etc. • Great for simple sites; many, many, many free plugins. Wordpress – Disadvantages • Limitations for bigger sites and when there are needs for more complicated kinds of content. • Can be difficult to adapt to a non-blog CMS Wordpress Showcase • http://wordpress.org/showcase/ Wordpress Training • WordPress.com 2.7 Essential Training – Lynda.com • http://www.learnwebdevelopment.com/introduction-towordpress.html • http://www.lynda.com/home/ViewCourses.aspx?lpk0=368 ExpressionEngine ExpressionEngine – Overview • ExpressionEngine is a flexible system that allows you to publish any number of different streams of information with custom fields. • It comes in three version: free core version, personal, and commercial • ExpressionEngine is best for those that want a featurerich (blog, dynamic content, static pages, etc.), but have a little programming knowledge ExpressionEngine – Advantages • While EE does not have a huge development community for modules, they do provide fantastic support through their forums • Custom fields can be set up and controlled by very specifically by the designer • Another impressive thing is how they have implemented their templates (themes); it does not take a die hard programmer to build a custom theme ExpressionEngine – Disadvantages • The system can be frustrating at times in that there are menus buried in menus buried in menus. It can take awhile to find what you’re looking for. • When first learning the system of weblogs/templates/categories it can get confusing and seem counter-intuitive. ExpressionEngine Showcase • http://expressionengine.com/showcase/websites/ ExpressionEngine Training • Video training – eescreencasts.com • Blog – jambor-ee.com • Blog/video training – eeinsider.com • Blog – proeetuts.com • Ebook – train-ee.com • Blog – devot-ee.com Joomla! Joomla! – Overview • Joomla! is a large contender in the open source CMS market. • It has won several awards, and many big websites use it for their management. • It manages all different types of content well like simple text, photos, music, videos, or documents. Joomla! – Advantages • Joomla! is best for developers and those that need a powerful, extensible CMS • It is a solid offering that has a lot of functionality, while not being overwhelming on the first login • It can accomplish a lot with only the core, and is especially adept when you consider all of the third-party extensions that are available for it. • There is a huge community backing Joomla! so the good news is you generally can get fast help on their forums Joomla! – Disadvantages • Developing themes may not be as easy when compared to other systems • Joomla! has a large community devoted to it, with a million module creators, but that can get frustrating to find the right one for your needs • Sometimes you have to resort to using commercial modules which can cost a lot of money Joomla! Showcase • http://community.joomla.org/showcase/ Joomla! Training • http://www.joomlatutorials.com/ • http://www.myjoomlacast.com/ • http://www.lynda.com/home/ DisplayCourseN.aspx?lpk2=474 • http://www.learnwebdevelopment.com/ intro-to-joomla.html Drupal Drupal – Overview • Drupal is one of the biggest and most well known open source CMS solutions • It is usually used to run community web portal types of website • It has many features and modules, it can be made to run almost any kind of website Drupal – Advantages • Because of Drupal’s vastness, it can be made to run almost any kind of website • There is a large community, so finding help or modules should not be a problem • In short order, one can have a very feature-rich site up and running • Drupal also makes it very easy to keep custom modules, themes, and the core Drupal files up-to-date which is a huge bonus • It has thousands of modules that can add on to its functionality Drupal – Disadvantages • Drupal can be intimidating to just logon to the system as an administrator • There are so many options and configurations and strange names like taxonomy that you don’t know where to start • Theming Drupal can be a large challenge if you are not a programmer Drupal Showcase • http://www.drupalsites.net/ Drupal Training • Drupal Essential Training – lynda.com • Build Websites With Drupal! – lullabot.com/ – Site Building With Drupal – Administering Drupal – Theming Basics For Drupal – Learning CCK – Learning Views • Video training – learnbythedrop.com www.packtpub.com/content-management