월별 아카이브: 6 월 2009

InfoPath 양식 서비스도, 폼 기반 인증 (FBA) 고유한 파일 이름

일부 InfoPath 양식 FBA 환경에서 MOSS에서 이번 주에 노력 하 고 배 웠 있 었 어 요, 배포에 갔을 때 한 FBA와 프로덕션 환경에 양식 영역을 사용자 이름() 기능 함수 작동 하지 않습니다.. 고유한 파일 이름을 생성 하 그것을 사용 했다.

음, 함수 FBA 환경에서 작동 하지 않습니다 (적어도, 안 상자의). 그리고, 반사에 따라, 계획 했던 방식으로 사용자 이름을 사용 하지 않았을 보장 고유한 파일 이름을 어떤 이벤트.

지금 사용 하는 내 솔루션() 함수 및 폼의 로드에 발생 하는 규칙. 때 빈 나 데이터 요소에 파일 이름 할당:

image

image

이 방법의 장점은 파일 이름은 한 번만 설정 됩니다.. (화면에 그것을 보여주지 않습니다., 하지만 "myFilename"이 비어만 불 규칙에 조건을 넣어합니다). 파일 이름을 데이터 원본 수준에서 설정 하는 데 사용. 일반적으로, 뭔가 할 것 (나쁜) 이것처럼:

image

그 문제는 월요일에 양식을 사용자 A와 사용자 B가 화요일에 변경 하는 경우, 두 사용자가 서로 다른 사용자 이름으로 저장 한 이후 두 개의 다른 형태의 끝날 거 야.

그래서, FBA 수 일반적으로 Infopath와 특히 짜증나 서, 그것은 작지만 정말 중요 한 기술적 세부 사항 및 접근 난 그렇지 못했을 다시 내게 했다!

</끝>

내 블로그를 구독.

에 지 저 귐에 나를 따르라합니다 http://www.twitter.com/pagalvin

테크노 태그:

SharePoint 목록 또는 문서 라이브러리 보기를 확보 하는 것으로 보인다 (일종의) Jquery와 함께 가능

이것은 또 다른 게시물에 내 -시리즈 사용 하는 방법에 jQuery Sharepoint와 함께.
Jquery에 대 한 자세한 정보를 원하는 경우, 매우 추천: 액션 jQuery 베어 Bibeault 및 예 후 다 카 츠.

내가 생각 하는 최초의 것 들 중 하나, 한번 놀 러 Jquery와 함께 시작 합니다., 여부를 우리가 SharePoint 보기를 확보 하기 위해 사용할 수 있습니다.. 대답은 "아니오" (아니면 적어도, 가능 하다는 주장 하지 오전). 그러나, 그것은 어려운 사람들이 특정 뷰를 볼 수 있도록 수.

이 대 한 작업 내 샌드박스 환경 시작. 여기에 그 환경에 대해 쓴: 신속 하 고 쉽게: Sharepoint에 대 한 자신의 jQuery 샌드 박스를 만듭니다.

"보안" 보기, 다음이 단계를 수행 합니다.:

  1. 확보 하려는 뷰 만들기. 내가 그것을 했 고 그것에 게 "보안 보기" 라는.

    이것은 어떻게 생겼는지 때 그것은 아닙니다 "보안":

    image

  2. 샌드박스 문서에서 설명 하는 트릭을 사용 하 여 보기의 페이지에 콘텐츠 편집기 웹 파트 추가 (즉. 추가 "페이지 뷰 = 공유&ToolPaneView = 2 "URL을).
  3. 이 미친 단계에 따라 SharePoint _spUserId 파악, 믿거나 말거나:
    1. SharePoint 환경에 로그인.
    2. 웹 브라우저의 주소 필드에, 유형: "자바 스크립트:경고(_spUserId ").
    3. 결과 기록 (그것은 내 경우에는 "13").

      image

  4. 코드 보기에서 CEWP에 다음 자바 스크립트 추가:

    <스크립트 유형 ="텍스트/자바 스크립트"
        src =".. /.. /jQuery Library/jquery-1.3.2.min.js">
    </스크립트>
    
    <스크립트 유형 ="텍스트/자바 스크립트">
      $(함수() {
    
        경고(_spUserId);
    
        var theSecuredView = $(' iframe[FilterLink * 보안된  View =]');
    
        만약 ((theSecuredView.length > 0) && (_spUserId = = 13))
          $(' iframe[FilterLink * 보안된  View =]').부모().부모().부모().html("<tr bgcolor = 빨간색><td>당신을 위해 상세 보기!</td></tr>");
      });
    
    </스크립트>
    

