0 follower

Teman

Användning av teman är ett systematiskt sätt att anpassa utseendet hos sidor i en webbapplikation. Genom att applicera ett annat tema, kan man omedelbart dramatiskt förändra det övergripande utseendet hos en webbapplikation.

I Yii representeras varje tema av en katalog innehållande vyfiler, layoutfiler samt relevanta resursfiler så som bilder, CSS-filer, JavaScript-filer etc. Namnet på ett tema är namnet på dess katalog. Alla teman huserar under samma katalog, WebRoot/themes. Vid varje tillfälle kan endast ett av dessa vara aktivt.

Tips: Standardrotkatalogen för teman, WebRoot/themes, kan konfigureras till en anan katalog. Konfigurera bara applikationskomponenten themeManager:s propertyn basePath och baseUrl efter önskemål.

För att aktivera ett tema, sätt webbapplikationens property theme till namnet på det önskade temat. Detta kan antingen göras i applikationskonfigurationen eller vid körning, i en kontrolleråtgärd.

Märk: Temanamn är skiftlägeskänsliga (case-sensitive). Om man försöker att aktivera ett tema som inte kan hittas returnerar Yii::app()->theme null.

Innehåll under temats katalog skall organiseras på samma sätt som det under applikationens rotkatalog. Till exempel, alla vyfiler måste placeras under views, layoutvyfiler under views/layouts och systemvyfiler under views/system. Om vi till exempel vill ersätta vyn create tillhörande PostController med en vy ur temat classic, skall den nya vyfilen sparas som WebRoot/themes/classic/views/post/create.php.

För vyer som tillhör kontrollrar i en modul, skall även motsvarande vyfiler som tillhör teman placeras under katalogen views. Till exempel, om tidigare nämnda PostController återfinns i modulen forum, skall vyfilen create sparas som WebRoot/themes/classic/views/forum/post/create.php. Om modulen forum är nästlad i en annan modul, support, skall vyfilen istället sparas som WebRoot/themes/classic/views/support/forum/post/create.php.

Märk: Eftersom katalogen views kan innehålla ur säkerhetssynpunkt känslig data, skall den konfigureras för att förhindra webbanvändare tillgång.

Vid anrop till render eller renderPartial för att presentera en vy, kommer motsvarande vyfil samt layoutfil att eftersökas i det för tillfället aktiva temat. Om de hittas används de för renderingen. I annat fall används standardplatserna för vyer och layouter specificerade i viewPath respektive layoutPath.

Tips: Inuti en temavy, behöver ofta länkning ske till andra temaresursfiler. Till exempel, kan vi vilja visa en bildfil under temats katalog images. Genom att använda det för tillfället aktiva temats property baseUrl, kan en URL för bilden genereras på följande sätt,

Yii::app()->theme->baseUrl . '/images/FileName.gif'