MultiplePagePickerViaSource

March 29th, 2006

I have created a new Data Type to use in umbraco, different people on the umbraco mailing list requested this kind of Data Type.
I use this a Data Type like this on a regularly basis and with big pleasure in Sitecore CMS, therefore it was naturally for me to make this to umbraco.

Download (All files needed to use MultiplePagePickerViaSource in umbraco) 12 KB
Download source (Visual Studio 2003 project) 28 KB

In short the MultiplePagePickerViaSource is a Data Type where you can select multiple children of a given page in the site structure you can also sort the selected pages.

See the screenshot to get a better understanding

Cropped thumbnails of screenshots in random order, click in the thumbnails to see the screenshot in full size

screenshot 01

MPPicker_screenshot02_thumb

MPPicker_screenshot03_thumb

MPPicker_screenshot04_thumb

There are many ways of using the MultiplePagePickerViaSource in umbraco, let me try to give you some examples:

1. Blog categories
You could use the MultiplePagePickerViaSource to select multiple blog categories to a page/post, just use the id of the mother to the blog categories.

2. Meta tags (Category)
You can create your meta tag categories in the site structure, just because the are in the site structure the don’t have to be browsable on the website. This way a normal editor can create categories, no need to edit prevalues etc.

I could go on and on, but please leave a comment on have you are using the MultiplePagePickerViaSource in umbraco.

Install
Download (Link is in the top of this post).
Copy the two folders to your site.

How to use
Now you should be able to setup a new Data Type to use CPalm.MultiplePagePickerViaSource in the Developer section of umbraco.
When you are using the CPalm.MultiplePagePickerViaSource Data Type in a Document Type is it important to tell the Data Type where to pickup childs (Pages).
You are doing this by using the field “Description” on the property, you should write the ID of the mother of the childs you want to get listed.

Example xslt on using it
MultiplePagePickerViaSource.xslt

Please be aware that the xslt function umbraco.library:Split is included in umbraco version 2.1.1+

Web.Config
Please be aware that you do not need to add these settings to web.config, it is optional and not required.

If you can’t place the javascript file, it the default location you can change the location via the key MultiplePagePickerViaSource_JavascriptSrc
add key=”MultiplePagePickerViaSource_JavascriptSrc” value=”/myscript/MultiplePagePickerViaSource.js”/

I have included a .net check to se if the javascript file is present, this way you don’t get strange javascript errors but a .net exception.
You can skip this check via the key MultiplePagePickerViaSource_Skip_System.IO.File.Exists_Check
add key=”MultiplePagePickerViaSource_Skip_System.IO.File.Exists_Check” value=”true”/
The check is cached for performance.

Final notes
It’s was actually quite simple to make this Data Type.

85% of the time spent on this project was used on documentation, screenshot, preparing code for download etc.
15% on actually coding (the funny part)

No wonder why documentation some times halts on open source projects

Drinking: Aldi Gold Coffee
Listening to: Rasmus Nør

Tags: Umbraco, Umbraco Extension

Comments

#1 - Heather Floyd on July 24, 2006 22:57

Great control. Is it possible to use it to select multiple media items rather than content pages?
Heather

#2 - Christian Palm on July 24, 2006 23:14

For now you can not use it to select media items.
But it is a great idea, maybe I will make "multiple media items" for umbraco 3.0

The lack with this control for media items, is that you can only select media items beneath one folder, A better way would to make some kind of tree in the left selectbox

#3 - Greg on August 01st, 2006 10:27

I want to create a music database... it will contain an artist table (with artist info), a release table (with cd releases info), a label table (with record label info), and the tables will need to be linked by foreign keys etc... is this possible with your component, or umbraco itself, or should i be creating this component in .NET and integrating into umbraco??

any advice appreciated :)

ps: this comment system rocks! love your work

#4 - Christian Palm on August 01st, 2006 10:51

#3
Yes you can do this with umbraco.
Mayby you should do a post in the umbraco forum forum.umbraco.org

I would properly do it like this
-Home
--Artist
----John
------First Cd
------Second CD
----Bill
------First Cd
------Second CD
--Labels
----O Records
----LabelTwo

Then you only need to do a key from Artist to Label and you dont need the MultiplePagePickerViaSource

If more artist could be joined in more releases then you would properly need the MultiplePagePickerViaSource and make the structure like this:
-Home
--Artist
----John
--Releases
----FirstCd
--Labels
----O records

Then you could use the MultiplePagePickerViaSource to bind a artist to a release

#5 - Greg on August 02nd, 2006 11:29

thanks CP... that all sounds quite feasable. Still unsure as to whether i'll build my own user control or do it in Umbraco.. i'm tempted to build it myself and integrate it... will be more flexible for me then. still working out how to integrate etc... i think i'm getting a little ahead of myself.. guess i should learn to crawl before trying to run a marathon hey?

