Changing Issue Information in Enterprise

One of our customers was asking what the best practices were in moving assets from one scheduled issue to another. They were discussing moving layouts from issue to issue but I wanted to insure that they were prepared for using the multi-channel aspects of Enterprise.

Note that, of course, moving layouts around is easy to do…just not the best practice.

  1. Layouts can only be assigned to ONE issue. No more. Either a Print channel or Tablet Channel.
  2. All other object types such as Articles, Images, Video, etc can have ONE or MORE channel/issue combinations. These channels might include ‘Print’, ‘Tablet’, ‘Web’, ‘Facebook’.
  3. Layouts do NOT inherit the Issue of the Dossier they are in.
  4. Articles and Images WILL inherit the ‘print’ issue of the Dossier they are in.
  5. Articles and Images WILL inherit the issue of the layout they are attached to.
  6. Changing the Print issue that a dossier is assigned to WILL change the issue of the layout IF the Layout is in the same issue as the Dossier at the time of the change.
  7. If the Layout has a different Issue assignment than the Dossier then the Issue date of the layout will NOT change. The net result of this is that the ‘Issues’ column in the views will show multiple issues assigned for Articles, Images and other files.
  8. Changing the Issue of the layout will change the Issue of the attached articles and images.

Because of the above there are scenarios where a user could change the Issue of a layout in the ‘Properties’ dialog and depending on the view and filters applied in the Smart Connection palette the user may or may not see the layout (and attached objects).

The end result is that the ‘Dossiers’ should be moved between Issues and not Layouts.

Best Practices

  1. Consider Dossiers as the ‘article’ or ’section’ containers. Keep in mind that more than one layout/article can exist in a Dossier. When you start doing tablet production you may wish to have more dossier/layout combinations to help with navigation of content.
  2. Only change the Issue on a Dossier. Doing so will change the Issue on all the other objects such as layouts and articles. Following this suggestion will greatly simplify things.
  3. Use Content Station to change the Issue of the Dossier. This can be done in the Planning application by dragging the Dossier from one issue to another, by searching for the Dossier and invoking the ‘Properties’ dialog or by opening up a tab for the Dossier and using the ‘Dossier Properties’ dialog.

Examples

Example Enterprise configuration
Issue 1 -> August 20th (print channel)
Issue 2 -> Sept 4th (print channel)

We now want to ‘move’ the Dossier from ‘August 20th’ to ‘Sept 4th’.

Example 1 – Using the Planning App in Content Station

  1. Start Content Station and start the Planning app. The ‘August 20th’ and ‘Sept 4th’ issues should be listed on the left.
  2. Select the ‘Sept. 4th’ issue. The Dossier from ‘Example 1’ will be listed in the middle.
  3. Click, hold and drag the Dossier from the list in the middle to the ‘August 20th’ issue in the left hand panel. Let go of the Dossier when the ‘Issue’ listing ‘accepts’ the drag.

Result

In the planning app show the ‘issues’ column. The issue for all of the assets will be set back to Sept 4th.

Example 2 – Finding a Dossier and changing the Issue properties

  1. Start Content Station and log in. Start the ‘Search’ app. Set the popup values to the appropriate brand and current issue of the Dossier you want to change the issue on and set the ‘object type’ popup to ‘Dossier’
  2. Find the Dossier you want to change the issue on in the list.
  3. Select the Dossier and bring up the contextual menu. Select ‘Properties’.
  4. Find the ‘Publish In’ area. Select the new Issue from the list. Press Ok.

Result

The issue value will change for all the assets.

References
WoodWing Community Site 

RAW files, ImageMagick and WoodWing Enterprise

Recently I had a partner that I was working with who asked the following question:

“How can Enterprise accept RAW files and build large usable previews?”

Good question.

Disclaimer

This set of explanations and instructions assume that you have a certain level of skills that allow you to compile some server tools, modify Enterprise config and Server Plugin files.

In addition, since we are modifying the stock Enterprise installation you NEED to have a plan in place that will allow you to propagate the changes you are making to newer versions of Enterprise as updates and upgrades are released.

What are RAW files?

The best explanation that I can give is that a RAW file is exactly what the image sensor recorded at the time the image was taken UNAFFECTED by any processing. I think of a RAW file as a digital negative. (Don’t confuse that term with Adobe’s DNG stuff…that’s for another post!)

When I first heard people talk about ‘RAW’ files I thought that implied that there was one file type. Not true. Each camera manufacturer creates a RAW file type that then has a file extension defined by the camera manufacturer. A tool like Photoshop understands how to interpret the file but in the end will want to write out to something like the .psd or jpeg formats.

