Crearea unui nou tip de sondaj în Microsoft SharePoint Services 2

intrare

A fost nevoie ca sondajele WSS să utilizeze nu numai text, ci și imagini. Utilizatorii ar putea să-și exprime opinia, nu doar citind textul, ci și văzând subiectul (subiectele) discuției.







În materialele tipărite pe WSS, există articole despre cum să adăugați câmpuri noi în șabloanele de listă. Acest material este foarte util când trebuie să creați liste cu un set predefinit de câmpuri. Toate acestea sunt bune, dar nu trebuie să schimbăm un set de câmpuri prestabilite, ci să schimbăm câmpul "funcțional". Faceți câmpul capabil să afișeze imaginea. Nu am găsit instrumente standard SharePoint, trebuia să dau seama cum să implementez această nevoie într-un mod diferit.

În acest articol voi descrie decizia mea.

La serviciu folosesc Microsoft Windows SharePoint Services 2.0 ediție rusă. Versiunea 6.0.2.5530. Pentru utilizatorii care au alte localizări WSS în următoarele căi, trebuie să înlocuiți 1049 cu codul dvs. lcid. Pentru versiunea în limba engleză a WSS, aceasta este 1033.

Înainte de elaborarea acestui subiect voi descrie cum sunt organizate listele în AAC.

Listează dispozitivul

Multe din lucrurile descrise mai jos se aplică numai unui tip separat de liste - Sondaje.

Listele există în două state: sub formă de șabloane și sub formă de liste reale. Informațiile sunt introduse în liste reale. La crearea listei, selectăm un șablon, specificăm numele unei liste reale viitoare, setăm alte caracteristici și dăm click pe creați. În acest moment, WSS: adaugă un element în colecția SPListCollection, creează un director virtual și creează fișiere aspx în el pentru a lucra cu lista. Apoi, în cazul sondajului, sistemul ne redirecționează către pagina pentru crearea primei întrebări. După ce am creat prima întrebare, vom continua să creăm următorul și așa mai departe. Două pagini aspx sunt responsabile pentru crearea și editarea întrebărilor anchetei: qstnew.aspx și qstedit.aspx. În aceste pagini se formează "umplerea" întrebării. Citiți mai jos despre aceasta.

Toate listele din WSS sunt reprezentate de clasa SPList. Această clasă are o proprietate Fields, prin care puteți accesa colecția câmpurilor din listă. Câmpul de listă este reprezentat de clasa SPField. Rezultă că coloanele listă normală și întrebările de interogare sunt reprezentate intern de un obiect din aceeași clasă SPField.

În clasa SPField, există o proprietate SchemaXml, valoarea căreia este descrierea xml a câmpului dat de aproximativ acest conținut:

De mai sus, putem face următoarea concluzie: Pentru a supraveghea a fost posibil să se folosească imaginile de care aveți nevoie pentru a extinde descrierea XML a câmpului prin adăugarea unui atribut care stochează un link la o imagine și adăugați toate prelucrarea necesară a acestui atribut. De exemplu, acesta este cazul:

Modificările afectează paginile care vă ajută să creați, să editați și să afișați întrebări. Pagina pentru qstnew.aspx este responsabilă pentru crearea întrebării. pentru editare qstedit.aspx. iar responsabilitatea este șablonul de interogare stocat în fișierul Schema.xml.

Să începem să efectuăm modificări în următoarea ordine:

  1. Creați un nou șablon de anchetă. Acest lucru ne va permite să facem referire la un nou tip de anchetă în etapa următoare.
  2. Să schimbăm fișierele pentru crearea și editarea întrebărilor. Aceasta va extinde descrierea XML a câmpului
  3. Vom face modificări fișierului de definiție Schema.xml. Acest lucru vă va permite să vedeți acțiunea noului sondaj în acțiune.

Creați un nou șablon

