Edición por secciones (2.0)

Acabo de hacer las pruebas y parece que los nuevos cambios introducidos para la edición concurrente de secciones funcionan correctamente, a falta de implementar los bloqueos de secciones.

Los cambios son los siguientes…

En la entrada anterior decía:

Por una parte está el problema de las secciones que tienen el mismo nombre. La implementación actual se basa en los nombres de las secciones a la hora de filtrar el contenido de las páginas para las ediciones parciales; si existen dos secciones con el mismo nombre el algoritmo escogerá la primera. Wikimedia (el software que hay debajo de la Wikipedia) asigna identificadores a las cabeceras de las secciones, habrá que echarle un vistazo aunque el código es complejo.

Lo que se ha implementado para resolver esto es un sistema de indentificación mediante nombre y número de sección como identificación de una sección además de añadir un hash del contenido algunas líneas de la misma para distinguir las secciones con el mismo nombre.
Además se ha resuelto el tema de que un usuario puede añadir/eliminar secciones mientras otro está editando alguna otra sección, con un algoritmo que busca cuál es la posición correcta según el contenido de la última versión de la página en la BBDD. Éste algoritmo también tiene en cuenta el caso en que otros usuarios añadan secciones con el mismo nombre de la sección que se está editando, utilizando el hash comentado antes.

Además se han modificado las funciones de parsing de links internos del tipo [[Página#sección]] (scroll) y tipo [[Página##sección]] (visualización parcial) para que muestren, si existen varias secciones con ese nombre, un listado de todas las secciones que hacen matching con el nombre ‘sección’.

Como muestra la siguiente imágen, donde tenemos siete secciones con el nombre “secA” y tres con el nombre “secB”:

multiples_sec

En la imágen salen links internos a la misma página y se muestra la TOC para comprobar que son esas sus secciones, pero pueden ser links internos a otras páginas también.

Además ahora el identificador de la clase XHTML ‘header’ es un entero que corresponde con la posición de la sección en la página. Esto es así porque queremos que la TOC (Table Of Contents) de la página de la wiki puede enlazar a diferentes secciones aunque tengan el mismo nombre.

Otros cambios menores:

  • Ahora sólo se pueden editar secciones desde la página principal de la wiki (como en MediaWiki).
  • Además al modificar una sección se vuelve a la página principal (como en MediaWiki)
  • Se utilizan la función error() de Moodle para mostrar los errores que se puedan producir porque un usuario intente ver una sección que ha cambiado de posición porque se han añadido/quitado secciones de esa página mientras él la veía, o porque intente ver una sección y mientras él veía la página se hayan añadido secciones con el mismo nombre.
Anuncios

Responder

Introduce tus datos o haz clic en un icono para iniciar sesión:

Logo de WordPress.com

Estás comentando usando tu cuenta de WordPress.com. Cerrar sesión / Cambiar )

Imagen de Twitter

Estás comentando usando tu cuenta de Twitter. Cerrar sesión / Cambiar )

Foto de Facebook

Estás comentando usando tu cuenta de Facebook. Cerrar sesión / Cambiar )

Google+ photo

Estás comentando usando tu cuenta de Google+. Cerrar sesión / Cambiar )

Conectando a %s

A %d blogueros les gusta esto: