মাসিক আর্কাইভ: জুন 2009

InfoPath ফরম Sevices, ভিত্তিক প্রমাণীকরণ ফরম (FBA) এবং অনন্য ফাইলের নাম

আমি এই সপ্তাহে একটি FBA পরিবেশে MOSS ফরম কিছু InfoPath কাজ এবং শিখেছি করেছি হয়েছে, আমি একটি 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

যে সঙ্গে সমস্যা যদি ব্যবহারকারী একটি সোমবার ফর্ম প্রর্দশিত হবে এবং ব্যবহারকারী বি মঙ্গলবার এটি পরিবর্তন করা হয়, দুটি ভিন্ন ব্যবহারকারীদের বিভিন্ন ব্যবহারকারীর নাম সঙ্গে এটি সংরক্ষণ করা থেকে আপনি দুটি ভিন্ন রূপ দিয়ে শেষ করব.

সুতরাং, FBA বিরক্তিকর বিশেষ করে সাধারণ এবং InfoPath সঙ্গে হতে পারে, এটি সম্পর্কে আমি অন্যথায় কাজ হবে না যে পুনরায় মনে হয় একটি ছোট কিন্তু সত্যিই গুরুত্বপূর্ণ প্রযুক্তিগত বিস্তারিত এবং পদ্ধতির তৈরি!

</শেষ>

আমার ব্লগ এর জন্য সাবস্ক্রাইব করুন.

টুইটারে আমার অনুসরণ http://www.twitter.com/pagalvin

Technorati বিভাগ:

SharePoint তালিকা / ডকুমেন্ট লাইব্রেরী দেখেছে সুরক্ষিত মনে (সাজানোর) JQuery দিয়ে সম্ভব

এটা আমার আরেকটি পোস্ট সিরিজে চালু কিভাবে ব্যবহার করতে নেভিগেশন jQuery SharePoint সঙ্গে.
আপনি jQuery সম্পর্কে আরও জানতে চান, আমি অত্যন্ত সুপারিশ: এক্সন মধ্যে jQuery বিয়ার Bibeault এবং Yehuda Katz দ্বারা.

আমি চিন্তা প্রথম জিনিস এক, একবার আমি jQuery নিয়ে খেলা শুরু, was whether we could use it to secure a SharePoint view. The answer is “no” (বা অন্তত, আমি এটা সম্ভব দাবি করছি না). কিন্তু, it is certainly possible to make it difficult for people to see a particular view.

I started with my sandbox environment when working on this. I wrote about that environment here: দ্রুত এবং সহজ: SharePoint জন্য আপনার নিজস্ব jQuery স্যান্ডবক্স তৈরি করুন.

একটি দৃশ্য "নিরাপদ" আপনি, নিম্নলিখিত ধাপগুলি অনুসরণ করুন:

  1. Create a view you want to secure. I did that and called it “Secured View”.

    এটি "সুরক্ষিত" না, যখন দেখে মনে হচ্ছে কি:

    image

  2. স্যান্ডবক্স নিবন্ধে বর্ণিত কৌতুক ব্যবহার করে দেখুন এর পৃষ্ঠায় একটি বিষয়বস্তু সম্পাদনা ওয়েব অংশ যোগ করুন (I.E. "পৃষ্ঠা দৃশ্য = ভাগ যোগ করুন&URL-এ ToolPaneView = 2 ").
  3. Figure out your SharePoint _spUserId by following these crazy steps, বিশ্বাস করি বা না:
    1. আপনার SharePoint পরিমাণ ইন.
    2. ওয়েব ব্রাউজারের ঠিকানা ক্ষেত্রে, টাইপ: "JavaScript:সতর্ক(_spUserId ").
    3. ফলে রেকর্ড (এটা আমার ক্ষেত্রে "13" এর).

      image

  4. কোড ভিউ আপনার CEWP আপনি নিম্নলিখিত জাভাস্ক্রিপ্ট যোগ করুন:

    <স্ক্রিপ্ট
        "text/javascript"
        src ="../../jQuery Library/jquery-1.3.2.min.js">
    </লিপি>
    
    <স্ক্রিপ্টের ধরন ="text/javascript">
      $(কাজ() {
    
        সতর্ক(_spUserId);
    
        ছিল theSecuredView = $('Iframe[FilterLink * = সুরক্ষিত% 20View]');
    
        যদি ((theSecuredView.length > 0) && (_spUserId == 13))
          $('Iframe[FilterLink * = সুরক্ষিত% 20View]').পিতা বা মাতা().পিতা বা মাতা().পিতা বা মাতা().HTML("<TR bgcolor = লাল><td>আপনার জন্য কোন ভিউ!</td></tr>");
      });
    
    </লিপি>
    

