How to discard draft of edited Content Item in Orchard - orchardcms-1.7

In our system, an Editor will constantly make changes/updates to existing Content Items and saving them as drafts.They however do not have the permission to publish updated Content Items. It is the job of a Proofreader to vet through the changes and approve them (publish). If a Proofreader thinks that the changes made to a particular Content Item is not suitable, he/she should be able to discard/reject the draft without affecting the published version of that Content Item prior to changes.
Does Orchard have this kind of functionality?

Orchard keeps all versions and i think you can not delete them. this has been asked many times. Do look at modules like 'Version Manager' (out of date) and Rijkshuisstijl.VersionManager - 0.2
.

Related

After upgrading to version 4.3.1 wordpress can no longer publish

Yesterday updated the new version of wordpress to some sites that I maintain. But in all the following problem: When creating a new post and click the publish button, nothing is published, it is always as a draft, the process of publishing does not end.
(Not an answer, I can't comment yet cause I don't have enough points.)
I am seeing the same issue.
"Quick Edit" in the Posts lists works, but Editing the post does not.
Some odd behaviours:
Update & Publish fail by a) not saving any of the Post's information or settings to the database and b) pushing the user out to the All Posts List
Version Control notification that what is currently in the text box is not the same as what is cached. Regardless if I Undo or not, Update & Publish both fail.
Editing old posts and creating new posts, same problem.
Bewilderingly, sometimes it goes through. But so randomly I have yet to figure out why.
My guess is there is some conflict between the version checking, auto-save and perhaps content checker (html?).
Sorry I can't be of more help. Hope someone figures this out... Posting posts is the one thing I expect Wordpress to do. It has one job, so to speak. ;)

Sitefinity: How can you update the revision of a document programmatically?

In Sitefinity, almost everything is able to be revisioned. In the backend interface at a page for a content item you can click on Revision History and see revisions.
We're in a situation where we're manually uploading documents in to the Documents & Files library through a custom form. We're able to do this using the Content Lifecycle which has pretty good documentation: http://www.sitefinity.com/documentation/gettingstarted/developers-guide/sitefinity-essentials/modules/content-lifecycle .
What doesn't have any documentation is how to modify a document so that it updates the revision of that document programmatically, not replace it. Right now, we're only able to replace it and the revision history stays empty.
I think you cannot keep the previous version of the document in Sitefinity.
The revision history for the documents keeps track for the metadata only, e.g. Title, Author, etc.
If you replace the file, there is no way to revert it back through the Revision History.
Disclaimer: I haven't tested this in the 7+ versions.

Django cms : how to get real page id

I was using django cms 2.3.3 and everything was fine, and today I try to upgrade to 2.4.2
everything seems to be fine, just I can't understand why a page can have several page id, ie in admin, when I edit a page, i go for instance on /cms/page/2
but if I print it's id in menu with {{ child.id }} , the id is different, for instance 114.
Is it because I had to use shell command "cms moderator on"?
one more question, when I do any modification, I always have to validate "last changes" by clicking on green tick from admin list of pages. Is there a way to avoid that ?
thanks a lot
Starting with CMS 2.4, all changes made to a page or plugin need to be approved. This "moderation" system was introduced to allow users the possibility of having a draft version or a page and a live version. So this means that for every page django-cms has two records of the page, one "live" and one "draft". This is why you encounter different ids. You could easily verify this by running in a django shell:
from cms.models import Page
print Page.objects.filter(title_set__title='yourpagetitle')
the above should print two pages.
Regarding cms moderator on, this command
publishes all pages and makes sure that all changes from draft are applied to live.
To answer your question, no there's no way to avoid having to approve the changes.

Scheduling and publishing replacement pages in a CMS

