 Okay. Hello everyone. Let's start. So, I'm Piotr Kosznicki, the Director of Engineering at CK-Source, so the company behind CK-Editor. And I have zero experience as a Drupal developer and wrote my last PHP line in probably 2011. But I have 12 years of experience as a CK-Editor developer. I worked on CK-R4, CK-05, and with the Drupal team integrating CK-R4 and CK-R5 into Drupal, basically. And I'll talk today about stuff that I know something about, so basically transforming your Drupal installations into more collaborative, uh, continental experience. And a bit of history first. So, uh, CK-R4 became the default editor for Drupal 8. Then in Drupal 9, CK-R5 was added as the option. And in Drupal 10, CK-R4, CK-R5 became the default editor. And CK-R4 is an option. You can install it still as a country module. However, CK-R4 came, uh, will come to the end of its life together with Drupal 9, actually. This will happen at the end of 2023. Uh, and if you are stuck with CK-R4 if you need it for any reasons, you can, uh, you may be interested in the extended support model, but this is, of course, a premium, premium thing. Um, so, yeah, what's actually the big deal about CK-R4 and CK-R5 for some, some more context. So basically these are completely separate projects, completely separate products. Uh, and they share mainly the name and the team behind, uh, and nothing else. We started CK-R5 into, in 2015. Uh, and it took us like eight years to get to a reasonable feature parity with CK-R4, so it was a huge, huge investment. And, uh, for you, probably the biggest and the most important difference will be how both editors handle the data that you feed into them. So for CK-R4, if you feed HTML and a sort of HTML, uh, blow-up into it, and, uh, it's being converted into a similar dump structure. There are very little differences there, the HTML back, and it will be very similar, uh, if you really push hard and try to feed in very complex HTML, it will still be, uh, it can still preserve most of it. With CK-R5, it's a bit harder because we have this custom data model in the middle, so not anymore a dump that's very similar to HTML, but a custom data model, which was designed with, uh, rich text in mind. And, uh, if you think about everything that you can do with HTML, uh, like web apps, uh, very dynamic pages, and, um, then this rich text flavor of HTML will be a subset, a small subset of it. And this is, if you are using CK-R4 or CK-R5 to do that, then you're on the safe side. However, if you're trying to feed in, like, entire pages, then it's going to be complex and risky. Um, and unfortunately if you were using CK-R4, then you will need to migrate to CK-R5 and there's no other, uh, way to say it. This is a content migration, and we did everything we could, the Drupal team as well, to make this migration as smooth as possible for you, but it's still a migration. And the only thing I can say here is that we will not repeat rewriting CK-R4. Uh, this was a huge, huge investment, but there were also important reasons why we did that. And, um, the most important reason was actually collaboration. So we wanted to invest into enabling users to collaborate in CK-R5 to enable multiple people working on a piece of content. And if we talk about collaboration, uh, then we can divide it into, like, three steps. So first there is this creative process where, uh, for instance, content authors write the content, then there is reviewing, so, uh, someone may leave comments, someone may leave suggestions, and then the content once it's done is being published. Uh, however, of course, the process is not that simple. So after someone left you, uh, left you a review, you may need to get back to writing your content, and the same may happen even if the content is already published, uh, because it may be outdated or misleading, and someone may notice that. Uh, and of course, in larger organizations that are main stakeholders, there can be multiple people involved in the process, and it's really, really messy. Uh, so, and the problem that we've observed with the tools that are out there, and this is not specific to Drupal, is that there are, that those tools, CMSs, and other systems don't enable the collaborative process to happen in those systems. So we observed many companies moving that part into Google Docs, Word, Notion now, or any other system that do a better job here. Um, and unfortunately, if you can do actually that outside Drupal, then you will need to copy the content back to Drupal. And this is where things become hard, because this is actually another content migration, and if you do it every time you, you, uh, have to publish the content, then something's wrong, uh, and it's, and it's becoming tricky. So there must be a better way. And actually I wanted to do a live demo now, and let's see if internet is back on my phone. If not, we'll have a screencast. And it's not back, so we'll have a screencast. Um, can you see that? Sorry, give me a second. Yeah. Uh, so here you can see two, two browsers, because I'm locked as two different users into Drupal. And let's add some content, uh, some article in the right browser. So, yeah, we are testing RTC, and you can see how many attempts I have to do to actually record anything. Let's save that piece. And yeah, we needed to save it to have the URL so we can actually open the same piece of content in another browser. And once it loads, you can actually see the avatars of two users, because two users are editing the same piece of content. Uh, so let's say now that one of those users will just paste some content, or you can actually create it in Instigator to start the work. And you can see that the content is being repeated on the, in the second browser. We can save some revision for it. We can do other changes, like resizing an image, uh, save some more revisions. And let's now turn on the track changes mode, so we'll be suggesting changes, not making them in the content yet. So let's say I don't like this quote, and as you can see, the selection of the user in this browser is actually reflected and rendered here. Uh, so I press Backspace, and the content is marked as a suggestion to remove. Uh, then let's add some comment, and let's switch to that user. Let's say this user is now doing some other work. Of course they can do the work at the same time, but it's hard to actually show it live. Uh, so let's say I accepted the suggestion, and I'll reply to, to this comment. And once I'm done, let's open the revision history, and here we'll be able to see very granular changes than in the content also attributed to the specific users that did those changes. Uh, so we can see that they did everything that happened one by one. We can also compare specific revisions, and, uh, if you, I cannot show this right now about, actually, but if you, uh, highlight the change, you will see what part, which part of change was done by which user. Uh, so sorry it wasn't live demo, but the demo gods are not with me apparently. Let's get back to the slideshow. And I need some water. So yeah, no demo. Uh, back to some, uh, theory. Uh, so the collaboration can be split into two types. So there's this synchronous collaboration that's real time, that's non-blocking when multiple people can work at the same time on a single piece of content, but collaboration can also happen in an asynchronous way when it's still blocking, but you can still, like, leave comments, then the other person can respond to these comments, then some other person can apply changes. So this is, those two modes make some sense. And the typical collaboration features will make sense in both of those modes, except this presence list. So these avatars, of course, that, uh, make little sense in asynchronous collaboration. Um, and let's try to do something productive again, and, uh, this is probably a moment where I have to pause. These are premium features. These are stuff that we add to Cicator, stuff that's thanks to which we can actually, uh, maintain Cicator over many, many years. Uh, so to test those things, you will have to start the 30-day free trial. Uh, no credit card required. Um, and yeah, let's see that now. So there's the premium features, um, module page. There are installation guides here, and I really recommend if you try it at home, doing actually, uh, it through this installation guide, because I'm going to skip some, uh, less important things. Um, but yeah, some highlights. So we'll install the package via Composer. Uh, then you will see the new modules available in your admin panel, so you can filter for premium. You can install those pieces that you need. Uh, then you will have some new configuration options, and the important part will be, uh, the general settings of the premium features, where you have to, uh, copy the keys and everything from, uh, Cicator 5 dashboard. And again, use the guide because, uh, it's not that simple. Um, but it's quick. Anyway, and one thing I wanted to highlight here is this little option at the end. Uh, if you check it, then the, because there's very little space for Cicator in the admin panel, and we need more space to accommodate the sidebar and everything, so recommend checking it. Uh, anyway, once you do that, you will see four new buttons that you can add to your toolbar. This is, uh, comments, comments, archive, track changes, revision, history, and there are some additional configuration options for, for that. Uh, yeah. And if you did that, then you'll already be able to have multiple people working on the same piece of content, uh, no additional steps required. Um, so yeah, getting back to some theory, how does it all work? Um, so for the asynchronous uh, blocking collaboration, the situation is simple. Uh, all content will be stored in your Drupal installation. We need just some additional entity types to store metadata, such as comments, revision history, and suggestions. Um, but the problem with this mode are those awful conflict messages. And, uh, there's, in this case, there's, it's, it's hard to resolve those conflicts because we have more metadata. Uh, and we couldn't figure out yet the way to, uh, make it work seamlessly in Drupal. Uh, so I find the synchronous collaborations of the real-time collaboration far superior here. Um, and in this case, the content that the HTML blob is still stored in Drupal. However, the metadata, uh, like comments, revision history, uh, and, uh, suggestions are stored either on Secretus Cloud or a self-hosted installation of it. And the process how the data is being handled works like this. When a first user starts editing a node, then the content is being sent from Drupal to a collaboration server and collaboration session is being started there. Then the user applies some changes to the content and these changes are immediately sent to the server. So the server, the cloud server always keeps the latest version of the content. It's always up to date there. Uh, when next users join, the content is being loaded to them not from Drupal, but from the collaboration server. So they always get the very latest version of the content with all the changes even though they haven't been saved to Drupal yet. Then when a user clicks save, the content is actually saved to Drupal and whenever everyone is done and, and, uh, there were, there are no active users on the collaboration session for 24 hours, the HTML content is being deleted from the cloud, but the metadata is kept because it has to be used for other sessions. Um, and in this case you may still see those errors. We haven't figured out yet the way to actually completely get rid of them, but the workaround is super simple. So when you see that error, you have to refresh the page and when you refresh the page, the content is loaded to you not from Drupal, but from the cloud. So you get the very latest version of that content and then you can safely click save and no changes will be lost. Uh, so yeah, what else? Uh, for the collaboration features I haven't mentioned permissions yet, so you can have, uh, specific group of users being only able to, uh, comment on the content or apply suggestions, uh, whereas other users can do for instance everything, you can also have notifications via email on comments and suggestions for your content and mentions, uh, of your name in the comments themselves. There are also a couple of other interesting features out there. Um, two that I would highlight are the import from Word because it's a service that lets you just upload a Word file and if you had a Word-centric workflow where the collaboration part of the work would happen in Word and people would use it to comment on the content, create suggestions, then you can import all that into, into Drupal with the, with the comments and suggestions. And the very, uh, recent edition AIS assistant, uh, that we released just two weeks ago, or a week ago, and it will be available, uh, in the, uh, premium module as soon as Drupal updates to CQator for CQator 5 version 40. And that's it. I wanted to have more time for questions, so thank you. And if you have any questions, then ask. So at some point Oh, sorry. So how would CQator work, uh, to edit DocEx files, uh, let's say probably you have DocEx files somewhere and just start, you want to start editing them. So, um, you can do two things. You can copy the content from Word or you can import. Import will preserve more content. Uh, but like copying is a free feature. It's by default in CQator 5. Uh, importing is a premium service. Uh, but it allows, when we have the file and we can process the file, we can, uh, preserve more formatting and also more, uh, and we can preserve those suggestions and comments. And at this point, you actually have to work, let's say in Drupal or any other CQator installation. And if you need to, uh, then we, uh, have export to Word as well. Uh, but for the time being, you will be logged into, in Drupal for instance. So if you would send us to the people who want them, like, uh, an office kind of basically, would they be unedited or something? So there's no full parity between Word and CQator, CQator. We never wanted to make it like a Word replacement. But uh, in many, many cases, we have many, many organizations using CQator for document editing. Uh, the level of features that we have is sufficient. So it really depends on what you actually need. If you have like very rich template that's structured Word files, then you may need, you may miss some features. But, uh, many will work with, there's also a pagination feature which will, uh, if you have everything configured correctly it will render, uh, page breaks, uh, automatically and, uh, a couple other things. Yeah. Okay, so the question okay, uh, so the question was what happens if you start using the premium modules and then you, then you stop what happens. So the HTML, like the root of the content is always stored in Drupal. We don't take that, uh, outside. So if you stop, uh, using premium features, you will still have the content. You will not get, uh, the comments and revision history but the content will be, will be there. Uh, so the question was, uh, that I showed, uh, editing a node directly in admin panel and if I got it right, what, is it possible also to have collaboration like in an inline mode, uh, and the third one I didn't, okay, so when the, the, the thing happens in a popup. So I don't, I'm not 100% sure about the answer because I, I don't know Drupal, uh, that well but, uh, I definitely saw the collaboration features used like in a, a comment part for instance, so they can appear there in an inline editing mode. I don't think, uh, they will, uh, load but if there's, like we, I probably haven't heard that feature requested but if, if we hear then maybe it's, it may be it's actually easy. So the first question was how, whether there's an autosave, uh, so when let's say people are collaborating on the content and they forget to click the save button, right? Um, so we, as a CK editor outside Drupal we have an autosave plugin. I don't know if it can be installed into Drupal, uh, but probably yes. But, uh, an important thing here would be that if, let's say, two guys are collaborating working on a piece of content and both, I don't know if it drops because internet connection ends, uh, the content will be still stored, all the changes, even though they haven't been sent to Drupal, they will be stored on the, uh, cloud server for 24 hours. So when they join again, they can still get the very, very latest version and save back to Drupal. And I don't see reasons for not implementing autosave once those, uh, once we figure out how to get rid of those, uh, conflict messages because probably if two users had autosave enabled, they would just be getting them on and on again. And I will find you after my talking. Okay, figure, uh, so we are running out of time, uh, but I can stay here for however how long do you want, so I'll be in front of the room and we also have a booth at the end. Uh, there are some useful links and I will post them on my Twitter. Uh, thank you very much.