SlideShare a Scribd company logo
1 of 23
DEEP DRIVE INTO THE
SITECORE CLIENT PIPELINES
This slideshow come from http://sitecoreblog.blogspot.be/ to explain
how the SPEAK client Pipelines works
Intro
In this slideshow, I will the Sitecore Client pipelines. This is poorly
documented even if it is used everywhere.
Do not confuse the client pipelines who are used by SPEAK on the client side
with the server pipeline that you probably already know well.
To be as concrete as possible, I will take an example: the process which
append when you click the add rendering button in the ExperienceEditor.
It was really difficult to explain it in a post or slideshow but I hope that it will
be clear enough if you have questions or remarks please let a message on
this blog post.
Overview
The next slide present an overview of the whole process.
Donโ€™t be scared by the complexity we will go in it step by step.
You will probably need to go back to this slide to see the where we are
in the process.
When a command is
triggered, the
url /sitecore/shell/Applicatio
ns/WebEdit/WebEditRibbon.
aspx is called with
parameters and the
method OnPreRender() of
this class is called (1).
This class call the
base.OnPreRender() (2)
For this first call, IsEvent is true
and IsResult is false, so
the this.RaiseEvent(); is called (3). This
is where the Execute method of the
command's associated class is
triggered.
The Execute method initialize the
parameters and then the
Context.ClientPage.Start(this, "Run",
parameters) method is call.
This register a method to trigger in the
pipeline (4).
The Execute method is now finished and
the RunPipelines() method of
the ClientPage class is called.
The RunPipeline will start the
client pipeline.
This will add a
command "SetPipeline" in it to
be executed on the client side.
Then, Run() method registered
sooner is process (4)
args.IsPostback is false so the
code in (6) is executed.
The SheerResponse.ShowModal
Dialog add a
command ShowModalDialog in
the client pipeline.
The args.WaitForPostback() will
suspend the client process we
will see it later.
The call to the command (4) and the WebEditRibbon.aspx (1) is finished and return the
following pipeline as response in json.
As you can see, 3 commands are registered.
(The set attribute is automatic and I am not sure that it is useful :-) )
This response send by the server
contain the info about the
pipeline and the commands to
execute.
The Javascript
method scRequestHandler from
the Sitecore.js file will process
it.
This method call the handle(),
who call the resume() and then
the process() method is called
foreach command in the
pipeline.
This process() method is really
the core of this pipeline system
on the client side!
It is basically just a big switch
with all the possible messages
allowed by Sitecore.
Depending on the command
name, different javascript
method are triggered.
COMMAND PROCESSING
1. The SetPipeline command is processed and just set a pipeline id to the curent pipeline to be able to retrieve it later.
2. The ShowModalDialog command display the Dialog.
3. The process is suspend so the last command is not triggered.
When you click on the select
button of the dialog, the
javascript will call
the resume() method.
This resume method will call the
latest command before the
suspend.
In our case, it will call the
ShowModalDialog command
again.
For this second call to
the ShowModalDialog command,
the process will be almost the
same:
1. Call the WebRibbon.aspx
2. Call the base class (13). But,
this time, this.Isresult is true
so the method called is the
this.ResumePipeline()
REMARKS ABOUT THE STORAGE OF THOSE
PIPELINE ON THE SERVER SIDE
โ€ข The pipeline ID who have perform the request is stored into
Sitecore.Context.ClientPage.ClientRequest.Pipeline (ShortID format)
โ€ข The suspended pipelines are stored into the user session accessible with
WebUtil.GetSessionValue("SC_SUSPENDED_PIPELINES")
โ€ข The pipelines commands for the current pipelines are visible in debug in
Sitecore.Context.ClientPage._pipelines but this is a private variable.
BACK IN THE RUN METHOD OF
THE COMMAND
This time args.IsPostBack is true
and args.HasResult is true but
AddRendering.IsSelectedDatasou
rceDialogPostBack(args) is false
because you didn't have select
the datasource yet. So the code
in (15) is executed.
1. The WebRibbon.aspx return a new pipeline in Json with a new ID
2. The process() method will process the different commands and suspend after the ShowModalDialog
3. When you will select the datasource the JS resume method will relaunch the ShowModalDialog
4. The Run() method is called again.
You should have understood the process and it is the same for the subdialog where you select the datasource. So I will
go faster :-)
This time the
AddRendering.IsSelectedDatasou
rceDialogPostBack(args) is true.
So it will register an Eval
command in the returned
pipeline.
Here the kind of Json returned
by this pipeline
Of course this pipeline will be
executed and process the
commands. The Eval command
will have the
parameter chrome:placeholder:c
ontroladded
This message will be handled by
the handleMessage() method in
the PlaceholderChromeType.js
to add this rendering in the
page.
And.... "Ouf" that is it. I hope that you have now a view on the ways Sitecore work on
the client side
If you have questions about this, please let a message on this blog post and I will try
to reply as best as I can.

