1

I am working on WordPress plugin, which basically converts text files/MS Word Documents into WordPress Posts.

Flow is really simple, you just open dialog box and select files from PC and import.

Now I am trying to integrate Google Drive Picker so users can also create posts from there documents stored in their G-Drive.

I have done some pretty work by reading and understanding google drive picker documentation, I found a really good working example of it too.

so I customized by callback function for picker which is:

        function pickerCallback(data) {
            if (data.action === google.picker.Action.PICKED) {
                // document.getElementById('content').innerText = JSON.stringify(data, null, 2);
                var docs = data[google.picker.Response.DOCUMENTS];
                // var googleSelectedFiles = [];
                var allFiles = [];
                var singleFile = {};
                docs.forEach(function (file) {
                    gapi.load('client', function () {
                        gapi.client.load('drive', 'v2', function () {
                            gapi.client.request({
                                'path': '/drive/v3/files/' + file.id + '/export?mimeType=text%2Fhtml&key=' + myAjax.google.apikey,
                                'method': 'GET',
                                callback: function (responsejs, responsetxt) {
                                    singleFile.id = file.id;
                                    singleFile.name = file.name + ".html";
                                    singleFile.content = JSON.parse(responsetxt).gapiRequest.data.body;
                                    allFiles.push(singleFile);
                                    singleFile = {};
                                }
                            });
                        });
                    });
                });
                setTimeout(function () {
                    gDriveHandleFileProcess(allFiles);
                }, 4000);
            }
        }

Now the problem is, I am getting all the document converted as HTML, from <html> to end </html> which includes head tag and style tags and of course there are images too. I can set all the content into post_content of post while saving it into db, but it's really bad way, I know that.. so looked out for this problem, but nothing found helpful.

If it is possible in a good manners or there might be other solutions I can go through like exporting in other format then save it.. but I also tried simple text format which is not required as the formatting is must.

If anyone can guide me through or share any idea I can go through, that'll be really great.

Thanks in advance.

mrabro
  • 1,097
  • 4
  • 13
  • 27
  • What if you use DOMDocument https://www.php.net/manual/en/class.domdocument.php to parse and format the contents of the HTML before inserting them into the WP database as post_content? – Tami Sep 18 '22 at 01:14
  • I tried, but there is style tag which contains css and other source url tobe imported, and also there are images, I tried to get image sources and upload them and then replace the link with local.. but the css styling is bit ugly. – mrabro Sep 18 '22 at 16:31

0 Answers0