Labels

accessibility (2) ADF (1) archiver (3) cmu (1) contributor (13) cookie (1) DAM (3) date (3) download (3) dynamic list (4) ephox (5) fatwire (1) fck (1) filters (1) folders (4) headers (2) IBR (3) ImageAlchemy (3) java (4) javascript (2) layout/template (4) link (6) locale (2) multilingual (1) rendition (3) replicator (4) rules (1) schema (1) search (11) sites (1) sitestudio (24) ssp/sspu (5) SSUrlFieldName (2) stellent (4) timezone (1) urm (1) weblogic (1) workflow (2)

Thursday 11 December 2008

SiteStudio10gR4 - Region Definitions & Region Templates

Forgive me for back-dating this post but I wanted to mention my excitement over the upcoming release of SiteStudio 10gR4. There was a webcast/webinar/webthingy where Oracle announced a new version (hopefully due in Jan09) where the main new features are region templates and region definitions.

Currently all layouts contains content regions that are defined and styled by settings in the layout. Editable elements in the region are also controlled in the layout. It leaves heaps of non-web code on the page and it is awkward to customise the display of content items. My real-world example is trying to maintain identical element settings in over 40 separate layouts, phew.

The definition of a region is now a separate "Region Definition" xml file. It has all the usual options (edit, info, approve, view differences) plus it now has the element definitions. Element definitions have been expanded, like allowing people to insert Flash as easily as inserting an image. It's separate to layouts, so in my 40-layout example all I would need to do is update the one definition file, instead of each of the 40 layouts. The region definition also controls the assigning of selected region templates.

The "Region Template" is also a separate xml file. It controls the presentation of content inside the region. An example they gave was a template that took a static list content item and displayed it as tabbed panels. Applying a different template changed the list into a flat page of heading & paragraphs. Hmmm... this looks ideal for creating navigation that is not section-based. Yay! They had another example that loaded a dynamic list query of images into a flash object. All the contributor had to do was change the query. Neat.

Other points of interest:
* Easy choice of FCK or Ephox editors
* Override the chosen editor's config or css, per element
* More element types (querys, dropdowns etc)

This brings some real power to contributors and yet it gives tighter control to designers. Impressive! I can't wait.

*****
UPDATE - Oooh oooh the new docco is now available on the Oracle site... it says they updated the LinkWizard! Yay! I can't find a picture... but it seems to work the same? Bah!

Tuesday 9 December 2008

Let's play "Component Demo!"

I spent today figuring out why our Excel to PDF conversion was rounding all numbers to two decimal places (it was StarOffice) and trying out some interesting components - PDF Watermark and ContentCategorizer.

PDF Watermark allows you to chuck a watermark on our PDFs either statically or dynamically. Static means that when a document gets checked in, the watermark is added to the PDF and the result is stored permanently as the web-viewable. Dynamic means that the web-viewable PDF is untouched, but whenever someone tries to see it the watermark is magically added. I found static worked great but the dynamic was a total hit-and-miss.

I was excited by ContentCategorizer and the prospect of tags, automatic metadata assignment and maybe even reading values out of the content itself, like recording the camera used to take a photo. Unfortunately I couldn't figure out how to get it to work. None of that stuff happens out-of-the-box anyway, you need to configure it all, and in true UCM style I mean it does nothing out-of-the-box. The manuals were no help either, this needs a consultant to demo.

Anyway, I was booked in for the "Advanced Site Studio" Oracle course next week but the instructor had his visa rejected. Bugger. I was going to get him/her to write me an "Insert Multimedia" widget for Ephox... now I have to do it myself. After all, the system supports inserting multimedia but, in true UCM style... yeah you know the rest.

Latest Upgrades (the joy of)

I've been busy patching, testing and tweaking our UCM. We're finally on the latest, latest* release and I'm pretty happy about how it's performing.

Ephox got an upgrade too and by switching to the "sun" connection method it can actually display images now, yay. I still haven't figured out how to style the editor to look like each of our layouts (each layout has a fixed width) and darned if I know why our Intranet stylesheets aren't reaching Ephox. Wysiwyg editing? Not quite. And the LinkWizard is still as crappy as ever, total fail in Firefox3.