More Related Content

What's hot

Servlet 01
Servlet 01Servlet 01
Servlet 01
Bharat777
ย 
Javax.servlet,http packages
Javax.servlet,http packagesJavax.servlet,http packages
Javax.servlet,http packages
vamsi krishna
ย 
An Introduction To Java Web Technology
An Introduction To Java Web TechnologyAn Introduction To Java Web Technology
An Introduction To Java Web Technology
vikram singh
ย 
Sockets in nach0s
Sockets in nach0sSockets in nach0s
Sockets in nach0s
naniix21_3
ย 
S E R V L E T S
S E R V L E T SS E R V L E T S
S E R V L E T S
patinijava
ย 
Request dispatching in servlet
Request dispatching in servletRequest dispatching in servlet
Request dispatching in servlet
vikram singh
ย 
ASP.NET MVC
ASP.NET MVCASP.NET MVC
ASP.NET MVC
Paul Stovell
ย 
Web
WebWeb
Web
googli
ย 

What's hot (20)

Servlet/JSP course chapter 1: Introduction to servlets
Servlet/JSP course chapter 1: Introduction to servletsServlet/JSP course chapter 1: Introduction to servlets
Servlet/JSP course chapter 1: Introduction to servlets
ย 
Servlet 01
Servlet 01Servlet 01
Servlet 01
ย 
Javax.servlet,http packages
Javax.servlet,http packagesJavax.servlet,http packages
Javax.servlet,http packages
ย 
java Servlet technology
java Servlet technologyjava Servlet technology
java Servlet technology
ย 
ASP.NET MVC 4 Request Pipeline Internals
ASP.NET MVC 4 Request Pipeline InternalsASP.NET MVC 4 Request Pipeline Internals
ASP.NET MVC 4 Request Pipeline Internals
ย 
Glassfish JEE Server Administration - Module 4 Load Balancer
Glassfish JEE Server Administration - Module 4 Load BalancerGlassfish JEE Server Administration - Module 4 Load Balancer
Glassfish JEE Server Administration - Module 4 Load Balancer
ย 
Selenium RC Overview
Selenium RC OverviewSelenium RC Overview
Selenium RC Overview
ย 
Initialize database in Mule part2
Initialize database in Mule part2Initialize database in Mule part2
Initialize database in Mule part2
ย 
An Introduction To Java Web Technology
An Introduction To Java Web TechnologyAn Introduction To Java Web Technology
An Introduction To Java Web Technology
ย 
Weblogic as a windows service
Weblogic as a windows serviceWeblogic as a windows service
Weblogic as a windows service
ย 
Sockets in nach0s
Sockets in nach0sSockets in nach0s
Sockets in nach0s
ย 
S E R V L E T S
S E R V L E T SS E R V L E T S
S E R V L E T S
ย 
Mule esb soap_service
Mule esb soap_serviceMule esb soap_service
Mule esb soap_service
ย 
Mule management console installation with Tomcat
Mule management console installation with TomcatMule management console installation with Tomcat
Mule management console installation with Tomcat
ย 
Servlet ppt by vikas jagtap
Servlet ppt by vikas jagtapServlet ppt by vikas jagtap
Servlet ppt by vikas jagtap
ย 
692015 programmingย assignmentย 1ย buildingย aย multiยญthreadedย w
692015 programmingย assignmentย 1ย buildingย aย multiยญthreadedย w692015 programmingย assignmentย 1ย buildingย aย multiยญthreadedย w
692015 programmingย assignmentย 1ย buildingย aย multiยญthreadedย w
ย 
Mule esb How to convert from Json to Xml in 5 minutes
Mule esb How to convert from Json to Xml in 5 minutesMule esb How to convert from Json to Xml in 5 minutes
Mule esb How to convert from Json to Xml in 5 minutes
ย 
Request dispatching in servlet
Request dispatching in servletRequest dispatching in servlet
Request dispatching in servlet
ย 
ASP.NET MVC
ASP.NET MVCASP.NET MVC
ASP.NET MVC
ย 
Web
WebWeb
Web
ย 

