Category Archives: Cascade Server

CMS template training notes

  • Finding your stuff
  • Editing an existing page
    • “Inline Metadata” -> title, navigation title, description, review date
    • Main content vs secondary
  • Uploading files (esp naming conventions)
  • Creating a page
  • The “Needs Review” area
  • _info: navigation and more
  • _contact: contact info and hours

Cascade User Conference – summary

I wrote all my live notes on my personal blog, mostly because I can actually connect to that with the Android WP app, which I use on my tablet. But the summary properly belongs here.

Session highlights

Some upcoming features: modules, which I’m still not clear what those will do, although it sounds like an image gallery/slider is among those planned; auto-saving drafts; more contextual editing; customizing the options in TinyMCE; site-wide link checking. (Note: it looks like “Check for broken links” when saving after editing isn’t checked by default the way we have it now. Should it be?) Better reporting. (I would like to look into existing reporting options.) HTML5 support, which is “coming soon”, mostly consists of support for new tags. When they upgrade to the latest version of TinyMCE, it’ll also have dropdown options for the block level HTML5 tags.

Template XSLT formatting – you can apply a format to a template to do post-processing after the whole page has been generated. Makes it possible to get at the whole XHTML page, which is sometimes nice for accessing sidebars etc. This may not be needed if using an approach similar to UCDavis’ modular content model.

Web services – we could do quite a bit with web services to read/write to Cascade. My thoughts: create a “web services” user so nothing is tied to a specific user; inclined to keep all web services scripts separate from CMS output, unlike the way partials are set up. Possible uses: “bug all page managers,” synchronize catalog with CMD, same thing with calendar items. With that last one may need some combining with R25 info. Had my instincts about web services & calendars confirmed later with the calendar presentation, where the presenter uses web services to auto-publish/update.

UCDavis modular content model. The general idea: a generalized content type with fields to add data definition (structured data) blocks in specific parts of the page. An index block, similar to the “calling-page” block I learned in training, then works out which blocks have been included in order to place correctly and include the correct CSS/JS for those blocks.

Magazines: presenter’s college gives each issue its own look and feel. The magazines have their own “Site” in Cascade, and each one has its own config set. It seems like we could use this concept to do some RWD experimentation and practice coordinating with print.

Calendars: not a ton of useful info in this one, but confirmed some of my earlier ideas. One interesting thing to note: they use Cascade to power digital signs.

oXygen Editor: need to download bsf.jar to be able to do JS inside of XSLT. There’s a whole bunch of other things that I want to try with this tool to make life easier.

Vassar creates a backup (?) of their whole Cascade site in a MySQL database, partially for running more sophisticated reports. Among other things, she gets a daily email of what pages were published, listed by site, with new pages highlight, and links directly to the CMS. Think we could do this with web services. Also, their alumni site is a mix of Cascade and Harris, although that requires putting some assets on a secure site to avoid mixed content errors.

Some general/overall notes:

Recommendation to use hosted jQuery library instead of our own, with a fallback to a local version. Many people have those external libraries cached from other web surfing, should make page loads faster.

Think we need a slightly different server setup. At least two presentations mentioned having a “common” or “assets” site to store common CSS/JS/images and templates/blocks/formats, plus several different production, development, test setups that I heard about.

At least two presentations mentioned using PHP includes for some of the site navigation — the site-wide stuff, where you’d want to be able to change it and not have to republish everything. Vassar does quite a few pieces that way. Is that something we want to look at or not?

A site migration spreadsheet, with statuses, users, etc. Useful both for tracking and for figuring out better roles and groups.

Looks like most folks use index blocks to auto-generate navigation, with a checkbox in the page to include or not, defaulted to NOT include. Seems to keep people more organized.

I just joined the Higher Ed Cascade Listserv. I have cards for Jessica & Craig at UCDavis, and Megg at Vassar.

Getting a rhythm down