See more here: http://en.wikipedia.org/wiki/Raw_image_format

In my case the sample files include extensions like .NEF, .CR2 and .IIQ

Image files and WoodWing Enterprise

WoodWing Enterprise uses several different mechanisms to deal with image formats.

The GD module that can be compiled with PHP is the first candidate to take a look at.

However, I know that GD does not support ‘RAW’ files. GD supports JPEG, GIF, PNG, SWF, TIFF and JPEG2000 files. If you want to see what your installation is set up to support take a look at how by reviewing this page: http://www.php.net/manual/en/function.gd-info.php

A second option is to use SIPS (Scriptable Image Processing Server). Using SIPS with Enterprise requires that:

The Enterprise server be running on Mac OS X.
The SIPS Enterprise Server plugin is installed (available on the Community site and free).
SIPS was designed by Apple to provide tools for performing basic image alterations and support for various image formats. It is a OS level tool and support includes these image file types:

jpeg, tiff, png, gif, jp2, pict, bmp, qtif, psd, sqi, tga.

As you can see it doesn’t look like RAW files are supported here either.

That leaves the last ‘standard’ choice: ImageMagick

A quick review of this page clues me that all of the sample file formats (.NEF, .CR2 and .IIQ) are supported by ImageMagick

ImageMagick and RAW files

How are ‘RAW’ files supported by ImageMagick?

They are supported by using ‘ufraw’ (Unidentified Flying Raw) which is an open-source tool that allows for working with RAW files such as those from Canon, Nikon, Pentax, Samsung, Sony, Fuji and even Adobe. Here’s the web site: http://ufraw.sourceforge.net/index.html

Most installations of ImageMagick will probably NOT have ufraw so you will have to install it so that ImageMagick can work with it.

Installing ufraw…or in my case re-installing ImageMagick and then installing ufraw

In other parts of this web site you will find entries that refer to my Mac using MacPorts. I have installed PHP5/ImageMagick using this tool and find it easy to use. Keep in mind that you have to have ImageMagick installed if you are going to use ufraw with Enterprise.

To install ‘ufraw’ using MacPorts start ‘Terminal’ and enter:

sudo port install ufraw

Hit return and enter your password.

That should do the trick. Unless, of course, you are me. I had to do a variety of messing around with MacPorts that included uninstalling a series of unused port versions before I could finally get this installed.

Once MacPorts has worked its wonders you will be left with an installation that has ‘ufraw’ installed.

Enterprise and MIME Types

Out of the box Enterprise handles a LOT of file types. This is a case, however, where we have to add a MIME type to the system so that it can handle the files.

There are a variety of file types that are considered RAW files but for this example we are going to deal with three: .nef, .cr2 and .pef

Assuming you know how to work with Enterprise at the level where you can edit the configuration files take the following steps…assuming YOU HAVE MADE A BACKUP!

Open the configserver.php file and navigate to the section labeled ‘extensionmap’. Add the following line:

‘.nef’ => array( ‘image/x-nikon-nef’, ‘Image’),
‘.cr2’ => array( ‘image/x-canon-cr2’, ‘Image’),
‘.pef’ => array( ‘image/x-pef’, ‘Image’),

Be careful here and make sure that you follow the conventions laid out in the file. I.E. if you screw up the array your users will know very quickly.

Making these changes tells Enterprise that it can handle the indicated file extension, that the MIME type for the file extension is ‘image/xxx’ and that the file type will be a ‘Image’ when uploaded to Enterprise.

The Enterprise ImageMagick Server Plugin (which ships free with Enterprise)

Right now, with the MIME type added to configserver.php you can upload the RAW files to Enterprise and they will upload and be usable. The problem is that there will still not be a preview associated with the file.

We have to make a few changes in the plugin. We have to first change a file so that plugin recognizes that it can deal with our new MIME types. Then we have to change the code a bit so that a preview can be extracted from RAW files and uploaded to Enterprise.

Changing the ImageMagick_Preview.class.php file

To modify the plugin you will need to go your Enterprise installation to /server/plugins.

Open the directory labeled ‘ImageMagick’. Inside of that directory find the file labeled ‘Imagemagick_Preview.class.php’. Open this file with a text editor.

Find the area labeled ‘canHandleFormat’. This is a function that tells the plugin how to handle a variety of formats. Add the following:

case ‘image/x-nikon-nef’:
case ‘image/x-canon-cr2’:
case ‘image/x-pef’:

Save and close the file.

What would our results be at this point?