আমি অন্তর্গত করেছি সতর্কতা(_spUserId) এই সত্যিই একটি ভিউ "সুরক্ষিত" না, কত প্রকট সেখানে লাইন, but simply making it more difficult to see. More on that in a moment.

মূলত, 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

আমি ওকে বাটন ক্লিক করুন এবং তথ্য একটি বড় লাল পাঠান প্রতিস্থাপিত হয়:

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, কিন্তু আমি এই বিষয় উপর লিখিত কিছু ভাল স্টাফ দেখতে, তাই আমি যে সমস্যার একটি ভাল উত্তর আছে আশাবাদী নই.

নিজেদের ছাঁটা উচিত দেখেছে তালিকা, যদি সম্ভব. 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. কখনও কখনও, যে যথেষ্ট ভাল.

ভাগ্য সঙ্গে, আমি সময়ের সাথে এই বিষয় উপর লিখতে আরো পাবেন.

</শেষ>

আমার ব্লগ এর জন্য সাবস্ক্রাইব করুন.

টুইটারে আমার অনুসরণ http://www.twitter.com/pagalvin

Technorati বিভাগ: ,,

del.icio.us ট্যাগ: ,,

দ্রুত এবং সহজ: একটি SharePoint ফরম একটি টেক্সট ক্ষেত্রের আড়াল jQuery ব্যবহার করার জন্য একটি ভাল উপায়

এটা আমার আরেকটি পোস্ট সিরিজে চালু কিভাবে ব্যবহার করতে নেভিগেশন 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> আমি লুকান ডাকা হতে পারে যা() পদ্ধতি. My early effort to find the correct <-TR> ছিল ভালো কিছু:

$('TR:আছে(ইনপুট[শিরোনাম = আমার লুকান!])');

যে সঙ্গে সমস্যা এটা প্রত্যেক এটি যে হয় <-TR> আমার লুকানোর কোনো পিতা বা মাতা সম্পর্ক ছিল যে ট্যাগ! ক্ষেত্র, আমার লুকান এমনকি যদি! গভীর অনেক মাত্রা নেস্টেড হয় <-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> আমার লুকান যে ট্যাগ! 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, একটি মন্তব্য পোস্ট করুন দয়া করে.

</শেষ>

আমার ব্লগ এর জন্য সাবস্ক্রাইব করুন.

টুইটারে আমার অনুসরণ http://www.twitter.com/pagalvin

Technorati বিভাগ: ,

দ্রুত এবং সহজ: একটি SharePoint ফরম একটি টেক্সট ক্ষেত্রের আড়াল jQuery ব্যবহার করুন

এটা আমার আরেকটি পোস্ট সিরিজে চালু কিভাবে ব্যবহার করতে নেভিগেশন jQuery SharePoint সঙ্গে.
আপনি jQuery সম্পর্কে আরও জানতে চান, আমি অত্যন্ত সুপারিশ: এক্সন মধ্যে jQuery বিয়ার Bibeault এবং Yehuda Katz দ্বারা.

আপডেট (already!): I did think of a better way to locate the <-TR> tag I want to hide and wrote about it here. You may still find this article interesting anyway so I’m leavnig it up.

I want to hide a text field, “Hide Me!” as shown:

image

The following jQuery does the trick for me:

<স্ক্রিপ্টের ধরন ="text/javascript">

  $(কাজ() {


    $('ইনপুট[শিরোনাম = আমার লুকান!]').পিতা বা মাতা().পিতা বা মাতা().পিতা বা মাতা().আড়াল();

  });

</লিপি>

The code is saying, “find me all input fields whose title = Hide Me!. তারপর, get its parent and then next parent and the *next* parent (phew!) and invoke the hide() method on that thing, whatever it happens to be.

I figured out that parent structure by viewing the HTML for the form that SharePoint created as shown:

<-TR>
    <TD nowrap="true" valign="top" প্রস্থ="190px" বর্গ="ms-formlabel">
        <H3 বর্গ="ms-standardheader">
            <nobr>Hide Me!</nobr>
        </H3>
    </TD>

    <TD valign="top" বর্গ="ms-formbody" প্রস্থ="400px">
        <!-- FieldName="Hide Me!"
                 FieldInternalName="Hide_x0020_Me_x0021_"
                 FieldType="SPFieldText"
        -->
        <বিঘত dir="none">
            <ইনপুট
                নাম="ctl00$m$g_bdb23c2c_fde7_495f_8676_69714a308d8e$ctl00$ctl04$ctl02$ctl00$ctl00$ctl04$ctl00$ctl00$TextField"
                টাইপ="text"
                MAXLENGTH="255"
                আইডি="ctl00_m_g_bdb23c2c_fde7_495f_8676_69714a308d8e_ctl00_ctl04_ctl02_ctl00_ctl00_ctl04_ctl00_ctl00_TextField"
                শিরোনাম="Hide Me!"
                বর্গ="ms-long" />
                <বিআর>
        </বিঘত>


    </TD>
