Vassar College uses Cascade as a content repository to publish over 100 websites. They have developed best practices like using a "sample site" template that can be copied, including files to repurpose content across sites, and database publishing to share things like news and bios. They also utilize site variables, custom reporting with charts, and daily emails to track changes made in Cascade.
Outputting Their Full Potential: Using Outputs for Site Redesigns andDevelo...
CMS Lessons Learned at Vassar by Megg Brown
1. Lessons Learned
Site Best Practices, Content Repurposing, and Custom Reporting at Vassar
Megg Brown, Assistant Director of Web Development, Vassar College, Poughkeepsie, NY
2012 Cascade User Conference
2. Outline
Introduction
Quick facts about Vassar and how
we’re structured
Sample Site
The site we copy in Cascade
Content Repurposing
Include files
Database publishing
Site variables
Reporting
Email
Charts
3. About Vassar College
Vassar College is a highly selective,
coeducational, independent, residential
liberal arts college founded in 1861
Located in Poughkeepsie, New York
80 miles north of New York City
2,400 students
290 faculty
4. Web Development
custom designs
each site
Located in Communications
7 FTE
Director
Assistant Director
Web Designers (4)
Web Developer
Each design is unique
Over 100 official websites
maintained with Cascade
6. Cascade as content repository
Our approach has been to treat Cascade as our content repository
We publish what you need, where we need it
Database publish was huge for us
We get to decide what it looks like, including under the hood
We developed the HTML we want in our sites
We set up include files so we don’t have to publish too much when we have changes
We prefer a “Push CMS”
It works for us
If something happens to the CMS server it won’t take down the published sites
We can restrict the CMS server to campus
7. Have a “Sample
Site” in Cascade
A site ready to copy to create a
new site
Saves you from starting from
scratch
Designer builds HTML/CSS
outside the CMS
Set up site in Cascade with
content before design is ready
Merge the two to produce the
launchable site
9. Structure of
“Sample Site”
If we had to do it over again
4 sites work together to make a We would have two sites:
1) shared assets, published to secure site
launchable site
2) the site-specific assets
Assets outside Cascade
Shared across sites
A note about site exports
Secure domain for hosting
Have your site as self-contained as possible
published files displayed inside
if you plan to share examples.
Cascade (CSS, images)
To import a site connected to assets in multiple
Assets used inside Cascade sites, the other sites and assets need to exist. So
if we share an example we would need to
Shared across sites provide an export of each site used.
Site-specific assets
10.
11. Templates have a
consistent
structure
As little HTML as possible
html5
Regions in sets of 3
DEFAULT-PRE
DEFAULT
DEFAULT-POST
Region assignments:
Site-wide in Template
Section-wide in Configuration
(created as needed)
Page-specific in Page
PHP for site name, hide display
name on homepage
12. Templates have a
consistent
structure
As little HTML as possible
html5
Regions in sets of 3
DEFAULT-PRE
DEFAULT
DEFAULT-POST
Region assignments:
Site-wide in Template
Section-wide in Configuration
(created as needed)
Page-specific in Page
PHP for site name, hide display
name on homepage
13. Templates have a
consistent
structure
As little HTML as possible
html5
Regions in sets of 3
DEFAULT-PRE
DEFAULT
DEFAULT-POST
Region assignments:
Site-wide in Template
Section-wide in Configuration
(created as needed)
Page-specific in Page
PHP for site name, hide display
name on homepage
14. Templates have a
consistent
structure
<!--#START-CODE<title>#END-CODE-->
As little HTML as possible
<!--#START-CODE<title>#END-CODE-->
<system-page-title/>
<system-page-title/>
<!--#START-CODE
html5
<!--#START-CODE
--
<?php echo $_SERVER['V_CONTENT_SITENAME']; ?>
Regions in sets of 3
<?php echo $_SERVER['V_CONTENT_SITENAME']; ?>
- -Vassar College</title>
Vassar College</title>
#END-CODE-->
DEFAULT-PRE
#END-CODE-->
DEFAULT
DEFAULT-POST
Region assignments:
<!--#START-CODE <?php if($_SERVER['PHP_SELF']!
<!--#START-CODE <?php if($_SERVER['PHP_SELF']!
=$_SERVER['V_FOLDER_PATH'].'/index.html'){ ?>#END-
=$_SERVER['V_FOLDER_PATH'].'/index.html'){ ?>#END-
Site-wide in Template
CODE--><h2 class="pagetitle"><system-page-display-
CODE--><h2 class="pagetitle"><system-page-display-
name/></h2><!--#START-CODE<?php } }?>#END-CODE-->
name/></h2><!--#START-CODE<?php ?>#END-CODE-->
Section-wide in Configuration
(created as needed)
Page-specific in Page
PHP for site name, hide display
name on homepage
21. Administration
Area of Sample
Site
What we don’t use:
Workflow
We prefer workflow to take place outside
the CMS.
Publish Sets
When testing upgrades of Cascade we
need to remember to disable them.
Connectors
We have not yet explored Connectors.
22. Configuration Sets
We try to have as few as possible, but we do have sites
with a set per section
Content Types
Now being used on all new/upgraded sites
Data Definitions
Used in some websites, all announcements, all bios
Metadata Sets
All sites set with Display Name and Title inline
We try to use Custom Metadata over Data Definitions.
23. Destinations
and Transports
Each site is set up to publish
Announcements to MySQL
MySQL database for reporting
Database named CMS Audit
“Leave this checked”
Live website
Test website
When we set up a new site we add
groups to the Destinations --
common step we missed
For Transports, all sites are
assigned a unique Site ID from a
table we maintain in MySQL
24.
25.
26.
27.
28.
29.
30. .htaccess and
.htaccess-staging
Two files
one for live website, publishes to
subdomain:
samplesite.vassar.edu
one for test version, publishes to
subfolder:
test.vassar.edu/samplesite/web
Rewrite rules to match URL for
Cascade “Live” link
Contains Server Variables
Paths and Settings
Content
31. .htaccess and
.htaccess-staging
Contains Server Variables
Paths and Settings
Site ID
Subfolder path (staging version)
Include path
Content
Site name
Box number
Office location
Office URL (deep link in campus map
for office location)
Office phone
Office fax
Office contact email
Contact information used by the
announcements system
32.
33. index and template
index
Assigned to the standard template
Copied to make new pages
Once the site is filled in with
content we determine if the
homepage warrants its own
template
34. index and template
template
A sample page with examples of all
the HTML we need the CSS to
accommodate
Does not get removed
Does not get indexed, but is
published
Used when we need to tweak and
test the CSS
35. index and template
template
A sample page with examples of all
the HTML we need the CSS to
accommodate
Does not get removed
Does not get indexed, but is
published
Used when we need to tweak and
test the CSS
36.
37.
38.
39. site-xml.xml
Publishes XML of the site,
similar to the index block for use with a PHP script
that parses the XML into the site navigation
40.
41.
42.
43.
44. Users see the assets folder, but can only publish nav; the rest is
hidden
They can add files to the “docs” folder
They also don’t see the .htaccess files or the template page
45. Content
Repurposing
Include files
College Catalogue
Student Handbook
College Regulations
Benefit
When changes are made the
updates appear on each site; no
need to copy-and-paste updates
across multiple sites
Accuracy: pages remain up-to-date,
refreshed with each new edition of
the source publication
46. Catalogue content
included in each
academic site
Catalogue content updated in
by the Registrar
Courses updated in Banner
All other content in Cascade
How it works
A line of PHP is all we need to
include each section in another site
<?php
@readfile(“
http://catalogue.vassar.edu/includes/departmentpages/BIOL.php
”);
?>
47.
48.
49.
50.
51.
52.
53.
54. Content
Repurposing
Database publishing
News
Press releases published from
Communications fed to sites by
keywords
Departments post their own
announcements
Both rolled together to show
headlines and news in site design
Bios
Main content and custom
metadata published to MySQL
from Cascade
Table of data from Banner
Table of data to override names
and titles when needed
55. Multiple bios
across sites
Faculty each have a home
department
They can also teach in multiple
programs
We can display the same bio on
each site
56. Multiple bios
across sites
Faculty each have a home
department
They can also teach in multiple
programs
We can display the same bio on
each site
58. Reporting
vcSiteIDs
Stores the Site ID numbers
Display name and Title
URL
Category, date launched (designed),
and designer are available to show
history of a site
59. Reporting
archive
Captures all the information for that
day, one record per asset
Includes content
Does not include custom metadata
We may add a field with an array
of all custom metadata
Used for reporting over time
60. Daily Report
First report developed
Emailed every morning
Recap what was published from
the CMS the previous day
Pages only
Grouped by site
Added icons to distinguish between
announcements and pages
Added search results from other
sources
I'll cover a lot of ground going over Sample Site and how we've set it up. All the information is available online at webdesign.vassar.edu/csuc12
... we are ambitious in our web design strategy
What has worked for us is to treat Cascade as a content repository. I like Cascade because we can tell it to publish whatever HTML we want.
Cover everything about other 3 sites, then the rest is on Sample Site Communications: Site used for external assets Central scripts, images, and include files Legacy location for scripts Secure Comm Site used for external secure assets CSS and images For viewing published shared assets inside Cascade Ideally all shared assets/scripts to be in moved to this site _internal
Configuration sets -- some sites are set up to publish an HTML version as well as a imple include file (catalogue, handbooks)
Now that we ’ve gone through the pieces we have to work with, we can dive into howwe have the actual pages set up.
Folder per year Page per announcement We set up new folders every year, with a placeholder, saves user from having to move a copy to a new folder Removed folder if they want it removed from the site entirely Otherwise start date and end date are used to archive announcements
Include Files and Database Publishing to take advantage of MySQL. I ’ll start with Include Files
Every department and program has catalogue content in its site. The catalogue is updated by the Registrar. As changes are made all the sites are up-to-date because the content is included. We just use a little bit of PHP . Which includes this plain HTML of the courses into the page.
We can only single-source so much.... we need to find out what users are adding, updating, and more importantly, what they aren ’t updating.
Lead to example of include file use
But how do we tell who is updating their bio, and more importantly, who isn ’t??
But how do we tell who is updating their bio, and more importantly, who isn ’t??
Backup slide on number of sites/categories of sites.