Магазин за SharePoint говорим отворен Q&На сесията четвъртък 08/13 @ 12:30 Ч. EDT

Arcovis ще бъде домакин нашата втора "SharePoint магазин поговорим" сесия този четвъртък в 12:30 Ч. EDT. Появи с вашия SharePoint въпроси и ние ще направим всичко възможно да ви забавлява с банджо вицове, Smart но безвредни Сложете на стойността на нашите колеги панелисти и може би дори отговор въпрос или две. Тази седмица "Официален" панел включва твоя милост, моите Arcovis партньори (Наталия Voskresenskaya и Хари Джоунс) и Лора Роджърс (на Twitter & EndUserSharePoint славата). Боб Фокс заплаши да се присъединят също, но не че се вземат прекалено на сериозно. Последен път, Имахме голямо ниво на участие на публиката, които замъглено линията между участниците и участниците, и аз очаквам същото ще се случи четвъртък.

Това събитие е съфинансиран от интегрирани системи и услуги група (www.issgroup.net).

Моля регистрирайте се тук: https://www323.livemeeting.com/lrs/8000043750/Registration.aspx?pageName=9xrzxfs9x34sb0sm

Ако имате въпроси, които бихте искали да вземат, просто наберете в поканата и да я прикани. Ако искате да мисля за това първо, Изпратете ни имейл или оставете коментар тук.

Видим тогава!

</край>

Абонирайте се за моя блог.

Следвайте ме на Twitter в http://www.twitter.com/pagalvin

Предварително съществуващите условия: Шаблони за SharePoint сигнал за спасяване (?)

Един от моите клиенти, работили с предишния изпълнител да се изгради малък, но полезни HR заявление за предприятието. Че изпълнителят използва SharePoint Designer за изпълнение на работния поток част от разтвора на. Това е малко на каша. Например, има девет ЕДП работни потоци в подкрепа на един логичен поток процес и най-много до пет от тях може да пожар едновременно във всеки даден момент, дава правилните условия. It’s not easy to debug 🙂

Моят клиент има редица все още неизпълнени изисквания, един от които е да обикновено предоставят повече контекст, когато системата изпраща сигнали по имейл – както в самата електронна поща, както и свързаните с тях задачи форми. Като ЕДП поток изпълнители знам, действието "събира данни от потребител" ЕДП всъщност създава задача с потребителски тип съдържание. Когато използваме това действие, Ние не се да зададете много. Ние може да подкани за някои стойности (e.g. "одобрение" или "Отказ") и ние да зададете твърди кодирани стойност в заглавието и описанието. Това е за него.

Изискването на клиента ми е два пъти:

  1. Когато SharePoint изпраща имейл за присвояване на задача, включва много информация за задачата в тялото на имейл.
  2. Още по-важно, далеч – когато потребителят щракне върху задача връзката в имейл, формуляра на задачата трябва да има цялата информация, одобряващ трябва да направят неговото одобрение или отказ на решение. Точно сега, Управителят трябва да щракнете върху връзката за елемента, самата да пробия в основните подробности и никой не се интересува, че. Вие трябва да кликнете на имейл. Тогава ще трябва да щракнете върху нещо неясно връзка на задачата. След това можете да погледнете в основните данни (InfoPath форма в този случай). След това щракнете върху назад/назад, н. Всеки мрази го.

Аз съм наследил тази малко объркана техническо решение и аз искам да се промени в най-слабо вмешателство начин е възможно.

Аз съм като сега подход е да създадете потребителски шаблон за предупреждение. Можете да прочетете за това тук. Работи по този начин потока:

  • ЕДП поток работи.
  • В някакъв момент, Тя възлага задача на един мениджър.
  • Система SharePoint автоматично изпраща сигнал към този мениджър. Това не е част от ЕПД поток, но по-скоро "какво SharePoint прави." (Услугата за таймер на SharePoint, Вярвам, че).
  • Потребителски отговорник е извикан в полза на стандартния сигнал процес (след магически правила, описани в по-горе упомената статия).
  • Когато ми потребителски отговорник работи, тя генерира красива имейл. Още по-важно, тъй като тя има за задача в ръка, Тя също украсява реалната задача с всички контекста информация, необходима да отговарят на бизнес изискванията.
  • Потребителят получава електронна поща и е пълен с полезни контекст информация.
  • Потребителят кликне върху връзка към задача и самата задача е пълен с полезни контекст информация.
  • Всеки се прибира да има диня и сладолед.