</-TR>

This picture shows the same, but marked up with the parents:

image

The first parent (1) is a span tag. Span’s parent (2) is a TD tag and then finally we get to the real parent I want to hide (3) which is the TR tag itself.

This is a pretty terrible approach I think because it’s extremely dependent on the very specific structure of this form. When SharePoint 2010 comes out, 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 (and only TR tags) that have somewhere in their child elements an input field whose title = Hide Me!". I starting from the bottom and moving up. Assuming I figure this out, I’ll post an updated “quick and easy’ post.

</শেষ>

আমার ব্লগ এর জন্য সাবস্ক্রাইব করুন.

টুইটারে আমার অনুসরণ http://www.twitter.com/pagalvin

del.icio.us ট্যাগ: ,

Technorati বিভাগ: ,

দ্রুত এবং সহজ: SharePoint জন্য আপনার নিজস্ব jQuery স্যান্ডবক্স তৈরি করুন

এটা আমার আরেকটি পোস্ট সিরিজে চালু কিভাবে ব্যবহার করতে নেভিগেশন jQuery SharePoint সঙ্গে.
আপনি jQuery সম্পর্কে আরও জানতে চান, আমি অত্যন্ত সুপারিশ: এক্সন মধ্যে jQuery বিয়ার Bibeault এবং Yehuda Katz দ্বারা.

Getting started with jQuery in SharePoint is surprisingly easy (আমার). (I do have serious questions about a “best practices” approach to deploying these things to production, but that’s for another day). 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, you may find this approach useful.

1. Create a Blank Site

Create a blank site somewhere in your site and call it something clever like “jQuery Sandbox”.

2. Download jQuery

You can download the jQuery javascript library from here: http://docs.jquery.com/Downloading_jQuery

Save that to to your desktop.

I have been using the “minified” version.

3. Create a SharePoint Document Library

In your sandbox site, create a document library.

4. SharePoint আপনি jQuery লাইব্রেরি আপলোড করুন

আপনি শুধু তৈরি 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. সময়ের, আমি সংযোগগুলি সঙ্গে বাজানো হবে, ছবি, অনুসন্ধান, প্রভৃতি.

6. NewForm.aspx ওয়েব পার্ট পাতা পরিবর্তন এবং একটি বিষয়বস্তু সম্পাদনা ওয়েব পার্ট যোগ করুন

এই একটু কালো জাদু পর হয় , in that it’s a new concept to me. I first learned about this from পল Grenier, SharePoint jQuery Superstar, at his CodePlex project site: http://spff.codeplex.com/.

Follow these steps to add a CEWP to the same page that shows NewForm.aspx for any custom list:

  1. Access the custom list and click New.
  2. Append the following to the URL: PageView=Shared&ToolPaneView=2

That will transform your boring vanilla data entry form from something like this:

image

To this:

image

Add the content editor web part to the page.

7. Write Your First jQuery Code

Open up that CEWP in the code view and add the following:

image

Here’s the actual code if you want to copy/paste:

<স্ক্রিপ্ট
    "text/javascript"
    src ="../../jQuery Library/jquery-1.3.2.min.js">
</লিপি>

<স্ক্রিপ্টের ধরন ="text/javascript">
  $(কাজ() {

    $('#resultsID').HTML('There are ' + $('a').size() + ' a tags tags on this page.');

  });
</লিপি>

ফলাফল:
<div id='resultsID'></div>
/result

উল্লেখ্য যে প্রথম <লিপি> tag is referencing the actual jQuery library. Presumably, এই জিনিস সময়ের পরিবর্তন, সুতরাং আপনি আপনার একটি নিশ্চিত করতে চাইবেন) ডান নাম এবং বো ব্যবহার) সঠিক SharePoint নথি লাইব্রেরি এটি নির্দেশ.

পুণ্য হউক মধ্যে Bask

আপনি সঠিকভাবে তা যদি, আপনি নিম্নলিখিত বর্ণনার অনুরূপ একটি ফলাফল দেখতে পাবেন:

image

আপ মোড়ানো

এই শুরু করার একমাত্র উপায় নয়, কিন্তু এটি দ্রুত, easy and isolated from your existing SharePoint environment.

