2012-03-02 14 views
6

Tengo un problema con la instalación de MediaWiki en una red local. Estoy usando MediaWiki en alemán. Hay varios enlaces de pie de página en mi wiki, que arrojan un error 404. Por ejemplo, en el pie de página hay un enlace Impressum (en inglés: Descargo de responsabilidad). Apunta a *NameOfMyWiki*:Impressum que no existe.Eliminar vínculos de pie de página inexistentes por defecto

Cuando voy a MediaWiki:Disclaimers, aparece una Exención de responsabilidad, es la página que debe estar detrás de *wgSitename*:Impressum. No creo que tenga la intención de señalar el enlace de descargo de responsabilidad al MediaWiki:Disclaimers.

Otro comportamiento que probablemente se base en el mismo problema es que un usuario obtiene un 404 en su propia página de usuario cuando la página de usuario aún está vacía/no creada (haciendo clic en el enlace de la derecha al lado) ajustes). Cuando otro usuario edita la página de usuario del primer usuario, el primer usuario puede acceder y editarla también. Pero no cuando todavía está vacío/no definido.

¿Cómo puedo solucionar eso?

Respuesta

9

El text of the footer links viene de los mensajes de interfaz MediaWiki:Privacy, MediaWiki:Aboutsite y MediaWiki:Disclaimers. Para desactivar uno o más de estos enlaces, configure el texto del enlace correspondiente en un solo guión (-).

Como alternativa, desde MediaWiki 1.17, también puede modificar el pie de página por defining a hook in your LocalSettings.php.

Ps. Para cualquier persona interesada en llegar hasta el origen, el código que maneja estos enlaces está en el método Skin::footerLink(). La práctica de deshabilitar varias características de interfaz configurando el mensaje correspondiente en - es en realidad bastante común (aunque no universal) en MediaWiki; los mensajes completamente en blanco son tratados de forma extraña por razones históricas, por lo que - se usa comúnmente como sustituto de "sin valor".


Editar: Acabo de notar que también estaban pidiendo una segunda pregunta sobre las páginas de usuario. Para responder a esa pregunta mejor, permítanme empezar describiendo cómo MediaWiki debe ser el tratamiento de páginas que no existen:

  • Cuando MediaWiki ve un EnlaceWiki (la mayoría, aunque no necesariamente todos, los enlaces en los menús de navegación son también manejado de la misma manera) apuntando a una página inexistente, crea lo que se conoce como redlink. Estos enlaces tienen un estilo diferente al de los enlaces normales (generalmente son de color rojo, de ahí el nombre) y apuntan a una URL que se ve como like this one, con los parámetros action=edit (convirtiéndolo en un tipo especial de enlace de edición) y redlink=1.

  • Cuando un usuario hace clic en un vínculo, MediaWiki primero comprueba que la página no se ha creado en la media hora, y, si no lo ha sido, que se permite al usuario crear y editar :

    1. Si la página existe, el usuario simplemente se redirige a la URL de vista normal de la página.

    2. Si la página no existe y el usuario no puede crearla, también se redirigen a la URL de vista normal, que luego devuelve un código de estado HTTP 404 y un mensaje que indica que la página no no existe. (Esto es lo que sucederá si hace clic en el enlace "como este" arriba, a menos que sea un administrador en Wikipedia.)

    3. Finalmente, si la página no existe pero el usuario puede crear es, MediaWiki simplemente trata la URL como un enlace de edición normal y muestra el formulario de edición.

Parece que, por alguna razón, los nuevos usuarios hacer clic en el enlace a su propia página de usuario en el wiki están golpeando el caso 2 anterior en lugar del caso esperado 3. Esto podría ser un problema user rights: en particular, debe verificar que los usuarios normales que hayan iniciado sesión (grupo user) en su wiki tengan el permiso createpage.

Si desea permitir que los usuarios normales para crear sólo sus propias páginas de usuario, hay maneras de hacerlo, pero todo lo que sé de implicar o bien la instalación de un extension o escribir su propio getUserPermissionsErrors gancho. Puedo darle algunos ejemplos de cómo hacerlo si lo desea, pero se necesita un poco de codificación.

+0

Muchas gracias por esa respuesta detallada. No es fácil entender el concepto de cómo funciona una wiki (espacios de nombres, enlaces en el pie de página, por ejemplo), cuando proviene de _normal_ CMS como Wordpress. El problema era que en la barra lateral los enlaces no eran enlaces rojos. Tuve que buscar las páginas y crearlas, ya que no se encontraron. Después de eso, funcionó según lo previsto. Acerca de los derechos de usuario: un usuario tiene permiso para crear una página. Lo intentaré con la extensión que mencionaste. – Gchtr

0

Esos enlaces son marcadores de posición que es posible que desee completar. Se proporcionan para que pueda completar fácilmente algunas partes importantes de su nueva wiki.