Similar to Sitecore - Deep drive into the Sitecore Client pipelines

Similar to Sitecore - Deep drive into the Sitecore Client pipelines (20)

Asp Net Architecture
Asp Net ArchitectureAsp Net Architecture
Asp Net Architecture
ย 
servlet 2.5 & JSP 2.0
servlet 2.5 & JSP 2.0servlet 2.5 & JSP 2.0
servlet 2.5 & JSP 2.0
ย 
Servlets lecture1
Servlets lecture1Servlets lecture1
Servlets lecture1
ย 
Mvc interview questions โ€“ deep dive jinal desai
Mvc interview questions โ€“ deep dive   jinal desaiMvc interview questions โ€“ deep dive   jinal desai
Mvc interview questions โ€“ deep dive jinal desai
ย 
Unit 38 - Spring MVC Introduction.pptx
Unit 38 - Spring MVC Introduction.pptxUnit 38 - Spring MVC Introduction.pptx
Unit 38 - Spring MVC Introduction.pptx
ย 
Http programming in play
Http programming in playHttp programming in play
Http programming in play
ย 
ASP.NET MVC introduction
ASP.NET MVC introductionASP.NET MVC introduction
ASP.NET MVC introduction
ย 
70562-Dumps
70562-Dumps70562-Dumps
70562-Dumps
ย 
Workshop 27: Isomorphic web apps with ReactJS
Workshop 27: Isomorphic web apps with ReactJSWorkshop 27: Isomorphic web apps with ReactJS
Workshop 27: Isomorphic web apps with ReactJS
ย 
Server side programming bt0083
Server side programming bt0083Server side programming bt0083
Server side programming bt0083
ย 
Web Component Development Using Servlet & JSP Technologies (EE6) - Chapter 4...
 Web Component Development Using Servlet & JSP Technologies (EE6) - Chapter 4... Web Component Development Using Servlet & JSP Technologies (EE6) - Chapter 4...
Web Component Development Using Servlet & JSP Technologies (EE6) - Chapter 4...
ย 
Asp.Net Mvc
Asp.Net MvcAsp.Net Mvc
Asp.Net Mvc
ย 
J2EE-assignment
 J2EE-assignment J2EE-assignment
J2EE-assignment
ย 
Day7
Day7Day7
Day7
ย 
weblogic perfomence tuning
weblogic perfomence tuningweblogic perfomence tuning
weblogic perfomence tuning
ย 
Spring MVC to iOS and the REST
Spring MVC to iOS and the RESTSpring MVC to iOS and the REST
Spring MVC to iOS and the REST
ย 
Asp.net,mvc
Asp.net,mvcAsp.net,mvc
Asp.net,mvc
ย 
Introduction To Mvc
Introduction To MvcIntroduction To Mvc
Introduction To Mvc
ย 
Integrating Servlets and JSP (The MVC Architecture)
Integrating Servlets and JSP  (The MVC Architecture)Integrating Servlets and JSP  (The MVC Architecture)
Integrating Servlets and JSP (The MVC Architecture)
ย 
Spring MVC Framework
Spring MVC FrameworkSpring MVC Framework
Spring MVC Framework
ย 

Recently uploaded

