Monthly Archives: Հունիս 2009

InfoPath ձեւ Sevices, Ձեւավորում է վավերացման վրա (FBA) եւ եզակի ֆայլի Անուններ

Ես աշխատում է ինչ - որ InfoPath կազմում այս շաբաթ MOSS է FBA միջավայրում եւ սովորել, երբ գնացի տեղակայել ձեւերը, ինչպես նաեւ արտադրական միջավայրի վրա FBA գոտում է, որ անուն() function function does not work. I was using it to generate unique file names.

Լավ, այդ գործառույթը չի գործում է FBA միջավայրում (առնվազն, չէ որ վանդակում). Իսկ, Անդրադառնալով մտորումների, օգտագործում եք այն ձեւով, ես ծրագրված չէր երաշխավորվում եզակի ֆայլի անվանում ցանկացած դեպքում.

Իմ լուծում էր օգտագործում, հիմա() function and a rule that fires on loading of the form. I assign the file name to data element when it’s blank:

image

image

The advantage of this approach is that the file name is set only once. (Ես չեմ ցույց այն էկրանի կրակոցի, սակայն պայման դրեց այդ կանոնից միայն ազատել երբ «myFilename» է դատարկ). I used to set the file name at the data source level. Typically, Ես մի բան (վատ) այսպես:

image

Խնդիրն այն է, որ եթե օգտվողին A բացում է ձեւը երկուշաբթի, իսկ օգտվողին B փոխում եմ երեքշաբթի, Դուք հայտնվում է երկու տարբեր ձեւերով, քանի որ երկու տարբեր օգտվողները փրկեց նրան տարբեր անուններով Օգտվողի մասին.

Այնքան, ինչպես նաեւ annoying FBA կարող է լինել ընդհանրապես, եւ մասնավորապես InfoPath, դա ինձ նորից թվում է, մի փոքր, բայց, իրոք, կարեւոր է, եւ տեխնիկական մանրամասն մոտեցում, որ ես չէի արել, հակառակ դեպքում!

</վերջ>

Անդամագրվել իմ բլոգում.

Գտեք Twitter-ում http://www.twitter.com/pagalvin

Արորդիների Tags:

Ապահովում Sharepoint Վերադառնալ / Document Գրադարան Դիտարկումների Փոխանցել (տեսակ) Հնարավոր jQuery

Սա եւս մեկ գրառումը իմ - ին մտադիր է մի շարք թե ինչպես օգտագործել jQuery ինչպես Sharepoint.
Եթե ​​ցանկանում եք ավելին իմանալ այն մասին jQuery, Ես բարձր խորհուրդ: jQuery - ին գործողության - ի կողմից կրած Bibeault եւ Yehuda Katz.

Առաջիններից մեկը, բաներ ես մտածեցի, Երբ ես սկսել խաղալ ամբողջ հետ jQuery, էր, թե արդյոք մենք կարող ենք օգտագործել այն ապահովել SharePoint տեսակետը. Պատասխանն է, «ոչ» (կամ առնվազն, Ես չեմ պնդում, որ դա հնարավոր է). Սակայն, դա, իհարկե, հնարավոր է, որ դժվար է մարդկանց տեսնել որոշակի տեսակետը.

Ես սկսեցի իմ ավազատուփ շրջակա միջավայրի, երբ աշխատում է այս. Ես գրել է այդ մասին միջավայրում Մականուն: Արագ եւ հեշտ: Ստեղծել ձեր սեփական jQuery դեպի ավազաման համար Sharepoint.

