بایگانی دسته بندی: jQuery و شیرپوینت

نکته سریع: اضافه کردن جی کوئری به MOSS انتشارات صفحات

هنگام بالا بردن صفحات publising MOSS با استفاده از jQuery, من ضربه دست انداز با سرعت زیر:

Server Error in ‘/’ درخواست.


خطا در تجزیه کننده

شرح: یک خطا رخ داده است در طی تجزیه از منابع مورد نیاز برای این سرویس درخواست. لطفا این فایل نقد می نویسید: جزئیات پارسه زیر خاص خطا و تغییر فایل منبع خود را به طور مناسب.

تجزیه کننده پیام خطا: Only Content controls are allowed directly in a content page that contains Content controls.

خطا در منبع:

 
Line 10: 
Line 11: 
Line 12: <script 
Line 13:     type="text/javascript" 
Line 14:     src="/jQuery/jquery-1.4.min.js"> 

فایل منبع: /_catalogs/masterpage/KCC_FacultyMember.aspx    خط: 12


اطلاعات نسخه: مایکروسافت نسخه دات نت فریم ورک:2.0.50727.4927; ASP.NET نسخه:2.0.50727.4927

It was easy enough to fix (h/t to my colleague, Uday Ethirajulu).  Be sure that the jQuery code lives inside the “PlaceHolderAdditionalPageHead” as shown:

<افعی:Content ContentPlaceholderID="PlaceHolderAdditionalPageHead" runat="server">

<خط

    type="text/javascript"

    src="/jQuery/jquery-1.4.min.js">

</خط>

<نوع اسکریپت = "متن / جاوا اسکریپت">

  $(سند).آماده(تابع() {

   // Brilliant jQuery stuff goes here.

   });

</خط>

</پایان>

مشترک شدن در وبلاگ من.

من در توییتر در http://www.twitter.com/pagalvin

در ستایش از jQuery پیشرفته جستجو همانطور که شما نوع (توسط Jan Tielens با)

من کار بر روی نسخه ی نمایشی BPOS (به زودی نیز در دسترس می باشد را در سایت مایکروسافت) and I wanted to add a little pizzazz. I’ve known about جان Tielen تلاش برای مدتی و من فکر کردم این امر می تواند روش بسیار خوبی برای اضافه کردن به نسخه ی نمایشی, so I did. You can read about it here: http://weblogs.asp.net/jan/archive/2009/07/02/sharepoint-search-as-you-type-with-jquery.aspx. It’s so simple to use it should probably be a crime (و شاید جایی).

من اضافه کردن تنها دو نقطه به آنچه که او در حال حاضر / در مورد نوشت::

  1. این کار را, در واقع, کار در BPOS ها (شیرپوینت آنلاین) محیط.
  2. آن را به کار بدون پیام پنجره مزاحم مرجع به کتابخانه jQuery با HTTPS به جای HTTP ط., همانطور که در:
<نوع اسکریپت ="text/javascript" SRC ="https://ajax.googleapis.com/ajax/libs/jquery/1.3.2/jquery.min.js"></خط>

Jan points out that you should probably move the library itself to your site. Feeling a little lazy today, در عوض تصمیم گرفتم در مورد آن وبلاگ بنویسم 🙂

</پایان>

این یکی دیگر از پست من است بر روی سری در مورد چگونگی استفاده از جی کوئری با شیرپوینت.
اگر شما می خواهید برای کسب اطلاعات بیشتر در مورد جی کوئری, من به شدت توصیه: jQuery را در عمل توسط خرس Bibeault و یهودا کتز.

مشترک شدن در وبلاگ من.

من در توییتر در http://www.twitter.com/pagalvin

برچسب ها:

ایمن شیرپوینت فهرست / نمایش ها کتابخانه سند به نظر می رسد (مرتب کردن بر اساس) ممکن است با jQuery

این یکی دیگر از پست من است بر روی سری در مورد چگونگی استفاده از جی کوئری با شیرپوینت.
اگر شما می خواهید برای کسب اطلاعات بیشتر در مورد جی کوئری, من به شدت توصیه: jQuery را در عمل توسط خرس Bibeault و یهودا کتز.

یکی از اولین چیزهایی که من فکر کردم, یک بار من شروع به بازی در اطراف با 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: دسترسی سریع و آسان: ایجاد گودال ماسهبازی jQuery را خود را برای شیرپوینت.