Consulte http://www.mediawiki.org/wiki/Manual:Footer para obtener una lista completa.

No hay ninguna configuración para deshabilitarlos.

+0

¡Hola, hashar, y bienvenidos a StackOverflow! :) Su respuesta es excelente, pero la última frase es incorrecta: hay _ formas de desactivar estos enlaces, incluso editando MediaWiki: messages. –

+1

¡Gracias! Solo he probado borrar la página, lo cual es obviamente incorrecto, ya que MediaWiki volverá a recibir el mensaje del archivo PHP. Su adición al manual: la página de pie de página es correcta: simplemente agregue un guión - –

+0

Con la ayuda de ambos, ahora entiendo cómo editar estos enlaces. Me tomó mucho tiempo entender que cada texto del enlace está definido en su propia página 'MediaWiki:'. En realidad dice en Manual: Pie de página que debes usar un guión: D – Gchtr

0

El enlace se mencionan por Ilmari Karonen arriba:

Como alternativa, ya que MediaWiki 1.17, también puede modificar el pie de página por defining a hook in your LocalSettings.php.

... muestra cómo agregar enlaces a la lista incorporada de enlaces de pie de página. Lo que NO muestra es cómo eliminar los enlaces de pie de página incorporados existentes, que es la pregunta original.

Resulta que es una simple adición a la solución de enlace a la que se hace referencia. Solo debe descartar los enlaces de pie de página existentes en la matriz de plantillas.

La mayoría de las personas no solo querrá eliminar los enlaces de pie de página incorporados, sino también agregar los propios. En el espíritu de StackOverflow, aquí hay una solución de ejemplo completa que hace ambas cosas (esto es de una Wiki existente ...)

Esto funciona en mediawiki-1.29.2 pero probablemente también funcione en muchas versiones anteriores. Pon este código en su archivo LocalSettings.php (lo pongo en la parte inferior) para eliminar los enlaces de pie de página existentes y añadir su propia:

# Remove all existing footer links and add my own 
$wgHooks['SkinTemplateOutputPageBeforeExec'][] = function($sk, &$tpl) { 

     # IMPORTANT: this is the secret sauce - remove all existing footer links 
     $tpl->data['footerlinks']['places'] = array(); 

     # To add new footer links to local wiki pages: 
     # 
     # 1) You MUST create your new pages in your (Main) namespace first, for example: 
     # 
     #  http://<your-site>/wiki/index.php/About_Us 
     #  http://<your-site>/wiki/index.php/Contact_Us 
     #  http://<your-site>/wiki/index.php/Disclaimer 
     #  http://<your-site>/wiki/index.php/Download 
     #  http://<your-site>/wiki/index.php/Privacy_Policy 
     # 
     # 2) You MUST then create each of these pages in your MediaWiki namespace: 
     # 
     #  http://<your-site>/wiki/index.php/MediaWiki:Aboutpage 
     #    - Insert 1 line, with "About Us" (no quotes) 
     #  http://<your-site>/wiki/index.php/MediaWiki:Contactpage 
     #    - Insert 1 line, with "Contact Us" (no quotes) 
     #  http://<your-site>/wiki/index.php/MediaWiki:Disclaimerpage 
     #    - Insert 1 line, with "Disclaimer" (no quotes) 
     #  http://<your-site>/wiki/index.php/MediaWiki:Downloadpage 
     #    - Insert 1 line, with "Download" (no quotes) 
     #  http://<your-site>/wiki/index.php/MediaWiki:Privacypage 
     #    - Insert 1 line, with "Privacy Policy" (no quotes) 
     # 
     # 3) Add new footer links like this: 

     $tpl->set('aboutpage', $sk->footerLink('aboutpage', 'aboutpage')); 
     $tpl->data['footerlinks']['places'][] = 'aboutpage'; 
     $tpl->set('contactpage', $sk->footerLink('contactpage', 'contactpage')); 
     $tpl->data['footerlinks']['places'][] = 'contactpage'; 
     $tpl->set('disclaimerpage', $sk->footerLink('disclaimerpage', 'disclaimerpage')); 
     $tpl->data['footerlinks']['places'][] = 'disclaimerpage'; 
     $tpl->set('downloadpage', $sk->footerLink('downloadpage', 'downloadpage')); 
     $tpl->data['footerlinks']['places'][] = 'downloadpage'; 
     $tpl->set('privacypage', $sk->footerLink('privacypage', 'privacypage')); 
     $tpl->data['footerlinks']['places'][] = 'privacypage'; 

     return true; 
}; 

IMPORTANTE: No se olvide de seguir las instrucciones y crear su páginas propias y los redireccionamientos de MediaWiki correspondientes, o sus enlaces pueden no mostrarse o pueden estar rotos.

Cuestiones relacionadas