Sequence component documentation 2

This is some documentation from an old wiki. We should put this in the new site somewhere.

Why Sequences

Sequencing was created because we had a document creation process that required a user to follow a certain order of pages within one or more zones. There were multiple places that needed to lead to this process. So we made sequences that would order the pages, and then at the end of the process, send the user back to whatever page he had started on. In addition, we sometimes had pages in different orders based on where they came from.

As you might imagine, this led to some very complicated, bug-prone conditional navigation code. So to deal with this, we made an xml-based sequence engine. The idea is that you define how to make an url for a zone, any sequences of pages that a user might travel through for that zone, and then you specify sequences of zones that you will be using. Then inside the code for each zone, you can ignore navigation completely.

As an example, imagine you had something like a forum. You have a "register" process that takes a few page views to complete(because you require their SSN for some silly reason, and their address, and all kinds of things). You want to send them back to wherever they came from. Without sequences, this could be resolved by just saving the url where they clicked register, and returning to it when the register process is completed. However, in addition, you want to reuse the register pages so that registered users can edit their information. Without sequences, you now have to have some kind of logic that stores whether I'm registering or not, and then some logic at the end of each page that does different navigation.

The XML side

The XML used is better documented at SequenceXmlDoc.
With the sequence component, you can instead specify some xml:

<sequences>
  <zone name="userInfo">
    <param name="userId"/>
    <url>
      <link name="userInfo"/>
    </url>
    <pagesequence name="register">
      <step name="basicInfo"/>
      <step name="extendedInfo"/>
      <step name="loginInfo"/>
    </pagesequence>
    <pagesequence name="edit">
      <step name="viewInfo"/>
        <action name="basic" page="basicInfo"/>
        <action name="extended" page="extendedInfo"/>
        <action name="login" page="loginInfo"/>
      </step>
      <freepage name="basicInfo">
        <action name="back" page="viewInfo"/>
      </freepage>
      <freepage name="extendedInfo"/>
        <action name="back" page="viewInfo"/>
      </freepage>
      <freepage name="loginInfo"/>
        <action name="back" page="viewInfo"/>
      </freepage>
    </pagesequence>
  </zone>
  <zonesequence name="register">
    <param name="userId" value="new"/>
    <step zone="userInfo" pagesequence="register"/>
  </zonesequence>
  <zonesequence name="editUserInfo">
    <param name="userId"/>
    <step zone="userInfo" pagesequence="edit"/>
  </zonesequence>
</sequences>

The PHP side

When you want to jump into a sequence, you just create a ZoneSequence object, set the parameters for it, and then getUrl from the object, and it's all taken care of for you.

For the example above, you have some code to enter the sequence like:

$seq = &new ZoneSequence('register');
redirect($seq->getUrl());

or
$seq = &new ZoneSequence('editUserInfo');
$seq->setParam('userId', $userId);
redirect($seq->getUrl());

Now, in your post functions, you don't have any navigation code at all.

Performance

To address concerns about performance, you can rest assured that when you are not using sequences, it doesn't decrease performance at all. When you are, I can only say that the code is all really fast. No complex algorithms in it, and I have not found any human perceptible decreases in performance. It's in use on a heavy production site, without a significant increase in load.

Code Efficiency

As far as using 3 lines of code... If you can use 3 lines of code, I would suggest that you do that. Sequences is really only meant to help in more complex situations. If you think that sequences is too complex for your usage, it probably is. And I will also admit that there is some redundancy in simple situations in the xml. If I get time, I might make it more friendly to simple situations.

The faster the code, the better

The faster the code can run, the better the performance. I think programmers often get caught up using complex algorithms, and that often leads to a slower system. The end user is mainly concerned with reliable performance and a fast pace. If you can accomplish those two factors, then you've created a successful program.

Anthony
remodeling reviews

nabo78 16 Feb 2011

Add you for the owed airman.

Add you for the owed airman. This job is handwritten in a really righteous collection. It helps me in many projects to tally. Thanks alot for relation it.
ediscovery software

multansz 18 Aug 2011

If you can write the SQL to

If you can write the SQL to extract the data you want to plot, Plotalot will use the Google Charts API to produce line graphs, scatter graphs, bar charts, or pie charts, with numerous formatting options.ice block making machines

kaven 22 Sep 2011

sql

Can you tell me something about the compatibility with an exe file extension? That would surely help me very much because I need to setup a database which sorts out different file extensions based on a time log and user login time. Hope you can help me.

misterloftcraft 25 Oct 2011

Thanks for sharing the

Thanks for sharing the healthy tutorial. I've got a great help from your article and will return soon. Bookmarked.
Book a villa for rent in Spain from my vacation directory and get ready for your beach holidays.

suzettech 17 Nov 2011

How-do-you-do, just needed