Է «ապահովել», նպատակ, հետեւեք այս քայլերին,:

  1. Ստեղծել տեսակետը ցանկանում եք ապահովել. Ես այդպես վարվեց, եւ այն անվանել է «Պաշտպանված View".

    Սա կարծես թե դա ոչ թե «ապահովել»::

    image

  2. Ավելացնել բովանդակության խմբագիր վեբ մասը տեսակետից էջում օգտագործելով խաբել նկարագրել է դեպի ավազաման հոդվածում (i.e. լրացնել «Էջերի դիտման = Հղում&ToolPaneView = 2 »է հղում).
  3. Պարզել ձեր SharePoint _spUserId, հետեւելով այդ խենթ քայլերը, կարծում են, թե ոչ:
    1. Մտնեք Ձեր Sharepoint միջավայրում.
    2. Է զննարկչով ի հասցեի դաշտում, տիպ: "JavaScript:զգաստ(_spUserId ").
    3. Գրանցեք արդյունքները (դա »: 13« Իմ դեպքում,).

      image

  4. Ավելացնել հետեւյալ բովանդակությամբ JavaScript տեխնոլոգիա: Ձեր CEWP թ կոդը տեսանկյունից:

    <ձեռագիր
        "Text / JavaScript"
        Բացել =Է. /.. / JQuery% - ը 20Library/jquery-1.3.2.min.js">
    </ձեռագիր>
    
    <script տեսակ ="Text / JavaScript">
      $(ֆունկցիա() {
    
        զգաստ(_spUserId);
    
        էր theSecuredView = $('Iframe[FilterLink * = ապահով% 20View]');
    
        եթե ((theSecuredView.length > 0) && (_spUserId == 13))
          $('Iframe[FilterLink * = ապահով% 20View]').ծնող().ծնող().ծնող().html("<TR bgcolor = կարմիր><TD>Ոչ տեսք ձեզ!</TD></TR>");
      });
    
    </ձեռագիր>
    

Ես գտել է, որ զգոն(_spUserId) գիծ կա, ցույց տալ, թե ինչպես է դա իրականում է «ապահովել», նպատակ, այլ պարզապես դարձնելով այն ավելի դժվար է տեսնել. Ավելի շատ է, որ մի պահ.

Հիմնականում, jQuery is looking for an iFrame on the page who has an attribute that contains “Secured View” in its value. Once it finds it, we check to see if the current user is “13”. If it is, մենք քայլում ենք Dom-ից ա <TR> օր (որը ես նախշավոր կողմից փակցված աղբյուրներից եւ հետեւել դրան) եւ ապա, փոխարինելով այդ TR հատկորոշիչը իմ հաղորդագրություններից. Ես իսկապես չգիտեմ, թե որքան ուժեղ է (Ես շատ կասկածելի է, փաստորեն), but it worked in my sandbox. If I find a better way, Ես օրագիրը մասին. Սա արդյունք է:

image

Ես սեղմեք հաղորդագրությունները OK կոճակը եւ տվյալների փոխարինվում է մի մեծ կարմիր հաղորդագրություններից:

image

Ինչ կարող եք ասել, the way I’ve implement this “security” solution is to allow the web part to render itself. After it finishes, Ես գրել է դրա բովանդակությունը, իմ կարծիքով «Ոչ համար Ձեզ!"Հաղորդագրությունը.

Չնայած այն հանգամանքին, որ դա ոչ թե իսկապես «ապահով»: տեսք, դա հնարավոր օգտակար եւ որոշ խելացի աշխատանքներ, it may eventually be securable in a more formal sense. The fundamental issue is that the client is getting all the data and then, հետո միայն այն ստանում է տվյալներ,, it wipes it out. If the client is getting the data, մի խելացի օգտվող կարող է կանխել jQuery - ից վազում ին եւ տեսնել, թե ինչ / Նա ուզում է տեսնել.

There are other drawbacks. This “security” approach is based off a _spUserId. We’d want to really secure based on the full SharePoint security model, or at least by user name. That becomes progressively harder, բայց ես տեսնում եմ ինչ - որ լավ իրեր գրված այս թեմայի, այնպես որ ես լիահույս կա լավ պատասխան այդ խնդրի.

Ցանկը դիտարկումներ իրենք պետք է trimmed, եթե հնարավոր է. I haven’t tried to figure that out. I assume it’s possible, բայց չի, իսկապես լուծում հիմնարար անվտանգության հարցը, քանի որ ինչ - որ մեկը կարող է պարզապես տպեք. URL տեսակետից ուզում (եթե նրանք դա գիտեին). Սակայն, trimming makes sense. It’s a good usability feature and it helps to obfuscate things. If an end user doesn’t know that the view event exists, they probably won’t try to use it. Երբեմն, որ լավ զգալ.

With բախտին, Ես կասեմ, որ ավելի է գրել այս թեմայի ժամանակի ընթացքում.

</վերջ>

Անդամագրվել իմ բլոգում.

Գտեք Twitter-ում http://www.twitter.com/pagalvin

Արորդիների Tags: ,,

Արագ եւ հեշտ: A Better Way օգտվել jQuery թաքցնել տեքստային դաշտի մի Sharepoint տեսքով