Sondajul nostru grafic - va fi foarte similar cu ancheta standard disponibilă în sistem. Prin urmare, vom crea un nou șablon bazat pe șablonul "votare" existent.

  1. Local_Drive deschide fișierul: \ Program Files \ Common Files \ Microsoft Shared \ Extensii Web Server \ 60 \ TEMPLATE \ 1049 \ Site_Template_Name \ XML \ ONET.xml.
  2. Să găsim elementul ListTemplates
  3. În interiorul elementului ListTemplates, copiați elementul copil și apoi creați o copie în același element ListTemplates.
  4. În copie, modificați valorile atributelor:
    • Numele de la "votare" la "graficare" (citiți nota de mai jos)
    • DisplayName din "Sondaj" la "Sondaj grafic"
    • Tastați de la "102" la "777". (Citiți nota de mai jos)
    • Modificați valoarea atributului Descriere la discreția dvs.

Creați un dosar cu fișiere șablon

Fișierele de șabloane sunt situate într-un director separat. Numele dosarului trebuie să se potrivească cu valoarea atributului Name al elementului ListTemplate. În cazul nostru, acesta este un grafic. Creați un dosar cu fișierele șablon. Pentru a face acest lucru:







  1. Deschideți directorul Local_Drive: \ Program Files \ Fișiere comune \ Microsoft Shared \ extensii server web \ 60 \ TEMPLATE \ 1049 \ Site_Template_Name \ LISTS
  2. În acesta, faceți o copie a dosarului Votare. Copiile vor da un nume care se potrivește cu valoarea atributului Name în noul element ListTemplate. În cazul nostru, acest nume va fi grafotat. Am asa: Local_Drive: \ Program Files \ Common Files \ Microsoft Shared \ extensii de server web \ 60 \ TEMPLATE \ 1049 \ Site_Template_Name \ LISTE \ GRAPHVOTING)
  3. În folderul nou, deschideți fișierul SCHEMA.xml
  4. Să modificăm valorile atributelor elementului List astfel încât acestea să se potrivească cu șablonul nostru.
  5. Să verificăm corectitudinea modificărilor. Pentru a face acest lucru:
    1. salvați toate fișierele deschise
    2. reporniți WSS
    3. în browserul web deschideți pagina SharePoint
    4. du-te la "Creați"

Secțiunea "Sondaje" ar trebui să conțină două elemente: Sondaj sondaj și sondaj grafic. Dacă este așa, atunci totul se face corect.

Când încercați să creați un „sondaj grafic“ poll normală va fi creat, cu singura diferență că noua listă de numărul de bază (șablon de bază - BaseTemplate) nu este 102 și 777.

Notă. De ce am setat valoarea atributului Type la 777. În articolul de mai sus, există următoarele rânduri:

"Important Atributul Name" trebuie să fie setat la numele exact al directorului listei noi. "Pentru a identifica lista, atribuiți un ID numeric care nu este utilizat în altă parte și care este mai mic de 1000 la atributul Type."

Pe baza căruia - valoarea atributului Type trebuie să fie unică și mai mică de 1000. De ce este 777? Doar am vrut așa J. La începutul cercetării mele, în loc de 777, am folosit 1020. În acest caz a funcționat prea mult, dar dacă i sa cerut, să fie mai mică de 1000.

Editați crearea și editarea sondajului

La începutul secțiunii, rețin încă o dată că prelucrarea sondajului este diferită de procesarea listelor normale, iar codul responsabil pentru aceasta este localizat în alte fișiere. Fișierul qstnew.aspx este responsabil pentru crearea de întrebări de anchetă. pentru editare - qstedit.aspx. Aceste fișiere sunt localizate în folderul Local_Drive: \ Program Files \ Common Files \ Microsoft Shared \ Extensii server web \ 60 \ TEMPLATE \ LAYOUTS \ 1049 \

Deoarece versiunile WSS nu pot coincide și, prin urmare, codul programului nu coincide, înainte de o descriere detaliată, voi da o descriere verbală generală a modificărilor viitoare.

Sarcina noastră - în cazul utilizării unui sondaj grafic:

  1. extindeți formularul HTML al setării întrebării prin adăugarea unui câmp pentru introducerea adresei URL a imaginii
  2. modificați procedura de pregătire a schemei XML înainte de a o trimite la serviciul WSS.

Deoarece logica de lucru în ambele fișiere este aproape aceeași, vom începe să facem imediat schimbări la ambele fișiere.