그 경고를 포함 시켰습니다.(_spUserId) 어떻게이 아니다 설명에 선 정말는 "보호" 보기, 하지만 단순히 볼을 더 어렵게 만드는. 그 순간에 더 많은.

기본적으로, jQuery는 특성 값에 "보안 View"를 포함 하는 페이지에 iFrame를 찾으십시오. 일단 그것을 발견합니다, 우리는 현재 사용자가 "13"를 확인. 그것은 하는 경우, 우리는 DOM을 걸어 한 <TR> 태그 (소스 보기 하 고 그것은 추적에 의해 밖으로 생각 하는) 내 메시지는 TR 태그를 교체 하 고. 난 정말 이것이 얼마나 강력한 모르겠어요 (나는 매우 의심 스러운, 사실), 하지만 내 모래밭에. 내가 더 나은 방법을 찾아야 하는 경우, 그것에 대해 블로그를 겁니다.. 이것은 결과입니다.:

image

확인 버튼을 클릭 하 고 데이터를 큰 붉은 메시지 바뀝니다.:

image

당신이 말할 수 있습니다, 난 구현 하는 방법이 "보안" 솔루션은 웹 파트 렌더링 자체를 수 있도록. 완료 후, 내 "아니 볼 수 있는 당신을 위해 콘텐츠를 덮어쓰기!"메시지.

아니다는 사실에도 불구 하 고 정말는 "보안 '" 보기, 그것은 잠재적으로 유용 하 고 일부 영리한 작품, 그것은 결국 더 공식적인 의미에서 보안 수 있습니다.. 근본적인 문제는 클라이언트의 모든 데이터를 지 고 있다 그리고, 데이터를 가져옵니다 후에, 그것은 그것을 지워합니다. 클라이언트는 데이터를 가져오는 경우, 영리한 사용자 jQuery 전혀 실행 하는 것을 못하게 하 고 그/그녀가 보고 싶어 볼 수 있습니다..

다른 단점이 있습니다.. "보안" 이렇게가는 _spUserId 기반으로. 우리가 원하는 것을 정말 보안에 따라 전체 SharePoint 보안 모델, 또는 적어도 사용자 이름. 그는 점차적으로 어렵게 된다, 하지만이 주제에 몇 가지 좋은 물건을 볼, 그래서 거기에 그 문제에 대 한 좋은 답변 희망 해요.

스스로 뷰 목록을 정돈 되어야 한다, 가능 하다 면. 내가 그림을 밖으로 시도 하지 않은. 그것은 가능한 가정, 하지만 누군가가 아직도 단지 그들이 원하는 보기의 URL을 입력 수 있기 때문에 근본적인 보안 문제를 해결할 정말 하지 않습니다 (만약 그들이 그것을 알고). 그러나, 트리밍 의미가. 그것은 좋은 유용성 기능 그리고 것 들을 난독 처리 하는 데 도움이. 최종 사용자 보기 이벤트 있는지 모르는 경우, 그들은 아마 그것을 사용 하려고 하지 않습니다.. 때로는, 충분히 좋은.

행운이 함께, 시간이 지남에이 주제에 쓸 더 야.

</끝>

내 블로그를 구독.

에 지 저 귐에 나를 따르라합니다 http://www.twitter.com/pagalvin

