xref: /plugin/stdokuwikiconnector/README.md (revision 15ad96519a17b8ab8aef4e68b4105ba3111a2ed8)
1*15ad9651SPetersSharp# DokuWikiConnector
2*15ad9651SPetersSharp[![Release](https://img.shields.io/github/release/PetersSharp/DokuWikiConnector.svg?style=flat)](https://github.com/PetersSharp/DokuWikiConnector/releases/latest)
3*15ad9651SPetersSharp[![Issues](https://img.shields.io/github/issues/PetersSharp/stCoCServer.svg?style=flat)](https://github.com/PetersSharp/stCoCServer/issues)
4*15ad9651SPetersSharp[![License](http://img.shields.io/:license-mit-blue.svg)](https://github.com/PetersSharp/stCoCServer/blob/master/LICENSE)
5993e64a2SPetersSharp
6*15ad9651SPetersSharp####.NET RPC-XML DokuWiki Connector API & Auth manager
7993e64a2SPetersSharp
8*15ad9651SPetersSharp this part of stCoCServer, see [stCoCServer](https://github.com/PetersSharp/stCoCServer)
9993e64a2SPetersSharp
10*15ad9651SPetersSharp####Features:
110418568dSPetersSharp
12*15ad9651SPetersSharp* API .NET library allows to XML-RPC connect to remote DokuWiki.
13*15ad9651SPetersSharp* Support all DokuWiki API operations.
14*15ad9651SPetersSharp* Local DokuWiki file credential authenticate managements.
15*15ad9651SPetersSharp
16*15ad9651SPetersSharp* DokuWikiConnector [source](https://github.com/PetersSharp/stCoCServer/tree/master/stCoCServer/stExtLib/stDokuWikiConnector-dll)
17*15ad9651SPetersSharp* DokuWikiConnector [Test suite](https://github.com/PetersSharp/stCoCServer/tree/master/stCoCServer/stTest/TestDokuWikiConnector)
18*15ad9651SPetersSharp* DokuWikiConnector [Method Documentation](https://github.com/PetersSharp/stCoCServer/tree/master/stCoCServer/stExtLib/stDokuWikiConnector-dll/Doc)
19*15ad9651SPetersSharp* Plugins publish   [dokuwiki.org](https://www.dokuwiki.org/plugins:stdokuwikiconnector?s[]=dokuwikiconnector)
20*15ad9651SPetersSharp
21*15ad9651SPetersSharp####Example use stDokuWiki.Connector:
220418568dSPetersSharp
230418568dSPetersSharp```csharp
240418568dSPetersSharp
25*15ad9651SPetersSharpusing stDokuWiki.Connector;
26*15ad9651SPetersSharpusing stDokuWiki.Data;
270418568dSPetersSharp
28*15ad9651SPetersSharp    RpcXml xml = new RpcXml("http://you-dokuwiki-url.org/", "userquest", "userquest");
29*15ad9651SPetersSharp    XMLMethodPageList dokuList = xml.DokuPageList("wiki:") as XMLMethodPageList;
30*15ad9651SPetersSharp    foreach (var items in dokuList.Params.Param.Value.Array.Data.Value)
310418568dSPetersSharp    {
32*15ad9651SPetersSharp        foreach (var item in items.Struct.Member)
33*15ad9651SPetersSharp        {
34*15ad9651SPetersSharp            Console.WriteLine(
35*15ad9651SPetersSharp              item.Name +
36*15ad9651SPetersSharp              ((string.IsNullOrWhiteSpace(item.Value.Int)) ? " " : " [" + item.Value.Int + "] ") +
37*15ad9651SPetersSharp              ((string.IsNullOrWhiteSpace(item.Value.String)) ? "" : item.Value.String)
38*15ad9651SPetersSharp            );
390418568dSPetersSharp        }
40*15ad9651SPetersSharp    }
41*15ad9651SPetersSharp
420418568dSPetersSharp```
43f7c62807SPetersSharp
44*15ad9651SPetersSharp####Example use stDokuWiki.AuthManager:
45f7c62807SPetersSharp
46*15ad9651SPetersSharp```csharp
47*15ad9651SPetersSharp
48*15ad9651SPetersSharpusing stDokuWiki.AuthManager
49*15ad9651SPetersSharpusing stDokuWiki.Data;
50*15ad9651SPetersSharp
51*15ad9651SPetersSharp    DokuAuthManager dam;
52*15ad9651SPetersSharp    try
53*15ad9651SPetersSharp    {
54*15ad9651SPetersSharp       dam = new DokuAuthManager("/path/to/dokuwiki/root/dir","mygroup");
55*15ad9651SPetersSharp
56*15ad9651SPetersSharp       List<DokuAuthUser> uadd = new List<DokuAuthUser>()
57*15ad9651SPetersSharp       {
58*15ad9651SPetersSharp          new DokuAuthUser() { Login = "userLogin1", Password = "pwd1234", Name = "Nikolas", Email = "Nikolas@nomail.com", Group = "personalGroup"},
59*15ad9651SPetersSharp          new DokuAuthUser() { ... },
60*15ad9651SPetersSharp       };
61*15ad9651SPetersSharp       List<DokuAuthUser> udel = new List<DokuAuthUser>()
62*15ad9651SPetersSharp       {
63*15ad9651SPetersSharp          new DokuAuthUser() { Login = "userLogin2" },
64*15ad9651SPetersSharp          new DokuAuthUser() { ... },
65*15ad9651SPetersSharp       };
66*15ad9651SPetersSharp
67*15ad9651SPetersSharp       dam.UserAdd(uadd);
68*15ad9651SPetersSharp       dam.UserDelete(udel);
69*15ad9651SPetersSharp       dam.AuthSave();
70*15ad9651SPetersSharp
71*15ad9651SPetersSharp       DokuAuthUser dau = dam.UserGet("Nikolas");
72*15ad9651SPetersSharp       if (dau != null)
73*15ad9651SPetersSharp       {
74*15ad9651SPetersSharp          Console.WriteLine(
75*15ad9651SPetersSharp             dau.Name + " : " + dau.Email
76*15ad9651SPetersSharp          );
77*15ad9651SPetersSharp       }
78*15ad9651SPetersSharp    }
79*15ad9651SPetersSharp    catch (RpcXmlException e)
80*15ad9651SPetersSharp    {
81*15ad9651SPetersSharp        Console.WriteLine("[" + e.errcode + "] " +e.Message); return;
82*15ad9651SPetersSharp    }
83*15ad9651SPetersSharp    catch (Exception e)
84*15ad9651SPetersSharp    {
85*15ad9651SPetersSharp        Console.WriteLine(e.Message); return;
86*15ad9651SPetersSharp    }
87*15ad9651SPetersSharp
88*15ad9651SPetersSharp```
89