missing help string [name_help, moodle] 2.0

missing help string [name_help, moodle] 2.0

de Alejandro Michavila Pallarés -
Número de respuestas: 6
En un módulo que estoy desarrollando bajo la version 2.0 me aparece en siguiente mensaje de ayuda en el botón de ayuda correspondiente al campo nombre del formulario:

TODO: missing help string [name_help, moodle]

Sin embargo en el archivo de las cadenas de idiomas tengo lo siguiente:

$string['modulename_help'] = 'Blah blah blah';

El botón está bien añadido:

$mform->setHelpButton('name', array('name', get_string('name_help', 'newmodule')), 'newmodule');

He probado purgando la caché, reiniciando el apache, ejecutando el cron y nada, sin embargo otros pequeños cambios como el nombre del campo si lo detecta:

$mform->addElement('text', 'name', get_string('name', 'modulename'), array('size'=>'20'));

No sé a qué es debido esto, ¿hay alguien que le pase lo mismo?, ¿alguien sabe qué puede ser?. Puede alguien hecharme un cable por favor, muchas gracias de antemano, un saludo.
Promedio de valoraciones: -
En respuesta a Alejandro Michavila Pallarés

Re: missing help string [name_help, moodle] 2.0

de Alejandro Michavila Pallarés -
¿Alguién ha tenido el mismo problema?, porque aún no he conseguido resolverlo.
En respuesta a Alejandro Michavila Pallarés

Re: missing help string [name_help, moodle] 2.0

de Xavier Paz -
Por lo que he podido investigar, la fórmula que intentas usar solo es válida para las cadenas de texto correspondientes al nombre del módulo en singular y plural. En cualquier otro caso, tienes que nombrar específicamente la cadena a la que te refieres.

Me refiero a que aunque tengas esto:
$string['modulename_help'] = 'Blah blah blah';

y después hagas la llamada de la siguiente manera
$mform->setHelpButton('name', array('name', get_string('name_help', 'newmodule')), 'newmodule');

Moodle no sabrá a qué cadena de texto te refieres, pues no separa el module de name_help.Tendrías que usar la denominación completa:
$mform->setHelpButton('name', array('name', get_string('modulename_help', 'newmodule')), 'newmodule');

Yo por lo menos no he encontrado ejemplos de uso como el tuyo a lo largo de Moodle (lo cual no significa que no existan, puede que haya pasado algo por alto)
En respuesta a Xavier Paz

Re: missing help string [name_help, moodle] 2.0

de Alejandro Michavila Pallarés -
Hola Xavier, gracias por tu respuesta.

En realidad tengo esto en mi newmodule/lang/en/newmodule.php:

$string['name_help'] = 'Type the instance short name to be shown.';

Y la llamada a este string en mi newmodule/mod_form.php:

$mform->setHelpButton('name', array('name', get_string('name_help', 'newmodule')), 'newmodule');

Y lo mismo pasa con el resto de cadenas de ayuda para el resto de componentes de mi formulario.

Me pasa algo parecido a esto: MDL-22751.

He consultado la documentación: http://docs.moodle.org/en/Development:Help_strings, pero no consigo que se muestre la ayuda.


En respuesta a Alejandro Michavila Pallarés

Re: missing help string [name_help, moodle] 2.0

de Alejandro Michavila Pallarés -
¿Alguien sabe si este nuevo modelo de ayuda está ya operativo en Moodle 2.0 Preview 4+ (Build: 20100803)?
En respuesta a Alejandro Michavila Pallarés

Re: missing help string [name_help, moodle] 2.0

de Iñaki Arenaza -
Imagen de Desarrolladores Imagen de Desarrolladores de plugins Imagen de Documentadores Imagen de Moderadores Imagen de Moodlers de gran ayuda

Por lo que veo en el código, setHelpButton ha sido declarado obsoleto, y se debe usar addHelpButton en su lugar.

Leyendo la documentación phpdoc de la función veo que se usaría más o menos así:

$mform->setHelpButton('name', 'name', 'newmodule');

El primer parámetro es el nombre del elemento del formulario al que se quiere añadir el icono de ayuda, el segundo es el IDENTIFICADOR de la cadena de ayuda SIN EL SUFIJO '_help' (la función lo añade ella sola) y el tercero es el nombre del módulo.

Es decir, no hay que usar get_string() para conseguir la cadena de texto final, sólo pasarle el indicador de la cadena de ayuda (sin el sufijo).

Para más detalles ver la función addHelpButton() en el fichero lib/formslib.php

P.D. Yo en estos casos suelo echar una ojeada al código de algún módulo estándar para ver como lo hace sonrisa

Saludos. Iñaki.

En respuesta a Iñaki Arenaza

Re: missing help string [name_help, moodle] 2.0

de Alejandro Michavila Pallarés -
Hola Iñaki, muchísimas gracias una vez más.

Funciona perfectamente como tu dices, sólo he tenido que modificar esta linea:

$mform->setHelpButton('name', array('name', get_string('name_help', 'newmodule')), 'tutorship');

Por esta otra, que es la válida:

$mform->addHelpButton('name', 'name', 'newmodule');

Y funciona perfectamente, sólo hay que tener la siguiente linea en el archivo newmodule/lang/en/newmodule.php:

$string['name_help'] = 'Type the instance short name to be shown.';

Un saludo.