Search

Hello, I am new to Symphony and so far I am loving it. However I have come across an issue that I'm not sure how to solve.

I have created a site where the user can add items such as news and articles, as well as edit pages. On completion of the site our client wanted to add an extra feature - drafts. They must have all website changes approved before they are made live on the front end of the site. This was not a problem for the news items and articles as I have simply created a 'publish' checkbox and only put the content live when the checkbox is ticked. Therefore the user can add content in the control panel, the auditor can login with their details, check the content and set it to live.

However I can't work out the best way to create a draft page. The site has say for example 5 pages that should be live all of the time, our user comes along and wishes to add to or edit the content of a page that is already there. They need to be able to add this new content - save it as a draft so that it isn't live straight away yet the auditor can view it when they log in. When the auditor approves the content the user then needs to put the draft page live and remove the original.

I did try the versioning extension, which is great, but it makes the new version live straight away and keeps the old page as a version. Which I can understand, but it's not right for my needs. I did try altering this and will continue but I've been going around in circles!

If anyone has a solution or some ideas to throw into the mix I would be grateful or even a work around to the versioning extension to swap it so that the new version is saved as a draft until approved.

Thank you for your help in advance!

Hi Judith, have you checked out the Symphony default theme? It has a "drafts page" that only the administrator can see, with a button that allow a post to be "published". Is that what you're looking for?

Seems like no allen; she wants a post to have a draft / live status at the same time; what I can think of at the moment is to create some sort of 'virtual' duplicator and save into a new entry & serve the admin the 'new' entry & the client would be served the latest approved entry...

IE all edits that are on 'approved' pages lead to a new entry; whilst on unapproved entries they would be edits.

Right, I see. Looks like what you're looking is almost what the versions extension does. Have you checked out the other versioning extension called, Entry Versions? I've not played with it but maybe it does what you want. The only catch is that it's not compatible with 2.3.

Thank you for your help guys...yes gunglien that's exactly what I am after. I don't know if I am advanced enough to implement this but I will give it a go.

Allen I did look at this extension, thank you. But we have built the site in 2.3, I might post a comment to the Versioning thread and see if anyone has had the same problem as me before.

Thanks again for your help, much appreciated

What you could do maybe is add another field SelectBoxLink - and link it to the same section. Then maybe add some javascript - on load it checks if the checkbox was ticked before - if yes it modifies the (post) form to /new/ instead of /edit/ and fill up the selectboxlink value to link to the previous article. when the checkbox is ticked you do the opposite - change the /edit/ to the previous entry id which is linked in the selectboxlink and on post (using a delegate postentrysave?) you can try look up any linked drafts and delete them. (you could also maybe set a child-link) so you can use the same draft entry maybe when saving.

This is a quick solution which does not involve too much hassle but might not be the ideal solution.

Definitely post in issues on Github if you're having any problems using it in 2.3. The extension author, Nick, is really good about fixing things :-)

Create an account or sign in to comment.

Symphony • Open Source XSLT CMS

Server Requirements

  • PHP 5.3-5.6 or 7.0-7.3
  • PHP's LibXML module, with the XSLT extension enabled (--with-xsl)
  • MySQL 5.5 or above
  • An Apache or Litespeed webserver
  • Apache's mod_rewrite module or equivalent

Compatible Hosts

Sign in

Login details