Սա եւս մեկ գրառումը իմ - ին մտադիր է մի շարք թե ինչպես օգտագործել jQuery ինչպես Sharepoint.
Եթե ​​ցանկանում եք ավելին իմանալ այն մասին jQuery, Ես բարձր խորհուրդ: jQuery - ին գործողության - ի կողմից կրած Bibeault եւ Yehuda Katz.

Նախապես, I wrote about how to use jQuery to locate and hide a text field on a form. I didn’t care for the specific approach (Ես chaining ծնողներ դա պարզապես չի արվում այս օրերին, գոնե ընտանիքների որակի).

Երբ ես առաջին անգամ սկսեցի մտածել այդ մասին:, Ես գիտեի, որ պետք է գտնել մի <TR> to which I could invoke the hide() մեթոդ. My early effort to find the correct <TR> եղել է նման բան: Այս:

$('TR:ունի(մուտք[անվանումը = Թաքցնել ՀՏՀ!])');

Խնդիրն այն է, որ որ այն գտնի: Ամեն <TR> tag that had any parent relationship to the Hide Me! դաշտ, նույնիսկ եթե Թաքցնել ՀՏՀ! nested է շատ խորը մակարդակներ են <TR>’s. It turns out that on my sandbox form, որ արտահայտությունն է գտնում 9 տարբեր TR պետք ովքեր Թաքցնել ՀՏՀ! as a child somewhere in its DOM tree. I realized that I could walk back up the tree from the input field itself, այնպես որ, թե ինչպես եմ հայտնվել չարաշահող ծնողներ, սակայն դա չի նստել նաեւ ինձ հետ:.

Ես մի միտք, որ այս եւ մի բան եմ կարդում, վերջապես արված զգացում: Ես կարող էի օգտագործել ոչ() մեթոդ է կտրել են <TR>’s I don’t want in my wrapped set. Դա հանգեցրեց ինձ այս:

$('TR:ունի(մուտք[անվանումը = Թաքցնել ՀՏՀ!])').ոչ('TR:ունի(TR)').թաքցնել();

Առաջին փոքր է համարում բոլոր <TR> tags որ այդ Թաքցնել ՀՏՀ! field anywhere in their own hierarchy. It then strips out any <TR> որոնք ունեն նաեւ մեկ երեխա <TR>. This leaves us with a single <TR> որ:

1) Չունի <TR> Երեխաների գրառումներ

2) Does have the input field as child.

Մենք կարող ենք այն կիրառել թաքցնել() մեթոդ է արդյունքում հաստատվեց, եւ մենք արել.

Ես դեռ մի քիչ նյարդայնանում մասին, բայց ոչ այնքան նյարդային, ինչպես chaining ծնողների.

I don’t know if this is a best practice or not. There may be a more appropriate way of identifying just the <TR> that we care about in a SharePoint form. If you know, խնդրեմ չունեք մեկնաբանություններ.

</վերջ>

Անդամագրվել իմ բլոգում.

Գտեք Twitter-ում http://www.twitter.com/pagalvin

Արորդիների Tags: ,

Արագ եւ հեշտ: Օգտագործեք jQuery թաքցնել տեքստային դաշտի մի Sharepoint տեսքով

Սա եւս մեկ գրառումը իմ - ին մտադիր է մի շարք թե ինչպես օգտագործել jQuery ինչպես Sharepoint.
Եթե ​​ցանկանում եք ավելին իմանալ այն մասին jQuery, Ես բարձր խորհուրդ: jQuery - ին գործողության - ի կողմից կրած Bibeault եւ Yehuda Katz.

ԹԱՐՄԱՑՆԵԼ (արդեն!): Ես կարծում եմ, ավելի լավ միջոց կմնա է <TR> հատկորոշել եմ ուզում թաքցնել, եւ գրել դրա մասին այստեղ:. You may still find this article interesting anyway so I’m leavnig it up.

Ես ուզում թաքցնել տեքստային դաշտ, «Թաքցնել ինձ!«Ինչպես ցույց է տվել:

image'

Հետեւյալ jQuery չի խաբել է ինձ համար:

<script տեսակ ="Text / JavaScript">

  $(ֆունկցիա() {


    $('Մուտք[անվանումը = Թաքցնել ՀՏՀ!]').ծնող().ծնող().ծնող().թաքցնել();

  });

