Vous êtes ici Forums
  |  Connexion
 Forums
HomeHomeForums DNNForums DNNDéveloppementDéveloppementDemande astuces pour remplir lDemande astuces pour remplir l'aide d'un module
Précédente
 
Suivante
Nouveau message
10/08/2007 16:17
 

Bonjour,
Je recherche a faire la page d'aide correspondant à mon module. J'ai observé qu'il se remplir dans la partie ModuleHelp.text du fichier View ou Edit <NomModule>.ascx.resx

En fait, j'ai des .htm qui permettent de visionner un mini film flash de démonstration de l'utilisation du module.
1/ Je ne sais pas trop ou je peux les placer dans l'architecture du site : dans un dossier help dans mon DesktopModules/NomModule ou dans Portals/0 ?

2/ mon objectif serait de faire des liens permettant de visualiser ces .htm. Pour cela, remplir la case ModuleHelp.text du fichier View ou Edit <NomModule>.ascx.resx avec de l'html ne fonctionne pas, soit parce que ce n'est pas la bonne solution, soit parce qu'il faut donner un chemin spécial (et ça je ne sais pas le faire non plus)

3/ on me propose de générer le bout de code qu'il faut mettre dans la case par l'intérmédiaire du page_load, et ca, je ne sais pas non plus si ca fonctionnerait ou pas, ni quel code il faut générer au final.

Si quelqu'un pouvait m'éclairer s'il vous plait ! Parce que là... je sais plus ou chercher..

merci

 

Elodie

 
Nouveau message
12/08/2007 14:13
 

Ah les vacances ... qu'est-ce que c'est bon. Les messages restent irrésolus pendant plusieurs jours ... le soleil. Tout va bien.

Bonjour Elodie

Une aide est associée à chaque contrôle de ton module. Celle-ci puise effectivement son contenu depuis la clef ModuleHelp du RESX associé au contrôle dans un premier temps, mais pas uniquement. Pour chaque contrôle contenu dans la définition du module tu peux spécifier une URL directe vers une aide plus complète. Cela peut-être une bonne solution, puisque d'une part tu as des fichiers HTML tout prêts, et que cela te permet de contrôler plus facilement l'emplacement de tes images. Néanmoins, il peut être utile de placer des images dans l'aide rapide ModuleHelp.Text.

Il n'y a pas de système de Tokens pour les chemins comme <%=SkinPath %> utilisable dans les fichiers ASCX des skins. Néanmoins ceci constitue une bonne suggestion à faire au Core Team Localization, et à défaut, une bonne raison de faire un développement perso (Un DLL à remplacer et hop).

Je découvre le problème avec ta question, et voici, dans l'ordre, les solutions que j'ai trouvé :

Dissoudre les paramètres de l'url :
ModuleHelp.Text : <img border="0" src="../../../../../../../../../images/403-3.gif">
URL de l'aide : localhost/dotnetnuke_2/CFEditor/tabid/56/ctl/Help/ctlid/204/moduleid/379/Default.aspx
FriendlyURL : activé
Il faut remonter 9 paramètres pour que l'url de l'image soit correcte, mais ce nombre de paramètres peut-être variable, donc cette solution n'est pas viable : toutes les pages ne sont pas de niveau Root.

Placer les images sur un serveur d'image tiers dont l'url ne bougera pas :
ModuleHelp.Text : <img border="0" src="http://img2.aricie.com/Portals/XS23/images/403-3.gif">
URL de l'aide : localhost/dotnetnuke_2/CFEditor/tabid/56/ctl/Help/ctlid/204/moduleid/379/Default.aspx
FriendlyURL : peu importe
Cette solution implique d'avoir un serveur d'image, et d'en connaître l'url. Ce n'est donc pas très pratique. De plus le serveur supportera la charge de l'aide de tous les exemplaires du module une fois distribué. Une solution d'hébergement mutualisé d'images est aussi envisageable, comme imageshack.com par exemple. Une fois uploadé, on n'en parle plus.

Désactiver le mode FriendlyURL :