신속 하 고 쉽게: SharePoint 폼에서 텍스트 필드를 숨기려면 사용 jQuery 더 나은 방법

이것은 또 다른 게시물에 내 -시리즈 사용 하는 방법에 jQuery Sharepoint와 함께.
Jquery에 대 한 자세한 정보를 원하는 경우, 매우 추천: 액션 jQuery 베어 Bibeault 및 예 후 다 카 츠.

이전, 나를 찾아서 폼에서 텍스트 필드를 숨길 jQuery를 사용 하는 방법에 대해 쓴. 특정 접근에 대 한 상관 하지 않았다 (부모-간단 하 게 그를 체인은 이러한 일을 수행 하지 않습니다, 적어도 품질의 가족).

내가 먼저 그것에 대해 생각 하기 시작, 찾이 필요가 알고는 <TR> 나는 숨기기 호출 수 있습니다.() 메서드. 올바른 찾을 수 내 초기 노력 <TR> 이런식으로 뭔가 했다:

$(' tr:있다(입력[제목 = 나 숨기기!])');

그에 대 한 문제는 찾을 거 라고 모든 <TR> 태그 숨기기 모든 부모 관계 나 했다! 필드, 경우에도 숨기 나! 많은 수준에 깊은 중첩 <TR>의. 그것은 밝혀 내 샌드 박스 형태에, 해당 식을 찾습니다. 9 다른 TR 권한이 나 숨기기! 어렸을 때의 DOM 트리에서 어딘가에. 나 입력된 필드에서 나무를 다시 걸 수 실현, 그래서 그건 어떻게 부모를 학대 결국, 하지만 잘 나와 함께 앉지 않았어요.

이것에 어떤 생각을 준 고 상식적으로 마지막으로 읽은 것 들 중 하나: Not을 사용할 수 있습니다.() 밖으로 정돈 하는 방법 <TR>내 포장된 세트에서 원하는 하지 않습니다.. 그이를 알려준:

$(' tr:있다(입력[제목 = 나 숨기기!])').하지(' tr:있다(tr)').숨기기();

첫 번째 비트는 모든 발견 된 <TR> 태그를 숨기기 나! 어디에서 그들의 자신의 계층 구조 필드. 그것은 그 어떤 밖으로 스트립 <TR> 그는 또한 아이 가질 <TR>. 이 단일 남긴다 <TR> 그:

1) 에 <TR> 자식 레코드

2) 아이로 입력된 필드에는.

우리 다음 숨기기를 적용할 수 있습니다.() 메서드 결과를 설정 하 고 완료.

난 아직이 대 한 약간 긴장, 하지만 부모 체인으로 긴장 하지.

가장 좋은 방법은 인지 인지 몰라. 식별의 더 적절 한 방법이 있을 수 있습니다 단지는 <TR> 우리에 대 한 SharePoint 폼에 관심. 당신이 알고 있는 경우, 코멘트를 하시기 바랍니다.

</끝>

내 블로그를 구독.

에 지 저 귐에 나를 따르라합니다 http://www.twitter.com/pagalvin

신속 하 고 쉽게: Jquery를 사용 하 여 SharePoint 양식 텍스트 필드를 숨길

이것은 또 다른 게시물에 내 -시리즈 사용 하는 방법에 jQuery Sharepoint와 함께.
Jquery에 대 한 자세한 정보를 원하는 경우, 매우 추천: 액션 jQuery 베어 Bibeault 및 예 후 다 카 츠.

업데이트 (이미!): 더 좋은 방법을 찾으려고 생각 했는 <TR> 숨기고 싶은 태그와 여기 그것에 대해 쓴. 당신은 여전히 찾을 수 있습니다이 문서 재미 어쨌든 그래서 난 leavnig 그것을.

텍스트 필드를 숨기고 싶은, "나를 숨기기!"같이:

image

다음 jQuery 나를 위해 목적을 달성을 한다합니다:

<스크립트 유형 ="텍스트/자바 스크립트">

  $(함수() {


    $(' 입력[제목 = 나 숨기기!]').부모().부모().부모().숨기기();

  });

</스크립트>

코드는 말이, "내게 모든 입력 필드의 제목 찾기 = 나 숨기기!. 다음, 그것의 부모 및 다음 부모와 * 다음 * 부모 (휴!) 호출 숨기기() 일 방법, 뭐 든 될 일이.

SharePoint와 같이 만든 폼에 대 한 HTML을 확인 하 여 해당 부모 구조 파악:

<TR>
    <TD nowrap= "true" 세로 맞춤"탑 =" 너비= "190px" 클래스"ms-formlabel" =>
        <H3 클래스"ms-standardheader" =>
            <nobr>나를 숨기기!</nobr>
        </H3>
    </TD>

    <TD 세로 맞춤"탑 =" 클래스"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$ 텍스트 필드"
                유형= "텍스트"
                최대 길이= "255"
                id"ctl00_m_g_bdb23c2c_fde7_495f_8676_69714a308d8e_ctl00_ctl04_ctl02_ctl00_ctl00_ctl04_ctl00_ctl00_TextField ="
                제목"숨기기 나 =!"
                클래스"ms-긴 =" />
                <br>
        </범위>


    </TD>
</TR>

이 사진은 같은 보여줍니다., 하지만 부모와 함께 표시:

image

첫 번째 부모 (1) span 태그는. 스팬의 부모 (2) TD 태그 그리고 마지막으로 우리가 진짜 부모 숨기고 싶은 (3) TR 태그 자체는.

이것이 내가 생각 하는 그것은 매우이 폼의 매우 구체적인 구조에 의존 하기 때문에 아주 끔찍한 접근. 때 SharePoint 2010 밖으로 나오는, 이 전체 구조 수 변경 하 고이 방법은 휴식. 공예의 라인을 따라 jQuery 선택기 "찾을 모든 TR은 정말 해야 합니다. (그리고 유일한 TR 태그) 그는 어딘가에 자신의 자식 요소에서 입력된 필드 누구의 제목 = 나 숨기기!”. 바닥에서 시작 하 고 이동. 이것을 알아낼 가정, 업데이트 된 게시물 거 야 "신속 하 고 쉽게 ' 게시물.

</끝>

내 블로그를 구독.

에 지 저 귐에 나를 따르라합니다 http://www.twitter.com/pagalvin

del.icio.us 태그: ,

신속 하 고 쉽게: Sharepoint에 대 한 자신의 jQuery 샌드 박스를 만듭니다

이것은 또 다른 게시물에 내 -시리즈 사용 하는 방법에 jQuery Sharepoint와 함께.
Jquery에 대 한 자세한 정보를 원하는 경우, 매우 추천: 액션 jQuery 베어 Bibeault 및 예 후 다 카 츠.

Sharepoint에서 Jquery와 함께 시작 하는 것은 의외로 쉽게 (저에게). (생산에 이러한 것 들을 배포 하는 "모범 사례" 접근에 대 한 심각한 질문 할., 하지만 그건 또 하루). 난 그냥이 기술로 연주를 시작 했습니다., 사용 하는 샌드박스 환경을 만들었습니다.. 만약 당신이 jQuery와 함께 시작을 찾고, 이 방법은 유용 하 게 찾을 수 있습니다..

1. 빈 사이트 만들기

빈 사이트 어딘가에 귀하의 사이트에 있는 만들고 뭔가 "jQuery 샌드 박스"와 같은 영리한 전화.

2. JQuery 다운로드

여기에서 jQuery 자바 스크립트 라이브러리를 다운로드할 수 있습니다.: http://docs.jquery.com/Downloading_jQuery

바탕 화면에 저장 하는.

"Minified" 버전 사용 하 고 있다.

3. SharePoint 문서 라이브러리 만들기