Направих бързо Рос и работи добре в лабораторията среда. Получавам ми персонализирани имейл предупреждение, както се очаква. Аз също се да актуализира описанието на задачата и самото заглавие.

Само сложната малко, досега, е да се избегне ситуация, когато предупреждението актуализира елемента, задействане на друг сигнал. Това не ме притеснява.

Изглежда обещаващ досега...

Голямото нещо за това е, че аз не трябва да се мотам с някоя от съществуващите работни потоци, SPD. Те са блажено неведение, че отговорник е"ИМС RUNNIN В DA BAKGROUND, Д TEH ЗАДАЧА СПИСЪК WIF ФЕСТИВАЛ ШАТРИТЕ КОНТЕКСТ”.

</край>

Абонирайте се за моя блог.

Следвайте ме на Twitter в http://www.twitter.com/pagalvin

Technorati тагове: ,

Живо Q на SharePoint&На сесията четвъртък 07/30/09 @ 12:30 Ч. EDT завършващ 1:30Ч. EDT

Актуализация: Формат за това е основно конферентен разговор с няколко PPT пързалки за задаване на сцената. Ние имаме със среда на SharePoint на стойка да огън в случай, че помага, но това е основно хора, които говорят на глас. Ще има възможности за последващи нагоре по имейл.

Връща към първата си някога SharePoint конференция, малко повече от преди една година, Аз съм поразен от колко страхотно живо Q&Една сесия може да бъде. Организаторите на конференцията са поставени заедно нещо на ad hoc група от "експерти" (т.е.. хората, които висяха и не се страхуват от гледам да глупаво горе на сцената) за да отговори на всички въпроси, които дойдоха от публиката в залата. Тя е в главата ми тогава, и периодично оттогава, да бъде домакин на подобно сесия, но го направи на линия и телефон. Не мисля, че тя може да бъде толкова добро, колкото в лице Q&Една сесия, но аз мисля, че тя може да бъде много готино.

Най-накрая имам към него и следващия четвъртък, 07/30, Моята фирма (Arcovis) и бизнес партньор, Интегрирани системи и услуги група, ще бъде домакин Q&А като че. Аз съм с надеждата да направите тези редовно, толкова често, колкото седмичен.

Това учредително заседание вероятно ще бъде малко неравен, но концепцията е това:

  • Ако имате въпроси, които бихте искали да отговори по време на сесия, просто се появи и да поиска.
  • Ако искаш, Можете да изпратите въпроса предварително.

Ние планираме да прекара през първата половина на Q&А по емайл въпроси и след това го отвори нещо, което някой иска след това.

Сесията се провежда в четвъртък, 07/30 Започвайки от 12:30 и се стигне до 1:30 Ч. EDT.

Ако проявявате интерес, Моля регистрирайте се тук: https://www323.livemeeting.com/lrs/8000043750/Registration.aspx?pageName=pxlsd9fpsm2md7h9

Групата ще включва мен и други светила на SharePoint. You’ll have to sign up to find out who they are 🙂

Ако искате да бъде един от тези светила за бъдещи Q&Една сесия, Нека да знаят.

</край>

Абонирайте се за моя блог.

Следвайте ме на Twitter в http://www.twitter.com/pagalvin

Technorati тагове:

Вграждане на разработчика бележки вътре си формулярите на InfoPath

Аз съм все още живеят в света на формуляри на InfoPath и трябва да се направи една от тези "малки" промени към формуляр,, за съжаление, почивки именуване конвенция се приемат с него преди две седмици. Мислех за себе си, "някой ще изглежда в това, което една година от сега и казват, "Какво е Пол мислене? Дявол да го вземе, неговата именуване конвенция няма смисъл!”

Аз осъзнах, че мога да създавам Изглед във формуляра за това и след това, Още веднъж, осъзнах, че аз може да са били прави нещо като това през цялото време. Добавих "Разработчик бележки" изглед за InfoPath форма като такива:

image

Конфигурирах формуляра, така че потребителите не могат да получат до този изглед и следователно, само се вижда с клиента на InfoPath в режим на проектиране. Сега се чувствам малко инокулираните срещу някои бъдещи неизвестен разработчик, гледаш си форма и мислят лоши мисли за мен. Пфу!

