Country custom property
Give your editors the possibility to select a country from a drop down list.
This is a really simple custom property but shows how easy it is to extend EPiServer.
First we create the property...
namespace DV.CustomProperties
{
using System;
using EPiServer.Core;
using EPiServer.PlugIn;
[Serializable]
[PageDefinitionTypePlugIn(
DisplayName = "Country",
Description = "Country")]
public class PropertyCountry : PropertyString
{
public override IPropertyControl CreatePropertyControl()
{
return new PropertyCountryControl();
}
}
}
And then the control
namespace DV.CustomProperties
{
using System;
using System.Collections.Generic;
using System.Globalization;
using System.Web.UI.WebControls;
using EPiServer.Web.PropertyControls;
class PropertyCountryControl : PropertySelectControlBase
{
protected override void SetupEditControls()
{
SortedDictionary<string, string> countries = new SortedDictionary<string, string>();
foreach (CultureInfo cultureInfo in CultureInfo.GetCultures(CultureTypes.SpecificCultures))
{
RegionInfo regionInfo = new RegionInfo(cultureInfo.Name);
if (!countries.ContainsKey(regionInfo.EnglishName))
{
countries.Add(regionInfo.EnglishName, regionInfo.TwoLetterISORegionName.ToLower());
}
}
foreach (var country in countries)
{
ListItem item = new ListItem(country.Key, country.Value);
item.Selected = item.Value.Equals(this.ToString(), StringComparison.OrdinalIgnoreCase);
base.EditControl.Items.Add(item);
}
}
protected override bool AutoGenerateEmptyValue
{
get
{
return true;
}
set
{
base.AutoGenerateEmptyValue = value;
}
}
}
}
When we want to display the value we can take advantage of the translation function.
<%= Translate(string.Concat("/countries/", CurrentPage["Country"])) %>
<?xml version="1.0" encoding="utf-8" standalone="yes" ?>
<languages>
<language name="svenska" id="sv">
<countries>
<ad>Andorra</ad>
<ae>Förenade Arabemiraten</ae>
<af>Afghanistan</af>
<ag>Antigua och Barbuda</ag>
<ai>Anguilla</ai>
<al>Albanien</al>
<am>Armenien</am>
<an>Nederländska Antillerna</an>
<ao>Angola</ao>
<aq>Antarktis</aq>
<ar>Argentina</ar>
<as>Amerikanska Samoa</as>
<at>Österrike</at>
<au>Australien</au>
<aw>Aruba</aw>
<ax>Åland</ax>
<az>Azerbajdzjan</az>
<ba>Bosnien och Hercegovina</ba>
<bb>Barbados</bb>
<bd>Bangladesh</bd>
<be>Belgien</be>
<bf>Burkina Faso</bf>
<bg>Bulgarien</bg>
<bh>Bahrain</bh>
<bi>Burundi</bi>
<bj>Benin</bj>
<bm>Bermuda</bm>
<bn>Brunei</bn>
<bo>Bolivia</bo>
<br>Brasilien</br>
<bs>Bahamas</bs>
<bt>Bhutan</bt>
<bv>Bouvetön</bv>
<bw>Botswana</bw>
<by>Vitryssland</by>
<bz>Belize</bz>
<ca>Kanada</ca>
<cc>Kokosöarna</cc>
<cf>Centralafrikanska republiken</cf>
<cg>Kongo-Brazzaville</cg>
<ch>Schweiz</ch>
<ci>Elfenbenskusten</ci>
<ck>Cooköarna</ck>
<cl>Chile</cl>
<cm>Kamerun</cm>
<cn>Kina</cn>
<co>Colombia</co>
<cr>Costa Rica</cr>
<cu>Kuba</cu>
<cv>Kap Verde</cv>
<cx>Julön</cx>
<cy>Cypern</cy>
<cz>Tjeckien</cz>
<de>Tyskland</de>
<dj>Djibouti</dj>
<dk>Danmark</dk>
<dm>Dominica</dm>
<do>Dominikanska republiken</do>
<dz>Algeriet</dz>
<ec>Ecuador</ec>
<ee>Estland</ee>
<eg>Egypten</eg>
<eh>Västsahara</eh>
<er>Eritrea</er>
<es>Spanien</es>
<et>Etiopien</et>
<fi>Finland</fi>
<fj>Fiji</fj>
<fk>Falklandsöarna</fk>
<fm>Mikronesiska federationen</fm>
<fo>Färöarna</fo>
<fr>Frankrike</fr>
<fx>France métropolitaine (Frankrike, europeiska delen)</fx>
<ga>Gabon</ga>
<gb>Storbritannien</gb>
<gd>Grenada</gd>
<ge>Georgien</ge>
<gf>Franska Guyana</gf>
<gh>Ghana</gh>
<gi>Gibraltar</gi>
<gl>Grönland</gl>
<gm>Gambia</gm>
<gn>Guinea</gn>
<gp>Guadeloupe</gp>
<gq>Ekvatorialguinea</gq>
<gr>Grekland</gr>
<gt>Guatemala</gt>
<gu>Guam</gu>
<gw>Guinea Bissau</gw>
<gy>Guyana</gy>
<hk>Hongkong</hk>
<hm>Heard- och McDonaldsöarna</hm>
<hn>Honduras</hn>
<hr>Kroatien</hr>
<ht>Haiti</ht>
<hu>Ungern</hu>
<id>Indonesien</id>
<ie>Irland</ie>
<il>Israel</il>
<in>Indien</in>
<io>Brittiska territoriet i Indiska Oceanen</io>
<iq>Irak</iq>
<ir>Iran</ir>
<is>Island</is>
<it>Italien</it>
<jm>Jamaica</jm>
<jo>Jordanien</jo>
<jp>Japan</jp>
<ke>Kenya</ke>
<kg>Kirgizistan</kg>
<kh>Kambodja</kh>
<ki>Kiribati</ki>
<km>Komorerna</km>
<kn>Saint Kitts och Nevis</kn>
<kp>Nordkorea</kp>
<kr>Sydkorea</kr>
<kw>Kuwait</kw>
<ky>Caymanöarna</ky>
<kz>Kazakstan</kz>
<la>Laos</la>
<lb>Libanon</lb>
<lc>Saint Lucia</lc>
<li>Liechtenstein</li>
<lk>Sri Lanka</lk>
<lr>Liberia</lr>
<ls>Lesotho</ls>
<lt>Litauen</lt>
<lu>Luxemburg</lu>
<lv>Lettland</lv>
<ly>Libyen</ly>
<ma>Marocko</ma>
<mc>Monaco</mc>
<md>Moldavien</md>
<me>Montenegro</me>
<mg>Madagaskar</mg>
<mh>Marshallöarna</mh>
<mk>Makedonien</mk>
<ml>Mali</ml>
<mm>Burma</mm>
<mn>Mongoliet</mn>
<mo>Macau</mo>
<mp>Nordmarianerna</mp>
<mq>Martinique</mq>
<mr>Mauretanien</mr>
<ms>Montserrat</ms>
<mt>Malta</mt>
<mu>Mauritius</mu>
<mv>Maldiverna</mv>
<mw>Malawi</mw>
<mx>Mexiko</mx>
<my>Malaysia</my>
<mz>Moçambique</mz>
<na>Namibia</na>
<nc>Nya Kaledonien</nc>
<ne>Niger</ne>
<nf>Norfolkön</nf>
<ng>Nigeria</ng>
<ni>Nicaragua</ni>
<nl>Nederländerna</nl>
<no>Norge</no>
<np>Nepal</np>
<nr>Nauru</nr>
<nu>Niue</nu>
<nz>Nya Zeeland</nz>
<om>Oman</om>
<pa>Panama</pa>
<pe>Peru</pe>
<pf>Franska Polynesien</pf>
<pg>Papua Nya Guinea</pg>
<ph>Filippinerna</ph>
<pk>Pakistan</pk>
<pl>Polen</pl>
<pm>Saint-Pierre och Miquelon</pm>
<pn>Pitcairnöarna</pn>
<pr>Puerto Rico</pr>
<pt>Portugal</pt>
<pw>Palau</pw>
<py>Paraguay</py>
<qa>Qatar</qa>
<re>Réunion</re>
<ro>Rumänien</ro>
<rs>Serbien</rs>
<ru>Ryssland</ru>
<rw>Rwanda</rw>
<sa>Saudiarabien</sa>
<sb>Salomonöarna</sb>
<sc>Seychellerna</sc>
<sd>Sudan</sd>
<se>Sverige</se>
<sg>Singapore</sg>
<sh>Sankta Helena</sh>
<si>Slovenien</si>
<sj>Svalbard och Jan Mayen</sj>
<sk>Slovakien</sk>
<sl>Sierra Leone</sl>
<sm>San Marino</sm>
<sn>Senegal</sn>
<so>Somalia</so>
<sr>Surinam</sr>
<st>São Tomé och Príncipe</st>
<sv>El Salvador</sv>
<sy>Syrien</sy>
<sz>Swaziland</sz>
<tc>Turks- och Caicosöarna</tc>
<td>Tchad</td>
<tf>Franska södra territorierna</tf>
<tg>Togo</tg>
<th>Thailand</th>
<tj>Tadzjikistan</tj>
<tk>Tokelauöarna</tk>
<tm>Turkmenistan</tm>
<tn>Tunisien</tn>
<to>Tonga</to>
<tp>Östtimor</tp>
<tr>Turkiet</tr>
<tt>Trinidad och Tobago</tt>
<tv>Tuvalu</tv>
<tw>Taiwan</tw>
<tz>Tanzania</tz>
<ua>Ukraina</ua>
<ug>Uganda</ug>
<um>USA:s yttre öar</um>
<us>USA</us>
<uy>Uruguay</uy>
<uz>Uzbekistan</uz>
<va>Vatikanstaten</va>
<vc>Saint Vincent och Grenadinerna</vc>
<ve>Venezuela</ve>
<vg>Brittiska Jungfruöarna</vg>
<vi>Amerikanska Jungfruöarna</vi>
<vn>Vietnam</vn>
<vu>Vanuatu</vu>
<wf>Wallis- och Futunaöarna</wf>
<ws>Samoa</ws>
<ye>Jemen</ye>
<yt>Mayotte</yt>
<za>Sydafrika</za>
<zm>Zambia</zm>
<zw>Zimbabwe</zw>
</countries>
</language>
</languages>
Posted in EPiServer ● Tags custom property

Comments
First computer - First ever - Name of the first computer