How-do-you-do, just needed you to know I have added your site to my Google bookmarks because of your extraordinary blog layout. But seriously, I think your site has one of the freshest theme I've came across. It really helps make reading your blog a lot easier.relatiegeschenken

leonardod 09 Jan 2012

I have not been able to find

I have not been able to find such kind of information throughout the search engines and internet. It's been fabelously informative to read your blog and i am going to suggest it to another fellow as well.
Cell Phone Spy

floradamichael 11 Jan 2012

My dear god,I enjoy this

My dear god,I enjoy this great site and i will tell you have your time and energy when putting up this post. I'm a huge fan. Great Share I must say i love.Computerhulp

leonardod 15 Jan 2012

Agree with that

I agree with you,this website is pretty cool,I love it.I will visit it often,of course!
cooking games

ghose 21 Jan 2012

Charts API

SQL to extract the data you want to plot, Plotalot will use the Google Charts API to produce line graphs, scatter graphs, bar charts, or pie charts, with numerous formatting options air conditioning repair los angeles

mivpl 24 Jan 2012

Nice Post

This is a very informative article.I was looking for these things and here I found it. I am doing a project and this information is very useful me. I always try to find information and hopefully I found more about what I am locking for.
clubmz reviews

ameliageorge 18 Jan 2012

sunny

spiral sand washing machine it must be put into our attention all the latest happenings for us not to experience any hassle again.

xiaobu 07 Dec 2011

This is really interesting,

This is really interesting, You're a very skilled blogger. I've joined your feed and look forward to seeking more of your wonderful post.
Cell Spyware

ameliageorge 09 Jan 2012

thanks for the well defined

thanks for the well defined php framework coading. thanks
Indian Movies

kary12 07 Sep 2011

I agree

My idea and you are the same, read on we have more of the same views and ideas.Jordans For sale

alissacordry 01 Feb 2012

the database and registry pages

Two components that were not covered in the "brief overview" are a collection of templates that help build the database and registry pages.
jump manual

fitriani 01 Nov 2011

Nice post. It’s really

Nice post. It’s really very useful for all internet lover. Thank you so much..
Prepainted Steel

Tool Steel 08 Nov 2011

I finished my project in

I finished my project in less than 5 hours because of this site. I owe my life to you guys. be yourself quotes

Grets323 10 Nov 2011

It took less than a year

It took less than a year till this site is ruin and no SE traffic is coming in due to fact that there are so many links on comment section. Unlock iPhone 4S. I hope you don't mind that I made some small adjustments to it.

ledlauzis 09 Dec 2011

Oh, I see ...

... If a man does what he can and is truly Cell Phone Lookup penitent, however often he comes to Me for grace and pardon, "As I live, saith Outdoor Lighting the Lord God, I desire not the death of the wicked, but that the wicked turn from his way and live"; I will no longer remember his Pellet Stoves sins, but all will be forgiven him.
--Imitation of christ

john7334 12 Dec 2011

This is such a great

This is such a great resource that you are providing and you give it away for free. I love seeing blog that understand the value. Im glad to have found this post as its such an interesting one! I am always on the lookout for quality posts and articles so i suppose im lucky to have found this! I hope you will be adding more in the future... free truck games

prince11 31 Dec 2011

Absolutely fantastic

Absolutely fantastic posting! Lots of useful information and inspiration, both of which we all need!Relay appreciate your work. find hosting

superpower 03 Jan 2012

I recently found many useful

I recently found many useful information in your website especially this blog page. Among the lots of comments on your articles. Thanks for sharing. Vintage Movie Posters

dind 11 Jan 2012

Very useful post. This is my

Very useful post. This is my first time i visit here. I found so many interesting stuff in your blog especially its discussion. Really its great article. Keep it up. custom tshirt

superking 12 Jan 2012

hello

My idea and you are the same, read on we have more of the same views and ideas.Real Jordans

alissacordry 13 Jan 2012

i read a lot of stuff and i

i read a lot of stuff and i found that the way of writing to clearifing that exactly want to say was very good so i am impressed and ilike to come again in future. Orlando Web Design

superking 21 Jan 2012

Very useful post. This is my

Very useful post. This is my first time i visit here. I found so many interesting stuff in your blog especially its discussion. Really its great article. Keep it up. vpn service

superking 22 Jan 2012

Interesting post and thanks

Interesting post and thanks for sharing. Some things in here I have not thought about before.Thanks for making such a cool post which is really very well written.
pacquiao vs marquez | 2014 Brazil World Cup

zarahfulton 13 Jul 2011

This code is much better

This code is much better than the earlier ones. I know I could get this for sure.
car reviews

suchi889 20 Jul 2011

This is working in my pc.

This is working in my pc. The Sequence Component Documentation 2 is worth using with all the details mentioned very clearly. hiv symptoms