ehehe

#6 - Mailand on September 17, 2006 23:17

Hi - this control is really awesome. It's being heavy used on http://webstatus.dk to control the right column boxes. A really "must-have" when creating pages like this! :-)

#7 - Marc on October 13rd, 2006 16:50

How about being able to pick external url's? I have a need for such a control where you would be able to pick internal pages and add external url's... or perhaps now that you created the multiplemediapicker create a third one... (Or is there some trick in Umbraco I could use? And I mean not creating a 'link' document type and simply add that below the node... that would visually impair the tree if you'd ask me...)

Keep up the good work!!!!

#8 - Marc on January 24, 2007 05:52

The way we handle related links, Marc, is to create a Data tree (separate to the website tree), and under there have categories like News Items, External Links, etc... like you said creating a link doc type, but keeping the links nodes ina separate tree to the actual content, so they can be reused across the site (entered via a page picker).

#9 - Kenneth Solberg on February 10, 2007 01:55

Nice one! Would be really cool if it (optionally) could be recursive from the offset node.

#10 - Vandan on March 01st, 2007 14:01

This is really a very helpful control for my application. Can some one help me out with creating the XSLT for this to render this as links... kind of stuck with that. Am very new to XSLT and XML and i am running in to all sorts of problems..

#11 - Gísli Guðnason on March 19, 2007 20:41

I uploaded all files to my server but I am unable to create a new data type with your type. It does not load. I'm working with a beta version of 3

#12 - Alec Griffiths on April 12nd, 2007 01:17

We use this very useful control thanks. Question: Is there a way of making this a single page picker? I know that may not make too much sense but we would like a basic content picker that only picks one content item within either a node tree or a particular document type.

#13 - Jason on April 20, 2007 17:21

Great control. I think I'm having a javascript issue when including this control on a tab with other controls. In these cases, the multipagepicker 'incorporates' the other controls on the tab as well as the controls on other tabs. For example if I have two tabs: On the first is the multipagepicker and a textstring control and on the second is a richtextarea. When saving, the returned page contains all the controls from both tabs (the second tab is now empty) and the textstring control is displayed within the multipagepicker presenation box. Kinda weird....anyone else getting this? Any ideas Christian?

#14 - Greg on May 02nd, 2007 08:30

Alec, there is a single content picker as default in Umbraco - which renders the site tree and is browseable... but what it can't do unfortunately is start at a specific parent node - that'd be a good enhancement to add to the generic content picker... anybody ;)

#15 - Michal on June 04, 2007 10:03

i have the same problem as Gísli Guðnason. Please respond me, if this library work in V3, because i copied files into right directories, but it is not possible create data type.

#16 - Kenneth Solberg on June 12nd, 2007 11:13

Tried on RC2, datatype not showing up.

#17 - Morten Bock on June 14, 2007 13:19

I get the same error as Jason (Aprils 20). It seems that it seems that when publishing when there is no nodes selected causes a Null reference error that is output in the middle of the selectbox, causing the html of the tabs to break.

#18 - Morten Bock on June 16, 2007 20:42

Just wanted to let you know that I created a version of the datatype that works in V3 RC2 and also fixes the null reference bug mentioned above.

Get it here: <a href="http://www.mortenbock.dk/updated-cpalm-multiple-page-picker-for-v3-bugfix-57.htm">http://www.mortenbock.dk/updated-cpalm-multiple-page-picker-for-v3-bugfix-57.htm</a>

#19 - Alex on July 11st, 2007 05:38

Excellent control, is there any way of making the links reciprocal, so that the articles you link to in the MultiplePagePickerViaSource also contain a link back to the article in which the MultiplePagePickerViaSource is placed into?

#20 - Alec Griffiths on February 25, 2008 12:35

"is there any way of making the links reciprocal"
this can be done with XSLT, by searching a node tree for an atribute with the ID of the referancing node:

<xsl:variable name="matching" select="umbraco.library:GetXmlAll()//node[./@id = '1050']//node[./@nodeTypeAlias = $nodeType and count(umbraco.library:Split(./data[@alias = $nodeMetaDataAttrib], ',')/value[. = $nodeID]) &gt; 0]" />

#21 - buy propecia on December 06, 2009 23:10

Nice blog! U really use Umbraco RSS package? What functions it's has?

#22 - music download legally on December 07, 2009 10:49

Nice blog! What functions it's has? U really use Umbraco RSS package?

#23 - HIre a car in Ukraine on February 11st, 2010 17:21

HIre a car in Ukraine

#24 - Medical Assistant this is your med-assistant online on March 21st, 2010 20:11

Med-Assistant.info your assistant online. Without leaving the house you can come on med-assistant.info and learn this or that information on illness and ways (preparations) their treatments. We wait for you again and again :)

