it-swarm-vi.com

Ghi đè tên hệ thống trong thông báo người dùng mới

Đây là phiên bản dành cho Joomla 2.5, mặc dù tôi nghi ngờ rằng nó giống với dòng 3.x.

Tôi có một máy chủ ngồi sau tường lửa NAT và do đó, địa chỉ IP thực sự của máy chủ là địa chỉ 192.168, nhưng để người dùng truy cập, họ truy cập nó dưới dạng www.mydomain.com, được đặt ở bên ngoài địa chỉ của tường lửa (không phải là địa chỉ 192.168).

Khi người dùng được tạo, thông báo mặc định sẽ tắt, bao gồm:

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

Địa chỉ này không thể truy cập và tôi muốn có thông báo là:

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

Tôi có thể vào và thay đổi mã nguồn Joomla để buộc thay đổi tin nhắn, nhưng tôi cho rằng có một cách đơn giản hơn để giải quyết vấn đề này và tôi chỉ đau khổ vì không nhìn thấy khu rừng vì tôi quá gần với cây.

Tôi tự hỏi liệu có đơn giản như đặt một mục trong bảng Máy chủ hoặc bản ghi PTR trong DNS cục bộ, sẽ ánh xạ 192.168.1.100 lên www.mydomain.com.

4
Douglas Pickett

Chỉnh sửa plugin/người dùng/j Joomla/j 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']
);

Thay thế JUri::root() bằng http://www.mydomain.com

2
sovainfo

Bạn có thể thử đặt $ live_site trong configure.php.

3
sovainfo

tạo ghi đè ngôn ngữ cho 'PLG_USER_JOOMLA_NEW_USER_EMAIL_BODY' trong quản trị viên vị trí:

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

Thay đổi tất cả% s bằng% 1 $ s,% 2 $ s,% 3 $ s,% 4 $ s Thoát ra% 2 $ s nên chặn số ip

3
sovainfo

Cách đơn giản nhất là chỉnh sửa tệp ngôn ngữ có chứa mục đó (mã hóa cứng).

Tệp ngôn ngữ được đặt trong thư mục: language (và sau đó bên trong thư mục ngôn ngữ cho mỗi ngôn ngữ được cài đặt).

Đối với các trang web của tôi, nó có được tên miền, vì vậy có thể một cái gì đó không được thiết lập chính xác trong máy chủ của bạn.

1
jackJoe

Tìm hiểu những gì đang xảy ra - cảm ơn vì những lời đề nghị đã đưa tôi đi đúng hướng.

Trong trường hợp này, vấn đề là do quản trị viên tạo tài khoản đứng sau cùng một tường lửa với máy chủ. Tên của hệ thống được đặt trong tin nhắn đã được tạo bằng cách chọn giá trị "HTTP_host" từ môi trường phiên và phản ánh URL bạn kết nối - không phải là tên mà là địa chỉ IP trong tình huống này. Nếu bạn đứng sau tường lửa, bạn sẽ nhận được giá trị tường lửa phía sau - nếu bạn ở ngoài tường lửa, bạn sẽ nhận được giá trị bên ngoài tường lửa, đó là lý do tại sao điều này thường đưa ra câu trả lời chính xác khi máy chủ ở trong môi trường được lưu trữ.

Để làm cho điều này hoạt động đúng, tôi nên thiết lập một DNS với các chế độ xem tách - để quản trị viên luôn kết nối với www.mydomain.com. Nếu bạn đứng sau tường lửa, DNS sẽ cung cấp cho bạn địa chỉ 192.168, nếu bạn ở ngoài tường lửa, bạn sẽ nhận được IP bên ngoài khi ký hiệu www.mydomain.com được phân giải thành địa chỉ IP.

Sau đó, khi tin nhắn được gửi đi, phần thân của tin nhắn chứa www.mydomain.com trong cả hai trường hợp.

Về cách ghi đè giá trị http: // được gửi đi, vâng, các đề xuất về cách viết lại mã trong plugin/user/j Joomla/j Joomla.php là chính xác. Ngoại trừ trong this case - trang web đang sử dụng tiện ích mở rộng "Đăng nhập một" để giới hạn các phiên người dùng đồng thời và tiện ích mở rộng đã thay thế mã Joomla tiêu chuẩn bằng một plugin của riêng họ, do đó cần phải thay đổi trong mã mở rộng không phải là nơi tiêu chuẩn.

Vì vậy, cảm ơn tất cả các lời đề nghị, sẽ khó hơn rất nhiều để đạt được câu trả lời mà không có chúng.

1
Douglas Pickett