mėnesio Archyvai: Birželio 2009

InfoPath formos taikantis, Formomis pagrįstas autentifikavimas (FBA) ir unikalus failų vardai

I been darbo dėl kai kurių InfoPath formų šią savaitę Moss FBA aplinkoje ir išmoko, kai aš atvykau į dislokuoti formas į gamybos aplinką su yra FBA zonoje, vartotojo vardas() funkcija funkcija neveikia. Aš naudoju jį sukurti unikalų failų vardai.

Na, kad funkcija neveikia FBA aplinkoje (ne mažiau kaip, ne out of the box). Ir, po svarstymų, naudojant vartotojo vardas, kaip man buvo planuojama ne užtikrino unikalų failo vardą visais atvejais.

Mano sprendimas buvo naudoti dabar() funkcija ir taisyklę, kuri gaisrų dėl pakrovimo formos. Aš priskiriant failo vardo duomenų elementas, kai laukas tuščias:

image

image

Šio metodo privalumas yra tai, kad failo vardas yra nustatyti tik vieną kartą. (Man nerodo tai ekrano nuotrauka, Tačiau įdėti sąlyga būtų tik ugnies, kai "myFilename" yra tuščias taisyklė). Aš nustatyti failo pavadinimą duomenų šaltinio lygiu. Paprastai, Aš ką nors (blogas) va taip:

image

Problema, kad yra tai, kad jei vartotojas A atidaro formą pirmadienį ir B naudotojas pakeičia jį antradienį, jūs galų gale su dviem pavidalais nes dviejų skirtingų vartotojų išsaugoti ją su skirtingų vartotojų vardus.

Taigi, kaip erzina kaip FBA gali būti apskritai ir su InfoPath ypač, jis privertė mane permąstyti nedidelis, bet labai svarbus techninių detalių ir požiūris, kad nebuvo padaryta kitaip!

</pabaigos>

Prenumeruoti savo dienoraštį.

Sekite mane Twitter ne http://www.twitter.com/pagalvin

Technorati Tags:

Užtikrinti SharePoint sąrašas/dokumentų bibliotekos rodinius, atrodo (tarsi) Įmanoma su jQuery

Tai kitą postą į mano vyksta serija kaip naudotis jQuery su SharePoint.
Jei norite sužinoti daugiau apie jQuery, Aš labai rekomenduoju: jQuery veiksmų Padengia Bibeault ir Yehuda Katz.

Vienas iš pirmųjų dalykų, aš maniau, kai aš pradėjau žaisti aplink su jQuery, buvo, ar mes galime jį naudoti užtikrinti SharePoint rodinį. Atsakymas yra "ne" (arba bent, Nesu teigiančių, galima). Tačiau, tai tikrai įmanoma, kad žmonės galėtų matyti ypač sunku.

Aš pradėjau su mano smėlio dėžės aplinką dirbant šiuo. Aš parašė apie tos aplinkos čia: Greitai ir lengvai: Sukurti savo jQuery Sandbox SharePoint.