Does anyone have any ideas or know of any plugins to allow pages to be scheduled and replaced.
preamble:
currently evaluating different content management systems for a new project, we create new pages and also updating existing pages for example as part of a 'maintenance release'.
We will be using either PHP (preferably) or C#
Problem:
We would like our users to be write and save a new revision of an existing page with a go-live date and time in the future, at this date and time we would like the page to be live replacing the existing page, but all links to the page, url etc to be the same.
Currently:
We have two separate installs and schedule updates to pages using a cron job and a PHP script running some mysql queries - this has failed us at critical times in the past when it has failed to run.
finally:
We could probably write this ourselves, either in our own CMS or as a plugin to an existing CMS - simply:
SELECT latest_revision from posts_pages_table
WHERE publishable='yes'
AND max(revision_date);
but does anyone have any experience of this with an existing CMS or from a technical point of view foresee any problems?
How for example in a wordpress backend will a user be sure they are updating the latest version of a page if it hasn't gone 'live' yet.
We have looked at all existing CMSs and searched google but scheduling updates to pages seems to be an uncommon occurrence so relying on some guidance from the trusty SO crowd.
thanks
If you are fine with PHP, you can use SilverStripe. To achieve what you are asking you'd use the CMS Workflow module.
SilverStripe CMS comes with two stages built-in: live and draft. You can keep reworking the draft version, which remain private until you are ready to publish. In the normal scenario you would just push to live.
With the CMS Workflow installed, you can additionally choose the date when the modification should go live ("embargo"). This stores your draft version for "later", and only pushes to live at the date you've chosen (this plugs in via the cron job).
There is also an "expiry" you can set on the page, at which point the page will be unpublished and will no longer be available publicly.
Embargo, expiry and publishing operations do not affect the URL nor ID of the page, so all the relations stay intact while you are reworking the page via the CMS.
References:
PDF manual, see page 16 for description of the embargo
Module page with a short description
Source
In Joomla, there is a way to do this out of the box without touching any code. Here's how I would do it -
Create a category for the page that will be getting replaced
Create a menu item pointing to that category. Set it to display 1 item only, ordered by newest date
Create a template override so that the category item displays like an article detail page
Create new articles with a start publish date that determines when it starts displaying
Basically, you'd be displaying a category but it would look like an article. It would always pull the newest article that has reached it's start publish date. It would be easy to keep track of because you would have copies of every version you post, each update you would simply make a copy of the last one to edit.
You could probably write something custom to accomplish the same thing, but why spend the time and effort when it can be done easily with a template override?

Sitecore how to manage duplicate content

I'm currently developing a website in Sitecore where there will be three distinct areas which have the same structure down to level 2 pages, beyond this level structure is likely to diverge. Some of these pages will have identical content across each structure, whereas some will be unique. The content is something like this:
home\section-1-home\sub-page-1 (identical content between the three sections)
\sub-page-2 (identical content between the three sections)
\sub-page-3 (different content for each section)
\section-2-home\sub-page-1
\sub-page-2
\sub-page-3
\section-3-home\sub-page-1
\sub-page-2
\sub-page-3
\sub-page-4 (extra page, unique to this section)
Is there a way to manage this scenario in Sitecore?
I've had two ideas how to manage this so far:
1) Set up some kind of custom publishing action which merges content from a nominated 'master' version of a page, to the slave versions of the same page.
2) Create a master content tree (at the same level as home and thus not directly browsable), then do something clever to the Sitecore Context object to make it point to an item in this master content tree instead of the current item.
Edit:
Just to clarify; I'm using Sitecore 6.2 for this site and at the moment, changing to another version of Sitecore isn't an option :-(
If you're working with Sitecore 6.4 then you may want to look at item cloning. You can clone a single item or even an entire branch of the content tree. A clone will get its data from its parent, though individual fields of the item can be overwritten.
Considerations for Sitecore 6.4 architecture for multiple site, multiple language open ended solution?
http://www.sitecore.net/Community/Technical-Blogs/John-West-Sitecore-Blog/Posts/2010/10/Sitecore-CMS-6-4-Cloning.aspx
If you're staying with an earlier version then you should read this:
http://sdn.sitecore.net/upload/sitecore6/sc62keywords/reusing_and_sharing_data_sc62_a4001.pdf
They'll update that document to include cloning sometime...
If I understood your problem correctly, then there are various ways you can do this, i will only mention a couple
Create a custom 'shared content' section in your tree and then with in each section create a 'shared content sublayout/renderer' and set the source of the sublyout to the shared content
Other option could be to consider on section as the master section and then hook into either save or publishing piplines and create/clone your items.
You might find this thread useful:
Retrieving Sitecore items Position A in the content tree and to the user in Position B
You could also you proxies, which work with a lot of version of Sitecore (5.3 to at least 6), which let you create "copies" of items.
You need to enable them in the web.config though and there are some draw backs.
For Sitecore 6 see:
http://sdn.sitecore.net/upload/sitecore6/64/reusing_and_sharing_data-a4.pdf#search=%22proxies%22
Or do a search on proxies on the SDN.

Resources