به "امن" دیدگاه, این مراحل را دنبال:

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

    این همان چیزی است که به نظر می رسد مانند وقتی که آن را "امن":

    image

  2. اضافه کردن ویرایشگر محتوا بخشی از وب به صفحه نمایش با استفاده از ترفند های شرح داده شده در مقاله گودال ماسهبازی (i.e. اضافه کردن "بازدید از صفحه = به اشتراک گذاشته شده&ToolPaneView = 2 "به URL).
  3. Figure out your SharePoint _spUserId by following these crazy steps, باور کنید یا نه:
    1. ورود به محیط شیرپوینت شما.
    2. در فیلد آدرس مرورگر وب, نوع: "جاوا اسکریپت:هوشیار(_spUserId ").
    3. ثبت نتیجه (آن را "13" در مورد من).

      image

  4. اضافه کردن JavaScript در مرورگر شما های زیر به 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]').پدر یا مادر().پدر یا مادر().پدر یا مادر().اچ تی ام ال("<TR bgcolor = قرمز><فلش>بدون دیدگاه برای شما!</فلش></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

من روی دکمه 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, اما من می بینم بعضی از چیزهای خوب در مورد این مطلب نوشته شده است, بنابراین من امیدوار هستم یک پاسخ خوبی برای این مشکل وجود دارد.

لیستی از نمایش های خود باید کمرنگ, در صورت امکان. 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. Sometimes, که به اندازه کافی خوب است.

با آرزوی موفقیت, من بیشتر برای نوشتن در مورد این مطلب در طول زمان.

</پایان>

مشترک شدن در وبلاگ من.

من در توییتر در http://www.twitter.com/pagalvin

دسترسی سریع و آسان: راه بهتری برای استفاده از جی کوئری برای مخفی کردن فیلد متنی به فرم شیرپوینت

این یکی دیگر از پست من است بر روی سری در مورد چگونگی استفاده از جی کوئری با شیرپوینت.
اگر شما می خواهید برای کسب اطلاعات بیشتر در مورد جی کوئری, من به شدت توصیه: jQuery را در عمل توسط خرس Bibeault و یهودا کتز.

سابقا, 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 (من پدر و مادر زنجیری - که به سادگی انجام می شود نیست این روزها, حداقل در خانواده های با کیفیت).

وقتی من برای اولین بار شروع به در مورد آن فکر می کنم, من می دانستم که من نیاز برای پیدا کردن <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.

سپس ما می تواند پنهان اعمال() روش به مجموعه به دست آمده و ما انجام می شود.

من هنوز هم کمی عصبی در این مورد, اما به عنوان نه به عنوان پدر و مادر زنجیری عصبی.

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

دسترسی سریع و آسان: استفاده از جی کوئری برای مخفی کردن فیلد متنی به فرم شیرپوینت

این یکی دیگر از پست من است بر روی سری در مورد چگونگی استفاده از جی کوئری با شیرپوینت.
اگر شما می خواهید برای کسب اطلاعات بیشتر در مورد جی کوئری, من به شدت توصیه: jQuery را در عمل توسط خرس Bibeault و یهودا کتز.

تکمیلی (قبلا!): من از یک راه بهتر برای قرار دادن فکر می کنم <TR> برچسب من می خواهم برای مخفی کردن و در مورد آن را در اینجا نوشت. You may still find this article interesting anyway so I’m leavnig it up.

من می خواهم برای مخفی کردن یک فیلد متنی, "مخفی کردن من!"به عنوان نشان داده شده است:

image'

جی کوئری زیر می کند فوت و فن برای من:

