OL Learn

Desirable improvements


with Version 1.3 came some good improvements but there are many unresolved and new issues.


  1. Placing images in the designer should be easier. At the moment you can only place it via drag&drop in a div (bad scaling) or paragraph (you have to set the position manually to absolute). It would be fine to handle it like the new barcode placing (element gets automatically position absolute).

  2. "Insert Image from Adress…" dont’t work properly if I want to load a local image. What should I type in the URL input field?

  3. Dynamic images with faulty selector in german language. Set a placed image to a dynamic image (right click on the image > Dynamic Image…) sets a standard selector ID “dynamic-image” in english gui and that works fine. In the german gui the standard selector ID is set to “Dynamisches Bild” (correct translation) including a space. That can’t work because of the space in the ID name.

So I have to do two extra steps (1. change selector in the dynamic image script; 2. change selector in the image preferences).

It would be better to give the option to set an own selector in the first step of making a dynamic image.


The possibility to insert a datafile via drag&drop in the data model pane would be great.

Conditional Content Script

It would be great to have the possibility to make a script conditional. Just right click on a script (e.g. Text Script) and choose an option “Make Conditional…”. At the moment I have to do many steps to make e.g. three scripts conditional.


Missing encoding hexadecimal for the DataMatrix-Code. That’s very important for “PremiumAdress” (german postage optimisation).

Detail Table

I can’t use some usefull functions in PrintShop Mail Connect because of missing detail tables. e.g. graphs with series, dynamic tables and so on. Will there be a possibility to create detail tables in a future version?

Support for jQuery (especially for PlanetPress Connect)

Support for own jQuery is not as good as it should. Many html templates couldn’t be used in Connect because of missing fully support for jQuery. Ok using “Query” instead of “$” is not the problem, but many functions of jQuery aren’t working. Also external jQuery Plugins don’t work properly. I understand that there’s no way to fully support jQuery in print contexts but for web contexts it would be important. Most of my projects use jQuery.

Best regards,

Hi Thomas,

Let’s try to address these one at a time.


  1. absolute-positioned images floating around are not really that much of a desired behaviour. It works alright for Print output, but it won’t work for Email, and it’s not desirable for Web output. I’d try to start finding alternatives to “place everything pixel-perfect on the page”. For example, start using % widths, that helps.

  2. Please take a look at Various Tips & Tricks for Connect Designer to learn how to properly refer to internal, external and Web resources.

  3. Spaces in field names cause some issues in different places, so we suggest not having these spaces. Since they never appear to the end-user, they don’t ever need to be “pretty”. However, the fix for your issue is really simple: remove the space in the selector of the script, as well as from the placeholder on the page. Voila!

Datafile: Because files have to be “processed” before they are shown in the data model (and some will need options configured such as CSV and Database), that’s not going to happen. The ONLY file that could maybe, sometimes work is CSV, and we prefer having consistency rather than exceptions all over the place.

Conditional Content: 1.3 added the ability to disable folders for execution under certain contexts and/or sections. We fell that this is helpful enough to reduce the number of scripts running by offering contextual execution.

Hex DataMatrix: I’ll suggest this to the R&D team.

Detail Table: PrintShop Mail’s feature set does not, and will not, include the DataMapper, and this DataMapper module is necessary for details table. PSM is meant for promotional and especially single-use documents, not for complex invoicing runs. Thus, if a client requires transactional data, they have to upgrade.

jQuery: There is often a confusion between the “scripts” pane and the “JavaScript” resources used in Connect. The Scripts Pane is server-side, and is built using an internal API that is highly inspired by, but IS NOT jQuery. Thus, in terms of back-end scripts, we won’t offer support for jQuery plugins because it’s not jQuery.

As for the front-end however, you can use jQuery all you want for Web output (obviously, this is not relevant to PrintShop Mail Connect!). Take a look at the following howto for more information: http://learn.objectiflune.com/planetpress-connect/howto/howtos/designer-using-external-librairies


Hi Evie,

thank you for your reply. Please don’t missunderstand me, my feedback here should give you the view of our PrintShop Mail customers.

  1. PrintShop Mail stands for a fast and easy job creation and a fast print output. But that way it’s not easy and especially not fast to create an job with e.g. four dynamic images which should be placed on special positions. Too many clicks (place the image in a paragraph, right-click > Image… > set Position to absolute > drag the image to the correct position > scale the image to the correct size > make it dynamic…) and too much html know-how are required (e.g. what means position absolute? I know it but our PrintShop Mail customers don’t understand that. The word absolute means in german fixed, so it’s bewildering).
    Why does it work for barcodes but not for images?

  2. I read that guide before. I’m just wondering why I have to write the path including “file:///” in a wizard. Maybe it would be easier to use when there’s a dropdown with the options “local file” and “web adress” to set the right prefix.

  3. Maybe you have missunderstood my description. The problem is that in the german gui the standard selector ID which is automatically set by Connect includes a space. I know that I have to delete the space on two points (element ID and within the script), but that’s very irritating. My suggestion is to change the standard selector in german language from “Dynamisches Bild” to e.g. “Dynamisches-Bild”. That would be sufficient.