</ձեռագիր>

Կոդը ասում, "Գտիր ինձ բոլոր ոլորտները, որոնց մուտքագրման անվանումը = Թաքցնել ՀՏՀ!. Ապա, իր ծնողին, եւ ապա հաջորդ ծնողների եւ այն ուղարկելով * հաջորդ ուղարկելով * ծնողների (այ քեզ բան!) եւ վկայակոչել թաքցնել() մեթոդը այդ բանը, ինչ էլ որ լինում է,.

Ես նախշավոր, որ ծնողների կողմից կառուցվածքը դիտելու HTML-ի համար ձեւով Sharepoint ստեղծել ինչպես ցուցադրված է:

<TR>
    <TD nowrap= "Այո" valign= "Top" լայնություն= "190px" դաս= "Ms-formlabel">
        <H3 դաս= "Ms-standardheader">
            <nobr>Թաքցնել ՀՏՀ!</nobr>
        </H3>
    </TD>

    <TD valign= "Top" դաս= "Ms-formbody" լայնություն= "400px">
        <!-- FieldName = "Թաքցնել ՀՏՀ!"
                 FieldInternalName = "Hide_x0020_Me_x0021_"
                 FieldType = "SPFieldText"
        -->
        <span դուք= "Ոչ">
            <մուտք
                անուն="ctl00$m$g_bdb23c2c_fde7_495f_8676_69714a308d8e$ctl00$ctl04$ctl02$ctl00$ctl00$ctl04$ctl00$ctl00$TextField"
                տիպ= "Տեքստը:"
                maxlength= "255"
                id="ctl00_m_g_bdb23c2c_fde7_495f_8676_69714a308d8e_ctl00_ctl04_ctl02_ctl00_ctl00_ctl04_ctl00_ctl00_TextField"
                վերնագիր= "Թաքցնել ՀՏՀ!"
                դաս= "Ms-երկարությամբ" />
                <BR>
        </span>


    </TD>
</TR>

Այս պատկերը ցույց է տալիս, որ նույն, սակայն նշվում է ծնողների հետ:

image

Առաջին ծնող (1) is a span tag. Span’s parent (2) Սա TD կտրոնը եւ ապա վերջապես ենք հասնել իրական ծնող եմ ուզում թաքցնել (3) որը TR կտրոնը ինքնին.

This is a pretty terrible approach I think because it’s extremely dependent on the very specific structure of this form. When SharePoint 2010 դուրս է գալիս, this whole structure could change and break this approach. What I really want to do is craft a jQuery selector that is along the lines of “find me all the TR’s (եւ միայն TR-թեգերը) որ պետք է ինչ որ տեղ իրենց երեխաների տարրերի վրա մուտքագրման դաշտի անվանումը = որի Թաքցնել ՀՏՀ!". I starting from the bottom and moving up. Assuming I figure this out, Ես չունեք նորացված է արագ եւ հեշտ է գրառում.

</վերջ>

Անդամագրվել իմ բլոգում.

Գտեք Twitter-ում http://www.twitter.com/pagalvin

Արորդիների Tags: ,

Արագ եւ հեշտ: Ստեղծել ձեր սեփական jQuery դեպի ավազաման համար Sharepoint

Սա եւս մեկ գրառումը իմ - ին մտադիր է մի շարք թե ինչպես օգտագործել jQuery ինչպես Sharepoint.
Եթե ​​ցանկանում եք ավելին իմանալ այն մասին jQuery, Ես բարձր խորհուրդ: jQuery - ին գործողության - ի կողմից կրած Bibeault եւ Yehuda Katz.

Ինչից սկսվեց jQuery է Sharepoint է զարմանալիորեն հեշտ (ինձ). (Ես լուրջ հարցեր մի լավագույն փորձի »մոտեցում է տեղակայման բաները արտադրանքի, բայց սա եւս մեկ օրում). I’ve just started playing with this technology and to that end, I created a sandbox environment to use. If you’re looking to get started with jQuery, Դուք կարող եք գտնել այս մոտեցումը օգտակար.

1. Ստեղծել դատարկ կայքը

Ստեղծել դատարկ տեղ կայքը ձեր կայքում, եւ այն անվանում են խելացի բան է նման «jQuery դեպի ավազաման".

2. Բեռնել jQuery