Acum, când folosiți interogarea grafică, va fi afișat un câmp suplimentar pentru introducerea (editarea) adresei URL a imaginii.
  • Ultima modificare se aplică numai fișierului de editare qstedit.aspx. Acesta este asociat cu obținerea valorii adresei URL a imaginii din schema întrebării editate. În text găsim următoarele rânduri:

    Mai jos adăugăm codul pentru extragerea adresei URL din schema XML:

    Testați programele noastre de completare. Pentru a face acest lucru:

    Am ajuns la faptul că avem un tip nou de sondaj, putem seta și edita valoarea câmpului suplimentar PictureURL, dar nu vedem nicio imagine în procesul de răspuns la sondaj. De ce este așa?

    Chestia este că formularul afișat în etapa de răspuns nu afișează imaginea. Pentru a remedia această situație, trebuie să faceți modificări în fișierul Schema.xml, care definește toate formele de sondaje grafice viitoare. Cum se face acest lucru este descris mai jos.

    Notă. probabil înainte de a executa testul de mai sus, va trebui să reporniți serviciile WSS. După test, puteți șterge sondajul creat. În etapa următoare vom crea noi sondaje.

    Schimbați fișierul de definiție Shema.xml

    Continuați să schimbați fișierul Local_Drive: \ Program Files \ Common Files \ Microsoft Shared \ extensii de server web \ 60 \ TEMPLATE \ 1049 \ Site_Template_Name \ LISTE \ GRAPHVOTING \ SCHEMA.xml.

    Înainte de editare, vreau să specific un obiectiv. Scopul editării este unul: să vă asigurați că utilizatorii care răspund la sondaj pot vedea imaginea.

    Fișierul Schema.xml este destul de mare și pentru a facilita găsirea locului pentru editare folosim o tehnică simplă:

    1. Deschideți fișierul Schema.xml
    2. Să găsim toate aparițiile liniei "Înapoi la sondaj". În acest caz, vom adăuga numere care nu se repetă pe fiecare linie găsită. La primul rând găsit, adăugați 1, la al doilea 2 și așa mai departe. Am șase intrări.
    3. Salvăm schema
    4. Reporniți serviciul SharePoint.
    5. Actualizați pagina anchetei (Ctrl + F5)
    6. Pe pagina actualizată apare inscripția "Înapoi la sondaj" și un număr. Am numărul 6. De aceea, trebuie să facem schimbări în zona acestui "șase".
    7. Să începem editarea fișierului de schemă
    8. Să găsim "Înapoi la Poll6".
    9. Mai jos găsim eticheta . În interiorul elementului ListFormBody, se află corpul șablonului "Răspunde la acest sondaj".
    10. Apoi, înlocuiți textul dintre etichete și . pe un astfel de conținut:

    În acest fragment am schimbat ușor masa, cu ajutorul căruia se formează aspectul întrebării. La masă am adăugat o nouă celulă, la care vom scoate imaginea. Obținem adresa URL a imaginii din atributul PictureURL utilizând elementul Proprietăți:

    Procedând astfel, vom determina dacă imaginea ar trebui inserată deloc. Dacă valoarea atributului PicrtureURL este goală, nu vom ieși. Verificarea poate fi efectuată utilizând structura:

  • Acum salvați fișierul Schema.xml, reporniți serviciul SharePoint și actualizați pagina de sondare.
  • Dacă sub textul întrebării ați văzut imaginea necesară (vedeți începutul articolului), atunci vă puteți felicita, ați făcut totul bine.
  • Ultimul lucru pe care trebuie să-l faceți este să editați fișierul Schema.xml din nou. Aproape de linia "Înapoi la sondaje", ștergem numerele de referință adăugate anterior, reporniți din nou serviciul Windows SharePoint Services și puteți utiliza o nouă extragere a ochilor.
  • concluzie

    Acest articol este un exemplu de extindere a funcționalității serviciului Windows SharePoint Services 2.0, care arată deschiderea și extensibilitatea acestui instrument.

    Cu sinceritate, Udalov Maxim







    Articole similare

    Trimiteți-le prietenilor: