mirror of
https://github.com/MHSanaei/3x-ui.git
synced 2026-11-15 17:45:03 +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": "Salidas",
|
||||
"apiDocs": "Documentación de la API",
|
||||
"donate": "Donar",
|
||||
"sponsors": "Patrocinadores",
|
||||
"hosts": "Hosts",
|
||||
"docs": "Documentación",
|
||||
"openMenu": "Abrir menú",
|
||||
@@ -2256,6 +2257,27 @@
|
||||
"badTag": "Etiqueta no válida",
|
||||
"badVlessRoute": "Introduce un único número entre 0 y 65535"
|
||||
}
|
||||
},
|
||||
"sponsors": {
|
||||
"title": "Patrocinadores",
|
||||
"intro": "Empresas que apoyan el desarrollo de 3X-UI. Los enlaces patrocinados se abren en una pestaña nueva.",
|
||||
"become": "Hazte patrocinador",
|
||||
"tag": "Patrocinador",
|
||||
"visit": "Visitar",
|
||||
"yourBrand": "Tu marca aquí",
|
||||
"yourBrandText": "Muestra tu empresa a miles de administradores de servidores que abren 3X-UI cada día.",
|
||||
"placements": "Espacios disponibles",
|
||||
"placementDashboard": "Banner del panel",
|
||||
"placementDashboardDesc": "Espacio premium en la parte superior del panel, un patrocinador a la vez.",
|
||||
"placementSidebar": "Tarjeta lateral",
|
||||
"placementSidebarDesc": "Se muestra en todas las páginas del panel, rotando entre patrocinadores.",
|
||||
"placementLogin": "Página de inicio de sesión",
|
||||
"placementLoginDesc": "La ve el administrador en cada inicio de sesión.",
|
||||
"placementPage": "Página de patrocinadores",
|
||||
"placementPageDesc": "Aparece aquí con logo, descripción y enlace.",
|
||||
"available": "Disponible",
|
||||
"takenUntil": "Ocupado hasta {date}",
|
||||
"activeCount": "{count} activos"
|
||||
}
|
||||
},
|
||||
"tgbot": {
|
||||
|
||||
Reference in New Issue
Block a user