I’m starting to get the hang of setting up structured content in Cascade! It’s a PITA, but can be routinized.

Experiment in oXygen to get the gist of what I want.

Figure out which things should be in the data definition and which things should be in the metadata. (It irritates me greatly that these two pieces are separate from one another.)

Set up the data definition.

Set up the metadata set.

Set up the configuration set. Have discovered that I really like the “calling-page” index block that I learned in training for the DEFAULT area. FWIW, have also discovered that I can’t get the XML configuration working in Global. ๐Ÿ™ So I have a testing “Site” set up on the dev server for doing the initial version of all of this. Which has the added benefit of keeping separate from all the existing site cruft.

Set up the content type.

Set up the folder & create the first item.

Copy the XML into oXygen, edit the XSLT to match the final product. Copy the XSLT into a format, edit the configuration set to apply the format. Tweak as needed.

If I need a list of items, which so far is always, create an index block of one sort or another, grab the XML, do XSLT in oXygen, etc. Create a page to hold the list, add block to “generated content” area, apply format.

Copy data definition XML and final XSLT files back to local drive.

Go into Global of dev server and do all that setup again, this time, copying and editing the relevant existing configuration set (to get the right template & all that). Tweak everything again as needed until it looks right. Save files locally again.

Once more, with enthusiasm…this time in the correct location on the live server. (Or if I need to show something before creating it in someone else’s folder, set up a folder & pages inside webresources.) Send for review, tweak, etc.

When everything is final, create the asset factory. Make sure to make the base item inside whatever _internal folder applies AND to set that item to not be indexed (in case you’ve got a content type index block). Asking aloud: if the base item isn’t set to be indexed or published, does that mean that new items created from it aren’t either? Hm.

Wondering also about adding index block pages to a publish set. Should that be part of the process, or should I leave it to content creators to publish the index when they publish the item? (Alternatively, any way to trigger publishing?)

I should probably just copy all of that into the team wiki and clean it up a bit. Pretty decent documentation, if I do say so. It’s convoluted, for sure, but not totally horrible. So far I’ve managed to avoid Velocity, which I found actually more annoying than XSLT. I didn’t think that was possible, but there it is. Mainly, I’ve worked out converting dates via an external XSLT that’s bundled in the common folder. (It doesn’t work at all locally, and I can’t for the life of me figure out why.) We’ll see what happens when I try to actually create a calendar.

decrufting

I’m thinking that’s actually what I need to focus on inside Cascade. There’s a lot of cruft, a lot of built-up weirdness. I’m not quite sure how to start with that, except maybe by using the Sites feature and rebuilding the main site entirely from scratch. (Eeeep.) Which involves some planning: what pieces of content are native to Cascade? Which ones “live” elsewhere? Should the elsewhere bits be imported as actual Cascade assets, or just displayed & linked? What kinds of content are being created? How can they be made easier? Etc., etc.

Analytics help (some), although partially by pointing to the need for some content that doesn’t yet exist. Really, that clear explanation of who we are, what we do, what the (current/prospective) student might do (either while here or afterwards).

The catalog; the “academics” page; the “studies” page. Those are the core of what’s used on the site. (The main site, anyway. My.e.e, admissions.e.e, library.e.e, and blogs.e.e — those have their own issues. The most important bit in blogs is academic computing’s site; admissions needs to come back into the main site (IMHO) and my.e.e is a whole other thing.)

Speaking of which, I really need to get better data on the admissions site.

Cascade “Bootcamp” Tidbits

To upload a bunch of images (or other files) at once, go into the folder, select Tools > Zip Archive. etc. etc. Works quite nicely!

Inside CSS, can have Cascade manage locations of referenced images: url(‘[system-asset]/_files/images/bg01.jpg[/system-asset]’) and so on. (But in “Edit > System” must check “Rewrite links in file”)

I really wish there was a tooltip next to “system name” when uploading a file that actually SAID that it’ll take the file’s name if you don’t fill it in.