<نوع اسکریپت ="text/javascript">

  $(تابع() {


    $("ورودی[عنوان = من مخفی شود!]').پدر یا مادر().پدر یا مادر().پدر یا مادر().پنهان کردن();

  });

</خط>

کد گفت:, تمام زمینه های ورودی که عنوان = ویرایشهای من "پیدا کردن من!. سپس, گرفتن پدر و مادر خود و پس از آن پدر و مادر و پدر و مادر * بعدی * (phew!) و استناد پنهان() روش در آن چیز, هر آنچه در آن اتفاق می افتد.

من که ساختار پدر و مادر با دیدن HTML برای فرم نمیفهمد که شیرپوینت خلق به عنوان نشان داده شده است:

<TR>
    <TD nowrap="true" valign="top" عرض="190px" کلاس="ms-formlabel">
        <H3 کلاس="ms-standardheader">
            <nobr>ویرایشهای من!</nobr>
        </H3>
    </TD>

    <TD valign="top" کلاس="ms-formbody" عرض="400px">
        <!-- FieldName="Hide Me!"
                 FieldInternalName="Hide_x0020_Me_x0021_"
                 FieldType="SPFieldText"
        -->
        <محدوده دیر="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>

این تصویر نشان می دهد, اما بازار با پدر و مادر:

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, من روز "سریع و آسان ارسال.

</پایان>

مشترک شدن در وبلاگ من.

من در توییتر در http://www.twitter.com/pagalvin

del.icio.us برچسب ها: ,

دسترسی سریع و آسان: ایجاد گودال ماسهبازی jQuery را خود را برای شیرپوینت

این یکی دیگر از پست من است بر روی سری در مورد چگونگی استفاده از جی کوئری با شیرپوینت.
اگر شما می خواهید برای کسب اطلاعات بیشتر در مورد جی کوئری, من به شدت توصیه: jQuery را در عمل توسط خرس Bibeault و یهودا کتز.

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. Upload the jQuery Library to SharePoint

Access the doc library you just created and upload the jQuery library.

5. Create a Custom SharePoint List

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. Hide a field.
  2. Assign a value to a field.

With that objective in mind, I added two text fields. Over time, I’ll be playing with links, images, lookups, غیره.

6. Modify the NewForm.aspx Web Part Page and Add a Content Editor Web Part

This is a little black magic-ish , 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').اچ تی ام ال('There are ' + $('a').size() + ' a tags tags on this page.');

  });
</خط>

نتیجه:
<div id='resultsID'></DIV>
/result

Note that the first <خط> tag is referencing the actual jQuery library. Presumably, these things change over time, so you’ll want to make sure you a) use the right name and b) point it to the correct SharePoint document library.

Bask in the Glory

If you did it correctly, you’ll see a result similar to the following:

image

Wrapping Up

This isn’t the only way to get started, but it’s quick, easy and isolated from your existing SharePoint environment.

</پایان>

مشترک شدن در وبلاگ من.

من در توییتر در http://www.twitter.com/pagalvin

del.icio.us برچسب ها: ,

دسترسی سریع و آسان: استفاده از jQuery برای تنظیم مقدار یک فیلد متنی به فرم شیرپوینت

من شروع به بازی در اطراف با جی کوئری yesterday. I’ve been wanting to do this for a long time, همیشه از پل 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 (شما می توانید بگویید که من کمی ترسو "بدون فاصله" چیزی که در, اما من ادویه آن را در پایان این مقاله).

این بیت از jQuery برای من کار می کرد:

<نوع اسکریپت ="text/javascript">

  $(تابع() {

    $("ورودی[عنوان = DefaultMeFieldNoSpaces]').attr(
        {ارزش: شما در پیچ و خم پیچ خورده از معابر, همه به طور یکسان.});

  });

</خط>

همانطور که من آن را در درک این بیت از jQuery گفت:, “find me any input tag whose title = DefaultMeFieldNoSpaces. سپس, مجموعه ای از ارزش های خود را به عبارت مشهور از بازی های کامپیوتری قدیمی است. "

از آنجا که تنها یک فیلد در فرم با یک عنوان برابر به "DefaultMeFieldNoSpaces" ما از اختصاص یک مقدار به آن زمینه مطمئن و دیگر هیچ.

چه در مورد یک رشته که نام فاصله ها را در آن? It’s nearly the same:

<نوع اسکریپت ="text/javascript">

  $(تابع() {
     $("ورودی[TITLE = میدان اختصاص با فضای]').attr(
        {ارزش: شما در پیچ و خم پیچ خورده از معابر, همه به طور یکسان.});

  });

</خط>

من فکر می کنم این است که یک روش نسبتا ایمن, 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. اما, اگر ما می خواهیم به انجام چیزهای جالب تر به صورت سطح (که همه ما همیشه می خواهیم به انجام, البته, درست پس از پایان شستن ظروف), مانند تغییر مقدار "میدان B" به طور خودکار بر اساس ارزش "میدان", ما (من) نیاز به یادگیری این چیزها.

من فکر می کنم ما بهترین فرصت برای به دست آوردن ارزش واقعی مفید است از طریق عنوان, 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