</শেষ>

আমার ব্লগ এর জন্য সাবস্ক্রাইব করুন.

টুইটারে আমার অনুসরণ http://www.twitter.com/pagalvin

Technorati বিভাগ: ,

del.icio.us ট্যাগ: ,

দ্রুত এবং সহজ: একটি SharePoint ফরম একটি টেক্সট ক্ষেত্রের এর মান সেট jQuery ব্যবহার করুন

আমি নিয়ে খেলতে শুরু jQuery yesterday. I’ve been wanting to do this for a long time, বরাবর পল Grenier শুরু লেখা তার ধারাবাহিক venerable এ অন্তিম ব্যবহারকারীদের জন্য 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" (আপনি আমি বলেন, "কোনও ব্যবধান" জিনিস ঘটনাসমূহ সঙ্গে একটু ভীতু নই বলতে পারেন, কিন্তু আমি এই প্রবন্ধের শেষে মসলা এটা কি).

JQuery এই বিট আমার জন্য কাজ:

<স্ক্রিপ্টের ধরন ="text/javascript">

  $(কাজ() {

    $('ইনপুট[শিরোনাম = DefaultMeFieldNoSpaces]').attr(
        {মান: 'আপনি প্যাসেজ একটি twisty কিংকত্র্তব্যবিমূঢ় হয়, সমস্ত সদৃশ.});

  });

</লিপি>

আমি এটা বুঝতে হিসাবে jQuery এই বিট বলছে না, “find me any input tag whose title = DefaultMeFieldNoSpaces. তারপর, একটি পুরাতন কম্পিউটার খেলা থেকে একটি বিখ্যাত শব্দগুচ্ছ তাদের মান সব সেট. "

শুধুমাত্র "DefaultMeFieldNoSpaces" সমান একটি শিরোনাম সঙ্গে ফর্মে এক ক্ষেত্রের থাকবে যেহেতু আমরা যে ক্ষেত্রে একটি মান নির্ধারণের প্রতিশ্রুতি এবং অন্য কোন করা হয়.

যার নাম এটা শূণ্যস্থান আছে একটি ক্ষেত্র সম্পর্কে কি? It’s nearly the same:

<স্ক্রিপ্টের ধরন ="text/javascript">

  $(কাজ() {
     $('ইনপুট[স্থান শিরোনাম = ধার্য মাঠ]').attr(
        {মান: 'আপনি প্যাসেজ একটি twisty কিংকত্র্তব্যবিমূঢ় হয়, সমস্ত সদৃশ.});

  });

</লিপি>

আমি এই একটি মোটামুটি নিরাপদ পদ্ধতি মনে হয়, 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"
টাইপ="text"
MAXLENGTH="255"
আইডি="ctl00_m_g_bdb23c2c_fde7_495f_8676_69714a308d8e_ctl00_ctl04_ctl02_ctl00_ctl00_ctl04_ctl00_ctl00_TextField"
শিরোনাম="DefaultMeFieldNoSpaces"
বর্গ="ms-long"
/>

"শিরোনাম" আমাদের যা আমরা আমাদের নির্বিচারে মান নির্ধারণ করতে চান নির্দিষ্ট কলাম সনাক্ত করতে সহায়তা করার জন্য একটি স্বীকৃত এবং আশা অনন্য বৈশিষ্ট্য হিসাবে দাঁড়িয়েছে আউট.

This is a foundational concept. Setting a field in an arbitrary way like this isn’t going to win any awards. কিন্তু, আমরা আরো আকর্ষণীয় ফর্ম স্তরের স্টাফ কাজ করতে চান তাহলে (আমাদের সব সবসময় কাজ করতে চান, যা, স্বভাবত, আমরা ডিশ ওয়াশিং পরে ডান পরে), স্বয়ংক্রিয়ভাবে "ক্ষেত্রের একটি" মান উপর ভিত্তি করে "যদি ক্ষেত্রের কিছু r খ" মান পরিবর্তন চাই, আমরা (আমি) এই জিনিস শিখতে প্রয়োজন.

আমি এখানে একটি বাস্তব উপযোগী মান পেতে আমাদের সর্বোত্তম সুযোগ শিরোনাম মাধ্যমে মনে হয়, at least for text fields. There may be a better, more reliable approach. If I find it, আমি এই পোস্টে আপডেট করব. If you know a better way, একটি মন্তব্য করুন.</শেষ>

</শেষ>

আমার ব্লগ এর জন্য সাবস্ক্রাইব করুন.

টুইটারে আমার অনুসরণ http://www.twitter.com/pagalvin

Technorati বিভাগ: ,