</край>

Абонирайте се за моя блог.

Следвайте ме на Twitter в http://www.twitter.com/pagalvin

Technorati тагове:

Управление на InfoPath пъти видяна

Мога да премине през фази на InfoPath където, на синьото, Аз съм занаяти един куп формуляри. Пръстите ми Научете как да използвате инструмента добре и след това минават през девет месеца суша и трябва да го научите всичко отначало, отново.

Аз съм в средата на фаза на InfoPath и аз съм създаване на формуляри на InfoPath с много пъти видяна. Едно нещо, което вероятно ще забележите е, че InfoPath 2007 Клиент показва изгледи по азбучен ред. Това е истински неудобство няколко пъти. Моят най-добър техника тези дни е да добавя число към името на изгледа, така че те винаги се показват в ред искам, както е показано тук:

image

Иска ми трябваше този начин всички заедно.

</край>

Абонирайте се за моя блог.

Следвайте ме на Twitter в http://www.twitter.com/pagalvin

Technorati тагове:

Услуги в областта на формуляр на InfoPath, Формуляри, базирани удостоверяване (FBA) и уникални имена на файлове

Аз бях работи върху някои формуляри на InfoPath тази седмица в Мос в FBA среда и учен, Когато отидох да разположи формуляри към производствена среда с FBA зона която потребителското име() функция функция не работи. Аз бях го използва за генериране на уникални файлови имена.

Ами, тази функция не работи в FBA среда (най-малко, не на кутията). И, след размисъл, използване на потребителското име по начина, по който е планирала няма да имат гарантирани уникално име на файл във всеки случай.

Моето решение е да използвате сега() функция и правило, което пожари при зареждане на формуляра. Присвояване името на файла за елемент от данните, когато е празно:

image

image

Предимството на този подход е, че името на файла е настроен само веднъж. (Аз не се показват в екрана изстрел, но постави условие на правилото да само огън, когато "myFilename" е празно). Аз използван за да зададете името на файла на ниво данни източник. Обикновено, Ще направя нещо (Лош) Ето така:

image

Проблемът с това е, че ако потребител А отвори формуляра в понеделник и потребител Б го промени във вторник, ще свърши с две различни форми тъй като две различни потребители го записали с различни потребителски имена.

Така, като досадно като FBA може да бъде по принцип и с InfoPath в частност, Тя ме прави мислите отново с малък, но много важни технически подробности и подход, който няма да са направили по друг начин!

</край>

Абонирайте се за моя блог.

Следвайте ме на Twitter в http://www.twitter.com/pagalvin

Technorati тагове:

Обезопасяване на изгледи на библиотеката на SharePoint списък/документ изглежда (сортиране на) Възможно с jQuery

Това е друга длъжност в моя текущи серии Как да използвате jQuery с SharePoint.
Ако искате да научите повече за jQuery, Аз силно препоръчвам: jQuery в действие да носят Bibeault и Йехуда Катц.

Едно от първите неща, мислех, че, след като започнах да играе около с jQuery, е дали можем да го използваме да осигури изглед на SharePoint. Отговорът е "не" (или най-малко, Аз съм не претендира, е възможно). Въпреки това, Това със сигурност е възможно да я направи трудно за хората да виждат определен изглед.

Започнах с моя пясък околната среда, когато се работи по този. Аз написах за тази среда тук: Бърз и лесен: Създадете ваше собствено jQuery пясъчницата за SharePoint.