Right now, with the configuration that has been done up to this point and the installation of ufraw Enterprise will give you a 160 x 120 preview of uploaded images. Generally that’s not going to work for most uses as the preview is to small.

How can we get a larger preview? That is going to take a bit more work. This will include modifying the Enterprise ImageMagick server plugin a bit more.

Changing the ImageMagick.class.php file

The changes here are a bit…tricky.

What we have modify this code to look for a specific set of MIME types. If the MIME type is found we then have to process the file, extract the preview from the RAW file and write it to disc so that Enterprise can upload it.

It’s the extraction part that is a bit tricky. Enterprise/ImageMagick cannot extract the preview without the help of a program called exiv2.

The exiv2 tool is pretty cool in that it has a command that will pull the jpeg preview out of the RAW file and write it to disc. In general RAW files will contain up to 3 previews. One preview will be small, one medium and one large.

In the case of my sample file I have the following:

Preview 1: image/tiff, 160×120 pixels, 57600 bytes
Preview 2: image/jpeg, 570×375 pixels, 113163 bytes
Preview 3: image/jpeg, 4288×2848 pixels, 813532 bytes

Note: you can get the above output by entering the following into ‘Terminal’:

exiv2 -pp /filename.extension

Once we have asked exiv2 to extract the preview we’ll need replace the preview that Enterprise extracted with preview exiv2 extracted.

Instead of laying out the code to do this here I will post it in WoodWing’s community forum

Testing preview generation

Make sure the ImageMagick Server plugin that you have modified is loaded by going to the Enterprise Admin area. Navigate to the ‘Server Plugins’ area and make sure that the ‘ImageMagick’ plugin is loaded.

Start up Content Station. Find a Dossier. Drag a .nef file (or other RAW file depending on your configuration) to the Dossier so that you get a upload dialog. Set the meta data and press ‘OK’.

The file will upload and a preview will be created.

Memory and large files

One thing about RAW files is that they can be quite large. Make sure that the setting PHP’s php.ini file are set correctly to allow Enterprise to upload files of this size. This should have been part of the initial configuration of Enterprise but check it anyway.

Mac OS X 10.8, MacPorts and WoodWing Enterprise

Hello!

FYI: This works for Enterprise 9 as well.

Several years ago (almost exactly two years ago as I write this) I wrote a post for installing WoodWing’s Enterprise Content Management system onto a Mac running Mac OS X 10.6 (see here).

Just recently I got a new machine and, of course, I need to install all these bits and pieces again so that I can run Enterprise v8 on my machine.

Below are the steps that I followed. This assumes that this is a new machine running Mac OS X 10.8.x

Preparation

I generally have to do a few things to prepare a new machine as I generally don’t like to migrate things from the old machine.

To get prepared for this I had to do the following:

1. I create the non-Admin user for security reasons.

2. Install TextWrangler

I install TextWrangler on any machine that I spend time on where I’m installing software. It has code coloring and outside of BBEdit is my favorite text editors.

3. Install Apple’s Xcode

Xcode is required for MacPorts to be able to compile the bits and pieces we are going to need.

To get Xcode go to the App Store, download and install it.

Once Xcode is installed there are still some components that need to be installed so that we can compile stuff.

Start Xcode, select the ‘Xcode’ menu at the top and select ‘Preferences’. In the preferences screen select ‘Downloads’.

‘Command Line Tools’ should be listed. Press the ‘Install’ button and watch the magic.

4. Install MacPorts.