샌드 박스 사이트에서, 문서 라이브러리 만들기.

4. Sharepoint에 jQuery 라이브러리를 업로드

방금 만든 문서 라이브러리에 액세스 하 고 업로드 jQuery 라이브러리.

5. 사용자 지정 SharePoint 목록 만들기

에 대 한 표준 SharePoint 폼으로 깨끗이 하 고 싶다 때문에 사용자 지정 목록을 시작 했습니다.. 또한 페이지 라이브러리에서 페이지 또는 웹 파트 페이지 및 아마 많은 다른 장소를 만들 수 있습니다..

뭔가 대 한 jQuery를 실행 하는 사용자 지정 목록에 일부 열 추가. 내 초기 목표 했다:

  1. 필드 숨기기.
  2. 필드에 값을 할당.

마음에 그 목표와, 두 개의 텍스트 필드 추가. 시간이 지남에, 난 링크와 함께 연주 될 거 야, 이미지, 조회, 등.

6. NewForm.aspx 웹 파트 페이지를 수정 하 고 콘텐츠 편집기 웹 파트 추가

이것은 조금 블랙 magic-ish , 그것은 나에 게 새로운 개념. 내가 처음에서이 대해 배웠다 폴 Grenier, SharePoint jQuery 슈퍼스타, 그의 CodePlex 프로젝트 사이트에서: http://spff.codeplex.com/.

사용자 지정 목록에 대 한 NewForm.aspx 보여 주는 동일한 페이지에 있는 CEWP를 추가 하려면 다음이 단계를 수행 합니다.:

  1. 사용자 지정 목록에 액세스 하 고 새로 만들기를 클릭 합니다..
  2. 다음 URL에 추가: 페이지 뷰 = 공유&ToolPaneView = 2

그 같이에서 당신의 지루한 바닐라 데이터 입력 폼을 변형 시킬 것 이다:

image

이:

image

페이지에 콘텐츠 편집기 웹 파트 추가.

7. 당신의 첫 번째 jQuery 코드 작성

코드 보기에서 해당 CEWP을 열고 다음을 추가합니다:

image

다음은 실제 코드 복사/붙여넣기를.:

<스크립트 유형 ="텍스트/자바 스크립트"
    src =".. /.. /jQuery Library/jquery-1.3.2.min.js">
</스크립트>

<스크립트 유형 ="텍스트/자바 스크립트">
  $(함수() {

    $(' #resultsID').html(' 있다 ' + $(' a').크기() + '는 태그 태그가이 페이지에서.');

  });
</스크립트>

결과:
<div id =' resultsID'></div>
/결과

참고: 첫 번째 <스크립트> 실제 jQuery 라이브러리를 참조 하는 태그. 아마도, 이러한 것 들이 시간이 지남에 변경, 그래서 당신이 다는 것을 확인 하 고 싶은 거는) 올바른 이름을 사용 하 여 b) 올바른 SharePoint 문서 라이브러리를 가리킨.

영광을 느끼고합니다

당신이 잘못 했다면, 다음과 유사한 결과가 나타납니다.:

image

마무리

이것은 시작 하는 유일한 방법은 아니다., 하지만 빠른, 간편 하 고 기존 SharePoint 환경에서 격리.

</끝>

내 블로그를 구독.

에 지 저 귐에 나를 따르라합니다 http://www.twitter.com/pagalvin

del.icio.us 태그: ,

신속 하 고 쉽게: SharePoint 폼 설정 텍스트 필드의 값을 Jquery를 사용

와 주위를 재생 시작 jQuery 어제. 오랜 시간 동안 이렇게 싶 었 어 요, 어렸을 때부터 폴 Grenier 쓰기 시작 그의 시리즈 오래 된에서 최종 사용자에 대 한 jQuery에 대 한 www.endusersharepoint.com 웹 사이트. 내가 그것을 사용, 난 "신속 하 고 쉬운"의 시리즈는이 이것과 같은 게시물을 추가 하도록 하겠습니다.. 이 게시물 아무것도 당신이 원하는 알려진된 텍스트 필드의 값을 설정 하는 방법을 설명 합니다..

