- postet på
- Av
I. NET, a Master
er en mal for innholdssider, hvor en serie av ASPX-sider som alle bruker det samme Master
kan alle dele samme basekode.
EN Master
kan da ha en eller flere contentPlaceHolders
definert og hver ASPX-side som bruker det Master
trenger bare å definere koden som er innenfor contentPlaceHolder
. Masterpages
kan også være nestet, som er hvordan de vil bli strukturert i vårt eksempel nettsted.
De Basisside
, husk at dette er Mal
og dokumenttype
at alle etterfølgende sider vil arve fra, skal bare inneholde de elementene som er felles for alle sider på nettstedet. Åpne opp BasePage.master
fil i Visual Web Developer Express (VWD). Det vil allerede ha en liten ASPX-kode i filen, inkludert en
element. Dette elementet peker på en
element i en av Umbracos masterpages
.
Det er mulig å legge til koden til masterpages
helt gjennom Umbraco back-end; når du velger en av maler
i innstillinger
område, laster det en kopi av filen inn i høyre side av baksiden for redigering, denne funksjonen er mer nyttig for å gjøre små endringer og oppdateringer til masterpages
, og for å sette inn makroer eller gjenstander. Når vi bruker en full .Net IDE, får vi intellisense og en rekke andre funksjoner som ikke er til stede i Umbraco, slik at vi skaper masterpages
vil vanligvis kreve redigering i begge områder.
Legg til følgende kode i
element:
Lagre filen. La oss ta en titt på hva vi har. Det er i HTML5-format, som vi kan fortelle rett fra minimal DOCTYPE
og meta charset
element. Det er ikke viktig å bruke HTML5, men vi kan også like godt? I av siden vi har koblet til et stilark (som vi ikke har opprettet ennå, men vil på et tidspunkt senere) og a
element. De
inneholder vår første Umbraco tag og peker på en makro. Ikke bekymre deg for mye om dette for nå, vi har ikke diskutert makroer ennå, og disse vil bli dekket mye mer detaljert i en senere del av serien. Innholdet på siden er pakket inn i en element med
runat
attributtet satt til serveren
, som er standard praksis for. Net nettsteder. Vi inkluderer også en link til HTML5shiv
fil på Google-kode slik at IE8 eller under er i stand til å vise våre HTML5-elementer riktig.
Neste har vi a element som inneholder en
element for hovedstedets overskrift og merkelinje (sammensatt av
og
merker henholdsvis), og a
element som inneholder hovednavigasjonen til nettstedet, som vil bli bygget fra en standard uordnet liste. HTML-koden som vises for hovednavigasjonen, blir ikke brukt i nettstedets endelige form, den er oppført her som en veiledning for hvordan HTML-en skal være når den bygges automatisk ved hjelp av en annen makro. Det er nyttig å legge til grunnstrukturen for dynamisk bygde elementer, i tilfelle de må styles før de dynamiske bitene legges til. Dette er spesielt viktig hvis du jobber som en del av et lag, og noen andre vil håndtere alle (morsomme) back-end ting.
Vi har da en Vi har også a Deretter kan vi legge til koden som vil gjøre opp på hjemmesiden. Hvis vi åpner opp Legg nå følgende kode til Denne masterpage inneholder en annen type Umbraco element - the Det bør være litt tydeligere nå hvordan egenskapene i Dokumenttyper relaterer seg til elementene som kommer opp på våre sider, men vær ikke bekymret hvis det ikke er 100% krystallklar på dette tidspunktet - vi har fortsatt ikke opprettet noen faktiske sider ennå, men når vi gjør den siste delen av puslespillet bør klikke pent inn på plass. Deretter har vi et bildeelement; fordi vi bruker en mediaplukker (jeg skal forklare nøyaktig hva en mediaplukker er når vi lager siden) koden for dette er mye mer kompleks enn det vi har sett så langt. En av seksjonene i Umbraco back-end er Når vi legger til Til slutt legger vi til noen grunnleggende oppslag for heltenes panel, inkludert en ytre beholder (den Våre innholdssider er relativt enkle og er bygget ved hjelp av en enkelt eiendom fra Legg deretter til følgende kode i Det er det, det er alt vi skal bruke i vår nettside-mal. I virkeligheten vil en innholdsside trolig være mye mer komplisert, men for vårt enkle eksempel skal det være tilstrekkelig. Vi har brukt en ytre som inneholder Vår NewsList-mal vil være nesten like grunnleggende som vår På denne siden har vi en Våre Artikkelen er en ytre beholder Så vi har tilbrakt et godt par timer, så langt som mulig, og sett opp ting (mer om du måtte installere VWD + SQL Server), så la oss legge til noen sider allerede! På et Umbraco-område er det egentlig ikke noen individuelle "sider" som sådan. Ikke tenk på deg selv - "Jeg trenger denne siden for å gjøre noe unikt, så jeg kan legge til dette eller det til den underliggende siden" - det virker bare ikke slik, det er ingen underliggende sider. I stedet for sider har vi innholdsnoder i nodetreet (spesielt noder i Så, for å opprette hjemmesiden til nettstedet, gå til innholdsdelen av CMS, høyreklikk Innhold-mappen øverst til venstre og velg Opprett. I dialogboksen som vises, skriv inn Hjem som Navn og velg Hjemmeside som Dokumenttype: Når vi slår på Hjemmesiden innholdskode vil også arve en eiendom fra Begge Mediebiblioteket er et lager for alle medieressurser, for eksempel bilder, videoer, lydfiler eller andre innebygde filer eller dokumenter. Våre For å legge til et element i mediebiblioteket velger vi bare Først når Nå er bildet klar til å bli plukket, så gå tilbake til Det er det; du har laget din første Umbraco-side! Du kan se den nye siden ved å klikke på Forhåndsvis-ikonet (siden med forstørrelsesglasset på den) for å se det i forhåndsvisningsmodus, eller du kan bare åpne en ny kategori i nettleseren din, kopiere URL-adressen til backend-filen, lim det inn i den nye kategorien og slå av alt etter portnummeret. Siden er helt un-styled på dette punktet, men du bør oppdage at introteksten og bildet vi angir i back-end vises på siden, sammen med markeringen opp fra I denne delen av opplæringen har vi gjennomgått hvordan Umbraco-malene fungerer (de representerer. Nettmastersider), og hvordan de er nestet for maksimal kodeutnyttelse. Nå som vi har opprettet en side, har vi sett hvordan dokumenttyper, maler og noder fungerer sammen for å skape egenskapene vi kan redigere i back-end, og sidene våre besøkende vil se. I neste del av denne serien skal vi opprette resten av sidene for nettstedet og deretter begynne å skrive XSLT som vil bygge topp- og bunnnavigasjon, og hero-panelet, blant annet.
. De id
for styling formål, og
har en id
Tilordne slik at den kan bli befolket med andre sider (eller masterpages
). Det har også runat = "server"
attributt fordi det er et ASPX-element som håndteres av serveren. Legg merke til at noen av elementene våre er gitt klassenavn for når vi kommer til å utforme nettstedet nær slutten av serien. element som inneholder en annen kopi av navigasjonen (igjen HTML er gitt på dette tidspunktet hovedsakelig for styling formål og som et eksempel på hvordan det til slutt vil vises i nettleseren når sidene blir servert), og en opphavsrettserklæring. Opphavsrettserklæringen inneholder en liten utdrag av
C #
; alt dette gjøres utdata det nåværende året i standard 4-sifret format, slik at det alltid gjenspeiler året som siden er sett. Til slutt kobler vi til Google-CDN-vertsversjonen av jQuery, da vi trenger dette for å legge til noe atferd på nettstedet vårt i den siste delen av serien.
Koding av hjemmesiden
HomePage.master
fil i VWD vi kan se at den allerede er nestet under BasePage.master
(de BasePage.master
filen er satt som MasterPageFile
i Herre
erklæring øverst på filen), vi trenger bare å endre ContentPlaceHolderID
av
element slik at det peker på
element vi lagt til i BasePage.master
:
element vist ovenfor:
Punkt
. Det første elementet vi bruker, angir innledende tekst på siden. Husk at vi definerte dette som en eiendom av Hjemmeside
Dokument Type i del en av denne serien og sett den til en datatype av Richtext editor
. De
elementet her i malen vil vise innholdet til det som er skrevet inn i den rike tekstredigereren når vi lager en innholdskode for hjemmesiden i backend.Media
avsnitt der alt medieinnhold for et nettsted kan lastes opp og lagres. Som andre ressurser for nettstedet, er hvert medieelement et node i nodetreet og er gitt et navn når medieelementet blir lagt til CMS.element, bruker vi en
ligner på intro~~POS=TRUNC
, men vi må bruke en utdrag av inline XSLT-kode og et par utdrag av HTML for å faktisk få banen til bildet som er lagret i mediebiblioteket. XSLT-kodebiten benytter seg av concat ()
metode, som aksepterer et kommaavgrenset utvalg av strenger for å sammenkoble, for å bygge element. Innenfor denne gruppen bruker vi HTML-enhetene og merker opp for å bygge elementet manuelt og også bruke en funksjon fra
umbraco.library
klasse. Funksjonen er GetMedia
og lar oss få banen til mage i mediebiblioteket (det er en matchende mappe i Umbraco-filsystemet som alle medieelementene er lagret i) ved hjelp av umbracoFile
eiendom, og navnet på noden bruker @nodeName
. Merk at for å få eksempelkoden ovenfor til å vise riktig, måtte jeg sette inn \ tegn i HTML-enhetene. Fjern dem hvis du kopierer og limer inn i dine egne filer.id
av helt
), a #viewer
og #slider
elementer, og et enkelt brukergrensesnitt som vil tillate at de ulike panelene av innhold blir navigert. De #slider
elementet inneholder også en
element, så vi vil bygge denne delen av helten panelet ved hjelp av en XSLT makro som vi vil lage i en senere del av serien. Heltpanelet blir opprinnelig bygget fra XSLT og markeringen vist her, og vil da bli laget for å fungere med skript.
Opprette innholdsmalen
Innhold
Dokumenttype. I masterpagefilen endrer du ContentPlaceHolderID
av
element til BaseContent
akkurat som vi gjorde for hjemmesiden:
element:
fordi elementet er koblet til en Richtext editor
og så kan det inneholde mange forskjellige typer innhold.
Nyhetsmaler
Innhold
mal som siden vil i stor grad bygges dynamisk ved hjelp av en XSLT-makro. Ikke glem å oppdatere ContenPlaceHolderID
til BaseContent
som vi har i våre andre maler, og legg deretter til følgende elementer i stedholderen:Nylige nyheter fra selskapet
element, som er hjemmet til hovedsiden og makroen som bygger nyhetslisten. Dette er alt vi trenger i denne malen, så la oss gå videre til neste og siste; de
NewsItem
. Igjen, endre ContentPlaceHolderID
til BaseContent
og legg deretter til følgende kode på plassholderen:
NewsItem
mal er litt mer kompleks enn de fleste andre. Hovedbeholderen for nyhetshistorien er en , som inneholder en
for overskriften og litt informasjon om nyhetshistorien som sin
Dato
og forfatter
. Datoen, som vises i den første , er knyttet til
Datovelger
feltet vi lagt til i den tilsvarende dokumenttypen for denne sidetypen. Vi satte formatAsDate
attributt til sant som formaterer datoen pent i stedet uten en tidsstreng som er lagt til slutten. De forfatter
er oppnådd ved bruk av creatorName
Egenskap som automatisk legges til noder (sider) når de er opprettet i back-end.newsImage
feltet (dette er i det vesentlige det samme som bannerbildet på hjemmesiden som også bruker en Media picker. Igjen HTML-enhetene har tilbakestrek i dem slik at de vises riktig her) og en
knyttet til newsText
felt. Vi lager også en sekundær element som gjør det mulig for besøkende å navigere direkte fra den aktuelle nyhetssiden til andre nyhetssider uten å måtte gå tilbake til nyhetslisten. Dette vil bli bygget fra en makro, som vi ser på i neste del av denne serien.
Legge til sider
Innhold
del av CMS-backend), og data i databasen. Det er individuelle nettadresser lagret i databasen, og hver knutepunkt er kartlagt til en nettadresse, slik at når en besøkende skriver adressen til en side eller navigerer rundt på siden, vil CMS sjekke hvilken nettadresse som ble forespurt og bygge siden på fluen , ved hjelp av dokumenttype og mal.
Skape
knappen i dialogboksen, vil den nye noden bli opprettet og vist i øverste venstre panel av CMS, og vil ha en liten oransje stjerne til høyre for den. Dette indikerer at noden har blitt lagret, men ikke publisert. I den høyre delen av CMS ser vi kategoriene og feltene som vi definerte i Dokumenttype i del 1. Den Innhold
kategorien vises som standard som det er den første kategorien, den første egenskapen vi definerte var Introtekst
eiendom, som kaster direkte til tekstområdet øverst på Innhold
fane. Vi har også definert Banner Image
eiendom, som kart direkte til Media Picker-kontrollen som vises under tekstområdet.Basisside
dokumenttype -the Domenenavn
- som kan ses på Eiendommer
fane. Gå til Eiendommer
fanen nå. Det finnes flere viktige egenskaper her som automatisk opprettes av Umbraco, inkludert nodens navn, som er et redigerbart felt slik at vi enkelt kan endre nodenavnet til enhver tid, og dokumenttype
og Mal
i bruk. Det finnes andre nyttige egenskaper som skaperen av node og publiseringsdato. Tast inn Firmaet
i Domenenavn
feltet (dette kan ta formatet Firmaet
, eller en faktisk nettadresse som www.thecompany.com, gjør det ingen forskjell, da den bare vil bli brukt til tittelen på siden).Introtekst
og Banner Image
er obligatoriske egenskaper, så de må begge være fylt ut før vi kan publisere siden. De Introtekst
det er lett; vi begynner bare å skrive i tekstområdet. Vi kan gjøre noen grunnleggende formatering ved hjelp av Richtext editor
knapper øverst på fanen, men i det hele tatt fullfører vi bare denne egenskapen eller feltet ved å skrive. De Banner Image
er litt (men ikke mye mer) komplisert og for å fullføre det, må vi jobbe kort med en annen del av CMS - mediebiblioteket.
Mediebiblioteket
Banner Image
feltet for Hjemmeside
bruker a Media picker
, kontroll som åpner en dialogboks som viser mediebiblioteket og lar sluttadministratoren av nettstedet visuelt velge bildet de vil bruke. Før det kan skje, må det være elementer i mediebiblioteket som kan velges.Media
seksjon ved å klikke på ikonet nederst til venstre i baksiden, og så snart medieseksjonskoden har lastet inn øverst til venstre, høyreklikker du på Mediemappen og velger Skape
fra menyen. I dialogboksen som vises kan vi sette et navn på bildet (husk at navnet vi gir noden er brukt i alt
attributt av bildet når det vises på hjemmesiden), og velg Media type
. Det er tre forhåndsdefinerte typer vi kan velge fra; en mappe som kan være nyttig når vi har mange forskjellige medieartikler som vi ønsker å kategorisere og lagre på en ordnet måte, en generell Fil
skriv eller Bilde
, som vi vil bruke i dette tilfellet. Andre medietyper kan enkelt opprettes i innstillinger
seksjon.Skape
knappen i dialogboksen er klikket, det nye bildeobjektet vil bli opprettet og det høyre panelet av redigereren vil bli fylt med noen egenskaper, inkludert en opplastningsknapp. Vi burde klikke på opplastningsknappen for å velge filen fra datamaskinen vår vi vil laste opp (jeg har et forhåndsdefinert bilde klar på skrivebordet mitt for å laste opp). Når du har valgt bildet for å laste opp og klikket på lagringsikonet i verktøylinjen øverst til høyre, blir bildet en del av mediebiblioteket og vil bli oppført som en knutepunkt i media node-treet. En miniatyrbilde for bildet vil også bli opprettet og vist i eiendommer
panelet til høyre, sammen med noen av bildegenskapene:
Innhold
delen og velg Hjem
node som vi opprettet tidligere. I Banner bilde
feltet under tekstområdet klikker du på velge
lenke for å åpne plukkeren, som vises i en dialogboks. Klikk på Selskapet gjør dette!
knutepunktet i plukkeren, og det vil bli satt inn i Banner bilde
e felt. De Hjem
node kan nå bli publisert, så klikk på verdensikonet med en disk foran den for å lagre og publisere siden.Home.master
og Basisside
maler. De
elementene har alle blitt fylt, men noen
elementene vil ikke blitt fylt ut ennå, siden vi trenger å skrive noen XSLT for disse.
Sammendrag