Ceci est pour Joomla 2.5, bien que je suspecte que ce soit la même chose pour la série 3.x.
J'ai un serveur assis derrière un pare-feu NAT-ing et, à cause de cela, la véritable adresse IP du serveur est une adresse 192.168, mais pour y accéder, les utilisateurs y accèdent en tant que www.mydomain.com, qui est défini à l'extérieur. adresse du pare-feu (pas une adresse 192.168).
Lorsqu'un utilisateur est créé, le message par défaut disparaît, ce qui inclut:
This email contains your username and password to log in to http:// 192.168.1.100
Cette adresse n'est pas accessible et je préférerais que le message soit:
This email contains your username and password to log in to http://www.mydomain.com
Je pourrais entrer et modifier le code source de Joomla pour forcer une modification du message, mais je suppose qu'il existe un moyen plus simple de résoudre ce problème et que je souffre simplement de ne pas voir la forêt car je suis trop proche de la des arbres.
Je me demande s’il s’agit simplement d’ajouter une entrée dans la table Host, ou un enregistrement PTR dans le DNS local, qui mappera 192.168.1.100 sur www.mondomaine.com.
Éditez les plugins/utilisateur/joomla/joomla.php:
$emailBody = JText::sprintf(
'PLG_USER_JOOMLA_NEW_USER_EMAIL_BODY',
$user['name'],
$this->app->get('sitename'),
JUri::root(),
$user['username'],
$user['password_clear']
);
Remplacez JUri::root()
par http://www.mydomain.com
Vous pouvez essayer de définir $ live_site dans configuration.php.
créer un remplacement de langue pour 'PLG_USER_JOOMLA_NEW_USER_EMAIL_BODY' dans l'administrateur de site:
PLG_USER_JOOMLA_NEW_USER_EMAIL_BODY="Hello %s,\n\n\nYou have been added as a User to HTTP://www.mydomain.com (%s) by an Administrator.\n\nThis email contains your username and password to log in to %s\n\nUsername: %s\nPassword: %s\n\n\nPlease do not respond to this message as it is automatically generated and is for information purposes only."
Modifier tous les% s par% 1 $ s,% 2 $ s,% 3 $ s,% 4 $ s. Le fait de laisser% 2 $ s devrait supprimer le numéro IP
Le moyen le plus simple consiste à éditer le fichier de langue contenant cette entrée (le coder en dur).
Le fichier de langue se trouve dans le dossier: language
(et ensuite dans le dossier de langue de chaque langue installée).
Pour mes sites, il obtient le domaine, alors peut-être que quelque chose n'est pas correctement configuré sur votre serveur.
Découvrez ce qui se passait - merci pour les suggestions qui m'ont envoyé dans la bonne voie.
Dans ce cas, le problème était dû au fait que l’administrateur créant les comptes était protégé par le même pare-feu que le serveur. Le nom du système qui a été placé dans le message a été créé en sélectionnant la valeur "HTTP_Host" dans l'environnement de session et reflète l'URL avec laquelle vous vous connectez - ce qui n'était pas un nom, mais une adresse IP dans cette situation. Si vous êtes derrière le pare-feu, vous obtenez la valeur derrière le pare-feu. Si vous êtes à l'extérieur du pare-feu, vous obtenez l'extérieur du pare-feu. C'est pourquoi il donne normalement la réponse correcte lorsque le serveur est dans un environnement hébergé.
Pour que cela se comporte correctement, j'aurais dû configurer un DNS avec des vues divisées afin que l'administrateur se connecte toujours à www.mondomaine.com. Si vous êtes derrière le pare-feu, le DNS vous donne l'adresse 192.168. Si vous êtes hors du pare-feu, vous recevez l'adresse IP externe lorsque le symbole www.mondomaine.com est résolu en une adresse IP.
Ensuite, lorsque le message est envoyé, le corps du message contient www.mondomaine.com dans les deux cas.
En ce qui concerne la façon de remplacer la valeur http: // envoyée, oui, les suggestions concernant la réécriture du code dans plugins/user/joomla/joomla.php sont correctes. Sauf dans le cas this - le site utilisait l'extension "Login One" pour limiter les sessions utilisateur simultanées. Cette extension a remplacé le code standard Joomla par un plugin qui lui est propre. le code d'extension n'est pas l'endroit standard.
Donc, merci pour toutes les suggestions, il aurait été beaucoup plus difficile d’obtenir la réponse sans elles.