OVH Cloud OVH Cloud

themes et pagemaster

2 réponses
Avatar
Helter Skelter
bonjour !

qui a réussi a faire fonctionner ce couple magique ?
mes thèmes doivent changer automatiquement en fonction de dates ou périodes
de dates

merci

2 réponses

Avatar
keikun59
Tu peux utiliser dans ta masterPage :

Page.Theme = "nomDuThme"
Avatar
Helter Skelter
merci cela fonctionne parfaitement grace un changement du "inherits" dans
toutes mes pages par un Inherits MyBasePage ' au lieu de System.Web.UI.Page

MyBasePage etant une classe VB se trouvant dans un nouveau dossier App_Code
dont voici le debut....
Imports System.Web.UI.Page
Public Class MyBasePage
Inherits System.Web.UI.Page

Protected Overrides Sub OnPreInit(ByVal e As System.EventArgs)
MyBase.OnPreInit(e)
Dim MyProfile As System.Web.Profile.ProfileBase
MyProfile = HttpContext.Current.Profile
Me.MasterPageFile = MyProfile.GetPropertyValue("MasterFilePreference")
Me.Theme = MyProfile.GetPropertyValue("ThemePreference")
........



j'ai cependant un autre probleme ma master page DOIT AVOIR LE FICHIER CSS
ASSOCIE AU MEME ENDROIT QUE LA MASTERPAGE !!!!!
ma masterpage utilise du pur css, tout fonctionne parfaitement quand je met
le fichier css dans le dossier des themes sauf la ligne de menu utilisant
une image decalée pour faire une sorte de rollover
extrait du css.....


/* On donne une hauteur au menu, correspondant a la taille de l'image
utilisée en fond,
on met ensuite l'image de fond avec un decalage de 25 pixels vers le haut
pour utiliser la technique de roll over */
ul#menu
{height: 35px; margin: 0; padding: 0;
background: url(App_Themes/Default/bg_menu.gif) repeat-x 0px -25px;
list-style-type: none;}

/* On rend les li en flottant pour pouvoir les afficher horizontalement,
on cache les puces, et on centre le texte */
ul#menu li
{ float: left ; text-align: center ; }


/* C'est sur les liens que le gros du travail est effectué : largeur,
hauteur de ligne, taille de police, graisse de police, espacement des
lettres, couleur, bordure et decoration du texte.
Nous pouvons dimensionner les a grace . la propriete display: block ; */
ul#menu li a
{ width: 130px ; line-height: 25px ; font-size: 1.2em ; font-weight: bold
; letter-spacing: 2px ; color: #fff ;
display: block ;
text-decoration: none ; border-right: 2px solid #ffd700 ; }

/* Et pour finir on decale l'image de fond au passage de la souris pour
laisser aparaitre l'etat survolé de l'image */
ul#menu li a:hover
{background: url(App_Themes/Default/bg_menu.gif) repeat-x 0px 0px;}



Normalement dans le dossier theme je dois avoir le fichier css, le fichier
skin et les fichiers xml pour les rotator (par exemple)
et bien dans mon cas, je suis obligé de mettre les css a la racine du site
(avec les pagemaster), pas de probleme avec le fichier skin
si je mets le css dans les dossiers de theme, tout marche sauf les menu
rollover !!!!!
ce qui m'oblige a avoir dans ma masterpage la notation "en dur" de ma css

<%@ Master Language="VB" CodeFile="Default.master.vb" EnableTheming="true"
Inherits="DefaultMasterPage" Debug="true" %>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1//EN"
"http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" >

<head runat="server">
<title>V3</title>
<link href="Default.css" rel="stylesheet" type="text/css" />

</head>
<body>

pour etre comprehensible voici extrait de mon web config
<pages theme="Default">
......
</pages>

<profile>
<properties>
<add name="ThemePreference" type="string" defaultValue="Default"/>
<add name="MasterFilePreference" type="string"
defaultValue="Default.master"/>
</properties>
</profile>


je precise que j'ai un master page par saison a la racine de mon site et que
c'est le fichier MyBasePage.vb qui en fonction de la date determine quel est
le "bon" masterpage a afficher (avec le bon theme). Il est donc genant pour
moi de ne pas avoir dans les dossiers themes, les css !




"S?bastien HOUZET" a écrit dans le message de news:

Tu peux utiliser dans ta masterPage :

Page.Theme = "nomDuThme"