Ok bon alors on reprend depuis le début.
Les bons concepts de travail voulus par Dotnetnuke :
- Tu installes une première fois ton skin,
- Tu portes tes modifications sur le fichier HTML placé dans /Portals/ID/Skins/ ou _DEFAULT et non le fichier ASCX qui se trouve au même endroit,
- Tu enregistres ton fichier HTML et tu ciques sur "Analyser le thème" après avoir sélectionné le thème sur lequel tu travailles, et ce, depuis l'interface Hôte > Thèmes ou Admin > Thème (selon que le skin se trouve dans le répertoire du portail ou dans le répertoire par défaut.). Dans ce processus, les tokens (Ex : [SOLPARTMENU]) et leur configuration associée dans Skin.xml, seront lu, analysés, et transformés en leur équivalent CodeBehind.
- Si tu dois ensuite exporter le skin pour l'installer sur un autre Dotnetnuke, alors tu zippes le contenu de Containers/NomDeTonSkin/ dans un zip nommé "Containers.zip", le contenu de /Skins/NomDeTonSkin/ dans "Skins.zip", et les deux zip dans un nouveau zip nommé "NomDeTonSkin.zip". Dans cette procédure, tu n'inclus pas les ASCX car ils seront recréés automatiquement lors de l'installation (et c'est pour ça qu'on travaille toujours sur les HTML, car les ASCX ne seront pas conservés au final lors de l'export/import).
Par exemple, CSSSeparator ne fonctionne pas lorsque tu le mets dans ton ASCX directement, car la propriété s'appelle cssseparatorclass dans le CodeBehind. Pour que comprenne bien qui poura, prenons la configuration suivante :
<Object>
<Token>[SOLPARTMENU]</Token>
<Settings>
<Setting>
<Name>Display</Name>
<Value>Horizontal</Value>
</Setting>
<Setting>
<Name>CSSSeparator</Name>
<Value>MainMenu_MenuSeparator</Value>
</Setting>
</Settings>
</Object>
associée au token [SOLPARTMENU] se trouvant dans le fichier HTML, sera transformé lors de l'analyse par :
<dnn:SOLPARTMENU runat="server" id="dnnSOLPARTMENU" Display="Horizontal" cssseparatorclass="MainMenu_MenuSeparator" />
Donc dans ton cas, si tu cliques simplement sur "Analyser le thème", ta configuration va (probablement) se mettre à fonctionner : http://88.191.55.88/Screenshot-20081008-174336.png
Le tableau suivant t'en dira un peu plus sur les attributs utilisables pour le Solpartmenu dans skin.xml (colonne NavgationProvider) et dans l'ascx (colone ASCX Property). En l'occurence, si tu utilises le Solpart, tu utilises le SolpartmenuNavigationProvider. Sache également que tu peux essayr avec [DNNMENU]. Tu peux trouver ici l'ensemble des paramètres configurables pour ce menu, pour modifier, par exemple MenuItemSel en MenuItemPoivre.
Ce tableau n'est pas forcément à jour, ainsi je te recommande de lire attentivement la documentation du Solpartmenu fournie dans la documentation Dotnetnukie (Skinning PDF) : http://downloads.sourceforge.net/dnn/DotNetNuke_4.4.1_Docs.zip?modtime=1169727857&big_mirror=0
NavigationProvider |
SolpartMenu.ascx
Property |
Own
Settings |
SolpartMenu
Navigation
Provider |
DNNMenu
Navigation
Provider |
DNNTree
Navigation
Provider |
Paths |
PathImage |
|
|
x |
|
|
PathSystemImage |
useskinpatharrowimages |
|
x |
x |
x |
PathSystemScript |
|
|
x |
x |
x |
Rendering |
ForceDownLevel |
forcedownlevel |
|
x |
|
x |
ForceCrawlerDisplay |
forcefullmenulist |
|
x |
|
|
ControlOrientation |
display |
|
x |
x |
|
ControlAlignment |
menualignment |
|
x |
|
|
Mouse Properties |
MouseOutHideDelay |
menueffectsmouseouthidedelay, mouseouthidedelay |
|
x |
|
|
Mouseoverdisplay |
menueffectsmouseoverdisplay |
|
x |
|
|
MouseoverAction |
menueffectsmouseoverexpand |
|
x |
|
|
Arrows |
IndicateChildren |
usearrows |
|
x |
x |
x |
downarrow |
|
rightarrow |
|
IndicateChildImageSub |
|
|
x |
x |
x |
IndicateChildImage |
|
|
x |
x |
x |
IndicateChildImageExpandedSub |
|
|
|
|
x |
IndicateChildImageExpandedRoot |
|
|
|
|
x |
Custom HTML |
NodeLeftHTMLRoot |
rootmenuitemlefthtml |
|
x |
|
|
NodeRightHTMLRoot |
rootmenuitemrighthtml |
|
x |
|
|
NodeLeftHTMLSub |
submenuitemlefthtml |
|
x |
|
|
NodeRightHTMLSub |
submenuitemrighthtml |
|
x |
|
|
|
usesubmenubreadcrumbarrow |
|
x |
|
|
|
userootbreadcrumbarrow |
|
x |
|
|
NodeLeftHTMLBreadCrumbSub |
|
|
x |
|
|
NodeRightHTMLBreadCrumbSub |
|
|
x |
|
|
NodeLeftHTMLBreadCrumbRoot |
|
|
x |
|
|
NodeRightHTMLBreadCrumbRoot |
|
|
x |
|
|
SeparatorHTML |
separator |
|
x |
x |
|
SeparatorLeftHTML |
leftseparator |
|
x |
x |
|
SeparatorRightHTML |
rightseparator |
|
x |
x |
|
SeparatorLeftHTMLActive |
leftseparatoractive |
|
x |
x |
|
SeparatorRightHTMLActive |
rightseparatoractive |
|
x |
x |
|
SeparatorLeftHTMLBreadCrumb |
leftseparatorbreadcrumb |
|
x |
x |
|
SeparatorRightHTMLBreadCrumb |
rightseparatorbreadcrumb |
|
x |
x |
|
CSS |
CSSControl |
menubarcssclass |
|
x |
x |
x |
CSSContainerRoot |
menucontainercssclass |
|
x |
|
|
CSSContainerSub |
submenucssclass |
|
x |
x |
|
CSSBreak |
menubreakcssclass |
|
x |
|
|
CssIndicateChildSub |
menuarrowcssclass |
|
x |
|
|
CSSIndicateChildRoot |
menurootarrowcssclass |
|
x |
|
|
CSSNode |
menuitemcssclass |
|
x |
x |
x |
CSSNodeRoot |
rootmenuitemcssclass |
|
x |
x |
x |
CSSBreadCrumbSub |
submenuitembreadcrumbcssclass |
|
x |
x |
x |
CSSBreadCrumbRoot |
rootmenuitembreadcrumbcssclass |
|
x |
x |
x |
CSSNodeSelectedRoot |
rootmenuitemactivecssclass |
|
x |
x |
x |
CSSNodeSelectedSub |
submenuitemactivecssclass |
|
x |
x |
x |
CSSNodeHover |
menuitemselcssclass |
|
x |
x |
x |
CSSNodeHoverSub |
submenuitemselectedcssclass |
|
x |
x |
x |
CSSNodeHoverRoot |
rootmenuitemselectedcssclass |
|
x |
x |
|
CSSSeparator |
separatorcssclass |
|
x |
x |
|
CSSLeftSeparator |
leftseparatorcssclass |
|
x |
x |
|
CSSRightSeparator |
rightseparatorcssclass |
|
x |
x |
|
CSSLeftSeparatorSelection |
leftseparatoractivecssclass |
|
x |
x |
|
CSSRightSeparatorSelection |
rightseparatoractivecssclass |
|
x |
x |
|
CSSLeftSeparatorBreadCrumb |
leftseparatorbreadcrumbcssclass |
|
x |
x |
|
CSSRightSeparatorBreadCrumb |
rightseparatorbreadcrumbcssclass |
|
x |
x |
|
CSSIcon |
menuiconcssclass |
|
x |
x |
x |
Styles |
StyleBackColor |
|
|
x |
|
|
StyleForeColor |
|
|
x |
|
|
StyleHighlightColor |
|
|
x |
|
|
StyleIconBackColor |
|
|
x |
|
|
StyleSelectionBorderColor |
|
|
x |
|
|
StyleSelectionColor |
|
|
x |
|
|
StyleSelectionForeColor |
|
|
x |
|
|
StyleControlHeight |
|
|
x |
|
|
StyleBorderWidth |
|
|
x |
|
|
StyleNodeHeight |
|
|
x |
|
|
StyleIconWidth |
|
|
x |
|
|
StyleFontNames |
|
|
x |
|
|
StyleFontSize |
|
|
x |
|
|
StyleFontBold |
|
|
x |
|
|
Animation |
EffectsShadowColor |
menueffectsshadowcolor |
|
x |
|
|
EffectsTransition |
menueffectsmenutransition |
|
x |
|
|
EffectsDuration |
menueffectsmenutransitionlength |
|
x |
|
|
EffectsShadowDirection |
menueffectsshadowdirection |
|
x |
|
|
EffectsShadowStrength |
menueffectsshadowstrength |
|
x |
|
|
EffectsStyle |
menueffectsstyle |
|
x |
|
|
Misc |
|
cleardefaults |
|
x |
|
|
|
separatecss |
|
x |
|
|
|
level |
|
x |
|
|
|
rootonly |
|
x |
|
|
|
tooltip |
|
x |
|
|
|
moveable |
|
|
|
|
Une fois que j'ai dit tout ça, je ne saurai que trop te conseiller d'investir dans RadMenu, parce que franchement, je n'ai jamais rien vu d'aussi efficace (mis à part un menu perso qui produisait des DD DT).
seb