Page MenuHomePhabricator

davcal Plugin for dokuwiki Release 2017-02-19e "Frusterick Manners" don´t display inputs
Closed, ResolvedPublic


I installed davcal Plugin and WebDavPlugin on my dokuwiki.
I use a davical self hosted server for synchronisation.

On my android phone i see the input what I have done in the dokuwiki calendar but dokuwiki don´t display any input.
I also updated the fullcalendar.js to version 3.6 but nothing changed.
I cannot find an error message which give a hint.

Event Timeline

What exactly are you trying to achieve? You want to synchronise your DokuWiki calendar to davical, right?
Did you configure WebDAV connections in the Admin section? If so, were you able to display the available calendars?

You can also try to enable debug in DokuWiki and have a look at cache/debug.log (IIRC). At least webdavclient displays a lot of debugging output that way.

code.png (1×902 px, 28 KB)

error.png (600×1 px, 55 KB)

Actual i found this at the apache error.log

view.png (557×1 px, 32 KB)

debuglog.png (659×800 px, 16 KB)

This si the output. Yes i sync my davicalserver with the dokuwiki page. If i place an input it works, because on my mobile phone I see it, but the wikipage is blank

Hm, seems to be related to davical. Unfortunately, I can't test this since I do not have a davical installation.
Please enable debug logging and force a sync. Then, you should be able to see some XML output in the debug log - be aware that your calendar data is included here!

output.png (1×843 px, 45 KB)

here is the output. do you need more?

This is helpful, although webdavclient doesn't seem to log the raw response. There seems to be an empty tag <''> which is closed by </multistatus> and that probably confuses simplexml_load_string().
Could you add the following line in helper.php on line 1126 (right before $response = $this->clean_response(...))


Then, please force a sync and paste the content between SNIP and //SNIP. It might be that clean_response() doesn't play nice with davical or that davical reports something bad.

andreas triaged this task as High priority.Nov 8 2017, 12:06 PM

Thanks, that is the relevant part. The function clean_response messes the response up when davical is used (I only test against Sabre/DAV resp. NextCloud). It might take a bit until I come up with a solution, but I'll make that a high priority task.

OK, could you try the following:
In function clean_response (helper.php:1364), add as first line of the function:

$response = preg_replace('/xmlns[^=]*="[^"]*"/i', '', $response);

This might fix it, if not, we need to find another solution.

debuglogAfter.png (1×1 px, 25 KB)

codeWebdav.png (324×604 px, 8 KB)

Thanks for the quick response. Obvisily nothing changed i deleted brwoser cache etc.
Do you need access to my system?

It works now!
I updated davical from version 1.1.3 to 1.1.5 about backport package made a resync and now I see the data.
So I guess there where changes made for debian stretch.

Thank you for your big support!

OK, I'm glad you got it working. I'm pushing an update anyway just now, since you discovered a bug with this broken XML tag.

I'm sorry to hesitate you again.
Today i was working on the dokuwiki and recognised, that the plugin still dont work.
After that i saw the update for webdav
I updated the webdav plugin but nothing changed.

I needet to update my davical server because of the new version but i don´t know if this is the matter
Here is my log for update:

snip3.png (1×800 px, 28 KB)

errorlog APache.png (288×1 px, 22 KB)

I deleted accidently the existing account and added again. this was after update of the webdav clients

after_update_webdav.png (1×2 px, 281 KB)

log2.png (1×529 px, 51 KB)

log1.png (1×930 px, 53 KB)

log3.png (1×433 px, 46 KB)

Thank you in advanced

No problem, I introduced a nice regression - I should definitely do more regression testing before pushing updates!
Anyway, please try the latest update published just now. The problem was/is the "C:" in <C:calendar-data> which confused the XML parser - I fixed it in 447fc5d456c1.

Perfect now it works again :) I thought i made a mistake.