I also noticed that the size of our fonts are different now when launched from IE compared to FireFox. I'm not sure if it's Oracle UCM or Ephox doing it... looking at the Java Console Logs I can see the stylesheet information is loaded, parsed and rewritten according to rules my "launching browser" might understand. For example, here's what happens to my BODY style...

Actual stylesheet reference:
body { color:#000000; font-size: 70%; }

Launching the editor from Firefox:
body {ephox-visible: false;color: rgb(0, 0, 0); font-size: 70%;}

Launching the editor from IE:
BODY {ephox-visible: false;FONT-FAMILY: Verdana, Helvetica, Arial, sans-serif}

"I mean, I'm on a webpage, I'm editing a webpage, it's rendering a webpage - why force it through Java?" - and now it is trying to emulate the current browser? Wow. Is that ultra-smart or epic-dumb... I'm not sure! However if it's not Ephox doing the css emulation then I do apologise to the folks at Ephox. (I should point out that Ephox is a pretty decent editor with more features than others.)

* Update - I've been advised by metalink support that we're not on the latest release of DynamicConverter. There is a newer one not listed on metalink but available via eDelivery. How are we supposed to find this stuff out?

Wednesday 15 October 2008

correcting links with a validation script

Ok, my personal war on dodgy UCM links continues... had a win when our Oracle consultant visited last week (I know he's reading this :)) and showed me some new tricks with validation scripts.

A validation script is just a bit of JavaScript that can be executed when a contributor tries to save their changes. There is no documentation on validation scripts so I never tried to use them myself... but all they do is run a defined function and throw an alert if the function does not return true. Well our mate suggested we just implement a script that silently rewrites dodgy UCM links and return true.

It's so simple and yet so liberating! Thankyou James.

Friday 5 September 2008

Surprise! ssWeblayoutUrl

I put a bit of inline javascript in a content item to do an image rollover. After it published though the script was mangled - my mixed use of single and double quotes were all replaced with double quotes.

My code looked fine in Ephox. I tried a few edit+saves and realised my mixed use of quotes was sometimes failing. I complained to the Ephox folks who quickly checked & assured me it was not their product causing the issue. So I went to Content Server and viewed the content item's XML. Sure enough I found the problem - my image references were rewritten as a new Idoc URL format that inserts its own single quotes.

Observe my original code...
<img src="/serverroot/somepath/contentID1.gif" onmouseover="this.src='/serverroot/somepath/contentID2.gif';" onmouseout="this.src='/serverroot/somepath/contentID1.gif';" />

Now see what XML (unencoded) is stored in my content item...
<img src="[!--$ssWeblayoutUrl('somepath/contentID1.gif')--]" onmouseover="this.src='[!--$ssWeblayoutUrl('somepath/contentID2.gif')--]';" onmouseout="this.src='[!--$ssWeblayoutUrl('somepath/contentID1.gif')--]';" />

Hey wow! My URLs are magically replaced with some new Idoc link format... that screws up my quote groups! Gee, thanks guys.

Anyway I got around the problem by making my javascript first use an empty string and then appending the URL. Here's how it gets stored now..
<img src="[!--$ssWeblayoutUrl('somepath/contentID1.gif')--]" onmouseover="this.src=''+'/serverroot/somepath/contentID2.gif';" onmouseout="this.src=''+'/serverroot/somepath/contentID1.gif';" />

UPDATE:
I was fumbling around metalink when I discovered this gem: ssWeblayoutUrl can be configured to only use dDocName - no path required! Yay! Now we can fiddle with our image security without fear of broken links (except in javascript, of course :)) just put this in your config:

SSWeblayoutUrlUsesDocNames=true

Refer to metalink article 579457.1

UPDATE #2:
I'm playing with the new format, here are my findings...
* apparently it is only used on img tags - not links. Bummer...
* it will redirect to the latest available revision - contributor mode links to revisions in workflow, non-contributor mode gives you the latest released instead. Nice!

here's how it looks:
<img src="[!--$ssWeblayoutUrl('contentID')--]" />

UPDATE #3:
The bad news is that if the contentID is invalid or does not exist, it throws an error... more importantly, the editor will fail to load any content at all! Youch!

The good news is that the latest release of sitestudio(build298) is supposed to resolve the bug and also uses the new URL format on link tags.

UPDATE #4:
Finally got authority to upgrade and yes, ssWebLayoutUrl is a total kickarse auto-replacement for image src URLs but no, it doesn't seem to replace other weblayout links automatically. Maybe I should update my validation script to do it...

Wednesday 30 July 2008

No new LinkWizard, just recommendations

Good new and bad news, folks.

The bad news is my employer refused to let me write a LinkWizard replacement. The good news is that I sent Oracle a reasonably comprehensive report about link management - what the problems are and what the solutions might be.

Naturally my first recommendation was to replace the LinkWizard. A new version should take any URL entered by the user and convert it into a SiteStudio link. This kind of pre-processing would eliminate common mistakes, like entering a SSPU-published URL. I even supplied a new interface that does away with the "wizard" style of annoying steps and offers an intuitive "properties" style interface. I also recommended they junk AJAX and just use a simple (fast) IDOC/JavaScript combination.

I then suggested that ssLINK tokens should be enhanced to include the file format of the target. This would allow a contributor to link to a content item and choose the web page version, PDF version or the native file version, without having to be trained in copying URLs from the Content Information page.

Next I proposed a "friendly" URL solution where horrible Content Server URLs like /content/groups/public/documents/doc/contentID.pdf could be replaced with intelligent URLs like /about/link-management.pdf. Wouldn't you love that!

I had a couple more suggestions including upgrades to the LinkManager component. I have no idea what will come of the report but here's hoping that they will do something about links.

Sunday 8 June 2008

Useful SSPU logging

Well I haven't started rewriting the hyperlink wizard, my apologies. I've been wrestling with SSPU which has failed to publish our site repeatedly over the last two weeks. In an effort to work out what the hell was going on we turned on all the logging, right up to "debug for all". It was too much to be helpful... so after reviewing the logs I was able to come up with some meaningful logging levels.

PRIMARY LOG (FILE)
default: ERROR
syndicator: INFO
date-time: CRITICAL
analyser: CRITICAL
replicator: INFO
packagemanager: INFO
ice.cache: VERBOSE
delivery: INFO
delivery.ice: VERBOSE

SECONDARY LOG (DATABASE)
default: ERROR

Ok let's start with the database log. I know it sounds counter-intuitive but database logging slows down the software tremendously - it needs to read the entire database to display the SSPU status page (so make sure you purge often!) When you're viewing the SSPU website the only thing you care about is errors. Ignore everything else.

The primary log file is what you turn to when there is a problem. Set Syndicator to INFO to report the overall status of SSPU. It also includes info about database purges. Set Analyzer to CRITICAL to ignore messages about malformed links (they won't affect the publish anyway.) Set Replicator to INFO - this reports which files are actually being processed. It also includes final summaries and error counts. Set Delivery to INFO to report when a job is pushed to the subscription client/FTP (subagent). Set Delivery.ice to VERBOSE in order to report the status of the subagent's delivery and see an actual confirmation message that the publish succeeded. Finally there is a meaningless bug in the interface so I set date-time to CRITICAL so it won't get reported.

There are two additional settings you might consider. Set Packagemanager to INFO in order to see exactly which files have been selected (or skipped) for update. Set Ice.cache to VERBOSE in case there are some undelivered files floating around - it reports what items are waiting to be delivered.

One final important tip - Delivery.ice may report warnings about ice 501 errors. These can safely be ignored. They simply mean that SSPU was asking for confirmation that the job was finished but the subscription client (subagent) was too busy processing the job to respond. SSPU will keep resending the job until it receives a 200 confirmation - but subagent will only process the first push and ignore the rest. Once subagent finishes it sends confirmation, SSPU stops pushing and subagent discards all the repeated pushes. This is the intended behaviour.

Oh and the problem with our publish? Too many broken links!

Tuesday 3 June 2008

The achilles heel of Oracle UCM - hyperlinks

UCM is a great document management system but its websites are sure awkward. The most obvious blunder was the editor so thank god that's been fixed! This leaves us with the biggest weakness in the system - hyperlinks.

Let's look at exhibit A - the Hyperlink Wizard. The new UCM spots a brand new fully AJAX interface for creating links. There's an amazing amount of code and effort put into it - just to make it work exactly like the old one! Fair dinkim guys, it took a pHD* to understand the old one so why replicate its horrible functionality? Did you expect your users to be so fully engrossed in the old way that they would be incapable of doing it any more simply? Why did you waste your time reinventing the wheel when it is just as square as the old one? I wonder if they have ever tried to create a link...

The first thing it does is ask "do you want to link to a section, file or URL?" What? Why do I have to choose? What's the difference? I want to link to another web page... who knows? Click on file. "Do you want the current item, existing file from server, upload a file, new file, or new word doc?" Hmmm, I'm editing this link so I don't want the current item (duh). Why would I create a word doc? I'm trying to make a link to a web page! I guess I'll have to choose existing, good thing I already know the content id. Once the initial search results finally load, i have to search again using my content id. Ok, I have selected my content item. Now it asks "use default web section metadata, choose a section or just link to URL?" Do i care? What does a section mean anyway? I think i want a URL but I know my page is already used in website x, so I'll drill down into that website until i find a "section" that sounds like my page. Click click click click click. Click next and it displays some ugly code and calls it my "link URL" (i thought i chose a section!) asking to me confirm. Hmm that looks nothing like the link i expected to see. Click finish and hope for the best.

Wow, what a pointlessly verbose experience (and i even removed a step!) Steve Krug says, "DON'T MAKE ME THINK!" so my contributors skip all that by simply pasting the published URL into the first "URL" field. The system however does not recognise published URLs, decides there are no links to that page, and deletes it from the published site. D'oh!

And take a look at the URLs it publishes. Every one ends in some seemingly random number! Why? Because the system must give every page a unique id. C'mon guys, most free CMS software generates human-sounding URLs even before Web2.0 happened. Is it really that hard?

And so ends another rant. Hopefully my next post will be about a replacement Hyperlink Wizard that I have written for you to download and enjoy.

* I work at a uni, my contributors are academics and they screw up the links all the time.

Tuesday 27 May 2008

Unlocking the power of Ephox

The geniuses at Oracle have added Ephox as the new Contribution editor - but crippled it to make it look like their old editor. Newsflash to Oracle - the old editor sucked, why are you making the new one pretend to work the same as the old one?

Ephox comes with a WordCount feature, Find/replace, forms editing and even multimedia support. It has a menubar and can be configured for multiple toolbars. Why did Oracle remove these features?

Anyway, to turn that stuff back on you just need to edit the XML config file. Naturally the Oracle guys thought that was too simple so they generate the XML "on the fly" from a Javascript file. To edit the config for the wysiwyg element, hack this file:
/weblayout/resources/wcm/sitestudio/elements/wysiwyg/wysiwyg.config.js

The XML syntax you need can be found in the Developer guide at the Ephox website.
http://www.ephox.com/developers/editliveforjava/v60/DeveloperHTML/index.html

Overall I'm pretty happy with the Ephox editor. My big gripe is that it uses a Java applet - Ephox seem to have abandoned any non-Java versions. Applets are horrible on websites - all your contributors will need Java on their machines. I've seem some weird repainting from the applet and it can be unstable, it's slow to load, who knows which Java version to trust. I mean, I'm on a webpage, I'm editing a webpage, it's rendering a webpage - why force it through Java? Hmmm I appear to be ranting, let me start again...

Overall I'm pretty happy with the Ephox editor. Apart from relying on a silly applet :) the code it produces is clean and well structured. Ephox have some nifty features like Accessibility reports, thesaurus and WordCount. I've upgraded to SiteStudio260 and the Ephox java is quite stable. The only hiccup I've had was that it couldn't tell the difference between a print and a screen stylesheet. I put a few support requests through to the Ephox people and they responded promptly and helpfully. If you're considering an upgrade, go for it.

Friday 1 February 2008

Finally - the new Contributor Editor!

After much pleading and praying Oracle are finally ready to release the upgrade to the Contribution Editor. It has not yet been released but I got a pre-release to play with.

It uses Ephox (java-based) to provide a wysiwyg editor that works on any computer. It required two or three CS upgrade/patches to get running but that wasn't a big drama.

Highlights include the ability to write headings (yay!) easy switch-to-code view, enhanced table & image formatting options (includes deleting cells & rows) and overall the generated code is nicer. It also features an Accessibility Report. I like the way that the metadata screen is now available as a tab instead of popping up before every save.

So far I've found the java-based ephox to be a bit flaky - no word on the preferred java version (I'm using v6.5). Hopefully I can dump it for the javascript-based ephox.