green field

Hostanje multiplih stranica na jednoj instalaciji

Osvrt

mojoPortal može jednostavno hostati multiple stranice koristeći 1 web instalaciju i 1 bazu podataka.

Svaka stranica (site) je potpuno nezavisna, sa odvojenim korisnicima, funkcijama, sadržajem i skinningom. Prva stranica se smatra glavnom stranicom (master site) a sve dodatne stranice se smatraju podstranicama (child sites), u terminima opće administracije. Glavna stranica može upravljati Site Settings i konfigurirati koja obilježja su raspoloživa za podstranice i da li se stranica koristi za kreiranje podstranica, ali bez zajedničkog korištenja korisnika ili sadržaja kroz stranice. Podstranice mogu upravljati i njihovim vlastitim Site Settings, no ne mogu instalirati obilježja ili upravljati drugim podstranicama.

 

Način rada pripadajućih stranica

Iako je svojstvo multiplih stranica prvotno bilo implementirano sa idejom držanja stranica potpuno odvojenih, postoje neki slučajevi gdje je najbolje ako odvojene stranice mogu zajednički koristiti korisnike i funkcije. Kao za verziju 2.2.7.9, mojoPortal sada to podržava. Sljedeće Web.config/user.config postavke su relevantne:

<add key="UseRelatedSiteMode" value="false"/>
<add key="RelatedSiteID" value="1"/>
<add key="RelatedSiteModeHideRoleManagerInChildSites" value="true"/>

Podesite UseRelatedSiteMode kao istinit i to će aktivirati ovo svojstvo. Uobičajeno će prva stranica biti glavna stranica i imat će SiteID = 1. Ako iz nekog razloga vaša glavna stranica ima drugačiji site id (identifikaciju), možete ju odrediti upotrebom RelatedSiteID postavke. Svi korisnici će biti pridruženi na tu identifikaciju stranice i svi korisnici i funkcije s te stranice biti će zajednički korišteni kroz sve ostale stranice. Iste funkcije apliciraju se kroz sve stranice, tako da Administrator može urediti bilo što na bilo kojoj stranici. Također je moguće pridružiti određena dopuštenja funkcija za uređivanje podstranice, tako da se mogu urediti samo u sklopu te stranice, no to nisu administratori sistema i dakle nemaju mogućnost kreirati funkcije ili promjeniti postavke sigurnosti drugačije nego što su dopuštenja stranice u sklopu njihovog sitea. Postavka za pridruživanje  Site Editor Roles se pojavljuje jedino u Site Settings sa glavne stranice. Vi odaberete podstranicu sa drop down liste i možete podesiti njene Site Settings. Tamo ćete naći postavke za Site Editor Roles (uređivanje funkcija stranice).

 

Prednosti

Jedna od primarnih prednosti hostanja multiplih stranica sa mojoPortal-om je ta da sve stranice rade u jednoj aplikacijskoj domeni i zbog toga uzimaju manje resursa servera nego kad bi podesili odvojeno IIS ili Apache web stranice. Svaka web stranica dobiva svoj vlastit primjer aplikacije što nosi neki dodatak u smislu serverovih resursa.

 

Ograničenja

Kao što je često slučaj, ono što smo spomenuli kao prednost dolazi uz pripadajuće ograničenje.
Budući da su multiple stranice zapravo jedna stranica u smislu granica aplikacije, određene stvari kao ASP.NET teme su skrivene (cached) globalno i zato se zajedno koriste kroz stranice.
U mojoPortal-u su većina ovih pitanja ublažena jer mi najčešće koristimo samo theme.skin datoteke, jedino kako bi postavili css klase umjesto podešavanja određenih karakteristika stilova. Ovo odlično uspjeva jer različiti "skinovi" mojoPortal-a koriste iste nazive css klase, no svaki može dizajnirati klasu drugačije tako da tu ne postoji konflikt.

Još jedan dobar razlog za pridruživanje css naziva klase u temama bez podešavanja nekog drugog određenog stila karakteristike na temu je taj, da kada podesite stil karakteristike na temu, ASP.NET prikaže te karakteristike u istoj razini sa html prikazom i to nepotrebno povećava količinu prikaza (markup), zbog čega i veličinu stranice, što je loše za proces. Držeći sve stilove karakteristika (style properties) u css-u je najučinkovitiji način da prikaz (markup) stranice (page) bude slab.

Ako vaš hosting provider nameće Medium trust politiku, hostanje multiplih stranica na 1 web instalaciji neće raditi ispravno, no i dalje možete upotrijebiti 1 bazu podataka sve dok ste razdvojili fizičke web instalacije na istom hostu.

 

Koliko stranica mogu hostati u jednoj instalaciji

Općenito, jedina ograničenja temelje se na raspoloživosti resursa servera nasuprot nagomilanog prometa svih stranica i tereta kojeg promet proizvodi.
Jedino ograničenje na koje možete naići što se tiče mojoPortal konfiguracije temelji se na mojoSiteMap.config datoteci, koja se nalazi u osnovi (root) weba, i mora imati ulaz za svaki id stranice, kao u sadašnjoj verziji (2.3.0.1). Mi imamo konfigurirano za oko 500 siteova što je vjerojatno više nego će većina ljudi ikad trebati (i vjerojatno puno više nego što se može hostati sa djeljenog hosting naloga), no može se konfigurirati i za više dodavanjem više prijava. Dakle, ako trebate 501 siteova samo kopirajte ovo:

<add name="mojosite500" type="mojoPortal.Web.mojoSiteMapProvider" securityTrimmingEnabled="false" />
and add another one below it as 501 like this:
<add name="mojosite501" type="mojoPortal.Web.mojoSiteMapProvider" securityTrimmingEnabled="false" />

i tako dalje, za koliko god stranica želite pokušati i hostati iz jedne instalacije.

 

Kako upotrijebiti

Postoje 2 načina uspostave dodatnih stranica sa mojoPortal-om, korištenjem različitih naziva hosta za svaku stranicu, ili korištenjem virtualnih mapi kako bi definirali dodatne stranice.
Za više informacija o korištenju host naziva za definiranje stranica pogledajte:
Multiple stranice temeljene na nazivima hosta


Za više informacija o korištenju naziva mapa za definiranje stranica pogledajte:
Multiple stranice temeljene na nazivima mape 

 

Brisanje stranica

Ne možete izbrisati korijen stranice (root site), no moguće je izbrisati sekundarne podstranice. To je deaktivirano po dafaultu kako bi se spriječilo slučajno brisanje stranice. Jednom kada ju izbrišete ne možete ju nikako vratiti natrag, tako da se u većini slučajeva čini pametnim držati ih deaktiviranim, i aktivirajte ih samo kada trebate obrisati stranice.

Dakle ako želite omogućiti brisanje stranica, pogledajte postavku u Web.config-u:
<add key="AllowDeletingChildSites" value="false" />


i podesite ju kao istinitu.


 

 

Form Wizard Pro - Easy Forms for mojoPortal