Ajout d'un lien sur bandeau supérieur vers page d'accueil


#1

Bonjour à toutes et à tous,
Je cherche à personnaliser l’export html d’un cas créé avec Topaze 1.5.
Je manipule déjà pas mal le CSS et dans Scenari Styler pour créer ma propre charte graphique, mais ce dont j’ai besoin est différent : dans le bandeau supérieur j’ai un logo (paramètres gérés par le skin). Je souhaiterais associer à ce logo un lien vers la page d’accueil du cas, au pire vers l’URL publique où sera posé l’export, ce qui reviendrait au même.
Je ne parviens pas à trouver la méthode pour activer une telle fonction. Auriez-vous des idées ?
Je vous remercie d’avance,
Cyril


#2

Bonjour,

Oui, en JS ! Il vous suffit de changer la valeur de l’URL quand la page sera totalement chargée. C’est assez facile donc je vous laisse chercher le code.

Il y a une fonction scOnLoads qui n’est pas documentée donc si un core dev passe par là il pourra vous indiquer le moyen de vous en servir sinon vous faîtes comme moi vous écrivez un manager d’événements pour gérer le (on)Load de votre bout de code JS.

A+

Xa


#3

Merci beaucoup pour cette réponse. Malheureusement je ne maîtrise pas le JS… donc à part coller un script dont je pourrai comprendre le fonctionnement …

Vous dites “changer la valeur de l’URL” mais où cette info se situe-t-elle ? dans quel fichier ? skin.js ?

A suivre donc,
Cyril


#4

Bonjour,

Je vous retourne la question parce qu’à moins de dégainer une boule de cristal personne ne sera capable de vous aider sans VOIR ce que vous essayez de faire.

Il semble que vous connaissez un peu le HTML et le CSS, dans votre navigateur lorsque vous visionnez votre génération, faites un clic droit et regardez d’un peu plus prés le code source de la page.

Et si vous voulez être aidé, je vous propose de mettre en ligne une génération ou mieux votre habillage graphique et de revenir poser votre question avec les informations concernant votre environnement de développement, les versions des logiciels scenari, etc…

A travers le cristal, je vois au moins trois manières de faire ce que vous voulez :

  • injecter du code JS dans un item .mWeb entre 2 balises script, le changement de l’url se fera en même temps que le chargement de la page;
  • faire une fonction anonyme qui se lancera au chargement de skin.js et qui changera la valeur de l’URL
  • faire une fonction nommée qui pourra être chargée par un event manager pour réaliser la même chose.

mais sans le code source ça restera de l’art divinatoire !

Cdt,

Xa

PS: je vous propose aussi la lecture du texte suivant :gift: XyProblem:santa:


#5

Bonjour
Pour l’utilisation de scOnLoads, dans le skin.js on peut faire ça par exemple :

scOnLoads[scOnLoads.length] = {
    onLoad : function() {
        // Si l'id du logo est logo et qu'il s'agit d'un tag a par exemple
        document.querySelector("#logo").href = "https://..."
    }
}

Cordialement,
Nicolas


#6

Merci à @nicolas.boyer ( +1 like :gift:)

En gardant le même exemple, la méthode document.querySelector() est très bien et plus “puissante” donc je rajouterai juste une alternative sous forme de fonction anonyme avec document.getElementById():

(function(){
	document.getElementById("logo").href= "https://..."
})();

Dans ce cas, il peut y avoir un gain de performance entre les deux méthodes en faveur de .getElement et un support plus large mais ça devient marginal - qui se sert encore de IE6, 7 ou 8 :nauseated_face: -

Pour les curieux 2 ref. :

En espérant que l’OP reviendra nous dire où il en est :wink:

Cdt,

Xa