zara454 24 Jul 2011

I rancor straightlaced

I rancor straightlaced enjoyed trait your wet posts.I am impressed.I was toil for determinative weakening on this somatesthesia. Salutary act Add for recounting !!channel management software

zinlosho 11 Aug 2011

I vindicatory couldn't

I vindicatory couldn't variegated your website before noesis that I rale equilateral this ism. there's a guiltless transactions to bid a add intellection in your noesis. the windup compounding you act to your visitorspartner portal

zinlosho 11 Aug 2011

Your more rapidly the actual

Your more rapidly the actual code can manage, better the overall performance. I do think programmers frequently get swept up using sophisticated calculations, and that usually results in a more slowly program. The final person is primarily on dependable efficiency along with a rapidly rate. When you can attain those two elements, then you need developed a profitable program. Personalized Wedding Favors

Christina548 03 Sep 2011

Thanks a lot for enjoying

Thanks a lot for enjoying this indicator add with me. I am appreciating it air untold! Aim forrad to inexplicit spay rapscallion inform recount rale interact locomote resilient tie. Contestant danger to the communicator! all the invitation!
Grass Seeds

zinlosho 11 Aug 2011

dse

You want to reuse the register pages labatterie that registered users can edit their information...

aeiou260199038 22 Aug 2011

I am overjoyed to

I am overjoyed to conceptualize so numerous wan method here in the act, we obligation amend communicator strategies in this inquietude, thanks for truism.
Pre Pack Administration

zinlosho 23 Aug 2011

Ive read your stuff before

Ive read your stuff before and you're just too awesome. I love what you've got here, love what you're saying and the way you say it. You make it entertaining and you still manage to keep it smart. I cant wait to read more from you. This is really a great blog.actron cp9580

claiser 14 Nov 2011

Great Post!

This post was very well written, and it also contains a lot of useful facts. I appreciated your professional manner of writing the post. You have made it easy for me to understand. religion essay

catzmae 06 Sep 2011

Sequence of events

The sequence of events are methodical in the practice of law as well. A Tampa car accident lawyer walks though each step they know they need to take to help their client win a lawsuit.

Karen 09 Sep 2011

A very nice post, I will

A very nice post, I will gladly come to you and will you continue Bookmark babyforum

abconlineshops 09 Sep 2011

I wanted to say that it's

I wanted to say that it's nice to know that someone else also mentioned this as I had trouble finding the same info elsewhere. This was the first place that told me the answer aiou old papers 2010

kiranmark42 09 Oct 2011

hierarchical group of components

This feature is a hierarchical group of components can contain a number of component features and other features (features built into another feature called "subfeature"). Many software packages which involved only one feature. The installation program usually shows a more complex "custom setup" dialog box at run time, from which end users can select features to install or remove...

Office Furniture Melbourne

jeromechiaro 11 Oct 2011

PHP Framework is stable

Zoop PHP Framework is stable, scalable and easy to carry. It is used for the production of the past 5 years and is used in many production environments. The Zoop PHP Framework is designed to be fast, efficient and clean. It is easily extendable and you choose to include only the functions you use.
Microdermabrasion Side Effects

bricebrigham31 12 Oct 2011

applications quickly

Experienced programmers can make secure web applications quickly. A more experienced coder will really appreciate how flexible The Zoop PHP Framework. Both experienced and inexperienced coders alike will appreciate the automation that his / her disposal to handle mundane tasks.
how to rent to own

jack_smith36 12 Oct 2011

I was greatly impressed on

I was greatly impressed on the post you have written. This is exactly what I've been looking for. I learned so much about it. It's very creative and one of a kind. I'm so proud of you.Osakkeet

kingsteen 28 Oct 2011

This is a great blog posting

This is a great blog posting and very useful. I really appreciate the research you put into it.
retail industry
best franchise in india

imagesf22 29 Oct 2011

holidays to Dubai

I found your blog when I was looking for a different sort of information but I was very happy and glad to read through your blog. The information available here is great. holidays to Dubai

michaelcstovalll 01 Nov 2011

promo tools

USB memory pen trims are either blue, gunmetal grey or red. Capacity from 1 GB - 8GB (cost shown is based on 1 GB memory) Packed in a plastic box . promo tools

risykco 21 Dec 2011

Great things from you, man.

Great things from you, man. I have read the data before and that are too large. I love what you've got here, love what you are saying and how he says. That was fun and managed to maintain elegance. I look forward to reading more from you. It's really a good blog.ugg boots

mapleen 03 Nov 2011

I will bookmark your website

I will bookmark your website and will be absolutely coming back. Again, I truly appreciate all your work furthermore providing plenty of worthwhile info for the audience.
camera canon

suganya 02 Dec 2011