Search

A new extension, "Versioning" is now available for download. Comments and feedback can be left here but if you discover any issues, please post it on the issue tracker.

[Edit]:

Here it is, another approach on versioning entries. I't is highly inspired by Nick Dunn's Entry Versions. So why didn't I just fork Nich Dunns' extension? Because I think, it needed a new fresh start.

I hope I'll get some great input, suggestions hand helping hands here to push this thing forward.

What it really needs is the possibility for granular user access restriction, but things will develop, I'm sure they will.

Sorry for being that uncommunicative on this. I'll get back on it tomorrow.

When you say granular user access do you mean sort of like Locking the entry or more along the lines of only certain users may edit the entry?

Ykes! :D

Gesundheit!

Ok, I've been thinking about it and have come to the conclusion, that we can break it down into:

versioning user access controll:

  • user can create versions or user can only create versions instead of creating an actual entry
  • user can restore own versions or all versions
  • user can review versions:
    • if so, restored versions get staged immediately
    • if not, restored versions are flaged as approval pending

and basically the same for

Recycling user access controll:

  • user can restore own deleted entries or all entries
  • user can review deleted entries:
    • if so, restored entries get staged immediately
    • if not, restored entries are flaged as approval pending

Long time no see :)

I made some progress on this now. Well, actually I was working on a extension that basically does the same as the author_roles extension plus extra sugar (e.g. basic api, that let other extension register and request own rulesets), and so far, it works well with versioning.

Currently I'm able to do most of the list I provided earlier. Wanna see?

stage versions: versioning staging

versioning deleting

versioning deleting

So what do you see here?

If a user isn't allowed to stage or delete versions, versions get flagged with either a pending stage or pending deletion state. Pending-states need the approval of a user that has the ability to stage and/ or delete versions, to get staged/recovered/deleted.

But there is more. At the moment, you can allow a user, or to be precise, a user group, to create version, delete versions, recover/stage versions.

author groups

It is far form being complete, but I hope I get some feedback on this here, so I'll keep posting :)

Wow, that looks impressive!

I'd be really interested in giving this a go in a few days, good work!

Thank you. Let me know. I'll put it on github as soon as I thinks it's usable.

me wanna test it out too!! bloody brilliant :)

This looks really cool and could Allow us to use Symphony on client projects that require this sort of functionality.

There is one thing that bugs me a bit though: should the versioning and the ACL really be in a single extension? What if somebody wants the functionality from the ACL, but doesn't need the versioning? Or, what if I need versioning, but no ACL?

Shouldn't it be better to separate those two extensions, and let the versioning extension add rules to the ACL extension?

There is one thing that bugs me a bit though: should the versioning and the ACL really be in a single extension?

Yeah, that's why I pulled publishing ACL from my entry versioning prototype. At the time we were led to believe that Symphony would one day officially have an ACL, but that never came to pass.

Actually, both ACL and Versioning are separate extensions. ACL just provides an API for extensions to register their own sets of rules.

ACL just provides an API for extensions to register their own sets of rules.

That's great!

I think this extension is great, but it doesn't quite work as I need it to for my purposes and I was wondering if anyone had encountered the same issue.

We have a page for example called 'products' this is live on the website. We need to make amendments to this page - but they need to be authorised by an external source before we can put the changes live.

Versioning would work great for this, but the changes (i.e. new version) is made live and the old version is archived. Is there anyway, when the 'save and create a new version' button is clicked the new version is saved as archive and the original remains live. Until the content has been authorised, then the 'new version' can be restored, swapping the two around.

I hope this makes sense! I've had a look at the code but I'm pretty new to this and I'm going around in circles. Any help would be appreciated.

@jude86_7 you really shouldn't use this extension for production. It was published as a concept study and for community testing and wasn't updated since then. The current (none published) version works in a similar way like you described. It uses the ACL or Groupaccesscontrol extension, as it is currently called (and also not published yet), to handle staging approval and things like that.

So please stay tuned, because there will be some nice updates for the future.

iwyg, Could the preview versioning table data be output to a DataSource somehow? Was thinking that with the Preview_URL combo we'd be able to preview the article in context with new/preview changes without affecting the live/published article?

Was thinking of some sort of front end page with admin only access to the preview versioning Datasource using something like Nick Ryalls preview url field

Has anyone worked with any versioning extensions? I would like to include non destructive editing to my site as a solution to undo changes.

Has anyone worked with any versioning extensions? I would like to include non destructive editing to my site as a solution to undo changes.

+1 - add me to the list of those that would like to use a versioning extension.

me too

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