> For the complete documentation index, see [llms.txt](https://olab4.gitbook.io/help/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://olab4.gitbook.io/help/olab4-help-es/basic-topics/objects.md).

# Objetos

## Resumen

En OLab4, hemos introducido el concepto de Objetos con Ámbito (Scoped Objects), con la idea de hacer el proceso de creación más eficiente. Al hacer que los Objetos sean reutilizables y compartibles entre Mapas, el autor tiene que dedicar menos tiempo a reinventar la rueda o a hacer múltiples copias del mismo elemento. Vea abajo para más información sobre [Ámbito](#scope_for_objects). <br>

## Preguntas

El objeto más común que el autor usará en sus diseños de mapa es la Pregunta. OLab4 admite muchos tipos diferentes de Preguntas, algunos de los cuales son intercambiables. El autor puede crear o editar Preguntas usando el Editor de Preguntas. En el menú superior del Diseñador, Objetos, puede seleccionar Preguntas desde el menú desplegable.&#x20;

La lista de Preguntas se puede buscar, al igual que la lista de Mapas.&#x20;

La Descripción de la Pregunta permite al autor hacer notas sobre el propósito de esta pregunta: esto puede ayudar con la reutilización. El Enunciado de la Pregunta es como la etiqueta para la pregunta.\
![](/files/a2653cce407137becdc3af05a14a9133e440d8a2)

En esta captura de pantalla, podemos ver que el autor está buscando la palabra 'test'. Puede seleccionar una Pregunta para editarla. O puede crear una nueva Pregunta usando el gran botón azul en la esquina superior derecha.&#x20;

La mayoría de las cosas que edita en el Editor de Preguntas son bastante autoexplicativas, así que nos hemos centrado aquí en describir los elementos notables para cada tipo de pregunta.&#x20;

### Texto de una sola línea

El validador ayuda a asegurarse de que los datos introducidos se ajustan a un formato específico, como dirección de correo electrónico o número de teléfono. <br>

Cuando el usuario presiona Enter, el contenido de ese campo se almacena.&#x20;

### Texto de varias líneas

Esto permite al usuario introducir mucho más texto. Aunque el autor puede editar el tamaño del cuadro de entrada, el usuario puede ampliar este cuadro durante el modo de reproducción.&#x20;

### Elección única

También conocidos como 'botones de opción', el usuario solo puede elegir una de las opciones. El autor puede crear tantas opciones como desee. Se puede adjuntar un Contador a la Pregunta.&#x20;

#### Opciones de Elección única

* Respuesta: el texto que indica cómo respondes con esa opción
* Correcto: si el usuario debe ver una pista sobre si la respuesta es verdadera
* Retroalimentación: una pequeña ventana emergente de texto con más pistas
* Puntuación: aplicar una puntuación positiva o negativa a un Contador. (Recuerde seleccionar el Contador)

### Elección múltiple

También conocidas como casillas de verificación, el usuario puede seleccionar tantas de las opciones como desee. Por lo demás, son idénticas a las preguntas de Elección única, con las mismas opciones.&#x20;

### Concordancia de guion (Script Concordance)

Estas son en realidad un tipo especial de pregunta de Elección única. Normalmente tienen 5 opciones, pero esto no es obligatorio. Su diseño es en gran medida el mismo que el de una pregunta de Elección única y aparecen de forma similar para el usuario durante el modo de reproducción. <br>

Se puntúan de forma diferente en los informes de sesión. Esto se está utilizando poco y puede quedar obsoleto en versiones futuras.&#x20;

### &#x20;Deslizador

Hay varios estilos de deslizadores. Se puede adjuntar un Contador a la pregunta. Las puntuaciones de los Contadores y los números del deslizador no son idénticos.&#x20;

### Arrastrar y soltar

Esta es una matriz vertical de respuestas que el usuario puede arrastrar para ordenar de nuevo usando el ratón. No existe un método estándar para puntuar la corrección de las respuestas.&#x20;

### Juicio situacional

Esto es realmente un tipo especial de pregunta de Arrastrar y soltar. Normalmente tienen 5 opciones, pero esto no es obligatorio. Su diseño es en gran medida el mismo que el de una pregunta de Arrastrar y soltar y aparecen de forma similar para el usuario durante el modo de reproducción. <br>

Se puntúan de forma diferente en los informes de sesión. Esto se está utilizando poco y puede quedar obsoleto en versiones futuras.&#x20;

### Texto enriquecido

Este es un tipo especial de pregunta de texto de varias líneas, que permite al usuario incluir formato de texto enriquecido en la respuesta. Pueden poner el texto en negrita, subrayado, cursiva, etc.&#x20;

### Acumulativa

{% hint style="info" %}
Este tipo de pregunta quedará obsoleto. Se usó muy poco
{% endhint %}

### Chat

{% hint style="info" %}
Este tipo de pregunta quedará obsoleto. Se usó muy poco. Puede ser remodelada como una pregunta tipo Pista.&#x20;
{% endhint %}

### Cuadrículas

{% hint style="info" %}
Este tipo de pregunta ha sido aplazado por el momento, a la espera de más financiación
{% endhint %}

## Contadores

Estos pueden considerarse como variables, en términos de programación. Normalmente se usan para rastrear el progreso o el rendimiento del usuario, pero también pueden usarse para controlar el flujo de un escenario o mapa.&#x20;

El valor de un Contador puede establecerse de varias maneras diferentes y puede ser de tres tipos:

* Entero
* Cadena
* Valor de punto flotante

A OLab4 no le importa qué tipo use, pero obtendrá un comportamiento impredecible si cambia entre tipos dentro de un mismo Contador. <br>

Puede mostrar todos los valores de los Contadores de un Nodo insertando el shortcode \[\[COUNTERS]] en el texto del Nodo o en el Tema de ese Mapa. <br>

![Editor de Nodo mostrando un único shortcode de Contador](/files/3cf73fef59df49a1dd8084a0cb6a4fc1cb831d34)

![Vea el valor del Contador mostrado en el centro del Nodo](/files/c9a5e709242c33a3a5a9fbead18a6ec4678fde35)

Puede mostrar el valor de un único Contador en cualquier lugar de un Nodo insertando el shortcode \[\[CR:nombre]] o \[\[CR:nnn]] (donde nombre es el nombre del Contador o nnn es el número de ID del Contador).&#x20;

### Cuadrícula de Contadores

Este es el método más simple para modificar el valor de un Contador. Durante el modo de reproducción, cuando el usuario visita el Nodo, el valor del Contador se altera según la cuadrícula.&#x20;

{% hint style="warning" %}
Esto se perdió en la transición de OLab 4.0 a 4.5: lo recuperaremos cuando tengamos la oportunidad.&#x20;
{% endhint %}

![Cuadrícula de Contadores que muestra cómo cambian los valores al pasar de Nodo a Nodo](/files/3ae5637eae8d664c6405c2c72157cd7f531536ad)

Puede establecer un valor, usando el signo '='.

Puede incrementar un valor entero o de punto flotante, usando el signo '+'.

Puede decrementar un valor entero o de punto flotante, usando el signo '-'.

Puede establecer si un Contador se muestra en el área \[\[COUNTERS]] cuando ese Nodo se reproduce.&#x20;

### Contadores y Preguntas

Puede adjuntar un Contador a una Pregunta. El valor del Contador se altera cuando el usuario responde a la pregunta durante el modo de reproducción. La Puntuación de la Respuesta establece cómo se altera el Contador.&#x20;

{% hint style="info" %}
Por el momento solo puede usar valores enteros en system\_question\_responses.score
{% endhint %}

### Contadores y Scripts

El valor de un Contador también puede ser alterado por un Objeto Script. Un Script también puede monitorear el valor de un Contador y actuar sobre él. <br>

Los Scripts han reemplazado las Reglas que usábamos en OLab3.&#x20;

## Archivos multimedia

Puede incluir archivos y medios en un mapa y mostrarlos en cualquier Nodo. Por supuesto, también puede insertar un enlace a un archivo externo en otro servidor. La ventaja de usar archivos internos es que tiene más control sobre su disponibilidad y formato, pero también hay inconvenientes como derechos de autor, tamaños de archivo grandes y tiempos de visualización.&#x20;

Puede encontrar más detalles sobre esto en <https://olab4.net/working-with-images-in-olab/> y también tenemos un caso llamado 'Picture this' en nuestros servidores OLab que explora cuestiones más profundas.&#x20;

Los medios y archivos pueden mostrarse o descargarse por el usuario durante el modo de reproducción. Habitualmente un archivo multimedia simplemente se mostrará si el shortcode \[\[MR:nombre]] se coloca en el texto de un Nodo. El Selector de Objetos en el lienzo del Diseñador es la forma más fácil de hacer esto.&#x20;

### Atributos de archivo multimedia

El Editor de Archivos necesita algo de limpieza.&#x20;

<figure><img src="/files/66acd70a1e91e3609beb25a1a7e9b652b29cb92f" alt=""><figcaption></figcaption></figure>

* Ignore los primeros 4 campos.
* **Nombre** -- este es el identificador conocido como 'nombre amigable'. Debe aludir a su propósito
* Descripción: una nota opcional más larga sobre el propósito o contenido previsto
* Derechos de autor: normalmente © o Creative Commons
* Haga clic en el botón \[SELECCIONAR ARCHIVO] para subir desde su ordenador
* El Nombre de Archivo se insertará cuando esto se haga
* Seleccione 'Mapas' para el nivel de ámbito
* Haga clic en Nombre del Objeto e inserte el número o nombre del mapa que está editando.&#x20;
* Haga clic en el botón \[CREAR] en la parte superior derecha para guardar sus cambios.&#x20;

Tenga en cuenta que no puede editar directamente las imágenes dentro de OLab4. Aunque esto era posible anteriormente en OLab3, descubrimos que ya existen muchas herramientas excelentes que puede usar para modificar imágenes. Para mantener OLab4 simple, omitimos esta funcionalidad.&#x20;

## Constantes

Estas pueden usarse para insertar un fragmento de texto, usando el shortcode \[\[CONST:nombre]]. También puede añadir una imagen simple junto con este texto, como un icono. Para imágenes más grandes, use la [Archivos](#media-files) opción de arriba.&#x20;

&#x20;Son como una macro o atajo o texto estándar: el autor asigna un valor a la Constante durante el modo de diseño. El valor no cambia en el modo de reproducción.&#x20;

#### Atributos de la Constante

* Nombre: este es el identificador conocido como 'nombre amigable'. Debe aludir a su propósito
* ID: este es el número de ID interno ('nnn' en los shortcodes anteriores)
* Descripción: una nota un poco más larga sobre el propósito o contenido previsto
* Valor: esto debe estar formateado en HTML. Puede incluir una imagen interna. Se **no** puede contener shortcodes a otros Objetos de OLab.&#x20;

{% hint style="danger" %}
Tenga en cuenta que puede necesitar insertar manualmente el marcado HTML correcto aquí. Esto aún no se maneja automáticamente.&#x20;
{% endhint %}

## Ámbito para Objetos <a href="#scope_for_objects" id="scope_for_objects"></a>

Todos los tipos de objetos anteriores (y algunos otros) pueden asignarse a un ámbito. El propósito de esto es promover el concepto de objetos reutilizables. Esto se podía hacer en cierta medida en OLab3, pero era un poco chapucero. En OLab4, esto ahora es bastante potente.&#x20;

{% hint style="info" %}
Se ha discutido sobre tener ámbito a nivel de Nodo. Por el momento, esto está sin decidir.&#x20;
{% endhint %}

### Ámbito a nivel de Mapa

Un objeto que está adjunto a un Mapa como su ámbito solo se puede usar dentro de ese Mapa. Puede reutilizarse muchas veces dentro de ese Mapa, a través de muchos Nodos diferentes. Si un objeto se usa más de una vez en el mismo Nodo, el comportamiento puede ser impredecible.

### Ámbito a nivel de Curso

Un [Curso](/help/olab4-help-es/advanced-topics/courses.md) es un conjunto de Mapas que está conectado, tanto lógicamente como a un conjunto definido de usuarios. Un objeto que está adjunto a un Curso como su ámbito solo se puede usar dentro de ese Curso. Puede reutilizarse muchas veces dentro de ese Curso, a través de muchos Mapas y Nodos diferentes.

### Ámbito a nivel de Servidor

Un objeto que está adjunto a un Servidor como su ámbito solo se puede usar dentro de ese Servidor. Puede reutilizarse muchas veces dentro de ese Servidor, a través de muchos Mapas y Cursos diferentes.&#x20;

Para objetos realmente populares, se puede ahorrar mucho tiempo creando una biblioteca de tales objetos que los autores puedan reutilizar una y otra vez.&#x20;

Los Contadores a nivel de Servidor no necesariamente se reinician para cada mapa. Sus valores también pueden ser alterados por más de un mapa al mismo tiempo. Esto permite al autor crear Mapas que interactúan entre sí usando un Contador común. Véase ejemplo en <https://olab.ca/olab4-maps-interact-through-server-level-counters/>

### Ámbito global

Un objeto que se establece como Global en ámbito es compartido por todos los servidores OLab4. Esto parece que sería el ámbito más común, más potente y más reutilizable. Pero también tiene muchas limitaciones.&#x20;

Usaremos un repositorio en GitHub para gestionar el control de versiones de los objetos con Ámbito Global. También podríamos implementar un LRS central para gestionar Contadores Globales, si se presenta un buen caso de uso para ellos.&#x20;

En general, anticipamos que habrá unos pocos archivos multimedia (como archivos de ayuda) que tengan ámbito Global y posiblemente muy pocas Preguntas. El ámbito a nivel de Servidor será mucho más utilizado.&#x20;

### Roles y Ámbito

Existe una jerarquía de creación en cuanto a quién puede crear y editar objetos en varios niveles de ámbito.&#x20;

* Los objetos a nivel de Mapa pueden ser editados por un autor que tenga acceso a ese Mapa
* Los objetos a nivel de Curso pueden ser editados por un director que tenga acceso a ese Curso
* Los objetos a nivel de Servidor solo pueden ser editados por un administrador que tenga acceso a ese Servidor
* Los objetos a nivel Global solo pueden ser editados por un desarrollador con permisos globales

Se pueden hacer copias locales de objetos con ámbito de nivel superior. Por ejemplo, un autor de mapa puede hacer una copia de un objeto a nivel de servidor y luego modificarlo para usarlo dentro de ese ámbito a nivel de mapa. Tales ediciones no se propagan de vuelta al objeto padre, ni del padre al objeto hijo después de que se haya creado.&#x20;

## Nombrado de Objetos

En OLab4, introdujimos nombres para los Objetos, en lugar del sistema de numeración utilizado por OLab3. Los objetos que se importan desde mapas de OLab3 seguirán teniendo números como nombres: animamos a los autores a cambiar estos nombres por otros significativos.&#x20;

Hay algunas cosas a tener en cuenta al nombrar sus Objetos:

1. OLab no verifica nombres de Objetos duplicados: depende del autor resolver esto. Usar el ámbito a nivel de mapa ayudará hasta cierto punto para que no tenga que comprobar todos los posibles nombres duplicados. Pedimos a los autores que tengan especial cuidado cuando están creando Objetos con Ámbito a nivel de Servidor.&#x20;
2. Evite el uso de estos caracteres en el nombre de un Objeto: ()\&#$%\_@!\*&#x20;
   1. Se permiten espacios
   2. Tenga en cuenta que el guion bajo no está permitido
   3. Esta lista no está completamente probada. Por ejemplo, también puede haber problemas con los dos puntos
3. Si está haciendo referencia a un **interno** Objeto como MapName, nodeCount, etc., entonces debe usar comillas dobles alrededor del nombre del objeto, p. ej. \[\[CR:"nodeCount"]]. Estos nombres internos también distinguen entre mayúsculas y minúsculas.&#x20;