Դուք կարող եք բեռնավորել այստեղից jQuery Դեկտեմբեր գրադարանից: http://docs.jquery.com/Downloading_jQuery

Պահել որ Ձեր աշխատասեղանին.

Ես օգտագործում է minified »տարբերակը.

3. Ստեղծել Sharepoint փաստաթուղթը գրադարան

Ձեր դեպի ավազաման կայքում, create a document library.

4. Վերբեռնել է jQuery գրադարանից Sharepoint

Մուտք գործելու doc գրադարան դուք պարզապես ստեղծված եւ վերբեռնել այն jQuery գրադարանից.

5. Ստեղծել գործարկողի Sharepoint ցուցակ

I’ve started with a custom list because I want to muck about with standard SharePoint forms. You could also create a page in a pages library or web part pages and probably a lot of other places.

Add some columns to the custom list so that you have something to run jQuery against. My initial objectives were to:

  1. Թաքցնել մի դաշտ.
  2. Որեւէ արժեք դեպի տվյալ ոլորտում.

Այդ նպատակի մտքում, I added two text fields. Ժամանակի ընթացքում, Ես պետք է խաղում հղումներ, պատկերներ, lookups, եւ այլն:.

6. Փոփոխել NewForm.aspx Վեբ Մաս էջը եւ լրացնել խոսք խմբագիր վեբ դեմ

Սա մի քիչ սեւ Magic-ish , in that it’s a new concept to me. I first learned about this from Paul Grenier, Sharepoint jQuery Superstar, իր CodePlex ծրագրի կայքում: http://spff.codeplex.com/.

Հետեւեք այս քայլերին, ավելացնել CEWP նույն էջի որը ցույց է տալիս NewForm.aspx որեւէ մաքսային ցուցակում:

  1. Մուտք գործելու գործարկողի ցանկը եւ կտտացրեք New.
  2. Ավելացնել հետեւյալը, որ հղում: Էջերի դիտման = համօգտագործում&ToolPaneView = 2

Որոնք վերափոխել ձեր ձանձրալի Vanilla տվյալների մուտքի ձեւ է նման բան: Այս:

image

Այս:

image

Ավելացնել բովանդակության խմբագիր վեբ մասը Էջ.

7. Գրեք ձեր առաջին jQuery օրենսգիրք

Բացել այդ CEWP է ծածկագրի տեսանկյունից եւ ավելացնել հետեւյալը,:

image

Ահա իրական կոդը, եթե ցանկանում եք պատճենել / կպցնել:

<ձեռագիր
    "Text / JavaScript"
    Բացել =Է. /.. / JQuery% - ը 20Library/jquery-1.3.2.min.js">
</ձեռագիր>

<script տեսակ ="Text / JavaScript">
  $(ֆունկցիա() {

    $('# ResultsID.).html(«Կան ... + $('A').չափ() + Մի պիտակներ tags այս էջի տարբերակման. ');

  });
</ձեռագիր>

Արդյունք:
<id = div'ResultsID'></div>
/արդյունք

Նշենք, որ առաջին <ձեռագիր> tag is referencing the actual jQuery library. Presumably, այդ ամենը փոխել, ժամանակի ընթացքում, այնպես որ դուք ցանկանում եք, համոզվեք, որ) օգտագործել ճիշտ անունը եւ բ) մատնանշում է այն ճիշտ Sharepoint փաստաթղթերի գրադարան.

Տաքանալ են Փառքի

Եթե ​​դուք դա արել է ճիշտ, կտեսնեք մի արդյունքի նման է հետեւյալ:

image

Ամփոփելով

Սա միակ ճանապարհն է սկսել, բայց դա արագ, easy and isolated from your existing SharePoint environment.

</վերջ>

Անդամագրվել իմ բլոգում.

Գտեք Twitter-ում http://www.twitter.com/pagalvin

Արորդիների Tags: ,

Արագ եւ հեշտ: Օգտագործեք jQuery ստեղծենք տեքստ դաշտի արժեքի վրա Sharepoint տեսքով

Սկսել եմ խաղալ ամբողջ հետ: jQuery yesterday. I’ve been wanting to do this for a long time, վեր Paul Grenier սկսվել Բառը իր շարքը jQuery մասին վերջնական օգտագործողների համար է, որ պատվարժան www.endusersharepoint.com web site. As I use it, I hope to add a series of “Quick and Easy” posts like this one. This post describes how to set a known text field’s value to anything you want.

