ClassicPress PetitionsClassicPress Petitions
This is a read-only archive. Post or comment on the live version of this page on our forums.

Google Docs integration

January 18, 2019 · 05:09 · James Nylen
Description

What might a more robust editing flow with support for collaboration and multiple roles look like as part of ClassicPress?

I think a really solid, seamless integration with Google Docs would be interesting to explore. Google Docs has the best real-time collaborative editing experience I've ever seen, anywhere. This is the result of many years of engineering effort.

There are a couple of existing (or previously existing) solutions:

https://www.wpsuperstars.net/publish-from-google-docs-to-wordpress/ (according to the reviews not supported anymore / not working for common situations, seems to potentially require a WordPress.com account / Jetpack site)

https://www.wordable.io/google-docs-to-wordpress/ (third-party service, requires an account with Wordable, appears to use XML-RPC on the site)

Such a solution could use Apps Script on the Google Docs side to send the document contents to the ClassicPress REST API and store info about the connection in document metadata, but this would require setup for each Google user account.

Another way this could work is with most of the work being done on the ClassicPress PHP side, with a button that prompts you to go through the Google OAuth flow and pick a document to synchronize with a post.

Either way, I think the ideal user experience for this feature would look something like this: the TinyMCE view of post_content becomes read-only on the ClassicPress editing page, but stays connected to the underlying Google doc in the background. Then, people who write and edit stories would have their access managed using Google, and ideally only the person who publishes after everything is reviewed would need to mess with the ClassicPress dashboard.

There are definitely a lot of details to figure out here, such as how to map more complicated content types like embeds over to ClassicPress. This kind of setup would probably be most useful for text-heavy posts.

Voters
+5 more
Discussion
Fabian Wolf

Its what we talked about on Slack .. and I totally like this. It's a great idea, it's business-focused as hell, and would greatly help adopting CP for different use cases than just as a mere CMS :)

So, +1 from me.

How to do this? I'd do it as a core plugin, or even as a separate "plugin suite", which is specifically aimed towards ClassicPress.

mark kaplun

I was thinking about implementing that, but I think that what we learned from gutenberg is that people have all kind of different workflow regarding content creation.

It will be very nice to integrate with google docs, but sooner than later you will also need integration with office365 so some flexibility out of the box will be needed.

As for how the content is stored.... it is probably too early to discuss it here, but IMHO you should not tie the content to an editor. I can definitely see a collaborative stage happening in docs and some small edits happening in tinymce. Those edits might or might not need to be synched back to docs, but the decisions should be the author's one (imagine that in 5 years google will become eviler than FB and people just want to abandon their account there, or more likely that they deprecate the feature, what will happen than if the content is tied to google?)

James Nylen

> Its what we talked about on Slack

Right, these are not all my ideas/links... this petition came out of a conversation between several of us on Slack including me, you, Tim, and Michelle.

> I can definitely see a collaborative stage happening in docs and some small edits happening in tinymce. Those edits might or might not need to be synched back to docs, but the decisions should be the author's one

Good point, this is likely to be the biggest issue with such an integration.

> It will be very nice to integrate with google docs, but sooner than later you will also need integration with office365 so some flexibility out of the box will be needed.

I suppose this would be worth thinking about during the design of this integration (for example, create interfaces for "communication components" that send/receive to/from an external service, and "markup converters" to transform between document formats), but the internals would likely look very different between Google Docs and Office 365.

Tim Kaye

As we discussed, I think this is a really great idea!

>It will be very nice to integrate with google docs, but sooner than later you will also need integration with office365 so some flexibility out of the box will be needed.

I suspect that the users involved are probably different, and so the methods to be used might well differ. O365 isn't really geared up for collaborative work in the same way as Google Docs, and that isn't likely to change because of the way that certain professions (esp. the legal profession) need it to work.

O365 for lawyers is increasingly tightly integrated into law practice and/or document management software, and so I suspect that a CP PHP-centric approach would probably not be so worthwhile. It would be better to have an add-on to Word to "push" document contents to CP, so that this activity would be recorded in the management software.

But for Google Docs, I can see both the CP-PHP-centric and the add-on approach being feasible according to the specific use case.

Personally, I would love to see an add-on for LyX (my word processor of choice by a country mile) but that might be asking for too much!

mark kaplun

@james, I have a feeling that all "remote publishing" kind of solutions will end up with some similar backend requirements, and the implementation of the actual protocol will not be anywhere near 100% of the development effort required. For sure there are going to be overlapping code and UX.

@Tim, In agencies that manage sites for organizations it is not rare to receive content in MSword that needs to be uploaded to the site. Since MS is trying to move everybody to 365, and I assume that it has some sort of API, this kind of integration may simplify life for many people and not just in some specific niches.

Fabian Wolf

so .. on base of mark kapluns comment, creating a common integration base for this would be nice, but maybe better as a separate plugin joint effort?
This could work like Payment Gateways for any kind of shop system. So you have your base classes and API for integration, and then add a module or plugin for specific Payment Providers. And in the current case, its just Content Providers :)

A specific, optionally core or "core-like integrated" plugin, where several folks who also work on CP woulld create this, focusing on CP aspects, not necessarly WP aspects (which still would have the side effect that anything below 5.0 could benefit from this, at least partially).

cu, w0lf.

Viktor Nagornyy

Great idea, as long as XML-RPC isn't used.

Tim Kaye

The original discussion on Slack was predicated on this using the REST API so, no, it won't use XML-RPC.

Wells

Cool idea, but definitely needs to stay in plugin land. I used to use Google Docs to share documents with a large group of clients (well over 100). It seemed like a great system, until a particularly active client realized that their employer (a state government agency) completely blocked access to Google Docs on their network. If Docs integration were made part of core, switching to CP would be a no-go for organizations with similar limitations.

James Nylen

>If Docs integration were made part of core, switching to CP would be a no-go for organizations with similar limitations.

Not necessarily: this integration would always be optional.

Still, this would also work just fine as a plugin for only the people who want to use it, and it would have to start that way anyway in order to be viable.

If someone is interested in exploring this idea in code, let me know on Slack or the forums, and I'll create a repository under https://github.com/ClassicPress-research.

Jesse

Sorry but this is a rather ignorant idea, and will get ClassicPress a lot of ridicule as being an amateur CMS candidate. To succeed, the software needs to be wholly independent and self-reliant. Relying on or favoring any third party services introduces a world of legal, political, and technical concerns. It also creates bad blood between Google's competitors and ClassicPress, creating unnecessary enemies and burning bridges right out of the gate... for what?

E.g. ClassicPress gets immediately banned in China as soon as this feature is added... features like this just betray the "ethnocentrism" of the CP project as not properly considering the world stage and future growth.

As @Mark stated:

> I was thinking about implementing that, but I think that what we learned from gutenberg is that people have all kind of different workflow regarding content creation.
> It will be very nice to integrate with google docs, but sooner than later you will also need integration with office365 so some flexibility out of the box will be needed.