Download the latest MacPorts installer from here (http://www.macports.org).

Be sure to get the right one for your operating system. The installer comes as a .dmg file. Open the file and run the installer. Read more here.

After installation I open the ‘Terminal’ application and enter the following command:

sudo port -v selfupdate

MacPorts will update, if necessary, and then it is ready to use.

You will also want to get the path information to your profile run the following commands in Terminal to do so:

export PATH=/opt/local/bin:/opt/local/sbin:$PATH
export MANPATH=/opt/local/share/man:$MANPATH
Install Apache2, PHP and MySQL

Installing MySQL

1. Start Terminal

2. Run the following command to install MySQL v55

sudo port install mysql55

If you want MySQL to start up on start of the machine run:

sudo port install mysql55-server

Then the command below to get the initial databases installed:

sudo -u _mysql /opt/local/lib/mysql55/bin/mysql_install_db

To get your server to start when the machine starts up:

sudo launchctl load -w /Library/LaunchDaemons/org.macports.mysql55-server.plist

You might run into this: Starting MySQL… ERROR! The server quit without updating PID file
See here.
Installing PHP5

Note that Apache2 will get installed by issuing the command below.

The command to install php5 is: sudo port install php5

NOTE: We could do a command that would install PHP5 and all of the other necessary bits. Instead, below I have outlined the individual port commands below.

sudo port install php5-mysql
sudo port install php5-sqlite
sudo port install php5-sockets
sudo port install php5-mcrypt
sudo port install php5-curl
sudo port install php5-mbstring
sudo port install php5-imagick
sudo port install php5-xdebug
sudo port install php5-xmlrpc
sudo port install php5-xsl
sudo port install php5-zip
sudo port install php5-soap
sudo port install php5-gd
sudo port install php5-exif
sudo port install php5-openssl
sudo port install php5-iconv
sudo port install php5-ftp

Set up Apache2 to start up automatically

Use Terminal and issue this command:
sudo launchctl load -w /Library/LaunchDaemons/org.macports.apache2.plist

You may need to set the server name in the ‘httpd.conf’ file to something like:

ServerName 127.0.0.1:8080

Starting Apache

There are two commands that you will need if you are making adjustments to Apache or PHP config files.

Start Apache:
sudo /opt/local/apache2/bin/apachectl -k start

Stop Apache:
sudo /opt/local/apache2/bin/apachectl -k stop

Installing Enterprise
Follow the admin guide provided on the Community site.

WoodWing and CentOS 6.4

Spent some time bringing up a CentOS 6.4 VM that ran Enterprise and Elvis.

Had to install a few things on the Apache/PHP/MySQL front. Below are the commands that I ran to to get things running for Enterprise.

Keep in mind that your mileage will vary here as how you installed CentOS (For instance did you make the selection to install a ‘Web Server’ when running the installer) will make a big difference on what you have to do.

After you have created the VM (In my case I used Parallels because…that’s what I had).

CentOS 6.4

Install the base goodies.

yum -y install httpd php mysql mysql-server php-mysql

For PHP I had to install a few other extensions:

mbstring
yum install php-mbstring

mcrypt
To get this installed I had to reference another repository and then run the command. Be sure to check the link below to make sure you are getting the correct version.

a. ‘rpm -Uvh http://download.fedoraproject.org/pub/epel/6/i386/epel-release-6-8.noarch.rpm

b. yum install php-mcrypt

References:

maxwhale.com

imagick
Need to install php-pear and gcc (should already be installed)

yum install php-pear gcc

yum install ImageMagick

References:

tecmint.com

xmlrpc
yum install php-xmlrpc

php-soap
yum install php-soap

Install PHPMyAdmin

I installed PHPMyAdmin to work with MySQL. I like the tool. Easy to install and use.

Enterprise configuration changes

You’ll need to make one change to the server config files for the ‘locale’ setting.
a. Open ‘config.php’

b. Add setlocale(LC_ALL,”en_US.utf8″);’ after file encoding section at the bottom of the file.

References:

WoodWing Community Site article about ‘locale’ setting

Installing OPCache

The latest version of WoodWing’s Enterprise Multi-Channel Publishing System, version 9.1, takes advantage of PHP OPcache.

OPcache is part of PHP 5.5 and can be installed via pecl for v5.2 to v5.4.

When installing Enterprise the Test Suite will notify you that OPcache is not installed (it will do so when checking the php.ini settings. So, clearly the first thing is install the feature.)

I use MacPorts to maintain my Apache/PHP installation so here’s what I did to install on my machine:

  • sudo port self update
  • port install php54-opcache

If you are running PHP v5.3 then the command is:

  • port installl php53-opcache

MacPorts does its thing and when it’s finished…BAZING! we have OPcache installed.

I added the following line to my php.ini file:

zend_extension = /opt/local/lib/php53/extensions/no-debug-non-zts-20090626/opcache.so

Make sure that this line comes after the line for Ioncube.

Restart Apache. I navigated back to the Health Test and selected ‘php.ini’ to test. The test came through as good.

PHP OPcache is installed and ready to go!

WoodWing Enterprise and SOLR4

Apache Solr

In the process of upgrading my personal machine Enterprise v9.2.

This version of Enterprise includes support for Solr4. Pretty easy update on the ol’ Mac with MacPorts.

  1. Start the Terminal application
  2. Enter ‘sudo port install apache-solr4’ and press enter

MacPorts does its thing. 

I also upgraded our Windows server running in the Amazon S3 service. A little different process but just as easy.

Lots of nice stuff in Enterprise v9.2. More about that soon. 

Update: In case you are curious here is the path to the solrconfig.xml and schema.xml files (default)

/opt/local/share/java/solr-4.7.0/example/solr/collection1/conf