โ‚น5.5k {Cash Payment}New Friends Colony Call Girls In [Delhi NIHARIKA] ๐Ÿ”|97111...
โ‚น5.5k {Cash Payment}New Friends Colony Call Girls In [Delhi NIHARIKA] ๐Ÿ”|97111...โ‚น5.5k {Cash Payment}New Friends Colony Call Girls In [Delhi NIHARIKA] ๐Ÿ”|97111...
โ‚น5.5k {Cash Payment}New Friends Colony Call Girls In [Delhi NIHARIKA] ๐Ÿ”|97111...
Diya Sharma
ย 
Sarola * Female Escorts Service in Pune | 8005736733 Independent Escorts & Da...
Sarola * Female Escorts Service in Pune | 8005736733 Independent Escorts & Da...Sarola * Female Escorts Service in Pune | 8005736733 Independent Escorts & Da...
Sarola * Female Escorts Service in Pune | 8005736733 Independent Escorts & Da...
SUHANI PANDEY
ย 
VVIP Pune Call Girls Sinhagad WhatSapp Number 8005736733 With Elite Staff And...
VVIP Pune Call Girls Sinhagad WhatSapp Number 8005736733 With Elite Staff And...VVIP Pune Call Girls Sinhagad WhatSapp Number 8005736733 With Elite Staff And...
VVIP Pune Call Girls Sinhagad WhatSapp Number 8005736733 With Elite Staff And...
SUHANI PANDEY
ย 
VIP Call Girls Pollachi 7001035870 Whatsapp Number, 24/07 Booking
VIP Call Girls Pollachi 7001035870 Whatsapp Number, 24/07 BookingVIP Call Girls Pollachi 7001035870 Whatsapp Number, 24/07 Booking
VIP Call Girls Pollachi 7001035870 Whatsapp Number, 24/07 Booking
dharasingh5698
ย 
( Pune ) VIP Baner Call Girls ๐ŸŽ—๏ธ 9352988975 Sizzling | Escorts | Girls Are Re...
( Pune ) VIP Baner Call Girls ๐ŸŽ—๏ธ 9352988975 Sizzling | Escorts | Girls Are Re...( Pune ) VIP Baner Call Girls ๐ŸŽ—๏ธ 9352988975 Sizzling | Escorts | Girls Are Re...
( Pune ) VIP Baner Call Girls ๐ŸŽ—๏ธ 9352988975 Sizzling | Escorts | Girls Are Re...
nilamkumrai
ย 
VIP Call Girls Himatnagar 7001035870 Whatsapp Number, 24/07 Booking
VIP Call Girls Himatnagar 7001035870 Whatsapp Number, 24/07 BookingVIP Call Girls Himatnagar 7001035870 Whatsapp Number, 24/07 Booking
VIP Call Girls Himatnagar 7001035870 Whatsapp Number, 24/07 Booking
dharasingh5698
ย 

Recently uploaded (20)