"Užtikrinti" vaizdas, atlikite šiuos veiksmus:

  1. Kurti rodinį norite SA ugiai apriboti. Aš kad ir pavadino jį "Užtikrintos View".

    Tai, kas atrodo, kai jis yra ne "garantuojamas":

    image

  2. Pridėti turinio rengyklės žiniatinklio dalį prie rodinio puslapį naudojant smėlio dėžės straipsnyje paminėtus pavyko (ty. pridėti "puslapio = bendro naudojimo&ToolPaneView = 2 "į URL).
  3. Išsiaiškinti jūsų SharePoint _spUserId šių crazy veiksmus, tikėti ar ne:
    1. Prisijunkite prie jūsų SharePoint aplinka.
    2. Žiniatinklio naršyklės adreso lauke, tipo: "javascript:perspėjimas(_spUserId").
    3. Įrašo rezultatas (tai "13" mano atveju).

      image

  4. Pridėti šių javascript į savo CEWP kodas nuomone:

    <scenarijų tipo ="text/javascript"
        src =".. /.. /jQuery Library/jQuery-1.3.2.min.js">
    </scenarijų>
    
    <scenarijų tipo ="text/javascript">
      $(funkcija() {
    
        perspėjimas(_spUserId);
    
        var theSecuredView = $("iframe[FilterLink * = garantuotos % 20View]');
    
        Jei ((theSecuredView.length > 0) && (_spUserId == 13))
          $("iframe[FilterLink * = garantuotos % 20View]').tėvų().tėvų().tėvų().HTML("<TR bgcolor = red><TD>Peržiūrėti jums!</TD></TR>");
      });
    
    </scenarijų>
    

Mes įtraukėme perspėjimo(_spUserId) linija ten parodyti, kaip tai nėra tikrai yra "užtikrinti" vaizdas, bet tiesiog kad būtų sunkiau matyti. Daugiau apie tai vienu metu.

Iš esmės, jQuery ieško iFrame puslapio, kuris turi atributas, kuriame yra "Saugus % 20View" jo vertė. Kai jis nematys, Mes patikrinkite, jei Dabartinis vartotojas yra "13". Jei tai, mes vaikščioti į DOM yra <TR> žymė (kurį aš raštuotas, peržiūrėti šaltinį ir sekimo ji) ir tuomet pakeičia tą TR žymę su savo pranešimą. Aš tikrai nežinau, kaip patikimas tai (Aš labai įtartinas, tiesą sakant), bet jis dirbo mano Sandbox. Jei rasiu geriau, Aš dienoraštį apie tai. Taip yra todėl:

image

Aš spustelėkite mygtuką OK ir duomenys keičiami su didelis paryökintas Praneöimas norint sustiprinti:

image

Kaip galite pasakyti, tai, kaip aš įgyvendinti šį "saugumo" sprendimas būtų leisti žiniatinklio dalyje padaryti pats. Po to jis baigia, Aš perrašyti savo turinį neplanuodami savo"jums!"pranešimas.

Nepaisant to, kad tai nėra tikrai yra "Saugi" "Rodyti, tai gali būti naudinga ir tam tikrą protingas darbą, Galiausiai gali būti apsaugotam formalaus prasme. Esminis klausimas yra, kad klientas yra gauti visus duomenis ir tada, tik po to, kai ji gauna duomenys, jis servetėlės iš. Jei klientas yra gauti duomenis, protingas vartotojo gali neleisti jQuery paleisti visą ir pamatyti, ką jis/ji nori matyti.

Yra kitų trūkumų. Šis "saugumo" metodas yra pagrįstas ne per _spUserId. Mes, nori tikrai saugus, pagrįstą pilnas SharePoint saugumo modelio, ar bent iš vartotojo vardą. Tai tampa vis sunkiau, bet aš matau kai kurių neblogai parašyta šiuo klausimu, todėl aš tikiuosi, yra geras atsakymas į šią problemą.

Vaizdų, patys sąrašą, turėtų būti apipjaustyta, Jei įmanoma. Aš ne bandė tai išsiaiškinti. Manau, tai galima, bet tikrai nėra išspręsti pagrindinių saugumo problema, nes kas nors dar tik įvesti jie nori rodinio URL (jei jie žinojo, kad). Tačiau, Apipjaustymas turi prasmę. Tai yra funkcija, praktiškumo ir tai padeda Notrulināt dalykų. Jei galutinis vartotojas nežino, kad apie įvykį yra, jie tikriausiai nebus pasistengs jį išnaudoti. Kartais, tai pakankamai gera.

Su sėkmės, Aš turiu parašyti šia tema per tam tikrą laiką.

</pabaigos>

Prenumeruoti savo dienoraštį.

Sekite mane Twitter ne http://www.twitter.com/pagalvin

Greitai ir lengvai: Geriau kaip naudoti jQuery slėpti teksto lauką SharePoint formos

Tai kitą postą į mano vyksta serija kaip naudotis jQuery su SharePoint.
Jei norite sužinoti daugiau apie jQuery, Aš labai rekomenduoju: jQuery veiksmų Padengia Bibeault ir Yehuda Katz.

Anksčiau, Aš parašė apie tai, kaip naudoti jQuery ir pasirinkę slėpti teksto lauką formoje. I didn't priežiūros už specifinį požiūrį (Aš buvo susiejami tėvai – tai tiesiog nebus padaryta šių dienų, bent šeimose kokybės).

Kai aš pirmą kartą pradėjo galvoti apie tai, Aš žinojau, man reikia rasti, <TR> į kurį aš galėjo remtis kailį() metodas. Mano anksti pastangų rasti teisingą <TR> buvo kažkas panašaus:

$("tr:turi(įvedimo[pavadinimas = paslėpti!])');

Problema su tai, kad jis būtų rasti kiekvieną <TR> žyma, kad man tėvų santykiai paslėpti! lauko, net jei paslėpti! yra įdėta daug lygių giliai <TR>'s. Atrodo, kad mano smėlio formoje, Šis žodžių junginys randa 9 skirtingų TR, kurie turi slėpti man! kaip vaikas kažkur į jo DOM medis. Aš supratau, kad aš galėtų pėsčiomis atgal į viršų į medį iš įvesties lauko pati, Taigi, tai kaip aš baigėsi piktnaudžiauja tėvų, bet tai ne sėdėti gerai su manimi.

Aš davė šiek tiek pagalvoti tai ir vienas iš dalykų, aš perskaičiau pagaliau prasmės: Aš galėtų naudoti ne() metodas kirpti <TR>'s nenoriu, kad mano suvynioti rinkinys. Privertė mane į šį:

$("tr:turi(įvedimo[pavadinimas = paslėpti!])').ne("tr:turi(TR)').Slėpti();

Pirmasis tiek randa visus į <TR> žymes, kurias aš kailį! bet lauke savo hierarchija. Tada juosteles, bet <TR> kad taip pat turi vaikų <TR>. Tai palieka mus su vienu <TR> kad:

1) Neturi <TR> įrašus

2) Ar turi įvesties laukelį kaip vaikas.

Tada galite taikydami kailį() nustatyti metodą, dėl to ir mes.

Aš vis dar šiek tiek nervų apie tai, bet ne kaip nervų nes susiejami tėvai.

Aš nežinau, jei tai yra geriausia praktika arba ne. Gali būti labiau tinka identifikavimo būdą tik į <TR> kad mes rūpinamės SharePoint forma. Jei žinote, Prašome rašyti komentarą.

</pabaigos>

Prenumeruoti savo dienoraštį.

Sekite mane Twitter ne http://www.twitter.com/pagalvin

Greitai ir lengvai: Naudoti jQuery slėpti teksto lauką SharePoint formos

Tai kitą postą į mano vyksta serija kaip naudotis jQuery su SharePoint.
Jei norite sužinoti daugiau apie jQuery, Aš labai rekomenduoju: jQuery veiksmų Padengia Bibeault ir Yehuda Katz.

NAUJINIMAS (jau!): Aš manau, geriau rasti, <TR> Aš noriu paslėpti žymę ir parašė apie tai čia. Dar rasite šiame straipsnyje įdomus vistiek so I 'm leavnig jį.

Aš noriu paslėpti teksto lauką, "Slėpti man!"kaip parodyta:

image

Šių jQuery pavyko man:

<scenarijų tipo ="text/javascript">

  $(funkcija() {


    $("įvesties[pavadinimas = paslėpti!]').tėvų().tėvų().tėvų().Slėpti();

  });

</scenarijų>

Kodas sakė:, "rasti mane visi įvedimo laukai kurių pavadinimas = paslėpti!. Tada, gauti savo tėvų ir tada kitas iš tėvų ir * kitas * tėvų (Phew!) ir remtis kailį() metodas, kad dalykas, kokia ji būna, kad.

Aš raštuotas, kad pirminės sandaros peržiūrėti HTML formą, kurioje SharePoint sukurta kaip parodyta:

<TR>
    <TD nowrap= "true" valign= "į viršų" plotis= "190px" klasės= "ms-formlabel">
        <H3 klasės= "ms-standardheader">
            <NOBR>Paslėpti!</NOBR>
        </H3>
    </TD>

    <TD valign= "į viršų" klasės= "ms-formbody" plotis= "400px">
        <!-- Lauko pavadinimas = "paslėpti!"
                 FieldInternalName = "Hide_x0020_Me_x0021_"
                 Lauko tipas = "SPFieldText"
        -->
        <tarpą dir= "none">
            <įvedimo
                vardas, pavadinimas= "ctl00$ m$ g_bdb23c2c_fde7_495f_8676_69714a308d8e$ ctl00$ ctl04$ ctl02$ ctl00$ ctl00$ ctl04$ ctl00$ ctl00$ TextField"
                tipo= "tekstas"
                Maksimalus ilgis= "255"
                ID= "ctl00_m_g_bdb23c2c_fde7_495f_8676_69714a308d8e_ctl00_ctl04_ctl02_ctl00_ctl00_ctl04_ctl00_ctl00_TextField"
                antraštinė dalis= "Paslėpti!"
                klasės= "ms trukmės" />
                <br>
        </tarpą>


    </TD>
</TR>

Šis paveikslėlis rodo tą patį, bet žymėti naudojantis tėvų:

image

Pirmoji tėvų (1) yra span tag. Span's tėvų (2) yra TD žymę ir tada pagaliau mes į tikrąją tėvų noriu paslėpti (3) kuris yra TR žyma pati.

Tai yra labai baisi metodas, manau, nes ji yra labai priklausomas nuo labai specifinė struktūra ir šią formą. Kai SharePoint 2010 išeina, Šis visą struktūrą gali pakeisti ir nutraukti šį požiūrį. Ką aš tikrai noriu padaryti yra amatų jQuery selektorius, kuri yra išilgai linijos "mane surasti visus TR (ir tik TR Žymos) kad turėti kažkur jų antrinių elementų įvesties lauko kurio pavadinimas = paslėpti!”. Pradedant nuo apačios ir juda aukštyn. Darant prielaidą, kad aš tai suprasti, Aš po atnaujintą "greitai ir lengvai" po.

</pabaigos>

Prenumeruoti savo dienoraštį.

Sekite mane Twitter ne http://www.twitter.com/pagalvin

del.icio.us Žymos: ,

Greitai ir lengvai: Sukurti savo jQuery Sandbox SharePoint

Tai kitą postą į mano vyksta serija kaip naudotis jQuery su SharePoint.
Jei norite sužinoti daugiau apie jQuery, Aš labai rekomenduoju: jQuery veiksmų Padengia Bibeault ir Yehuda Katz.

Darbo pradžia su jQuery SharePoint yra stebėtinai lengva (man). (Aš turiu rimtų klausimų apie "geriausia patirtimi" požiūris į visuotinį šių dalykų gamybos, bet tai kitą dieną). Aš ką tik pradėjo žaisti su šia technologija ir tuo tikslu, Aš sukūriau smėlio dėžės aplinką naudoti. Jei norite pradėti dirbti su jQuery, jums gali praversti šis metodas.

1. Sukurti tuščią puslapį

Sukurti tuščią puslapį kažkur į jūsų svetainę ir vadina jį kažkas protingas kaip "jQuery Sandbox".

2. Parsisiųsti jQuery

Pagal jQuery javascript biblioteka galite atsisiųsti iš čia: http://docs.jquery.com/Downloading_jQuery

Kad įrašyti darbalaukyje.

Aš naudoju "minified" versija.

3. Sukurti SharePoint dokumentų bibliotekoje

Svetainės smėlio dėžės, sukurti dokumentų biblioteką.

4. Įkelti jQuery biblioteka SharePoint

Prieiti prie ką tik sukurtas dok bibliotekos ir įkelti jQuery biblioteka.

5. Sukurti pasirinktines SharePoint sąrašą

Aš pradėjau nuo pasirinktinio sąrašo nes noriu su SharePoint formos slampinėti. Galite sukurti puslapio puslapių bibliotekoje arba žiniatinklio dalies puslapių ir turbūt daug kitų vietų.

Pridėti kai kurie stulpeliai pasirinktinį sąrašą, kad jūs turite kažkas paleisti jQuery prieš. Mano pradinis tikslai buvo:

  1. Slėpti lauką.
  2. Priskirti vertę į lauką.

Šį tikslą omenyje, Aš pridėjo du teksto laukus. Laikui bėgant, Aš žaisti su nuorodos, vaizdai, paieška, ir tt.

6. Keisti NewForm.aspx žiniatinklio dalies puslapyje ir pridėti turinio rengyklės žiniatinklio dalį

Tai yra mažai juoda magic-ish , jos būtų naują koncepciją mane. Aš pirmą kartą sužinojo apie tai iš Paul Grenier, SharePoint jQuery Superstar, jo CodePlex projekto svetainėje: http://spff.codeplex.com/.

Atlikite šiuos veiksmus ir pridėkite yra CEWP į tą patį puslapį, kuris rodo NewForm.aspx, bet pasirinktinį sąrašą:

  1. Pasirinktinį sąrašą ir spustelėkite Naujas.
  2. Papildyti tokia eilute URL: Puslapio = bendras&ToolPaneView = 2

Kad bus paversti savo nuobodu vanilės duomenų įrašų formą iš kažką panašaus į tai:

image

Į šį:

image

Pridėti turinio rengyklės žiniatinklio dalį į puslapį.

7. Rašyti pirmasis jQuery kodas

Atverti kad CEWP rodinyje kodą ir pridėti po:

image

Čia yra tikrasis kodas, jei norite kopijuoti ir įklijuoti:

<scenarijų tipo ="text/javascript"
    src =".. /.. /jQuery Library/jQuery-1.3.2.min.js">
</scenarijų>

<scenarijų tipo ="text/javascript">
  $(funkcija() {

    $("#resultsID").HTML("Yra" + $("a").dydis() + "žymes žymės šiame puslapyje.");

  });
</scenarijų>

Rezultatas:
<div id ="resultsID"></DIV>
/rezultatas

Atkreipkite dėmesį, kad pirmasis <scenarijų> žymė nurodo faktines jQuery biblioteka. Matyt, tai pakeisti per tam tikrą laiką, Taigi jūs norite įsitikinkite, kad jums yra) Naudokite tinkamą pavadinimą ir b) nukreipti jį į teisingą SharePoint dokumentų bibliotekos.

Greta Ačiū

Jei tu ji teisingai, Jūs pamatysite rezultatas yra pana i į:

image

Baigdamas

Tai ne vienintelis būdas pradėti, bet tai greitai, lengva ir izoliuotas nuo jūsų esamų SharePoint aplinka.

</pabaigos>

Prenumeruoti savo dienoraštį.

Sekite mane Twitter ne http://www.twitter.com/pagalvin

del.icio.us Žymos: ,

Greitai ir lengvai: Naudokite nustatyti A teksto lauko reikšmę jQuery SharePoint formos

Aš pradėjau žaisti aplink su jQuery vakar. I been norintiems tai padaryti ilgą laiką, nuo tada, kai Paul Grenier pradėjau rašyti jo serija apie jQuery galutiniams vartotojams ne Palaimintojo www.endusersharepoint.com interneto svetainėje. Kaip ja naudotis, Tikiuosi, kad pridėti "Greitai ir lengvai" seriją pranešimų, kaip tai vienas. Šis pranešimas aprašoma, kaip nustatyti žinomų teksto lauko reikšmę į ką tik nori.

Pagal šį scenarijų, Aš sukūriau pasirinktinį sąrašą, kurių "nauja" forma atrodo kaip parodyta:

image

Tai naujos formos pasirinktiniam sąrašui su numatytasis pavadinimas stulpelio ir dviejose sąrašo skiltyse (ne svetainės stulpeliai; Nemanau, kad jis neturėtų jokio skirtumo).

Tikslas yra nustatyti savavališkai vertė į lauką, "DefaultMeFieldNoSpaces" (galite pasakyti, esu šiek tiek bailys su "tarpų" dalykas vyksta, bet aš jį paįvairinti šio straipsnio pabaigoje).

Tai πiek tiek jQuery dirbo už mane:

<scenarijų tipo ="text/javascript">

  $(funkcija() {

    $("įvesties[pavadinimas = DefaultMeFieldNoSpaces]').Attr(
        {vertė: "Jūs esate twisty labirintas ištraukos, visiškai panašūs. "});

  });

</scenarijų>

Kaip suprantu tai πiek tiek jQuery sako, "mane surasti bet įvesties žymelę kurio pavadinimas = DefaultMeFieldNoSpaces. Tada, nustatyti visų jų reikšmių garsiąją frazę iš senojo kompiuterio žaidimas."

Nes ten tik apskaičiuojamas vieną lauką formos su pavadinimu "DefaultMeFieldNoSpaces" mes patikino priskyrimo reikšmę su tuo lauku ir jokios kitos.

Ką apie lauką, kurio pavadinimas yra tarpų? Tai beveik tas pats:

<scenarijų tipo ="text/javascript">

  $(funkcija() {
     $("įvesties[pavadinimas = priskirti lauką su vietos]').Attr(
        {vertė: "Jūs esate twisty labirintas ištraukos, visiškai panašūs. "});

  });

</scenarijų>

Manau, kad tai gana saugus metodas, tai reiškia, kad galėsime rasti lauką, mes norime, kad ir tik srityje mes norime. Jei pažvelgti į HTML SharePoint mums suteikia, Tai rūšies nepatogus:

<įvedimo
vardas, pavadinimas= "ctl00$ m$ g_bdb23c2c_fde7_495f_8676_69714a308d8e$ ctl00$ ctl04$ ctl02$ ctl00$ ctl00$ ctl04$ ctl00$ ctl00$ TextField"
tipo= "tekstas"
Maksimalus ilgis= "255"
ID= "ctl00_m_g_bdb23c2c_fde7_495f_8676_69714a308d8e_ctl00_ctl04_ctl02_ctl00_ctl00_ctl04_ctl00_ctl00_TextField"
antraštinė dalis= "DefaultMeFieldNoSpaces"
klasės= "ms trukmės"
/>

"pavadinimas" išsiskiria kaip atpažįstami ir tikimės, kad unikalus priskirti padėti mums nustatyti konkretų stulpelį kuriam norime priskirti mūsų savavališkai vertė.

Tai pamatus sąvoka. Nustatyti lauko savavališkai būdu kaip tai nesiruošia laimėti apdovanojimus. Tačiau, Jei mes norime padaryti daugiau įdomių formos lygio dalykų (o visą mums visada nori daryti, žinoma, iškart po baigsime Skalbimo patiekalai), kaip pakeisti "lauko b" automatiškai pagal vertę vertės "laukas", Mes (AŠ) reikia išmokti šių dalykų.

Manau, mūsų geriausią galimybę gauti naudingos reikšmė čia yra per pavadinimas, ne mažiau kaip už teksto laukai. Gali būti geriau, patikimesnis požiūris. Jei man atrodo, I atnaujinti šį pranešimą. Jei žinote geriau, Prašome palikti komentarą.</pabaigos>

</pabaigos>

Prenumeruoti savo dienoraštį.

Sekite mane Twitter ne http://www.twitter.com/pagalvin