ModuleHelp.Text : <img border="0" src="images/403-3.gif">
URL de l'aide : localhost/DotNetNuke_2/Default.aspx?tabid=56&ctl=Help&ctlid=204&moduleid=379
FriendlyURL : désactivé
Cette solution implique la désactivation de FriendlyURL... sans commentaire.

Créer son propre contrôle d'aide :
ModuleHelp.Text : <img border="0" src="images/403-3.gif">
URL de l'aide : localhost/DotNetNuke_2/Default.aspx?tabid=56&ctl=Help&ctlid=204&moduleid=379
FriendlyURL : désactivé
Ajouter un contrôle ASCX contenant un asp:litteral dont le texte sera chargé depuis une clef RESX tierce puis filtré via un système de token personnalisé.
Exemple :
Dim toReturn as String = localization.GetString("AideEnImage", me.LocalResourceFile)
toReturn.Replace("[PortalPath]", Request.MapPath(PortalHomeDirectory))
ltAide.Text = toReturn
 
Et d'ajouter un lien vers ce contrôle d'aide via la méthode ModuleActions :
Actions.Add(GetNextActionID, Localization.GetString(Entities.Modules.Actions.ModuleActionType.ModuleHelp, LocalResourceFile), Entities.Modules.Actions.ModuleActionType.ModuleHelp, "", "", EditUrl("Settings"), False, SecurityAccessLevel.View, True, False)
C'est vrai que ceci ajoutera deux bouttons d'aide dans le menu, mais je pense que les utilisateurs utiliseront celui qui se présentera en premier. J'ai tenté de retirer le bouton d'aide présent par défaut mais je n'ai pas réussi sans modifier les DLL Core. Cela se passe dans PortalModuleBase.vb ligne 496. Tant qu'à modifier une DLL Core, autant ajouter son propre système de tokens utilisables dans les resx et utiliser le contrôle d'aide déjà présent plutôt que de recréer un autre contrôle ...

 

Il n'y a donc pas de solution miracle, je te conseille par contre la solution du serveur d'image mutualisé. Pas de bande passante à gérer, en revanche on n'a pas de contrôle sur les images une fois distribuées (elles sont accessibles par tous pour une durée illimitée, et ne sera supprimée que si elles ne sont pas vues pendant 1 mois entier).

Mais peut-être que quelqu'un a une autre solution. (?)

seb

 
Nouveau message
22/08/2007 11:23
 

Il y en a qui n'ont pas de soleil ni de vacances... c'est dur la vie d'étudiants en stage !

Bref, juste pour dire que je ne me suis pas pris la tête au final ! donc le truc, c'est que en local mon IIS est mal configuré et ne me permet pas de revenir à la racine de mon site correctement. J'ai eu des problèmes d'affichage d'images en local alors que sur le serveur de test que j'ai a ma disposition : aucun soucis. Il m'a suffit de mettre mon chemin depuis la racine du site en source d'image ou des url et c'est bon ! ca fonctionne.

Plus précisément, pour répondre à ma question...
J'ai mis mes fichiers de démo dans un dossier que j'ai nommé help, dans le dossier de mon module dans DesktopModules.
Puis, pour mettre des liens dans l'aide ducou, j'ai mis du code html dans la partie ModuleHelp.Text de mon fichier View<NomModule>.ascx.resx.  Dans ce code j'ai mis des liens vers mes pages de demo .htm dont l'url se présente ainsi : href="/DesktopModules/<NomModule>/help/Movie.htm". Et voila, sur mon serveur bien configuré ca fonctionne. 
Plus qu'a mettre un bout de code javascript a la fin de mes pages de démo .htm pour avoir un bouton de retour sur mon site.

Et voilà, mon stage touche à sa fin dans une semaine, je remercie les personnes qui ont prêté attention à mes posts cet été. Je vous souhaites à tous bon courage et bonne continuation ! (moi je vais partir un an en Australie... chercher le soleil) 

 
Précédente
 
Suivante
HomeHomeForums DNNForums DNNDéveloppementDéveloppementDemande astuces pour remplir lDemande astuces pour remplir l'aide d'un module