Copied to clipboard

Flag this post as spam?

This post will be reported to the moderators as potential spam to be looked at


  • Manthos 19 posts 35 karma points
    Jun 26, 2009 @ 16:19
    Manthos
    0

    Dynamically create nodes from a document's template

    Assume that there is a document type TypeA and a document type TypeB and that TypeA can have sub elements (allowed child nodetypes) of TypeB.

    1) If we have a document of TypeA, say DocA, is it possible to create a button ot input element of type button in DocA's template that when it is pressed, a new document of type DocB is created under DocA?

    2) Further more, is it possible to open the newly created node DocB for editing?

    For (1) I was trying to find a way to use "/umbraco/dialogs/create.aspx?nodeType=TypeB&app=content&nodeId=(DocA.id)" so that it silently creates DocB, without displaying any dialogs. For (2) we could use an iFrame element that has "/umbraco/editContent.aspx?id=(DocB.id)" as source or an equivalent page for editing DocB in canvas, but we need the id of the new node DocB.

    I have tried to pull these together but haven't succeded yet. Can someone show me a correct way of doing it or point me to the right direction?

  • Jamie Pollock 27 posts 102 karma points c-trib
    Jun 26, 2009 @ 22:23
    Jamie Pollock
    0

    Hi Manthos,

    You may want to check out http://our.umbraco.org/wiki/reference/api-cheatsheet/creating-a-document

    It goes through how to programatically create a node, you could use the code example when assigned to button click in a usercontrol.

    Hope this help, the url way would be quite difficult, this would definitely be the better way of going about creating nodes.

  • Morten Bock 1867 posts 2140 karma points MVP 2x admin c-trib
    Jun 27, 2009 @ 11:01
    Morten Bock
    0

    Hi Manthos

    Just to clatify: Do you want to do this from the frontend, ie. the website, so that external vistors can create pages, or is it an editorial feature for the backend /umbraco users?

  • Manthos 19 posts 35 karma points
    Jun 29, 2009 @ 08:43
    Manthos
    0

    Hi and thank you for your replies!

    I would like to use this functionality in the website, so that the viewers will be able to create and edit documents.

    I have already implemented the functionality in the example and created an xslt extension that can be used in a macro. I was trynig to find a way to do it, though, without creating an external user control because I think it would be clearer a solution if I only used code in TypeA's template. What is your opinion?

  • Manthos 19 posts 35 karma points
    Jun 29, 2009 @ 14:27
    Manthos
    0

    I try to use "/umbraco/dialogs/create.aspx?nodeType=TypeB&app=content&nodeId=(DocA.id)" in an iFrame

        <iframe src="/umbraco/dialogs/create.aspx?nodeID=1443&nodeType=Comment&nodeName=ABC&app=content" width="100%">
            <a href="/umbraco/dialogs/create.aspx?nodeID=1443&nodeType=Comment&nodeName=ABC&app=content">Add Me<br/>
        </iframe>

    but it displays the dialog that asks for the node type and the node name (although they are provided as arguments) and then it shows the following error. Am I missing any arguments?

    [NullReferenceException]
       umbraco.presentation.create.dialogHandler_temp.Create(String NodeType, Int32 TypeId, Int32 NodeId, String Text) +84
       umbraco.cms.presentation.create.controls.content.doCreation() +147
       umbraco.cms.presentation.create.controls.content.sbmt_Click(Object sender, EventArgs e) +5
       System.Web.UI.WebControls.Button.OnClick(EventArgs e) +111
       System.Web.UI.WebControls.Button.RaisePostBackEvent(String eventArgument) +110
       System.Web.UI.WebControls.Button.System.Web.UI.IPostBackEventHandler.RaisePostBackEvent(String eventArgument) +10
       System.Web.UI.Page.RaisePostBackEvent(IPostBackEventHandler sourceControl, String eventArgument) +13
       System.Web.UI.Page.RaisePostBackEvent(NameValueCollection postData) +36
       System.Web.UI.Page.ProcessRequestMain(Boolean includeStagesBeforeAsyncPoint, Boolean includeStagesAfterAsyncPoint) +1565

Please Sign in or register to post replies

Write your reply to:

Draft