46 vues
Target Blank
Ddawn

2 sujets, 11 réponses

Message non lu
Bonjour,

Je trouve qu'il serait intéressant que tous les liens placé dans le forum ou les news qui envoie vers un autre site ai un target blank.
Quel fichier je peux modifier pour rajouter cette fonctionnalités?

Merci
4 participants
8 réponses
oneil

0 sujet, 15 réponses

Message non lu
Bonjour,

Moi je n'approuves pas du tout désolé...

Je suis d'accord pour le menu de navigation mais pas plus, opinion personnel et préférence personnel.

Pour ajouter un target blank aux articles sur la page d'accueil il faut que tu ouvre le fichier panel.php disponible dans neofrag/classes.

Par défaut la ligne 36 contient :

'.(!empty($this->title) ? '<div class="panel-heading"><h3 class="panel-title">'.(!empty($this->url) ? '<a href="'.url($this->url).'">' : '').(!empty($this->icon) ? icon($this->icon).' ' : '').$this->title.(!empty($this->url) ? '</a>' : '').'</h3></div>' : '').'

Après modification elle devrait être comme ça :

'.(!empty($this->title) ? '<div class="panel-heading"><h3 class="panel-title">'.(!empty($this->url) ? '<a target="_blank" href="'.url($this->url).'">' : '').(!empty($this->icon) ? icon($this->icon).' ' : '').$this->title.(!empty($this->url) ? '</a>' : '').'</h3></div>' : '').'

Comme tu peux le constater dans la balise "a" j'ai ajouter le target. Cependant, si tu faire de même pour tous les autres liens comme "Lire la suite" ou bien les liens additionnels dans le menu ou tout autres il faut faire la même opération sur chaque balise <a> ...

Pour faire une recherche très rapide, je ne sais pas avec quel IDE tu fonctionne mais avec "ctrl + maj + f" tu peux faire une recherche dans tout ton projet, donc pour savoir ou se trouve le fichier que je viens de modifier j'ai effectué une recherche sur la classe "panel-title" qui correspond au titre de l'article.

Si t'a besoin d'un coup de main n'hésite pas à poser ta question.
Ddawn

2 sujets, 11 réponses

Message non lu
Salut, merci de la réponse. je ne pensait pas au liens interne au sites (titre de news etc), je n'approuve pas non plus le fait d'ouvrir un onglet différent pour chaque page du site...

Je pensais aux liens ajoutés dans un post forum par les membres ou une news par mes offis.

Je souhaite surtout modifier le comportement de l'éditeur de texte front et admin pour qu'à chaque fois que l'ont utilise la balise link cela rajoute un target blank.
c'est surement plus clair comme ça :)

Edit : j'utilise sublimeText 3, ce n;est pas un IDE mais pour du front en web c'est suffisant je pense. Si tu as d'autres solutions meilleures sur Mac, je prends.
Blober

32 sujets, 248 réponses

Staff
Message non lu
Tu peux le faire en javascript :

<script type="text/javascript">
window.onload = function(){
var anchors = document.getElementsByTagName('a');
for (var i=0; i<anchors.length; i++){
if (anchors[i].hostname != window.location.hostname) {
anchors[i].setAttribute('target', '_blank');
}
}
}
</script>

Il te suffit de rajouter se code juste avant la balise </body> dans le fichier default.tpl.php dans le dossier root/neofrag/theme/views/
End User Support

rules make masters and masters make rules


https://discord.gg/btbAZU6 - Rejoignez nous sur le Discord de NeoFrag!
Ddawn

2 sujets, 11 réponses

Message non lu
Si je me trompe ça va le faire pour tous les liens du site.

Mais merci :) je ne connaissais pas setAttributes :)
Blober

32 sujets, 248 réponses

Staff
Message non lu
Ca va faire juste pour les liens exterieurs au site.
End User Support

rules make masters and masters make rules


https://discord.gg/btbAZU6 - Rejoignez nous sur le Discord de NeoFrag!
eResnova

17 sujets, 875 réponses

Contributeurs Staff
Message non lu
Bonjour,

Pour ajouter un target blank aux liens de l'éditeur, il faut modifier le fichier ./neofrag/libraries/bbcode.php ligne 31 et 32 :

'\[url\](.*?)\[/url\]' => '<a href="\1" target="_blank">\1</a>',
'\[url=(.*?)\](.*?)\[/url\]' => '<a href="\1" target="_blank">\2</a>',
Ddawn

2 sujets, 11 réponses

Message non lu
oki merci eResnova,

@Démator, en effet je viens de voir la condition. Mais je préfère la solution d'eResnova qui est plus propre que de rajouter du JS. Mais merci pour ta réponse.


Edit: Ok ça fonctionne bien, mais j'ai essayé de le faire en overrides en créant mon fichier comme ceci, à la racine de l'hébergeur : overrides/neofrag/libraries/bbcode.php <-- modif dans ce fichier qui est le bbcode.php original copié puis modifié et la ça ne prend pas. On ne peux pas intervenir dans le dossier neofrag en overrides?
oneil

0 sujet, 15 réponses

Message non lu
Salut,

Ah oui bien vue Démator j'y avais même pas pensé !!!

GG :P