Russian Call girl in Ajman +971563133746 Ajman Call girl Service
Russian Call girl in Ajman +971563133746 Ajman Call girl ServiceRussian Call girl in Ajman +971563133746 Ajman Call girl Service
Russian Call girl in Ajman +971563133746 Ajman Call girl Service
ย 
Real Escorts in Al Nahda +971524965298 Dubai Escorts Service
Real Escorts in Al Nahda +971524965298 Dubai Escorts ServiceReal Escorts in Al Nahda +971524965298 Dubai Escorts Service
Real Escorts in Al Nahda +971524965298 Dubai Escorts Service
ย 
2nd Solid Symposium: Solid Pods vs Personal Knowledge Graphs
2nd Solid Symposium: Solid Pods vs Personal Knowledge Graphs2nd Solid Symposium: Solid Pods vs Personal Knowledge Graphs
2nd Solid Symposium: Solid Pods vs Personal Knowledge Graphs
ย 
โ‚น5.5k {Cash Payment}New Friends Colony Call Girls In [Delhi NIHARIKA] ๐Ÿ”|97111...
โ‚น5.5k {Cash Payment}New Friends Colony Call Girls In [Delhi NIHARIKA] ๐Ÿ”|97111...โ‚น5.5k {Cash Payment}New Friends Colony Call Girls In [Delhi NIHARIKA] ๐Ÿ”|97111...
โ‚น5.5k {Cash Payment}New Friends Colony Call Girls In [Delhi NIHARIKA] ๐Ÿ”|97111...
ย 
Trump Diapers Over Dems t shirts Sweatshirt
Trump Diapers Over Dems t shirts SweatshirtTrump Diapers Over Dems t shirts Sweatshirt
Trump Diapers Over Dems t shirts Sweatshirt
ย 
Katraj ( Call Girls ) Pune 6297143586 Hot Model With Sexy Bhabi Ready For S...
Katraj ( Call Girls ) Pune  6297143586  Hot Model With Sexy Bhabi Ready For S...Katraj ( Call Girls ) Pune  6297143586  Hot Model With Sexy Bhabi Ready For S...
Katraj ( Call Girls ) Pune 6297143586 Hot Model With Sexy Bhabi Ready For S...
ย 
Sarola * Female Escorts Service in Pune | 8005736733 Independent Escorts & Da...
Sarola * Female Escorts Service in Pune | 8005736733 Independent Escorts & Da...Sarola * Female Escorts Service in Pune | 8005736733 Independent Escorts & Da...
Sarola * Female Escorts Service in Pune | 8005736733 Independent Escorts & Da...
ย 
VVIP Pune Call Girls Sinhagad WhatSapp Number 8005736733 With Elite Staff And...
VVIP Pune Call Girls Sinhagad WhatSapp Number 8005736733 With Elite Staff And...VVIP Pune Call Girls Sinhagad WhatSapp Number 8005736733 With Elite Staff And...
VVIP Pune Call Girls Sinhagad WhatSapp Number 8005736733 With Elite Staff And...
ย 
Enjoy NightโšกCall Girls Samalka Delhi >เผ’8448380779 Escort Service
Enjoy NightโšกCall Girls Samalka Delhi >เผ’8448380779 Escort ServiceEnjoy NightโšกCall Girls Samalka Delhi >เผ’8448380779 Escort Service
Enjoy NightโšกCall Girls Samalka Delhi >เผ’8448380779 Escort Service
ย 
Call Now โ˜Ž 8264348440 !! Call Girls in Rani Bagh Escort Service Delhi N.C.R.
Call Now โ˜Ž 8264348440 !! Call Girls in Rani Bagh Escort Service Delhi N.C.R.Call Now โ˜Ž 8264348440 !! Call Girls in Rani Bagh Escort Service Delhi N.C.R.
Call Now โ˜Ž 8264348440 !! Call Girls in Rani Bagh Escort Service Delhi N.C.R.
ย 
VIP Call Girls Pollachi 7001035870 Whatsapp Number, 24/07 Booking
VIP Call Girls Pollachi 7001035870 Whatsapp Number, 24/07 BookingVIP Call Girls Pollachi 7001035870 Whatsapp Number, 24/07 Booking
VIP Call Girls Pollachi 7001035870 Whatsapp Number, 24/07 Booking
ย 
Nanded City ( Call Girls ) Pune 6297143586 Hot Model With Sexy Bhabi Ready ...
Nanded City ( Call Girls ) Pune  6297143586  Hot Model With Sexy Bhabi Ready ...Nanded City ( Call Girls ) Pune  6297143586  Hot Model With Sexy Bhabi Ready ...
Nanded City ( Call Girls ) Pune 6297143586 Hot Model With Sexy Bhabi Ready ...
ย 
( Pune ) VIP Baner Call Girls ๐ŸŽ—๏ธ 9352988975 Sizzling | Escorts | Girls Are Re...
( Pune ) VIP Baner Call Girls ๐ŸŽ—๏ธ 9352988975 Sizzling | Escorts | Girls Are Re...( Pune ) VIP Baner Call Girls ๐ŸŽ—๏ธ 9352988975 Sizzling | Escorts | Girls Are Re...
( Pune ) VIP Baner Call Girls ๐ŸŽ—๏ธ 9352988975 Sizzling | Escorts | Girls Are Re...
ย 
VIP Call Girls Himatnagar 7001035870 Whatsapp Number, 24/07 Booking
VIP Call Girls Himatnagar 7001035870 Whatsapp Number, 24/07 BookingVIP Call Girls Himatnagar 7001035870 Whatsapp Number, 24/07 Booking
VIP Call Girls Himatnagar 7001035870 Whatsapp Number, 24/07 Booking
ย 
๐“€คCall On 7877925207 ๐“€ค Ahmedguda Call Girls Hot Model With Sexy Bhabi Ready Fo...
๐“€คCall On 7877925207 ๐“€ค Ahmedguda Call Girls Hot Model With Sexy Bhabi Ready Fo...๐“€คCall On 7877925207 ๐“€ค Ahmedguda Call Girls Hot Model With Sexy Bhabi Ready Fo...
๐“€คCall On 7877925207 ๐“€ค Ahmedguda Call Girls Hot Model With Sexy Bhabi Ready Fo...
ย 
Call Now โ˜Ž 8264348440 !! Call Girls in Sarai Rohilla Escort Service Delhi N.C.R.
Call Now โ˜Ž 8264348440 !! Call Girls in Sarai Rohilla Escort Service Delhi N.C.R.Call Now โ˜Ž 8264348440 !! Call Girls in Sarai Rohilla Escort Service Delhi N.C.R.
Call Now โ˜Ž 8264348440 !! Call Girls in Sarai Rohilla Escort Service Delhi N.C.R.
ย 
Dubai Call Girls Milky O525547819 Call Girls Dubai Soft Dating
Dubai Call Girls Milky O525547819 Call Girls Dubai Soft DatingDubai Call Girls Milky O525547819 Call Girls Dubai Soft Dating
Dubai Call Girls Milky O525547819 Call Girls Dubai Soft Dating
ย 
Pune Airport ( Call Girls ) Pune 6297143586 Hot Model With Sexy Bhabi Ready...
Pune Airport ( Call Girls ) Pune  6297143586  Hot Model With Sexy Bhabi Ready...Pune Airport ( Call Girls ) Pune  6297143586  Hot Model With Sexy Bhabi Ready...
Pune Airport ( Call Girls ) Pune 6297143586 Hot Model With Sexy Bhabi Ready...
ย 
Call Girls Sangvi Call Me 7737669865 Budget Friendly No Advance BookingCall G...
Call Girls Sangvi Call Me 7737669865 Budget Friendly No Advance BookingCall G...Call Girls Sangvi Call Me 7737669865 Budget Friendly No Advance BookingCall G...
Call Girls Sangvi Call Me 7737669865 Budget Friendly No Advance BookingCall G...
ย 
All Time Service Available Call Girls Mg Road ๐Ÿ‘Œ โญ๏ธ 6378878445
All Time Service Available Call Girls Mg Road ๐Ÿ‘Œ โญ๏ธ 6378878445All Time Service Available Call Girls Mg Road ๐Ÿ‘Œ โญ๏ธ 6378878445
All Time Service Available Call Girls Mg Road ๐Ÿ‘Œ โญ๏ธ 6378878445
ย 

