it-swarm.dev

Sostituzione del nome del sistema nel nuovo messaggio utente

Questo è per Joomla 2.5, anche se sospetto che sia lo stesso per la serie 3.x.

Ho un server seduto dietro un firewall NAT e per questo motivo il vero indirizzo IP del server è un indirizzo 192.168, ma per gli utenti che lo raggiungono accedono ad esso come www.mydomain.com, che è impostato all'esterno indirizzo del firewall (non un indirizzo 192.168).

Quando viene creato un utente, il messaggio predefinito scompare, che include:

This email contains your username and password to log in to http:// 192.168.1.100

Questo indirizzo non è raggiungibile e preferirei che il messaggio fosse:

This email contains your username and password to log in to http://www.mydomain.com

Potrei entrare e modificare il codice sorgente di Joomla per forzare una modifica al messaggio, ma suppongo che ci sia un modo più semplice per risolverlo e sto solo soffrendo di non vedere la foresta perché sono troppo vicino al alberi.

Mi chiedo se sia semplice inserire una voce nella tabella Host o un record PTR nel DNS locale che mapperà 192.168.1.100 su www.mydomain.com.

4
Douglas Pickett

Modifica plugin/utente/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']
);

Sostituisci JUri::root() con http://www.mydomain.com

2
sovainfo

Potresti provare a impostare $ live_site in configuration.php.

3
sovainfo

crea una sostituzione della lingua per "PLG_USER_JOOMLA_NEW_USER_EMAIL_BODY" nell'amministratore della posizione:

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."

Cambia tutto% s di% 1 $ s,% 2 $ s,% 3 $ s,% 4 $ s Lasciando perdere% 2 $ s dovrebbe sopprimere il numero ip

3
sovainfo

Il modo più semplice è modificare il file della lingua che contiene quella voce (hardcodificarlo).

Il file della lingua si trova nella cartella: language (e quindi all'interno della cartella della lingua per ogni lingua installata).

Per i miei siti ottiene il dominio, quindi forse qualcosa non è impostato correttamente nel tuo server.

1
jackJoe

Scopri cosa stava succedendo - grazie per i suggerimenti che mi hanno inviato sulla strada giusta.

In questo caso, il problema era dovuto al fatto che l'amministratore che creava gli account era protetto dallo stesso firewall del server. Il nome per il sistema che è stato inserito nel messaggio è stato creato raccogliendo il valore "HTTP_Host" dall'ambiente di sessione e riflette l'URL con cui ti connetti, che non era un nome ma un indirizzo IP in questa situazione. Se sei dietro al firewall, ottieni il valore dietro il firewall - se sei al di fuori del firewall, ottieni il valore esterno al firewall, motivo per cui questo normalmente fornisce la risposta corretta quando il server si trova in un ambiente ospitato.

Per far sì che questo si comporti correttamente, avrei dovuto impostare un DNS con viste divise, in modo che l'amministratore si connetta sempre a www.mydomain.com. Se sei dietro il firewall, il DNS ti dà l'indirizzo 192.168, se sei fuori dal firewall ricevi l'IP esterno quando il simbolo www.mydomain.com viene risolto in un indirizzo IP.

Quindi, quando il messaggio viene inviato, il corpo del messaggio contiene www.mydomain.com in entrambi i casi.

Per quanto riguarda come sovrascrivere il valore http: // inviato, sì, i suggerimenti per riscrivere il codice nei plugin/user/joomla/joomla.php sono corretti. Tranne nel caso questo - il sito utilizzava l'estensione "Accedi uno" per limitare le sessioni utente simultanee e l'estensione sostituiva il codice Joomla standard con un plug-in proprio, quindi doveva essere modificato in il codice di estensione non è il luogo standard.

Quindi, grazie per tutti i suggerimenti, sarebbe stato molto più difficile raggiungere la risposta senza di loro.

1
Douglas Pickett