Datafile: Ok, I see your point.

Conditional Content: My intention is to make it easier changing variables dynamically without writing a javascript code (most of our customers can’t write javascript and don’t won’t to learn it! That’s fact and a reason not to change to PSM Connect and als for prospectives it’s a reason to choose another product.). So maybe it’s a solution to use several variables and change the view in dependence of a datafield.
Example: I want to change the salutation in dependence of the datafield “gender”. If “gender” is “M” the variable “SalutationM” will be shown, if “gender” is “F” the variable “SalutationF” will be shown and otherwise the variable “Salutation” will be shown. I know how to do it by using several conditional scripts (in this case three), but it’s complicated the actual way und could be much easier by creating the conditional scripts directly to the created text scripts.

Detail Table: Ok, I see your point.

jQuery: Ok, I will give them a try. That feature is a new one in 1.3, right?

New improvement suggestion

Simplify line breaks for text scripts in the scripteditor:

At the moment you have to write <br> in the Suffix to create a line break or type in a space. That’s not very intuitiv. Something lika a dropdown with the options “Space”, “Line Break” and “Own Text” would be great.



I understand your desire to make things simpler and resolve issues, I just need to ensure first of all that the points aren’t easily resolved with an exchange of information (sometimes, all someone needs is a link to the documentation).

For Images point 1, I’ll suggest a standardization of how objects are inserted on the page. you’re right that images, barcodes and pie charts should probably all behave the same way by default. As for the “absolute” positioning, this is a standard CSS property, along with hundreds of others, consider it part of a scripting or programming language which simply remains in english, whatever the language of the user. Unfortunately not something that can easily be “fixed”.

For image point 2, I’ve made a suggestion to create a simplified, standardized dialog for accessing “resources”, may they be images (especially the path in scripts), hyperlinks, or template resources. Many applications I use have this kind of dialog, so it would fall under logic that we do something like them. I even provided a few examples :slight_smile:

Image point 3, you’re right that is most definitely a bug. I’ve informed the appropriate people to correct that in our next version.

jQuery has been available since the beta and Tech Preview versions and have always worked as described in Web output. 1.2 added the ability to call javascript resources from a URL instead of having them as internal resources (aka, using a CDN).

As for your new suggestion on line breaks… People have to learn at least a little bit of HTML. What if they want to bold or italicize something in a text script? What if they want a paragraph instead of a line return? What if they want to add a link? Remembering <br> for line returns, <b></b> for bold and <em></em> for emphasis (italic) is… easy.

For conditional contents… This is unfortunately where I must insist that JavaScript is pretty much a pre-requisite to go beyond “placing bloxes on the page”. The newfound power offered by Connect is offset by the need to learn a scripting language (JavaScript, whatever people might say, is not “programming”, it’s “scripting”). You can present this to existing PrintShop Mail Suite users as “a much more powerful equivalent to Expressions” because that’s exactly what it is. Of course JavaScript can do a lot of powerful things, but it can also be very simple in some cases.

Take a look for example at the following page in the PSM Design User Guide: Static and Variable Images. At the end is a code example for a dynamic image for a car based on a car type in the data field:

IF([CAR TYPE] = "A", "Mustang.jpg",
 IF([CAR TYPE] = "B", "Explorer.jpg",
  IF([CAR TYPE] = "C", "Windstar.jpg","")))

Those are conditions with a syntax that is required in order to do this kind of thing. You’d still need to do it in PrintShop Mail 7, and you still need to make sure you’re not misplacing a comma or a parenthesis for the expression to work. There are functions, conditions, operators…

Yes it will take some getting used to, yes it’s a slightly different syntax, but we are aiming at giving people more possiblities, more power. We know some people still want to think inside the box but we’re giving them a bigger box. MUCH bigger.

If someone isn’t afraid of the following dialog, they shouldn’t be afraid of a few lines of scripting:

Hi Evie,

Images point 1: Of course there’s no need (and no possibility) to change the naming of absolute. To have more options in placing/positioning images/boxes it’s ok to have the box properties with css properties but it would be nice to avoid this step as “have to do”. That’s all I want to do things much easier. :wink: And as you wrote it would be good to have a standardization of how objects are inserted on the page.

Images point 2: Fine. :slight_smile:

Images point 3: Perfect!

jQuery: Ok I´ll give it a try. I tried it before but maybe I’ve done it incorrectly.

LineBreaks in Scripts: Ok, I agree with you.

Conditional Contents: You’re right, JS is not “programmierung” but you have to learn the syntax which is not as easy as the “PSM expressions syntax”.


  1. PSM Expression:

IF([CAR TYPE] = “A”, “Mustang.jpg”,
IF([CAR TYPE] = “B”, “Explorer.jpg”,
IF([CAR TYPE] = “C”, “Windstar.jpg”,"")))

  1. Connect Expression:

var result = “”;
if ( record.fields[‘CAR TYPE’] == “A” ) { result = “Mustang.jpg”; }
else if ( record.fields[‘CAR TYPE’] == “B” ) { result = “Explorer.jpg”; }
else if ( record.fields[‘CAR TYPE’] == “C” ) { result = “Windstar.jpg”; }
else { result = “”; }

Note: Using [Ctrl] + [Space] gives the following false datafield expression: record.fields.CAR TYPE

One problem is that customers get afraid after clicking “Expand” in the script editor because of that view:

function add(value, operation) {
if (value === undefined || value === “”)
var result = “”;
add(record.fields[“CAR TYPE”], function (value) { result += value; });

About that we could discuss endless but it makes no sense to do so. I think there’s an “urgent” need for a wizard/assistant to create simple expressions like if statements. In PSM there’s a wizard (not the best but it exists).

Most of the PrintShop Mail customers don’t need that “power” you provide in Connect. They need an easy to use software interface. For advanced users which need more “power” it’s ok like it is because they have to learn scripting anyway.

To your argument “If someone isn’t afraid of the following dialog, they shouldn’t be afraid of a few lines of scripting”: Why should anybody be afraid of double clicking on “PROPER” to get the shown expression? On your screenshot you can see that there’s also an example of the expression below.

You can also click on “…” behind a function to open a wizard.

To cut a long story short: we are selling PSM for 15 years and know the needs of our customers (we maintain contact with our customers). The decision to buy PSM and stick to it was in most cases the easy to use interface (and the fast output). We want to sell PSM Connect and we want to switch our existing PSM customers to Connect. I´ve presentated PSM Connect multiple times and when the customers asked for some “standard” expressions like “how can I create a variable salutation if I only have a gender and a name in my datafile?” I had to expand the script. At this point they get “afraid” and even my comment “no worry, it’s not as complicated as it looks in the first view and we provide you ready made scripts which you can import” didn’t work.

Because of this I’m trying to find another way to present the software without scripting. I thougt it could be a good workaround to use conditional scripts, but it’s unfortunately too complicated.

PS: I don’t want to compare PSM Connect and PSM all the time but I have to because our customers do so.

I understand that PSM customers need something simpler, but since we’re dealing with the same software with different branding with limited feature sets, there’s of course a balance to be maintained between “dumbing down the UI” and letting power users have the freedom they want.

Where there’s a will, there’s a way however. Personally, I love to code but I do agree that some users find it a barrier. Can I run something by you? How do you think a client would react to code that looks like this?

(Note: my “else” should have been “print medium job”, not “error error does not compute!”)

This is pseudo-code but it can compile to actual code, and could potentially be used in Connect… but this is just my opinion, I haven’t suggested this yet to anyone. Would appreciate the input on what you think, especially compared to the PSM Expressions.

I think that goes in the right direction and could probably be understood by PSM customers. :slight_smile: But your screenshot don’t show how to create that construction. The main criteria for a good wizard is an easy/intuitiv handling.

I like the following wizard design/structure and handling. There you have two steps to create an expression.

  1. Define a criteria

  2. Define an action

Of course the shown wizard holds a lot of operators and other options which are not absolutely necessary. It’s not necessary to map every function in a wizard. Only the most used expressions should be covered (e.g. if-statements, counter, etc.) - but the more, the better. The wizard can grow over time (enhancing with additional options like: print a section depending on a datafield, etc.).

For more complex expressions and also the “power users” which love to code there will be the Expand Button als well. You must not force the customer to a wizard but offering one would be helpful.

Hope my input helps.

Some quick comments:

  1. After dropping the image choose Convert to Absolute… in the contextual menu (right mouse click the image). The image will become absolute positioned. In a future version you will be able to do this on dropping the image with the Alt key pressed. The default will remain inline as this is the desired situation in many other scenarios like inserting an anchored signature image.

  2. Use Insert Image from File option. In that case you can simply select a file from disk without having to enter the file protocol and path. We plan to merge these dialogs and provide the various options as part of a single dialog (e.g. web address versus local file).

  3. We will correct the translated ID issue. Alternatively apply an ID via Attributes panel first and subsequently invoke the Dynamic Image option via the contextual menu. This will take the ID set for that image.

  4. Conditional Content scripts. I like the various suggestions and agree that such a wizard should cover the basics. At some stage they become more complex than writing the actual script. Several options are currently available via scripting only as we first wanted to make sure we were capable of performing these tasks. With each version we will introduce new wizards and enhancements to make these available via the user interface.

You are correct on the power users, they didn’t like the expression wizards in legacy PSM either. And do not forget that one had to learn the expressions too.