이 시나리오에서, 그 "새로운" 양식을 보이는 그림과 같이 사용자 지정 목록을 만들었습니다.:

image

이것은 기본 제목 열이 있는 사용자 지정 목록에 대 한 새로운 폼과 두 개의 열이 목록 (사이트 열 하지; 그것은 어떤 차이 만들어 야 생각 하지 않습니다.).

필드에 임의의 값을 할당 하는 목표는, "DefaultMeFieldNoSpaces" (나는가 "공간" 것으로 겁 장이의 조금 말할 수 있는, 하지만이 기사 끝에 양념).

나를 위해 일 하는 jQuery의이 비트:

<스크립트 유형 ="텍스트/자바 스크립트">

  $(함수() {

    $(' 입력[제목 = DefaultMeFieldNoSpaces]').attr(
        {: ' 구절의 구불구불한 미로, 다 똑같아.'});

  });

</스크립트>

내가 jQuery의이 비트 이해로 말이, "나에 게 어떤을 찾을 입력 태그의 제목 = DefaultMeFieldNoSpaces. 다음, 모든 설정 값의 유명한 문구에 오래 된 컴퓨터 게임에서. "

우리는 해당 필드에 값을 할당의 안심 하 고 다른만 것 이므로 하나의 필드 제목 양식에 "DefaultMeFieldNoSpaces"와 같은.

그 이름에 공백이 있는 필드에 대 한 어떤? 그것은 거의 같은:

<스크립트 유형 ="텍스트/자바 스크립트">

  $(함수() {
     $(' 입력[제목 = 할당 필드와 공간]').attr(
        {값: ' 구절의 구불구불한 미로, 다 똑같아.'});

  });

</스크립트>

이것은 상당히 안전한 방법입니다 생각, 우리가 원하는 우리가 우리가 원하는 필드 및 필드만 찾을 수 있어야 의미. 보면 HTML SharePoint 우리에 게는, 그것은 일종의 지저분한:

<입력
이름= "ctl00$ m$ g_bdb23c2c_fde7_495f_8676_69714a308d8e$ ctl00$ ctl04$ ctl02$ ctl00$ ctl00$ ctl04$ ctl00$ ctl00$ 텍스트 필드"
유형= "텍스트"
최대 길이= "255"
id"ctl00_m_g_bdb23c2c_fde7_495f_8676_69714a308d8e_ctl00_ctl04_ctl02_ctl00_ctl00_ctl04_ctl00_ctl00_TextField ="
제목"DefaultMeFieldNoSpaces ="
클래스"ms-긴 ="
/>

"제목"를 우리가 우리의 임의의 값을 할당 하려면 특정 열을 식별할 수 있도록 인식 하 고 잘하면 독특한 특성으로 눈에 띄는.

이것은 기초 개념. 어떤 상을 이길 하지 않을이 같은 임의의 방법으로 필드를 설정. 그러나, 우리가 더 재미 있는 양식 수준의 물건을 원하는 경우 (우리 모두는 항상 하 고 싶은, 물론, 우리가 설거지를 마친 후에 바로), 처럼 "필드 b"의 값에 따라 자동으로 값 변경 "필드를", 우리 (난) 이러한 것 들을 배울 필요가.

여기 진짜 유용한 가치를 얻을 우리의 최고의 기회는 제목을 통해 생각, 적어도 텍스트 필드에 대 한. 더 나은 있을 수 있습니다., 믿을 수 있는 접근. 만약 내가 그것을 찾을합니다, 이 게시물을 업데이 트 거 야. 더 좋은 방법 알고 있는 경우, 코멘트를 남겨 주세요.</끝>

</끝>

내 블로그를 구독.

에 지 저 귐에 나를 따르라합니다 http://www.twitter.com/pagalvin