Այս սցենարի, Ես ստեղծել գործարկողի համար, որի «նոր» ձեւը նայում `ինչպես ցուցադրված է:

image

Սա նոր ձեւ է մաքսային ցուցակի հետ կանխադրված Վերնագիր սյունակում եւ երկու ցուցակի սյուներ (ոչ Տեղում սյուներ; Ես չեմ կարծում, որ դա պետք է որեւէ տարբերություն).

Նպատակն է հատկացնել կամայական արժեք է ոլորտում, Է DefaultMeFieldNoSpaces է (Կարող եք ասել, I'ma քիչ մը երկչոտ է, «առանց բացատների:« Բանն այն շարունակվում է, բայց ես դա անել, համեմունք այն վերջում սույն հոդվածի).

Սա քիչ jQuery աշխատել ինձ համար:

<script տեսակ ="Text / JavaScript">

  $(ֆունկցիա() {

    $('Մուտք[Դուք կոչումը DefaultMeFieldNoSpaces]').attr(
        {արժեք: 'Դու մի twisty Maze են հատվածներ, բոլորս իրար նման.});

  });

</ձեռագիր>

Ինչպես ես հասկանում դա քիչ jQuery ասում, “find me any input tag whose title = DefaultMeFieldNoSpaces. Ապա, սահմանել իր բոլոր արժեքների, ինչպես հայտնի արտահայտության համար ծեր համակարգչային խաղի ».

Քանի որ միայն մեկը դաշտի վրա ձեւի հետ կոչում հավասար մասնաճյուղի DefaultMeFieldNoSpaces «Մենք վստահեցրել է նշանակվում մի արժեք այդ դաշտում եւ ոչ մի այլ.

Ինչ վերաբերում է մի դաշտ, որի անունն ունի, տարածքներ է դրա? It’s nearly the same:

<script տեսակ ="Text / JavaScript">

  $(ֆունկցիա() {
     $('Մուտք[անվանումը = Վերագր Field With տարածության]').attr(
        {արժեք: 'Դու մի twisty Maze են հատվածներ, բոլորս իրար նման.});

  });

</ձեռագիր>

Կարծում եմ, սա բավականին ապահով մոտեցում, meaning that we should be able to find the field that we want and only the field we want. If you look at the HTML SharePoint is giving us, դա տեսակ խառնաշփոթ:

<մուտք
անուն="ctl00$m$g_bdb23c2c_fde7_495f_8676_69714a308d8e$ctl00$ctl04$ctl02$ctl00$ctl00$ctl04$ctl00$ctl00$TextField"
տիպ= "Տեքստը:"
maxlength= "255"
id="ctl00_m_g_bdb23c2c_fde7_495f_8676_69714a308d8e_ctl00_ctl04_ctl02_ctl00_ctl00_ctl04_ctl00_ctl00_TextField"
վերնագիր= "DefaultMeFieldNoSpaces"
դաս= "Ms-երկարությամբ"
/>

«Կոչումը», առանձնանում է որպես ճանաչելի եւ հուսով յուրահատուկ հատկանիշ օգնել մեզ պարզել կոնկրետ սյունը, որը մենք ուզում զիջել մեր կամայական արժեք.

This is a foundational concept. Setting a field in an arbitrary way like this isn’t going to win any awards. Սակայն, եթե մենք ուզում ենք անել ավելի հետաքրքիր ձեւ մակարդակի իրեր (որը մենք բոլորս էլ ուզում ենք անել,, Իհարկե, անմիջապես հետո, մենք ավարտել լվանալով ճաշատեսակներ), սիրում եմ փոխել արժեքը "դաշտը, բ" ավտոմատ հիման վրա արժեքի դաշտում մի, մենք (Ես) Պետք է սովորել այս բաները.

Կարծում եմ, որ մեր լավագույն հնարավորությունն է ստանալ օգտակար իրական արժեքը այստեղ միջոցով վերնագրի, at least for text fields. There may be a better, more reliable approach. If I find it, Ես նորացնել Այս գրառումը. If you know a better way, խնդրեմ թողնել մեկնաբանություն:</վերջ>

</վերջ>

Անդամագրվել իմ բլոգում.

Գտեք Twitter-ում http://www.twitter.com/pagalvin

Արորդիների Tags: ,