Sitecore - Deep drive into the Sitecore Client pipelines

  • 1. DEEP DRIVE INTO THE SITECORE CLIENT PIPELINES This slideshow come from http://sitecoreblog.blogspot.be/ to explain how the SPEAK client Pipelines works
  • 2. Intro In this slideshow, I will the Sitecore Client pipelines. This is poorly documented even if it is used everywhere. Do not confuse the client pipelines who are used by SPEAK on the client side with the server pipeline that you probably already know well. To be as concrete as possible, I will take an example: the process which append when you click the add rendering button in the ExperienceEditor. It was really difficult to explain it in a post or slideshow but I hope that it will be clear enough if you have questions or remarks please let a message on this blog post.
  • 3. Overview The next slide present an overview of the whole process. Donโ€™t be scared by the complexity we will go in it step by step. You will probably need to go back to this slide to see the where we are in the process.
  • 4.
  • 5. When a command is triggered, the url /sitecore/shell/Applicatio ns/WebEdit/WebEditRibbon. aspx is called with parameters and the method OnPreRender() of this class is called (1).
  • 6. This class call the base.OnPreRender() (2)
  • 7. For this first call, IsEvent is true and IsResult is false, so the this.RaiseEvent(); is called (3). This is where the Execute method of the command's associated class is triggered.
  • 8. The Execute method initialize the parameters and then the Context.ClientPage.Start(this, "Run", parameters) method is call. This register a method to trigger in the pipeline (4). The Execute method is now finished and the RunPipelines() method of the ClientPage class is called.
  • 9. The RunPipeline will start the client pipeline. This will add a command "SetPipeline" in it to be executed on the client side. Then, Run() method registered sooner is process (4)
  • 10. args.IsPostback is false so the code in (6) is executed.
  • 11. The SheerResponse.ShowModal Dialog add a command ShowModalDialog in the client pipeline. The args.WaitForPostback() will suspend the client process we will see it later.
  • 12. The call to the command (4) and the WebEditRibbon.aspx (1) is finished and return the following pipeline as response in json. As you can see, 3 commands are registered. (The set attribute is automatic and I am not sure that it is useful :-) )
  • 13. This response send by the server contain the info about the pipeline and the commands to execute. The Javascript method scRequestHandler from the Sitecore.js file will process it.
  • 14. This method call the handle(), who call the resume() and then the process() method is called foreach command in the pipeline. This process() method is really the core of this pipeline system on the client side! It is basically just a big switch with all the possible messages allowed by Sitecore. Depending on the command name, different javascript method are triggered.
  • 15. COMMAND PROCESSING 1. The SetPipeline command is processed and just set a pipeline id to the curent pipeline to be able to retrieve it later. 2. The ShowModalDialog command display the Dialog. 3. The process is suspend so the last command is not triggered.
  • 16. When you click on the select button of the dialog, the javascript will call the resume() method. This resume method will call the latest command before the suspend. In our case, it will call the ShowModalDialog command again.
  • 17. For this second call to the ShowModalDialog command, the process will be almost the same: 1. Call the WebRibbon.aspx 2. Call the base class (13). But, this time, this.Isresult is true so the method called is the this.ResumePipeline()
  • 18. REMARKS ABOUT THE STORAGE OF THOSE PIPELINE ON THE SERVER SIDE โ€ข The pipeline ID who have perform the request is stored into Sitecore.Context.ClientPage.ClientRequest.Pipeline (ShortID format) โ€ข The suspended pipelines are stored into the user session accessible with WebUtil.GetSessionValue("SC_SUSPENDED_PIPELINES") โ€ข The pipelines commands for the current pipelines are visible in debug in Sitecore.Context.ClientPage._pipelines but this is a private variable.
  • 19. BACK IN THE RUN METHOD OF THE COMMAND This time args.IsPostBack is true and args.HasResult is true but AddRendering.IsSelectedDatasou rceDialogPostBack(args) is false because you didn't have select the datasource yet. So the code in (15) is executed.
  • 20. 1. The WebRibbon.aspx return a new pipeline in Json with a new ID 2. The process() method will process the different commands and suspend after the ShowModalDialog 3. When you will select the datasource the JS resume method will relaunch the ShowModalDialog 4. The Run() method is called again. You should have understood the process and it is the same for the subdialog where you select the datasource. So I will go faster :-)
  • 21. This time the AddRendering.IsSelectedDatasou rceDialogPostBack(args) is true. So it will register an Eval command in the returned pipeline.
  • 22. Here the kind of Json returned by this pipeline Of course this pipeline will be executed and process the commands. The Eval command will have the parameter chrome:placeholder:c ontroladded This message will be handled by the handleMessage() method in the PlaceholderChromeType.js to add this rendering in the page.
  • 23. And.... "Ouf" that is it. I hope that you have now a view on the ways Sitecore work on the client side If you have questions about this, please let a message on this blog post and I will try to reply as best as I can.