Drupal publishing template

Build 1501 on 14/Nov/2017  This topic last edited on: 28/Oct/2016, at 11:47

<!--Drupal pubTemplate-->

  <pubTemplate

     name="Drupal">

    <scopeRef>

      <keyVal>Default</keyVal>

    </scopeRef>

    <publishWF>

      <wfres:workFlow

        xmlns:wfres="http://www.teradp.com/schemas/GN4/1/WFRes.xsd">

 

        <SequentialWorkflow

          x:Name="DrupalPublishWF"

               CodeAssembly="DrupalXmlRpc, Version=1.0.0.0, Culture=neutral"

          xmlns="http://www.teradp.com/schemas/GN4/1/Workflow/Activity"

          xmlns:gn4wf="http://www.teradp.com/schemas/GN4/1/Workflow"

          xmlns:common="http://www.teradp.com/schemas/GN4/1/Common"

          xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"

          xmlns:wf="http://schemas.microsoft.com/winfx/2006/xaml/workflow"

          xmlns:sys="clr-namespace:System;assembly=mscorlib"

          xmlns:coll="clr-namespace:System.Collections;assembly=mscorlib"

          xmlns:fn="http://www.teradp.com/schemas/GN4/1/Xslt"

          xmlns:gn4="urn:schemas-teradp-com:gn4tera">

 

          <ObjectsReplicator

            x:Name="Replicator"

            ObjectIds="{wf:ActivityBind DrupalPublishWF,ObjectIds}">

 

            <LoadObjects

              x:Name="Object"

              ObjectIds="{wf:ActivityBind Replicator,ObjectIdsOut}">

 

              <LoadObjects

                x:Name="LoadDrupalXml"

                ObjectIds="{wf:ActivityBind Replicator,ObjectIdsOut}" />

 

 

              <wf:IfElseActivity

              x:Name="MimeTest">

 

                <wf:IfElseBranchActivity

                  x:Name="IsStory">

                  <wf:IfElseBranchActivity.Condition>

                    <gn4wf:XPathCondition

                      XmlIn="{wf:ActivityBind Object,Path=XmlOut}"

                      Expression="/gn4:story" />

                  </wf:IfElseBranchActivity.Condition>

 

                  <Code

                    x:Name="callDrupalMethod"

                    Method="ExportToDrupal">

 

                    <Code.Parameters>

                      <coll:ArrayList>

                        <!-- Drupal Key -->

                        <wf:WorkflowParameterBinding

                         ParameterName="$pars/*/add[@key='DrupalKey']/@value"

                         Value="{wf:ActivityBind Object,Path=XmlOut}" />

 

                        <!-- Drupal Domain -->

                        <wf:WorkflowParameterBinding

                         ParameterName="$pars/*/add[@key='DrupalDomain']/@value"

                         Value="{wf:ActivityBind Object,Path=XmlOut}"/>

 

                        <!-- Drupal Url -->

                        <wf:WorkflowParameterBinding

                         ParameterName="$pars/*/add[@key='DrupalUrl']/@value"

                         Value="{wf:ActivityBind Object,Path=XmlOut}"/>

 

                        <!-- Drupal User -->

                        <wf:WorkflowParameterBinding

                         ParameterName="$pars/*/add[@key='DrupalUser']/@value"

                         Value="{wf:ActivityBind Object,Path=XmlOut}"/>

 

                        <!-- Drupal Password -->

                        <wf:WorkflowParameterBinding

                         ParameterName="$pars/*/add[@key='DrupalPwd']/@value"

                         Value="{wf:ActivityBind Object,Path=XmlOut}"/>

 

                        <!-- Drupal Xml -->

                        <wf:WorkflowParameterBinding

                         Value="{wf:ActivityBind LoadDrupalXml,Path=XmlOut}"/>

                        

                        <!-- out Drupal ID -->

                        <sys:String />

                      </coll:ArrayList>

                    </Code.Parameters>

 

 

                    

                  </Code>

 

                  <wf:IfElseActivity

                    x:Name="DrupalError">

 

                    <wf:IfElseBranchActivity

                      x:Name="DrupalExportFails">

                      <wf:IfElseBranchActivity.Condition>

                        <gn4wf:ValueCondition

                          Value="{wf:ActivityBind callDrupalMethod,Path=ResultString}" />

                      </wf:IfElseBranchActivity.Condition>

 

                      <Log

                      x:Name="LogDrupalExportError"

                      Code="Error"

                      Message="'{0}'">

                        <Log.Pars>

                          <wf:WorkflowParameterBinding

                            wf:ParameterName="p0"

                            wf:Value="{wf:ActivityBind callDrupalMethod, Path=ResultString}"

                          />

                        </Log.Pars>

                      </Log>

 

                    </wf:IfElseBranchActivity>

 

                    <wf:IfElseBranchActivity

                      x:Name="DrupalExportOK">

 

                      <Log

                        x:Name="LogDrupalExportOK"

                        Code="Info"

                        Message="Exported Story to Drupal with id {0}">

                        <Log.Pars>

                          <wf:WorkflowParameterBinding

                            wf:ParameterName="p0"

                            wf:Value="{wf:ActivityBind callDrupalMethod, Path=Parameters[6]}"

                          />

                        </Log.Pars>

                      </Log>

 

                    </wf:IfElseBranchActivity>

 

                  </wf:IfElseActivity>                  

 

                </wf:IfElseBranchActivity>

 

                <wf:IfElseBranchActivity

                  x:Name="IsNotStory">

 

                  <Log

                    x:Name="NotRecognizedLog"

                    Code="Error"

                    Message="{0} is not a story">

                    <Log.Pars>

                      <wf:WorkflowParameterBinding

                        ParameterName="/*/@name"

                        Value="{wf:ActivityBind Object,Path=XmlOut}"/>

                    </Log.Pars>

                  </Log>

 

                </wf:IfElseBranchActivity>

 

              </wf:IfElseActivity>

 

            </LoadObjects>

 

          </ObjectsReplicator>

 

        </SequentialWorkflow>

 

        <eop:XmlExportOptions

          wfres:activityName="Object"

          xmlns:eop="http://www.teradp.com/schemas/GN4/1/XmlExportOptions.xsd"

          xmlns:xsl="http://www.w3.org/1999/XSL/Transform" />

 

 

        <eop:XmlExportOptions

          wfres:activityName="LoadDrupalXml"

          xmlns:eop="http://www.teradp.com/schemas/GN4/1/XmlExportOptions.xsd"

          xmlns:xsl="http://www.w3.org/1999/XSL/Transform"

          MaxDepth="10">

          <eop:Xslt>

            <xsl:stylesheet version="1.0" xmlns:gn4="urn:schemas-teradp-com:gn4tera">

              <xsl:template match="/">

                <drupal>

                  <type>article</type>

                  <xsl:element name="title">

                    <xsl:if test="/gn4:story/gn4:title">

                      <xsl:value-of select="/gn4:story/gn4:title" />

                    </xsl:if>

                  </xsl:element>                  

                  <xsl:element name="body">

                    <xsl:if test="/gn4:story/gn4:summary">

                      <xsl:value-of select="/gn4:story/gn4:summary"/>

                    </xsl:if>

                  </xsl:element>

                </drupal>

              </xsl:template>

            </xsl:stylesheet>

          </eop:Xslt>

        </eop:XmlExportOptions>

 

      </wfres:workFlow>

    </publishWF>

    <unPublishWF/>

    <autoFillXslt/>

    <parsDef>

      <item name="DrupalUrl" type="string" />

      <item name="DrupalKey" type="string" />

      <item name="DrupalDomain" type="string" />

      <item name="DrupalUser" type="string" />

      <item name="DrupalPwd" type="string" />

    </parsDef>

  </pubTemplate>