#25 - hqdrugs xanax on March 31st, 2010 23:41

I feel inspired to leave a comment?

#26 - buy avelox no script on April 06, 2010 00:09

yes, as usual the Bootcamp

#27 - herbal pills on April 09, 2010 21:26

thanx women

#28 - buy amoxicillin online on April 20, 2010 04:56

I notice that when I specifically invite comments that people leave them in higher numbers than when I don�t.

#29 - tramadol on April 20, 2010 23:40

i bet this will b most commented

#30 - tramadol no prescription on April 21st, 2010 00:45

bang ouch, thats cool

#31 - tramadol on April 21st, 2010 03:22

wow... what can i say

#32 - buying tramadol on April 21st, 2010 13:11

g00d info as usual here

#33 - order tramadol on April 21st, 2010 15:04

ios that american ?

#34 - buy propecia australia on April 27, 2010 17:29

i dont know if that is really true.....

#35 - where to get soma on April 27, 2010 22:04

this helped me as good stuff

#36 - soma 50mg on April 29, 2010 07:34

ok im out

#37 - buy prozac online on April 30, 2010 15:56

is that australian >?>>

#38 - buy prozac online on May 03rd, 2010 07:34

thanx big man

#39 - buy Accutane canada on May 04, 2010 23:03

Looking forward to bne

#40 - purchase codeine on May 05, 2010 00:28

mmmmm sushi

#41 - purchase augmentin on May 08, 2010 06:04

ok love that stuff

#42 - prozac au on May 08, 2010 17:12

tnxxxx great post

#43 - obtain tramadol on May 09, 2010 06:59

Looking forward to

#44 - order floxin online on May 10, 2010 01:33

hate the captcha

#45 - buy clomid online on May 11st, 2010 00:19

While the Komperdell C3 Airs

#46 - Jeux on May 14, 2010 18:49

Nice !

#47 - where to get soma on May 16, 2010 21:58

sweet template

#48 - wholesale laptop battery on May 19, 2010 11:57

thanks for your shring.

#49 - buy floxin on May 22nd, 2010 02:42

Write a post about leaving comments

#50 - RAR Downloads on May 24, 2010 12:40

Great !

#51 - buy propecia on June 04, 2010 22:22

not sure if its like that

#52 - buy viagra online without prescription on June 09, 2010 17:56

Aw, this was a really quality post. In theory I'd like to write like this too - taking time and real effort to make a good article... but what can I say... I procrastinate alot and never seem to get something done.

#53 - order prozac on June 15, 2010 02:17

mmm pizza

#54 - from canada on June 15, 2010 02:17

hey, just wanted to comment :)

#55 - Cheapest Propecia on June 22nd, 2010 23:52

This is the first time i've heard of an Seo camp. Really interesting and i will be attending.

#56 - buy tramadol online uk on June 26, 2010 00:35

I�m a serial-commenter. It�s probably because I have an opinion on everything an

#57 - buy wellbutrin sr on June 29, 2010 22:44

thanx karen

#58 - order wellbutrin on June 29, 2010 23:31

I AM SICK OF THIS

#59 - irport Taxi Transfers To From Airport on June 30, 2010 08:29

This is an excellent topic you are discussing about and i really appreciate it. It should be going on.

#60 - coach outlet on July 03rd, 2010 05:21


Loved to read your article. I would like to suggest you that traffic show most people read articles on Mondays. So it should encourage administer to write new write ups over the weekend primarily.

#61 - Wedding dress wholesale on July 04, 2010 09:06

hmm.,.I'll build my own user control or do it in Umbraco.. I'm tempted to build it myself and integrate it... will be more flexible for me then. still working out how to integrate etc... i think I'm getting a little ahead of myself.. guess i should learn to crawl before trying to run a marathon hey?
Cheers

#62 - mbt shoes on July 06, 2010 09:22

This kind shoes are very comfortable wearing. What's more, it have the function to protect knee. At the same time, it is also good for our body shape correction.

#63 - Xbox Live Subscription on July 11st, 2010 08:42

. Still unsure as to whether i'll build my own user control or do it in Umbraco.. i'm tempted to build it myself and integrate it... will be more flexible for me then. still working out how to integrate etc... i think i'm getting a little ahead of myself.. guess i should learn to crawl before trying to run a marathon hey?

#64 - ghd IV on July 12nd, 2010 03:43

<h1><a href="http://www.nike-lebron.org"><strong>nike lebron</strong></a>, nike lebron<br></h1>
<h1><a href="http://www.pumashoesbox.com"><strong>puma</strong></a>, puma<br></h1>
<h1><a href="http://www.nike-lebron.net"><strong>nike lebron</strong></a>, nike lebron<br></h1>
<h1><a href="http://www.cheap-ghd.net"><strong>ghd</strong></a>, ghd<br></h1>