За "защита" на изглед, Изпълнете следните стъпки:

  1. Създаване на изглед, който искате да защитите. Направих това и го нарича "Защитен изглед".

    Това е, как изглежда той когато той не е "защитен":

    image

  2. Добавяне на уеб компонент за редактор на съдържание към на изглед на страница с помощта на взятка, описана в статията на пясъчницата (т.е.. Добавяне на "по преглед на страници = споделени&ToolPaneView = 2 "към URL).
  3. Разбера вашия SharePoint _spUserId като следвате тези стъпки, луд, вярват или не:
    1. Влезте във вашия SharePoint среда.
    2. В адресното поле на уеб браузъра, тип: "javascript:предупреждение(_spUserId").
    3. Запис на резултата (Това е "13" в моя случай).

      image

  4. Прибавям определителен член последователи javascript към вашия CEWP в изглед на код:

    <скрипт тип ="текст/javascript"
        SRC =".. /.. /JQuery Library/JQuery-1.3.2.min.js">
    </скрипт>
    
    <скрипт тип ="текст/javascript">
      $(функция() {
    
        предупреждение(_spUserId);
    
        var theSecuredView = $("iframe[FilterLink * = обезпечени % 20View]');
    
        Ако ((theSecuredView.length > 0) && (_spUserId == 13))
          $("iframe[FilterLink * = обезпечени % 20View]').родител().родител().родител().HTML("<TR bgcolor = червен><TD>Няма изглед за вас!</TD></TR>");
      });
    
    </скрипт>
    

Аз бях включен това предупреждение(_spUserId) линия там да демонстрира как това не е наистина "осигуряване" изглед, но просто като го направи по-трудно да се види. Повече за това в един момент.

По принцип, jQuery е гледам за iFrame в страницата, който има атрибут, който съдържа "Гарантираните % 20View" в своята стойност. След като установи, че, Ние проверяваме дали текущият потребител е "13". Ако това е, Ние се изкачват на дом за <TR> етикет (което аз релефна повърхност показване на източник и го за проследяване) и след това замени този TR етикет със моето съобщение. Наистина не знам как силен, това е (Аз съм много подозрителни, Всъщност), но тя работи в моя пясък. Ако намеря по-добър начин, Аз ще блог за него. Това е резултат:

image

Аз щракнете върху бутона OK и данните се заменя с голяма червено съобщение:

image

Както можете да съобщите на, начина, по който аз съм реализиране разтворът "сигурност" е да позволи на уеб частта да се направи. След като завърши, I замените съдържанието му с моите "изглед за вас!"съобщение.

Независимо от факта, че тя не е наистина "защитена '" Изглед, това е потенциално полезен и с някои умен работи, в крайна сметка може да се защитим в по-формален смисъл. Основният въпрос е, че клиентът е получаването на всички данни и след това, само след като получава данните, то го бърша вън. Ако клиентът е получаване на данни, умен потребител може да предотврати стартирането на всички jQuery и вижте Какво, той иска да видите.

Има и други недостатъци. Този "сигурност" подход се основава на разстояние _spUserId. Ще искаме да наистина сигурна въз основа на модел на пълна сигурност на SharePoint, или поне по потребителско име. Това става постепенно по-трудно, но аз виждам някои добри неща, написани по този въпрос, така че аз съм надежда е добър отговор за този проблем.

Списъкът на изгледи, самите се почистват, Ако е възможно. Аз не съм опитал да разбера, че. Предполагам, че е възможно, но наистина не реши основните гаранцията проблем, защото някой може да просто въведете URL АДРЕСА на изгледа, те искат (ако те са знаели го). Въпреки това, Подстригване има смисъл. Това е добра използваемост функция и това помага да обърквам нещата. Ако краен потребител не знае, че съществува събитие преглед, те вероятно няма да се опитвам да го използвате. Понякога, това е достатъчно добър.

С късмет, Ще го взема повече да пише по този въпрос във времето.

</край>

Абонирайте се за моя блог.

Следвайте ме на Twitter в http://www.twitter.com/pagalvin

Technorati тагове: ,,

del.icio.US тагове: ,,

Бърз и лесен: По-добър начин да се използва jQuery да скриете текстово поле на формуляр на SharePoint

Това е друга длъжност в моя текущи серии Как да използвате jQuery с SharePoint.
Ако искате да научите повече за jQuery, Аз силно препоръчвам: jQuery в действие да носят Bibeault и Йехуда Катц.

По-рано, Аз написах за как да използвате jQuery да намерите и да се скрият текстово поле на формуляр. Аз не се грижи за специфичен подход (Е верижното родители – това е просто не е направил тези дни, най-малко в семействата на качеството).

Когато започнах да мисля за това, Знаех, че трябваше да се намери <TR> към която да извика Скрий() метод. Моите ранни усилия да намерим правилния <TR> е нещо подобно:

$("tr:има(вход[Заглавие = Скрий ме!])');

Проблемът с това е, че той ще намери всеки <TR> етикет, които са имали някакви майка връзка към Скрий ме! поле, дори ако Скрий ме! е вложен дълбоко в много нива <TR>снимки на. Оказва се, че в моя формуляр, пясък, този израз намира 9 различни TR, които имат Скрий ме! като дете някъде в дървото си дом. Разбрах, че мога да ходя обратно на дървото от полето за въвеждане, самата, така че това е как се стигна до злоупотреба с родителите, но това не седи добре с мен.

Аз дадох някои мисли за това и едно от нещата, които прочетох накрая имаше смисъл: Да използвам не() метод, за да отрежете <TR>е, аз не искам в моята стая и опаковани. Това ме доведе до това:

$("tr:има(вход[Заглавие = Скрий ме!])').не("tr:има(TR)').Скрий();

Първата малко намира всички <TR> Тагове, които са Скрий ме! поле навсякъде в своя йерархия. То тогава ленти някоя <TR> Това също има дете <TR>. Това ни оставя с едно <TR> Това:

1) Не е <TR> подчинени записи

2) Има поле за въвеждане като дете.

Ние след това да приложите кожа() метод, за да води и сме готови.

Аз все още съм малко нервен за това, но не толкова нервна, верижното родители.

Не знам дали това е добра практика, или не. Може да има по-подходящ начин за идентифициране само <TR> че ние се грижим за в SharePoint форма. Ако знаете, Моля публикувате коментар.

</край>

Абонирайте се за моя блог.

Следвайте ме на Twitter в http://www.twitter.com/pagalvin

Technorati тагове: ,

Бърз и лесен: Използвайте jQuery, за да скриете текстово поле на формуляр, SharePoint

Това е друга длъжност в моя текущи серии Как да използвате jQuery с SharePoint.
Ако искате да научите повече за jQuery, Аз силно препоръчвам: jQuery в действие да носят Bibeault и Йехуда Катц.

АКТУАЛИЗИРАНЕ (вече!): Аз мисля, че на по-добър начин да намерите <TR> етикет, аз искам да се скрие и пише за него тук. Можете все още да намерите тази статия интересно все пак така че аз съм leavnig го.

Искам да скрия текстово поле, "Скрий ме!"както е показано:

image

Следните jQuery прави трик за мен:

<скрипт тип ="текст/javascript">

  $(функция() {


    $("въвеждане[Заглавие = Скрий ме!]').родител().родител().родител().Скрий();

  });

</скрипт>

Кодът се казва, "Намери ме всички входни полета чието заглавие = Скрий ме!. След това, да си родител и след това next родител и * напред * родител (Пфу!) и се позове Скрий() метод на това нещо, Независимо от това се случва да бъде.

Реших, че родител структура като прегледате HTML за формуляра, който SharePoint създадени както е показано:

<TR>
    <TD без прехвърляне= "true" valign= "Топ" ширина= "190px" клас= "ms-formlabel">
        <H3 клас= "ms-standardheader">
            <NOBR>Скрий ме!</NOBR>
        </H3>
    </TD>

    <TD valign= "Топ" клас= "ms-formbody" ширина= "400px">
        <!-- FieldName = "Скрий ме!"
                 FieldInternalName = "Hide_x0020_Me_x0021_"
                 FieldType = "SPFieldText"
        -->
        <еталониране DIR= "няма">
            <вход
                Име= "ctl00$ m$ g_bdb23c2c_fde7_495f_8676_69714a308d8e$ ctl00$ ctl04$ ctl02$ ctl00$ ctl00$ ctl04$ ctl00$ ctl00$ TextField"
                тип= "текст"
                maxlength= "255"
                ИД= "ctl00_m_g_bdb23c2c_fde7_495f_8676_69714a308d8e_ctl00_ctl04_ctl02_ctl00_ctl00_ctl04_ctl00_ctl00_TextField"
                заглавие= "Скрий ме!"
                клас= "ms дълго" />
                <br>
        </еталониране>


    </TD>
</TR>

Тази картина показва една и съща, но маркирани с родителите:

image

Първия родител (1) е една педя маркер. На Дани родител (2) е TD маркер и след това накрая ние стигнем до истинската майка, аз искам да се скрие (3) което е самия TR етикет.

Това е доста ужасно подход мисля, защото това е изключително зависим от много специфичната структура на този формуляр. Когато SharePoint 2010 излиза, тази цялата структура може да се промени и прекъсне този подход. Това, което наистина искам да направя е занаят селектор на jQuery, че е по подобие на "Намери ме всички TR (и само TR Тагове) които имат някъде в техните дъщерни елементи input поле чието заглавие = Скрий ме!”. Започвайки от дъното и се движат. Ако приемем, аз фигура този вън, Аз ще пост актуализирана "бързо и лесно" пост.

</край>

Абонирайте се за моя блог.

Следвайте ме на Twitter в http://www.twitter.com/pagalvin

del.icio.US тагове: ,

Technorati тагове: ,

Бърз и лесен: Създадете ваше собствено jQuery пясъчницата за SharePoint

Това е друга длъжност в моя текущи серии Как да използвате jQuery с SharePoint.
Ако искате да научите повече за jQuery, Аз силно препоръчвам: jQuery в действие да носят Bibeault и Йехуда Катц.

Първи стъпки с jQuery в SharePoint е изненадващо лесно (На мен). (Имам сериозни въпроси относно подход на "добри практики" за разполагане на тези неща в производство, но това е за друг ден). Току-що започна да свири с тази технология и за тази цел, Съм създал пясък околната среда да се използва. Ако търсите да започнете с jQuery, Можете да намерите този подход полезни.

1. Създаване на празен сайт

Създайте празен сайт някъде във вашия сайт и го наричат нещо умно като "jQuery пясък".

2. Изтегляне на jQuery

Можете да изтеглите jQuery javascript библиотека от тук: http://docs.jquery.com/Downloading_jQuery

Това да се запишете на вашия работен плот.

Имам Използвам "minified" версия.

3. Създаване на библиотека с документи на SharePoint

В сайта си пясък, създаване на библиотека с документи.

4. Качите jQuery библиотека на SharePoint

Достъп до библиотеката на doc, който току що създадохте и качване на jQuery библиотека.

5. Създаване на потребителски SharePoint списък

Аз бях започнал с потребителски списък, защото аз искам да се мотам със стандартни формуляри на SharePoint. Можете да създадете страница в библиотека със страници или страници с уеб компоненти и вероятно на много други места.

Добави някои колони към потребителски списък, така че имате нещо да тече jQuery срещу. Моят първоначалните цели бяха да:

  1. Скриване на поле.
  2. Присвояване на стойност на поле.

С тази цел в ума, Добавих две текстови полета. С течение на времето, Аз ще се играе с връзки, изображения, заявки, н.

6. Модифициране на страницата на NewForm.aspx уеб компонента и добавете уеб компонента за редактор на съдържание

Това е малко черно magic-ish , в че е нова концепция за мен. За първи път научих за това от Пол Grenier, SharePoint jQuery суперзвезда, в сайта му CodePlex проект: http://spff.codeplex.com/.

Следвайте тези стъпки, за да добавите CEWP на същата страница, която показва NewForm.aspx за всеки потребителски списък:

  1. Достъп до потребителския списък и щракнете върху Създай.
  2. Следното за добавяне на URL: Показване на страница = споделени&ToolPaneView = 2

Това ще превърне вашия скучно въвеждане на ванилия данни форма от нещо подобно:

image

За това:

image

Добавяне на уеб компонент за редактор на съдържание към страница.

7. Напиши вашата първа jQuery код

Отвори този CEWP в изгледа на кода и се добавят следните:

image

Тук е действителният код, ако искате да копирате/паста:

<скрипт тип ="текст/javascript"
    SRC =".. /.. /JQuery Library/JQuery-1.3.2.min.js">
</скрипт>

<скрипт тип ="текст/javascript">
  $(функция() {

    $("#resultsID").HTML("Има" + $("").размер() + "тагове етикети на тази страница.");

  });
</скрипт>

Резултат:
<DIV id ="resultsID"></DIV>
/Резултат

Имайте предвид, че първата <скрипт> етикет е съотнасяне на действителните jQuery библиотека. Вероятно, тези неща се променят с времето, така че вие ще искате да се уверете, че) Използвайте правилното име и b) го насочите към правилната библиотека с документи на SharePoint.

Топля в славата

Ако сте го направили правилно, Вие ще видите резултат, подобен на следния:

image

Обобщавайки резултатите

Това не е единственият начин да започнете, но това е бърз, лесно и изолирани от вашата съществуваща среда SharePoint.

</край>

Абонирайте се за моя блог.

Следвайте ме на Twitter в http://www.twitter.com/pagalvin

Technorati тагове: ,

del.icio.US тагове: ,