The Mystery of the Disappearing Content
That’s the general nature of these bugs. Except the PublishEmptyItems bug can cause entire sites to disappear. Happened to me. 2 hours of downtime. Was going crazy trying to inspect every single line of my configuration files, restoring DBs, and going through logs.
The new Sitecore v7.2 has a lot of great features and I personally recommend upgrading after a thorough QA test to make sure things run smoothly, but it wouldn’t be “software” if it didn’t cause your site to sink into a pothole once in a while. That’s the nature of the beast.
New PublishEmptyItems Setting
There is a new feature in the configuration for v7.2, called PublishEmptyItems. By default, it is set to false. What this means is if you have an item in your content tree that does not have an active version – even if there are children items under it and you have “Publish Subitems” selected, not only will it not publish that item, it will actually remove it and the children in your target database if it was previously there.
That part is apparently is by design. In previous versions, this wasn’t a choice and it would always publish empty items.
The actual bug is if you publish one or more empty items of a given language and no items actually get published, it will remove the respective language from /sitecore/System/Languages. So that Spanish or French version of the site you had? Gone. Vanished. Best of luck.
Set PublishEmptyItems to true in your configuration. Set it and forget it. Eventually the bug will get fixed, but if you have been using the previous versions of Sitecore, the default behavior for this was the “true” setting. So unless there is a compelling reason requiring it, leave it alone.
<!-- PUBLISHING PUBLISH EMPTY ITEMS Specifies whether empty items (i.e. items without publishable versions) should be published. Default value: false --> <setting name="Publishing.PublishEmptyItems" value="true" />
Query String Parameters in Internal Links
If your internal links require additional anchor tags appended, like http://yoursite/home.aspx#/1 – entering #/1 in the Query String field, or any value for that matter, in the link dialog will not save the entry when you have SPEAK disabled. Entering the same with SPEAK enabled with URL encode it to look like this – %23%2F1. Neither result is desired.
Edit the anchor links in raw mode, by going into the View tab and clicking Raw Mode, or using the keyboard shortcut – Ctrl+Alt+Shift+R. If this doesn’t fly for your content power users, contact Sitecore Support for a temporary code workaround.
Sitecore SPEAK dialogs and existing content
There are new SPEAK dialogs for selecting and managing links and media items. When you are working with media or link fields that have existing entries in it, what we are used to seeing when pressing “browse” or “link” buttons on top of that field is the item that we are editing preselected in the content tree.
In other words, if you are editing a link to a media item or a content item in your tree, it will highlight it for you in the dialog and expand the folders along its path, so that it is convenient enough to see where you are in the tree and select an adjacent item, if needed.
Currently, this just isn’t the case in the SPEAK version of the dialogs. Sitecore Support has informed me that they are aware of this bug and hope to develop a fix for it soon.
In the meantime, go ahead and locate the Sitecore.Speak.config file in your /App_Config/Includes and open it up. There are two sections up top that start with <override>. One is more for the media item dialog, and the other one is for the links. You can comment both out to see the classic version of the dialogs you have been seeing in the versions previous to v7.2.
<!-- <overrideXmlControls> <override xmlControl="Sitecore.Shell.Applications.Media.MediaBrowser" with="/sitecore/client/applications/Dialogs/SelectMediaDialog" /> </overrideXmlControls> <overrideDialogs> <override dialogUrl="/sitecore/shell/Applications/Dialogs/Internal%20link.aspx" with="/sitecore/client/applications/dialogs/InsertLinkViaTreeDialog" /> <override dialogUrl="/sitecore/shell/Applications/Dialogs/Mail%20link.aspx" with="/sitecore/client/applications/dialogs/InsertEmailDialog" /> <override dialogUrl="/sitecore/shell/Applications/Dialogs/Anchor%20link.aspx" with="/sitecore/client/applications/dialogs/InsertAnchorDialog" /> <override dialogUrl="/sitecore/shell/Applications/Item%20browser.aspx" with="/sitecore/client/applications/dialogs/InsertSitecoreItemViaTreeDialog" /> </overrideDialogs> -->