mirror of
https://github.com/MHSanaei/3x-ui.git
synced 2026-11-13 00:25:04 +03:00
feat(panel): add sponsor slots fed from sponsors.sanaei.dev
Monthly sponsor placements need to change without cutting a panel release. Panels now read 3X/sponsors.json from the MHSanaei/sponsors repo (GitHub Pages on sponsors.sanaei.dev) and show active sponsors in four slots: an overview banner, a rotating sidebar card (max three), the login page and a new Sponsors page that also lists open placements. An entry shows only while enable is not false and until is in the future; links must be https and logos are png/webp/jpg by name only. The list is cached for an hour and the last good copy survives upstream failures; logos are proxied through /sponsors/logo/:name with failures cached, so CSP stays 'self' and admin browsers never reach a third party. Admins can hide a slot for 24h. Under XUI_DEBUG the panel reads a sibling ../sponsors/3X checkout so edits can be previewed before push.
This commit is contained in:
@@ -120,6 +120,7 @@
|
||||
"outbounds": "خروجیها",
|
||||
"apiDocs": "مستندات API",
|
||||
"donate": "حمایت مالی",
|
||||
"sponsors": "اسپانسرها",
|
||||
"hosts": "میزبانها",
|
||||
"docs": "مستندات",
|
||||
"openMenu": "باز کردن منو",
|
||||
@@ -2256,6 +2257,27 @@
|
||||
"badTag": "برچسب نامعتبر",
|
||||
"badVlessRoute": "یک عدد بین 0 تا 65535 وارد کنید"
|
||||
}
|
||||
},
|
||||
"sponsors": {
|
||||
"title": "اسپانسرها",
|
||||
"intro": "شرکتهایی که از توسعهی 3X-UI حمایت میکنند. لینکهای اسپانسر در تب جدید باز میشوند.",
|
||||
"become": "اسپانسر شوید",
|
||||
"tag": "اسپانسر",
|
||||
"visit": "مشاهده",
|
||||
"yourBrand": "جای برند شما",
|
||||
"yourBrandText": "شرکت خود را جلوی چشم هزاران ادمین سروری بگذارید که هر روز 3X-UI را باز میکنند.",
|
||||
"placements": "جایگاههای موجود",
|
||||
"placementDashboard": "بنر داشبورد",
|
||||
"placementDashboardDesc": "جایگاه ویژه بالای صفحهی داشبورد، هر بار فقط یک اسپانسر.",
|
||||
"placementSidebar": "کارت سایدبار",
|
||||
"placementSidebarDesc": "در همهی صفحات پنل نمایش داده میشود و بین اسپانسرها چرخش دارد.",
|
||||
"placementLogin": "صفحهی ورود",
|
||||
"placementLoginDesc": "ادمین در هر بار ورود آن را میبیند.",
|
||||
"placementPage": "صفحهی اسپانسرها",
|
||||
"placementPageDesc": "همراه با لوگو، توضیحات و لینک در همین صفحه.",
|
||||
"available": "خالی",
|
||||
"takenUntil": "پر شده تا {date}",
|
||||
"activeCount": "{count} فعال"
|
||||
}
|
||||
},
|
||||
"tgbot": {
|
||||
|
||||
Reference in New Issue
Block a user