<h1><a href="http://www.nike-lebron.org/nike-zoom-ambassador-c-53.html"><strong>lebron ambassador</strong></a>, lebron ambassador<br></h1>
<h1><a href="http://www.pumashoesbox.com"><strong>puma shoes</strong></a>, puma shoes<br></h1>
<h1><a href="http://www.nike-lebron.net/nike-zoom-ambassador-c-53.html"><strong>lebron ambassador</strong></a>, lebron ambassador<br></h1>
<h1><a href="http://www.cheap-ghd.net"><strong>ghd IV</strong></a>, ghd IV<br></h1>

#65 - Moscow apartments on July 12nd, 2010 19:24

Excellent concept! Brand image can be reinforced by brand communications. You need to focus both on offline and online medium. Social media is an important place where you can communicate one to one with your traget audience.

#66 - cheap prom dresses on July 14, 2010 11:02

This excellent site was indeed rather nicely authored, and it also contains quite a few interesting information. My spouse and i valued the professional publishing this particular article. You actually have in effect made the idea uncomplicated for me to fully grasp.

#67 - lift top coffee table on July 14, 2010 13:51

I want to create a music database... it will contain an artist table (with artist info), a release table (with cd releases info), a label table (with record label info), and the tables will need to be linked by foreign keys etc... is this possible with your component, or umbraco itself, or should i be creating this component in .NET and integrating into umbraco??

#68 - Ferrari replica watches on July 20, 2010 10:27

nice article. keep post like this...

#69 - order cialis 20mg on July 21st, 2010 00:53

takw it back!

#70 - buy cialis in uk on July 22nd, 2010 01:37

this helped me as much as it coulkd

#71 - TV satellite on July 23rd, 2010 14:09

The internet changed the way you work

#72 - drug sales online on July 23rd, 2010 22:44

bang ouch, thats cool

#73 - ipad converter on July 24, 2010 07:47

thatis nice a post.

#74 - ipad converter on July 24, 2010 07:47

thatis nice a post.

#75 - domain name check on July 24, 2010 08:31

Med-Assistant.info your assistant online. Without leaving the house you can come on med-assistant.info and learn this or that information on illness and ways (preparations) their treatments. We wait for you again and again :)

#76 - free online dating on July 24, 2010 17:46

The way we handle related links, Marc, is to create a Data tree (separate to the website tree), and under there have categories like News Items, External Links, etc... like you said creating a link doc type, but keeping the links nodes ina separate tree to the actual content, so they can be reused across the site (entered via a page picker).

#77 - Make money on July 24, 2010 18:31

hmm.,.I'll build my own user control or do it in Umbraco.. I'm tempted to build it myself and integrate it... will be more flexible for me then. still working out how to integrate etc... i think I'm getting a little ahead of myself.. guess i should learn to crawl before trying to run a marathon hey?

#78 - coach outlet on July 25, 2010 11:52

separate to the website tree), and under

#79 - shox shoes on July 25, 2010 11:53

illness and ways (preparations) their treatments.

#80 - coach handbags on July 25, 2010 11:54

as much as it coulkd

#81 - cheap coach handbags on July 25, 2010 11:54

When you are using the CPalm.MultiplePagePickerViaSource Data Type in a Document Type is it important to tell the Data Type where to pickup childs (Pages).

#82 - chanel handbags on July 25, 2010 11:55

meta tag categories in the site structure, just because the are in the

#83 - cheap chanel handbags on July 25, 2010 11:56

given page in the site structure you can also sort the selected pages.

#84 - Wyler replica watches on July 26, 2010 11:22

nice article. keep post like this...

#85 - shoe storage on July 27, 2010 18:48

Alec, there is a single content picker as default in Umbraco - which renders the site tree and is browseable... but what it can't do unfortunately is start at a specific parent node - that'd be a good enhancement to add to the generic content picker... anybody ;)

#86 - carper cleaning on July 28, 2010 12:56

When you are using the CPalm.MultiplePagePickerViaSource Data Type in a Document Type is it important to tell the Data Type where to pickup childs

#87 - левитра on July 28, 2010 13:17

Social media is an important place where you can communicate one to one with your traget audience.

#88 - stressballs on July 29, 2010 16:18

I got a lot information from this Blog.

#89 - raft wars on July 30, 2010 05:05

Very good information, thank you very much by the article and the quality of your Web site. A greeting from Chile.

#90 - Used Cars for Sale on July 30, 2010 05:25

I really loved reading your blog. It was very well authored and easy to understand. Unlike additional blogs I have read which are really not good. I also found your posts very interesting. In fact after reading, I had to go show it to my friend and he enjoyed it as well!

#91 - Top Software Review on July 30, 2010 05:27

I enjoy your weblog and will sign up to your feed so I will not miss anything. Fantastic content.

 

Create a new comment

Recent Post

Tags