Thinking that the switch to Sites should NOT be done automatically, at least not for the main site. So many things we could be doing so much better.

Is there any way to make the text editor window automatically just a bit bigger w/out going fullscreen?

So in Sites (vs Global) a Content Type is required?

I would really like it if the Data Definition builder forced the no spaces in identifiers. Because seriously that’s the third time I’ve created a data definition with a space in a field ID, and I don’t realize it’s broken until I go to actually create some content & get a damn error.

I really wish this was three (?) half-days that started at a reasonable (PDT) hour and ended at a reasonable (EDT) hour. Getting up at 5:15 is catching up with me.

Really thinking about how to generate a dynamic side navigation rather than having people edit XHTML blocks for navigation.

Still don’t quite get when you’d want to set blocks in the template vs configuration set. Template: that block will ALWAYS be in the same spot in the template. Config set: you might want to change what goes in the various system-regions of the template.

Configuration set can include multiple outputs for individual pages. (That PDF etc that Susan was on about.) And on a page that’s a listing of things, that could theoretically include an RSS feed of those things. No need for two separate files.

When do you use Velocity vs XSLT?

Day 2

Dynamic Fields in the metadata sets – why these vs data definition fields? He explained how they’re different, but not why.

Metadata fields, Visibility “inline” = on the actual content creation page.

We’re not using the “link” content type often enough, as far as I can tell. (My.e.e probly being the prime example.)

Most of today’s stuff was either a repeat of yesterday or things I’d already worked out. I would like to take a look at the other kind of index block, though. And I’m definitely thinking about how to create a non-manual navigation.

Workflow still doesn’t make any sense.

Something I tweeted today: What [redacted] does well, from I can tell: speedy for visitors, easy to see what content is in your site, fine-grained access control.

A related tweet from @eaton: Drupal = rich content modeling, WordPress = great OOB workflow for river of news, Rails = better for pure RESTful apps/APIs?

And the rich content modeling is what I’m trying to get out of Cascade. I would push for Drupal instead, but I don’t know how to get it to do the things that Cascade does really well, which I think are all really important.

Hm.

Let the system do what it’s good at

I can’t believe nobody ever thought to just use the image data to build an image gallery. Seriously? It took me a grand total of like 20 minutes, plus another 20 of screwing around trying to find the gallery script that was already in the system. (Which I don’t like, but that is another story.)

Learning by osmosis

I have all these printouts posted in my office that Linda (former interim designer?) had printed out from Hannon Hill & some schools about how Cascade works. They’ve just been kind of background noise on the wall; I look at them from time to time, but not too in-depth.

But today I was braiding my hair to get ready for this lunchtime exercise class, and I was looking at one of the printouts, and something about “block chooser” leaped out at me. And I remembered that in data definitions, you can let most fields allow multiple entries. And then I realized that you could probably do that to include multiple RSS feeds on a single page. (Or even to create a page with just one, but to make sure that it got the right template etc.) I guess I’ve been looking at that every day for weeks and only today did it click together.

So: hurray!

making things easier for myself

Go figure: I used the instructions I wrote last week on how to create a content type in Cascade to go through the process of backing up some work that I’ve done. (It’ll be wiped at the end of the week during a system upgrade.) And I think I got everything. Next up will be actually re-creating the darn thing. I really do love it when my own documentation works as intended.

testing…

So I’m running into the main problem with Cascade, which is also the main strength: it’s not especially dynamic. Adding a randomly selected item? It only selects that item when the page is published. So not on each load. Which is why people do ridiculous things with JS? (I know from doing ridiculous things with JS.)

We’re getting lots of requests to add blog feeds to people’s Cascade pages. Which is all well & good, there’s even a block type to handle it. Then it came to me: will it update the page when there’s a new blog post? You’d think so, but I honestly have no idea. So I’m adding this post to check a test page that has this blog’s feed as a block.