+1-888-365-2779
Try Now
More in this section

Forums / General Discussions / Wiki Sub Pages

Wiki Sub Pages

7 posts, 0 answered
  1. MNP
    MNP avatar
    79 posts
    Registered:
    23 Apr 2008
    10 Aug 2009
    Link to this post
    Playing around with the new wiki control in Sitefinity 3.7.

    When you add in the admin control, you have the ability to add in a page within this wiki - awesome as it can provide a hierarchy structure to your wiki. However - I can't seem to find where to list the "child" pages of a certain wiki. Do you have to create a new page and then set the parent ID? These child pages also do not show up in the wiki module listing in the CMS.

    In the user manual, there's no explanation of what these are supposed to be used for. Would it be possible to get some further explanations?

    Thanks

    -Matt
  2. Lino
    Lino avatar
    45 posts
    Registered:
    06 May 2005
    12 Aug 2009
    Link to this post
    Hi Matt,

    From the main Wiki, you can place it in EDIT mode and use the new button in the RadEditor next to the Flash Manager to insert a link to an exisiting Wiki page.
    You can do this from all the children pages as well to link to any parent or child page in the Wiki.
    If you are looking for an automatic way to place all the children links at the Parent level, it is not there.

    Hope that helps
    Cheers
    -Lino
  3. MNP
    MNP avatar
    79 posts
    Registered:
    23 Apr 2008
    12 Aug 2009
    Link to this post
    Thanks for the response.

    I guess my question would be can it be there? Can there be a control that lists all the children for a certain wiki page?

    Maybe today I'll see what if I can use the API to get this information.

    -Matt
  4. MNP
    MNP avatar
    79 posts
    Registered:
    23 Apr 2008
    14 Aug 2009
    Link to this post
    Looked at the API this morning and found a way to get the Child pages - Correct me if I'm wrong.

    Dim mgr As New Telerik.Wiki.WikiManager("Wiki"
          Dim c As New Telerik.Cms.Engine.ContentManager("Wiki"
          Dim lst As IList 
          For Each w As Telerik.Wiki.IWiki In mgr.GetWikis 
     
             Label1.Text &= "<br />" & w.Name & " - " 
             lst = c.GetChildItems(w.ID) 
             Label1.Text &= lst.Count 
             For Each contentItm As Telerik.Cms.Engine.IContent In lst 
                Label1.Text &= "<br />" & contentItm.GetMetaData("Name"
             Next 
          Next 

    Which in turn gives you the main wiki names as well as the child pages. In this case I have 2 main wiki's.

    This is another main wiki - 2
    Page inside Another Main
    This is another main wiki
    This is the Wiki Name - 3
    Page
    Wiki Name
    asdfasdf


    Am I going about this the correct way?

    -Matt

  5. Georgi
    Georgi avatar
    3583 posts
    Registered:
    28 Oct 2016
    17 Aug 2009
    Link to this post
    Hi Matt,

    Yes, this is the way. The Wikis are based on Generic Content, so each wiki is a IContent item. The approach is similar for all content items - Generic Content, News, Blog (with the posts), Images and Documents and so on.

    Kind regards,
    Georgi
    the Telerik team

    Instantly find answers to your questions on the newTelerik Support Portal.
    Check out the tipsfor optimizing your support resource searches.
  6. Drew Peloubet
    Drew Peloubet avatar
    10 posts
    Registered:
    06 Oct 2008
    20 Oct 2009
    Link to this post
    We are implementing something similar to what you described.  We have multiple people adding to multiple wikis.  We'd like to use the dashboard to show us which pages have been updated, but the subwiki page does not display.  Can you help?  When you describe the API, how is this accessed?  Where does it reside? 

    Thanks in advance for the assistance
    - Matt
  7. Nikolai
    Nikolai avatar
    216 posts
    Registered:
    21 Nov 2016
    21 Oct 2009
    Link to this post
    Hello Drew Peloubet,

    To use the WikiManager class and ContentManager class you will need to reference Telerik.Wiki and Telerik.Cms.Engine dlls located in your project's bin folder.

    Here is the C# version of the code:
    var wikiManager = new WikiManager("Wiki");
    var conetentManager = new ContentManager("Wiki");
    var allWikis = wikiManager.GetWikis();
     
    foreach(IWiki wiki in allWikis)
    {
        var contItems =  conetentManager.GetChildItems(wiki.ID);                          
         
        if(contItems.Count>0)
            foreach(IContent item in contItems)
            {
                Response.Write("<p>"+item.GetMetaData("Name").ToString()+"</p>");
            }
    }

    The idea here is to use the WikiManger class to get all the wikis inside you project. Then use the ContentManager class to get all the wikipage which are saved in the DB as IContent items.

    Best wishes,
    Nikolai
    the Telerik team

    Instantly find answers to your questions on the new Telerik Support Portal.
    Watch a video on how to optimize your support resource searches and check out more tips on the blogs.
Register for webinar
7 posts, 0 answered