46 views
Target Blank
Ddawn

2 subjects, 11 replies

Unread message
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 replies
oneil

0 subject , 15 replies

Unread message
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 subjects, 11 replies

Unread message
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 subjects, 248 replies

Unread message
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 subjects, 11 replies

Unread message
Si je me trompe ça va le faire pour tous les liens du site.

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

32 subjects, 248 replies

Unread message
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 subjects, 875 replies

Contributors
Unread message
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 subjects, 11 replies

Unread message
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 subject , 15 replies

Unread message
Salut,

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

GG :P