- postat pe
- De
În .NET, a masterpage
este un șablon pentru paginile de conținut, unde o serie de pagini ASPX care utilizează toate aceleași masterpage
toate pot partaja același cod de bază.
A masterpage
poate avea unul sau mai multe contentPlaceHolders
definite și fiecare pagină ASPX care utilizează acel masterpage
trebuie doar să definiți codul care se află în contentPlaceHolder
. Masterpages
pot fi, de asemenea, imbricate, care este modul în care acestea vor fi structurate în site-ul nostru exemplu.
Pagina de bază
, amintiți-vă acest lucru este Format
și Tipul documentului
că toate paginile ulterioare vor moșteni de la, ar trebui să conțină doar acele elemente comune tuturor paginilor site-ului. Deschideți BasePage.master
fișier în Visual Web Developer Express (VWD). Acesta va avea deja un mic cod ASPX în fișier, inclusiv un
element. Acest element indică un
element într-unul din Umbraco masterpages
.
Este posibil să adăugați codul la masterpages
în întregime prin back-end-ul Umbraco; atunci când selectați una dintre ele Template-uri
în Setări
zona, se încarcă o copie a fișierului în panoul din partea dreaptă a back-end-ului pentru editare, această caracteristică este mai utilă pentru efectuarea de mici modificări și actualizări la masterpages
, și pentru introducerea de macrocomenzi sau elemente. Atunci când folosim IDE complet .Net avem intellisense și o serie de alte caracteristici care nu sunt prezente în Umbraco, creând astfel masterpages
va necesita de obicei editarea în ambele domenii.
Adăugați următorul cod în
element:
Salvați fișierul. Să aruncăm o privire la ceea ce avem. Este în format HTML5, așa cum putem spune direct de la minimal DOCTYPE
și meta charset
element. Nu este esențial să folosiți HTML5, dar putem și noi bine? În a paginii pe care am legat-o cu o foaie de stil (pe care nu am creat-o încă, dar va fi la un moment dat mai târziu) și a
element.
conține prima noastră etichetă Umbraco și indică o macrocomandă. Nu vă faceți griji prea mult despre acest lucru pentru moment, nu am discutat încă macro-uri și acestea vor fi acoperite cu mult mai multe detalii într-o parte ulterioară a seriei. Conținutul paginii este înfășurat într-un element cu
fugi la
atributul setat la Server
, care este o practică standard pentru site-urile .Net. De asemenea, includem o legătură cu HTML5shiv
fișier pe codul Google, astfel încât IE8 sau mai jos să poată afișa corect elementele HTML5.
Apoi avem un a element care conține a
element pentru linia principală a site - ului și tag - ul (compus din
și
etichete) și a
element care conține navigația principală pentru site, care va fi construită dintr-o listă standard neordonată. HTML-ul afișat pentru navigarea principală nu va fi folosit de fapt în forma finală a site-ului, este prezentat aici ca un ghid pentru modul în care HTML ar trebui să fie atunci când este construit automat folosind o altă macrocomandă. Este util să adăugăm structura de bază pentru elementele construite dinamic, în cazul în care acestea trebuie să fie desenate înainte de adăugarea biților dinamici. Acest lucru este important mai ales dacă lucrați ca parte a unei echipe și altcineva va ocupa toate lucrurile (distracție) din back-end.
Apoi avem a Avem, de asemenea, a Apoi putem adăuga codul care va alcătui pagina de pornire. Dacă deschidem Acum adăugați următorul cod la Această pagină principală conține un alt tip de element Umbraco - Ar trebui să fie puțin mai clar acum modul în care proprietățile din tipurile de documente se referă la elementele care se termină pe paginile noastre, dar nu vă faceți griji dacă în acest moment nu este clar 100% cristal - nu am creat încă pagini reale încă, dar când facem partea finală a puzzle-ului, trebuie să faceți clic pe loc. Apoi avem un element imagine; pentru că folosim un picker pentru mass-media (o să explic exact ce este un selector de media când creăm pagina) codul pentru acest lucru este mult mai complex decât ceea ce am văzut până acum. Una dintre secțiunile din back-end-ul Umbraco este Când adăugăm În cele din urmă, adăugăm o marjă de bază pentru panoul eroului, inclusiv un container exterior ( Paginile noastre de conținut sunt relativ simple și sunt construite folosind o singură proprietate din Apoi adăugați următorul cod la Asta este tot ce vom folosi în șablonul de pagină de conținut. În realitate, o pagină de conținut ar fi probabil mult mai complexă, dar pentru exemplul nostru simplu ar trebui să fie suficientă. Am folosit un exterior care conține Șablonul NewsList va fi aproape la fel de fundamental ca și al nostru Pe această pagină avem un Al nostru Corpul articolului este un container exterior Așadar, am petrecut câteva ore bune, cel puțin până acum, pentru a stabili lucrurile (mai mult dacă ar fi trebuit să instalați VWD + SQL Server), deci să adăugăm câteva pagini deja! Într-un site Umbraco, nu există, în realitate, "pagini individuale" ca atare. Nu gândiți la dvs. - "Am nevoie de această pagină pentru a face ceva unic, așa că pot adăuga acest lucru sau acea pagină la care se află" - nu funcționează așa, nu există pagini de bază. În loc de pagini, avem noduri de conținut în arborele nodului (în special, nodurile din Deci, pentru a crea pagina de pornire a site-ului, mergeți la secțiunea Content din CMS, faceți clic dreapta pe folderul Content din panoul din stânga sus și alegeți Creare. În dialogul care apare, introduceți Acasă ca Nume și alegeți Pagina de pornire ca tip de document: Odată ce am lovit Nodul pentru conținutul paginii de pornire va moșteni, de asemenea, o proprietate din Amandoua Biblioteca Media este un depozit pentru toate resursele media, cum ar fi imagini, videoclipuri, fișiere audio sau alte fișiere sau documente încorporate. Al nostru Pentru a adăuga un element la biblioteca media, alegem doar Odata ce Acum, imaginea este pregătită pentru a fi selectată, deci reveniți la Asta e; ai facut prima ta pagina Umbraco! Puteți să vizualizați noua pagină făcând clic pe pictograma Previzualizare (pagina cu lupa de pe ea) pentru ao vedea în modul de previzualizare sau puteți deschide o nouă filă în browserul dvs., copiați adresa URL a back-end-ului, lipiți-o în noua filă și bateți totul după numărul portului. Pagina este total dezbrăcată în acest moment, dar ar trebui să găsiți că textul și imaginea introductivă pe care le-am setat în back-end sunt afișate pe pagină, împreună cu marcajul de sus În această parte a tutorialului, am analizat modul în care funcționează șabloanele Umbraco (acestea reprezintă pagini de master .Net) și modul în care sunt imbricate pentru reutilizarea codului maxim. Acum, când am creat o pagină, am văzut cum funcționează tipurile de documente, șabloanele și nodurile împreună pentru a crea proprietățile pe care le putem edita în back-end și paginile pe care vizitatorii noștri le vor vedea. În următoarea parte a acestei serii vom crea restul paginilor pentru site și apoi vom începe să scriem XSLT-ul care va construi navigația de sus și de jos și panoul eroului, printre altele.
. id
pentru scopuri de styling, și
are un id
atributul astfel încât să poată fi populat cu alte pagini (sau masterpages
). De asemenea, are și Runat = "server"
deoarece este un element ASPX manipulat de server. Observați că unele dintre elementele noastre primesc nume de clasă atunci când venim să stilizăm site-ul de lângă sfârșitul seriei. element care conține o altă copie a navigației (din nou HTML este furnizat în acest stadiu, în principal pentru scopuri de styling și ca un exemplu de cum va apărea în cele din urmă în browser atunci când sunt difuzate paginile) și o declarație privind drepturile de autor. Declarația privind drepturile de autor conține un fragment mic
C #
; toate acestea nu sunt de ieșire anul curent în format standard de 4 cifre, astfel încât să reflecte întotdeauna anul în care pagina este vizualizată. În cele din urmă, ne vom conecta la versiunea găzduită de Google-CDN a jQuery, deoarece vom avea nevoie de aceasta pentru a adăuga un comportament site-ului nostru în ultima parte a seriei.
Codarea paginii principale
HomePage.master
fișier în VWD putem vedea că a fost deja imbrăcat sub BasePage.master
(The BasePage.master
fișierul este setat ca MasterPageFile
în Maestru
declarație în partea de sus a dosarului), trebuie doar să schimbăm ContentPlaceHolderID
din
astfel încât să indice
elementul pe care l-am adăugat la BasePage.master
:
elementul prezentat mai sus:
Articol
. Primul element pe care îl folosim stabilește textul introductiv din pagină. Amintiți-vă, am definit acest lucru ca o proprietate a Pagina principala
Documentați tipul în prima parte a acestei serii și setați-l la un tip de date de Editorul Richtext
.
elementul din șablon va afișa conținutul a ceea ce este introdus în editorul de text îmbogățit când vom crea un nod de conținut pentru pagina de pornire din back-end.Mass-media
secțiune unde tot conținutul media pentru un site poate fi încărcat și stocat. Ca și alte resurse pentru site, fiecare element media este un nod din copacul nodului și i se dă un nume atunci când elementul media este adăugat la CMS.element, folosim un
similar cu introText
, dar trebuie să folosim un fragment de cod XSLT inline și câteva fragmente de cod HTML pentru a obține calea imaginii stocate în biblioteca media. Fragmentul XSLT folosește funcția concat ()
, care acceptă o serie de șiruri de linii delimitate de virgulă pentru a concatena, a construi element. În cadrul acestei matrice folosim entitățile HTML și marcați în sus pentru a construi elementul manual și, de asemenea, utilizați o funcție din
umbraco.library
clasă. Funcția este GetMedia
și ne permite să obținem calea către mage în biblioteca Media (există un dosar de potrivire în sistemul de fișiere Umbraco la care sunt stocate toate articolele media) utilizând umbracoFile
proprietatea și numele nodului folosind @nodeName
. Rețineți că pentru a obține codul de mai sus pentru a afișa corect am fost nevoit să introduc \ caractere în entitățile HTML. Îndepărtați-le dacă copiați și lipiți în propriile fișiere.id
de erou
), A #viewer
și #slider
elemente și un UI simplu care va permite navigarea diferitelor panouri de conținut. #slider
element conține, de asemenea, un
element, astfel încât vom construi această parte a panoului erou folosind o macro XSLT pe care o vom crea într-o parte ulterioară a seriei. Panoul erou va fi inițial construit din XSLT și marcajul prezentat aici și va fi apoi făcut pentru a lucra cu scriptul.
Crearea șablonului de conținut
Conţinut
Tipul documentului. În fișierul masterpage schimbați ContentPlaceHolderID
din
element la BaseContent
exact cum am făcut pentru pagina de pornire:
element:
deoarece elementul este legat de a Editorul Richtext
și astfel ar putea conține mai multe tipuri diferite de conținut.
Șabloane de știri
Conţinut
șablon deoarece pagina va fi în mare parte construită dinamic utilizând o macro XSLT. Nu uitați să actualizați ContenPlaceHolderID
la BaseContent
așa cum avem în celelalte șabloane ale noastre și apoi adăugăm la substituent următoarele elemente:Știri recente de la Companie
element, care găzduiește titlul paginii principale și macro-ul care construiește lista de știri. Acesta este tot ceea ce avem nevoie în acest șablon, așa că trecem la următorul și ultimul;
NewsItem
. Din nou, schimbați ContentPlaceHolderID
la BaseContent
apoi adăugați următorul cod la substituent:
NewsItem
șablon este un pic mai complex decât majoritatea celorlalte. Principalul container pentru știri este unul , care conține a
pentru titlul și câteva informații despre povestea de știri, cum ar fi cea a lui
Data
și autor
. Data, care este afișată în prima , este legată de
DatePicker
câmpul pe care l-am adăugat la tipul de document corespunzător pentru acest tip de pagină. Am setat formatAsDate
atributul la adevărat care formatează data frumos în loc fără un șir de timp adăugat la sfârșitul. autor
se obține utilizând creatorName
proprietate care este adăugată automat la noduri (pagini) atunci când acestea sunt create în back-end.newsImage
câmp (aceasta este în esență aceeași cu cea a banner-ului de pe pagina de pornire care utilizează de asemenea un selector Media. Din nou, entitățile HTML au backslash-uri în ele astfel încât acestea să fie afișate corect aici) și un
legate de newsText
camp. De asemenea, creăm o secundară element care va permite vizitatorului să navigheze direct de pe pagina de știri curentă către alte pagini de știri fără a fi nevoie să se întoarcă la lista de știri. Aceasta va fi construită dintr-o macro, pe care o vom analiza în următoarea parte a acestei serii.
Adăugarea de pagini
Conţinut
secțiunea din backend-ul CMS) și datele din baza de date. Există adrese URL individuale stocate în baza de date și fiecare nod este mapat la o adresă URL, astfel încât atunci când un vizitator tipărește adresa unei pagini sau navighează în jurul site-ului, CMS va verifica adresa URL solicitată și va construi pagina în zbor , utilizând tipul de document și șablonul.
Crea
în dialog, noul nod va fi creat și afișat în panoul din stânga sus al CMS și va avea o mică stea portocalie în partea dreaptă a acestuia. Aceasta indică faptul că nodul a fost salvat, dar nu a fost publicat. În panoul din dreapta al CMS vedem filele și câmpurile pe care le-am definit în Document Type în partea 1. The Conţinut
fila este afișată în mod prestabilit, deoarece este prima filă, prima proprietate pe care am definit-o a fost Intro Text
proprietate, care hartă direct la textarea din partea de sus a Conţinut
tab. De asemenea, am definit Banner Image
proprietate, care hărți direct la controlul de selectare a materialelor media afișat sub textarea.Pagina de bază
tipul de document - Numele domeniului
- care poate fi văzut pe Proprietăți
tab. Mergeți la Proprietăți
fila acum. Există câteva proprietăți importante care sunt create automat de Umbraco, inclusiv numele nodului, care este un câmp editabil, astfel încât să putem schimba ușor numele nodului în orice moment și Tipul documentului
și Format
in folosinta. Există și alte proprietăți utile, cum ar fi creatorul nodului și data publicării. introduce Compania
în Numele domeniului
câmp (aceasta ar putea lua forma Compania
, sau o adresă URL reală, cum ar fi www.thecompany.com, nu are nicio diferență, deoarece va fi pur și simplu utilizată pentru titlul paginii).Intro Text
si Banner Image
sunt proprietăți obligatorii, deci ambele trebuie să fie populate înainte de a putea publica pagina. Intro Text
este usor; abia începem să tipăm în textarea. Putem face unele formatări de bază folosind Editorul Richtext
butoanele din partea de sus a filei, dar în esență tocmai am completat această proprietate sau câmp, tastând. Banner Image
este ușor (dar nu mult mai mult) complexă și pentru ao completa, va trebui să lucrăm pe scurt cu o altă secțiune a CMS - biblioteca Media.
Biblioteca Media
Banner Image
câmp pentru Pagina principala
utilizează a Selectorul de materiale
, care deschide un dialog care să prezinte biblioteca media și permite administratorului final al site-ului să aleagă vizual imaginea pe care doresc să o utilizeze. Înainte de aceasta se poate întâmpla totuși, trebuie să existe elemente în biblioteca media care pot fi selectate.Mass-media
făcând clic pe pictograma din panoul din stânga jos din spate și după ce nodul secțiunii media a fost încărcat în partea din stânga sus, faceți clic dreapta pe dosarul Media și alegeți Crea
din meniu. În dialogul care apare, putem seta un nume pentru imagine (rețineți că numele pe care îl dăm nodului este folosit în Alt
atributul imaginii când este afișat pe pagina de pornire) și alegeți Tip media
. Există trei tipuri predefinite de care putem alege; un dosar care poate fi util atunci când avem multe elemente media pe care dorim să le clasificăm și să le stocăm într-un mod ordonat, un general Fişier
tip, sau Imagine
, pe care o vom folosi în acest caz. Alte tipuri de medii pot fi create cu ușurință în Setări
secțiune.Crea
butonul din dialog a fost creat, noul element de imagine va fi creat, iar panoul din dreapta al editorului va fi completat cu câteva proprietăți, inclusiv un buton de încărcare. Ar trebui să faceți clic pe butonul de încărcare pentru a alege fișierul de pe computerul pe care dorim să îl încărcați (am o imagine prestabilită pregătită pe desktop pentru încărcare). După ce ați selectat imaginea pe care doriți să o încărcați și ați făcut clic pe pictograma de salvare din bara de instrumente din partea de sus a panoului din dreapta, imaginea va deveni parte din biblioteca media și va fi listată ca un nod din copacul nodului media. O miniatură a imaginii va fi, de asemenea, creată și afișată în proprietăţi
panou la dreapta, împreună cu unele dintre atributele de imagine:
Conţinut
și selectați Acasă
nod pe care l-am creat mai devreme. În Imagine banner
câmpul de mai jos textarea faceți clic pe alege
link pentru a deschide selectorul, care va apărea într-un dialog. Apasă pe Compania face asta!
nod în picker și va fi setat în Banner imag
e câmpul. Acasă
nodul poate fi acum publicat, așa că faceți clic pe pictograma lumii cu un disc în fața sa pentru a salva și a publica pagina.Home.master
și Pagina de bază
template-uri.
elementele au fost toate populate, dar toate
elementele nu vor fi fost încă populate, deoarece trebuie să scriem câteva XSLT pentru acestea.
rezumat