miércoles, 6 de marzo de 2019

MySQL en SQL Developer




En nuestro caso interesa el JDBC Driver for MySQL

Se escoge el sistema operativo en el que se utilizará. Escogí para instalar en mi MAC: Platform Independent

Descargué el archivo ZIP en el que se encuentra el .jar

  • Segundo, añadir el archivo en SQL developer->Preferencias
Bases de datos->Controladores JDBC de Terceros
Y se agrega el archivo .jar




Al intentar utilizar MySQL con SQL developer obtuve un error:

«Status : Failure - The server time zone value 'AEST' is unrecognized or represents more than one time zone. You must configure either the server or JDBC driver (via the serverTimezone configuration property) to use a more specific time zone value if you want to utilize time zone support»

Lo solucioné añadiendo al archivo de configuración my.ini en la instalación de MySQL después de [mysqld] la línea.

default-time-zone='+01:00'

Guardé y reinicié el servicio.

El archivo my.ini que utilicé fue el de: C:\ProgramData\MySQL\MySQL Server 5.7\my.ini al tener la instalación en un Windows.

Otras rutas en las que se puede encontrar o crear el archivo de configuración:
C:\Windows\my.ini C:\Windows\my.cnf C:\my.ini C:\my.cnf C:\Program Files\MySQL\MySQL Server 5.7\my.ini C:\Program Files\MySQL\MySQL Server 5.7\my.cnf

lunes, 25 de febrero de 2019

Crear una VPN con Ubuntu server y OpenVPN

Resultado de imagen de open vpn
Una manera rápida de hacerlo es utilizando los scripts desarrollados en:

https://github.com/angristan/openvpn-install

Como bien lo describe, lo primero es descargar el ejecutable y darle permisos de ejecución

curl -O https://raw.githubusercontent.com/Angristan/openvpn-install/master/openvpn-install.sh
chmod +x openvpn-install.sh

Ejecutarlo

./openvpn-install.sh

La ejecución inicia un entorno guiado vía terminal en la que permite:
  • Instalar la VPN
  • Agregar un cliente
  • Eliminar un cliente
  • Desinstalar la VPN
Lo probé en:
Ubuntu server 16.04

domingo, 24 de febrero de 2019

Montar un disco para compartir con Samba en Ubuntu server

Resultado de imagen de share "files" samba

Formatear disco

Consultar particiones y sistemas de fichero
sudo lsblk -fm

Otra forma de consultar los discos y particiones
sudo fdisk -l

Para gestionar particiones se indica el disco y se opera con las opciones dadas («m» para ver opciones)
sudo fdisk /dev/sdb

Para crear una partición se presiona «d» y se sigue la guía.


Formatear la partición
sudo mkfs.ext4 /deb/sdb1

*Tienen que estar desmontado. La primera vez que se haga lo estará. Pero si se ha montado y se quiere desmontar un disco:
sudo umount /dev/sdb1

*Si está ocupado no se puede desmontar el disco, se puede consultar qué procesos lo usan previo desmontaje:
sudo fuser -vm /dev/sdb1

En el ejemplo, estaba siendo usado por el proceso de Samba, así que detuve Samba y se pudo desmontar. Sino tocaría matar/parar procesos, o forzar el desmontaje.

*Si se da formato NTFS al disco no se puede aplicar la política unix de usuario/grupo a los ficheros impidiendo la gestión por usuario al compartir ficheros

Montar disco

Crear carpeta donde alojar el disco
sudo mkdir /media/data

Montar el disco en la carpeta
sudo mount /dev/sdb1 /media/data

Modificar el fichero fstab para que la configuración quede guardada
sudo nano /etc/fstab

En el ejemplo:
/dev/sdb1 /media/data ext4 defaults 1 2

Instalación y configuración de Samba (Ubuntu server 16.04)

Si estamos aquí es porque queremos compartir ficheros. Samba se instaló en Ubuntu y se accede desde Windows, Mac OS X, otros Linux. El proceso indica cómo hacer una carpeta de acceso general y otra de uso bajo usuario y contraseña.

Si no estuviera instalado samba se instala
sudo apt install samba

Se edita el archivo: /etc/samba/smb.conf

Se descomenta/modifica la línea
wins support = yes
net bios = MySERVER #nombre del equipo en la red

Y al final del fichero se añade la configuración de cada carpeta a compartir:
[publica]
path = /media/data/folderpublic 
browsable = yes 
guest ok = yes 
only guest = no 
read only = no 
create mask = 0777 
directory mask = 0777 
public = yes

[privada] 
path = /media/data/folderpriv 
browsable = yes 
guest ok = no 
read only = no 
create mask = 0770 
directory mask = 0770
  • path ubicación de la carpeta a compartir
  • browsable si es navegable desde el Explorador de Windows
  • guest si permite la conexión de forma anónima sin usuario y contraseña
  • read only si solo es de lectura o se permite escritura
  • create mask permisos con los que se van a crear los nuevos ficheros
Se tienen que tener la carpeta creada con los permisos adecuados
sudo mkdir -p /media/data/folderpublic 
sudo mkdir -p /media/data/folderpriv

Crear usuario linux y grupo a utilizar para acceso a la carpeta privada
sudo useradd userpriv
sudo groupadd grouppriv

Se asigna el grupo al usuario
sudo usermod -g grouppriv userpriv

*Si se quiere añadir el usuario a grupos adicionales
sudo adduser userpriv otrogrupo

Se agrega como usuario samba
sudo smbpasswd -a userpriv

Listar usuarios samba
pdbedit -L

Si se quiere eliminar un usuario
sudo smbpasswd -x userpriv

Aplicar permiso de forma recursiva al directorio y subdirectorios (por si los hubiese)
sudo chmod -R 775 /media/data/folderpublic
sudo chmod -R 775 /media/data/folderpriv

Cambiamos grupo a la carpeta
sudo chown -hR root:grouppriv /media/data/forderpriv
sudo chown -hR nobody:nogroup /media/data/folderpublic

Reiniciar samba tras los cambios
sudo /etc/init.d/samba restart

*Para Samba (en caso de necesitar)
sudo /etc/init.d/samba stop

*Iniciar Samba (en caso de necesitar)
sudo /etc/init.d/samba start

Eliminar credenciales de Windows para conexiones compartidas

Cuando estamos viendo carpetas compartidas Windows ya suele almacenar credenciales y como solo permite una a la vez si luego queremos acceder a otro recurso con credenciales diferentes tendremos problemas de acceso, para ello lo más rápido eliminamos credenciales guardadas.

- Presionar las teclas Windows + R
- Escriben en la ventana de Ejecutar: cmd
- En la ventana que se abre escribir: net use * /del
- Escriben una ese «S» para confirmar la eliminación de entradas en caso de existir.
- Pueden cerrar la ventana

Cerrar todas las ventanas del Explorador de Windows que están viendo recursos de red.

Ahora en la ventana de Ejecutar (Windows+R) escribir
rundll32.exe keymgr.dll, KRShowKeyMgr

En la ventana que se abre se elimina las credenciales que acceden a recursos compartidos (o se configura una para la conexión que queremos, en mi caso a 192.168.1.5). En el ejemplo no influye ni DriveFS ni GitHub.


Reiniciar el servicio de credenciales

Una vez hecho esto se podrá iniciar sesión para acceder al recurso. Si se almacenan las credenciales el acceso será directo.







viernes, 15 de febrero de 2019

MySQL: crear índice único y no único

Una PRIMARY KEY crea un índice único asociado al campo que es clave primaria, además es NOT NULL por defecto, y por tabla se tiene una sola clave primaria.
Cuando queremos que un campo o varios sean únicos entonces creamos una constraint UNIQUE y si queremos que sea un índice no único lo declaramos como KEY pero no en la misma línea del campo porque significaría que declaramos una PRIMARY KEY, y no es lo que queremos.

create table test(
    clave_primaria    int unsigned not null,
    clave_unica       varchar(128) default null,
    clave_nounica     varchar(128) default null,
    constraint pk_test_claveprimaria primary key(clave_primaria),
    constraint uq_test_claveunica unique(clave_unica),
    key(clave_nounica)
);





Se ha utilizado
-MySQL Ver 14.14 Distrib 5.7.23, for Win64

Sublime text: colocar cursor al inicio de varias líneas seleccionadas


Cuando se quiere editar varias líneas colocamos el cursor en las líneas deseadas presionando cmd, pero cuando son muchas líneas o todas las líneas podemos:

cmd + A selecciona todas las líneas
cmd + shift + L divide el cursor en cada línea seleccionada
cmd + izquierda mueve el cursor al inicio de la línea

domingo, 7 de octubre de 2018

Cómo empecé con GTD


GTD es una metodología para gestión de tareas y la había visto brevemente mientras realicé mi Proyecto fin de grado sobre una herramienta para planificar tareas. Básicamente leí un poco en wikipedia y poco más. Un año después me decidí a conocerla, y lo primero sería leer el primer libro de su autor: Organízate con eficacia.
    Al leer el primer libro seguí la instrucción de leer todos los apartados que indicaba el proceso para tener la idea y entonces ponerme con el proceso. Quise aprovechar un fin de semana para hacerlo aunque me di cuenta que me iba a tomar varios días más, porque, por ejemplo, no iba a terminar de procesar cerca de cinco mil correos marcados como no leídos de entre  unos veinte mil que tendría que organizar. Así que decidí montar la estructura básica e ir haciendo lo que se tendría que hacer a partir del momento, y poco a poco lo iba a organizar. Al final, pensé todos esos correos son parte del archivo que hay que organizar, y lo que requiera acción colocaría donde debiese.
    Hice un primer montaje de la metodología al leer el primer libro y tres semanas después hice un repaso del sistema al leer un segundo libro.

Primer ciclo

Capturar

Es decir, sacar todas las cosas que tenía en la cabeza. Para ello, escribí en posits cada cosa, claro está que se me fue todo un paquete de posits. Algo que planteaba el libro era colocar todas las cosas físicas en un lugar o utilizar alguna tarjeta u hoja de papel por cada cosa e ir colocando en una bandeja. Por otro lado, tenía todos esos miles de correos. En principio solo identifiqué cuatro bandejas de entrada: posits, correos y dos listas que tenía en Trello, una del sobre el trabajo y otra personal. No me parecía que iba a estar tantas horas como se decía en el libro. Me pasé todo el sábado leyendo y capturando. Además, sentía que ya estaba todo. Quería seguir, ver más, cuál era lo siguiente.

Clarificar

Clarificar consiste en definir qué son las cosas que están en las bandejas de entrada. Definirlas con un verbo de acción tal como: escribir, enviar, llamar. algo que indique una única acción sino es un proyecto de varias acciones. No seguí el consejo de hacerlo todo en papel las primeras veces. Así que, creé en el correo etiquetas que llamé Acciones siguientes, En espera, Algún día/Tal vez, y el los tableros de similar forma.
    Tomé los últimos correos y los moví a los contenedores que consideré. Algunos los moví a Acciones siguientes pero para otros creé una acción en mi lista de Trello, el correo lo moví al contenedor Registro, mientras hacía esto pensé en cómo tenía que organizar el dichoso Archivo (nombre que se da al archivo de registro, cosas que solo sirven para consultar, como si fuese una biblioteca), es decir, crear contenedores tipo: Recibos, RRSS, Moodle y alguno genérico llamado Registro hasta que se me ocurra una forma de reorganizar.
    Como se puede ver a la vez de clarificar qué eran las cosas de las entradas estaba pensando en cómo organizar, qué me faltaba. Sentía que no lo tenía claramente definido, que me faltaban muchas cosas, pero no iba a ponerme varios días a pensar en la estructura de organización sino que sobre la marcha iba a organizar e ir capturando ideas de qué hacer. Me decía a mí mismo: empieza a moverte porque si quieres tenerlo todo claro no vas a moverte. Como parte de no tener el hábito de hacer las cosas por separado como plantea la metodología, a la vez que clarificaba qué eran las cosas de la entrada capturaba ideas que surgían y otras no, algunas las ponía ya como acciones siguientes y se saltaban la bandeja de entrada, es decir, que no separaba el capturar del aclarar y organizar en momentos de ejecución separados. 

Organizar

Además de las listas comentadas anteriormente tenía listas en la aplicación Recordatorios de Apple, y muchas otras listas en Trello. Tenía varios duplicados de los contenedores comentados prácticamente en cada aplicación. Como había que vaciar las bandejas de entrada me centré en lo más fácil que era los posits que los trasladé en tareas de listas en Trello, las acciones que tenía que recordar las programé en Recordatorios. Empecé a organizar el correo con contenedores como: Leer_revisar que se mantuvo con una sola cosa y sigue así pendiente de ser eliminado de ser el caso; Personal donde dejé correos de carácter personal, Recibos donde colocar todo lo que sea como factura, recibo; SocialMedia correos de Twitter, Facebook, Linkedin; Notificaciones donde coloqué notificaciones de reservas, compras, envío de paquetes; Amazon lo que tenía que ver con Amazon; UPM correos de la universidad; transporte relacionado con el vehículo; un contenedor de la empresa donde trabajé; y otros dos para un par de proyectos.
    El problema que me surgió era filtrar y mover los correos, puesto que no podía simplemente decir todo lo que es de la cuenta UPM va a UPM, si era un correo de Amazon que tenía el valor del producto lo dejaba en Amazon o en Recibos. También quería separar los mensajes en redes sociales del resto de correos que envían las redes sociales. Sí muchos de esos debían ir a la basura pero al filtrar era difícil identificarlos entre miles. Por el momento no decidí hacer más cambios, quería dejar a cero la bandeja de entrada. Y no quería eliminar aún. Varias veces la aplicación de quedó bloqueada pues mientras estaba moviendo varios miles de correos yo intentaba mover otros miles a otro sitio, filtraba y movía, filtraba y movía. Vi que no podía ir tan rápido como quería. Así que fue un proceso de varios días. Perdí las notas que tenía en google sincronizadas con la aplicación de Notas de Apple eso hizo que no quiera eliminar nada. Hice un movimiento de correos entre distintas cuentas de correo. Por supuesto siendo consciente que más adelante tendría que repensar los contenedores por ver si se añaden, eliminan, fusionan, u otra forma de organizar.

Reflexionar

Hasta el momento tenía varias listas en las que estaba organizando las cosas. Según avanzaban las semanas seguía con dudas del estilo de si colocaba las acciones que tenían fecha en Google Calendar o en Recordatorios de Apple. Recordaba el consejo de empezar con papel y estar así varios meses hasta ir dominando el método antes de pasarse a lo digital pero me parecía que iba a empapelar un par de paredes en la habitación e igualmente necesitaba tener acceso a las listas fuera de mi habitación.
    Lo de dividir las acciones en contextos no lo tenía claro cómo dividirlo, tenía una sola lista de Acciones siguientes, entendía la utilidad pero no veía claramente el tener una lista Llamadas en la que tendría solo una o dos acciones, ahí influía el que no registrara llamadas por ocio o saludar. La mayoría de las cosas las hago con mi Portátil así que no veía la necesidad de ese contexto, mucho menos veía la necesidad de un contexto sin conexión a Internet pues no veía ese caso en mi día a día. De momento me mantendría con una sola lista si al final no pasaban de una veintena de acciones, otra docena más en Espera y una media docena en Haciendo. Claro está eso era en uno de mis tableros, en el otro era algo similar (Trabajo y Personal).
    Para las cosas que necesitan más de una acción se generan Proyectos, e inicialmente pensé en crear una lista Proyectos en donde listarlos y luego una lista por cada proyecto. En principio no hubo problema porque claro está la inercia de llamar proyecto a cosas más complejas o similares al concepto de proyecto fuera de GTD, me centré en solo una media docena, y muchas otras cosas estaban en incubación en las listas: Algún día-talvez, películas, libros, lugares. Siguiendo lo de que por cada proyecto debe de haber una acción siguiente en algún contenedor coloqué acciones en las listas: Acciones siguientes, En espera, Haciendo.

Hacer

Me plantee la existencia de la lista Haciendo y de momento la dejé por tener un sitio para las tareas que había empezado y que por el motivo que fuese no podía terminarlas, una razón porque tenía que hacer otra cosa y la dejaba de hacer; otra porque tenía tareas que duraban un par de días como «hacer planificación del SprintX del mes».
    Revisaba las listas para saber qué hacer pero seguía realizando cosas según surgían, o me distraía con cosas no previstas hacer, como leer un artículo o noticia.

Segundo ciclo

No sabía si leer el segundo libro de David Allen, Haz que funcione, o algún otro, y fue cuando encontré y decidí, por las buenas valoraciones y comentarios, por el libro de José Miguel, Productividad personal. Así que pensé en leerlo y dejar para más adelante el otro libro a modo de dar un repaso a lo que se enseña sobre el modelo cada cierto tiempo, para ir afinando y entendiendo otras cosas que según se relee pueden verse.

Capturar

Dejé como bandejas de entrada principales una bandeja física para papeles en casa, dos listas Cosas Entrada en cada tablero de Trello, y la bandeja de entrada del correo. Claro está que hay otras bandejas como la de SMS, Whatsapp, para las cuales ya tenía la costumbre de cada semana dejarlas vacías. Otros chats como los del trabajo no los dejo vacíos sino que quedan como un archivo de referencia, al igual que Telegram. Telegram incluso lo utilizo para enviarme mensajes a mí mismo y así capturo cosas sean texto o imágenes de ideas, notas, cosas que necesito luego analizar.
    Por enésima vez re-nombré mis listas, la de Entrada en algún momento la llamé Capturar y ahora se llama Cosas Entrada/Captura  para dejar claro si lo que hay en las listas son cosas o acciones ya que es una de las primeras preguntas que me hacía. Por ejemplo, creé una lista Esta semana no y no sabía si dejar acciones o cosas. 
    Siguiendo el consejo de José Miguel intentaba tener cosas donde tenían que haber cosas, sin utilizar verbos, y con las acciones utilizar verbos. Esto lo tomé a modo de ir mejorando la forma de nombrar, aclarar o definir. El tema de cómo nombrar las cosas y la definición de objetivos es algo sobre lo que ya había leído, y ahora lo estaba aplicando al nivel más bajo, el de cosas y acciones siguientes, no aún a los niveles más altos de objetivos que era sobre lo que había leído.

Clarificar o Aclarar

Uno de los problemas que encontré fue que cuando estaba trabajando surgían cosas que tenía que limitarme a capturar pero terminaba capturando y aclarando las bandejas de entrada demasiado seguido. Todo esto como una forma de evitar el trabajo que tenía que hacer y procrastinar. Así que me propuse solo capturar, evitar el aclarar para ver en qué lista o contenedor colocar la acción y realizar el aclarado de las cosas en tres momentos del día, al iniciar el día por si tenía algún correo que necesitase ver antes de empezar la jornada laboral, luego de comer y luego de cenar. Desactivé las notificaciones para evitar las interrupciones, aún así si el correo lo reviso unas tres veces, los chats los reviso una docena de veces al día.
    También tenía que lidiar con cosas que surgían y prácticamente las quería convertir en acciones para tratarlas el mismo día, es algo con lo que luchar para evitar procrastinar las acciones que estaba haciendo. Así mismo pedidos de otras personas que antes tenía como costumbre atender inmediatamente, ahora me resulta complicado cambiar a decir: ahora no, causando momentos incómodos y un cambio en la actitud de mi parte. A veces parece que te perciben como egocéntrico porque ven como que se les diera menos importancia a sus cosas y sí hay que aprender a dar la debida importancia a las cosas y mucha gente quiere que se les de importancia inmediata a las suyas.
    Los proyectos empezaron a ser mucho más que una docena y me pareció inviable el tener una lista por cada proyecto. La herramienta sobre la que empecé a desarrollar plantea la relación entre los distintos niveles, objetivos, metas, acciones pero al no tener algo que facilite en manejar esto de momento trabajo con una lista de los proyectos y en cada revisión veo si hay una acción siguiente en alguna lista.

Organizar

Como decía antes las listas las re-nombré y como palabra inicial coloqué «Acción» o «Cosa» para facilitarme el saber lo que tenía que contener. Creé en Trello tres tableros: uno de tareas, otro de revisión y otro de archivo. 
    Así que en el tablero que llamé tareas coloqué las listas del día a día: Cosas entrada/captura, Acciones próximas, Acciones físicamente en casa, Acciones físicamente en el trabajo, Acciones en supermercado, Acciones haciendo, Acciones en espera,  Acciones hechas en semana. En el tablero de revisión coloqué las listas a ver en la revisión semanal como: cosas esta semana no, cosas algún día/talvez, Metas, y otras listas que son listas de comprobación.
    Uno de los problemas con que me encuentro es cuando una cosa pasa a ser un proyecto GTD, es decir, varias acciones, la acción siguiente pasa a una de las listas de acciones siguientes pero en mi cabeza rápidamente surgen como varias cosas a realizar para ese proyecto, es decir, una necesidad de listar varias acciones del mismo proyecto. Por el momento para estos casos dejaré una lista para el proyecto. 

Reflexionar

La incorporación del hábito de la revisión semanal no me costó pues era algo que ya llevaba haciendo, además, tengo uno similar mensualmente para la revisión de los movimientos bancarios y revisión de cuentas. Para el paso de reflexión veo las Acciones hechas en la semana y las archivo, vacío las entradas y reviso la lista de Cosas esta semana no para mover elementos a las listas de acciones siguientes. Le doy un repaso también a la lista de proyectos para revisar que hay una acción siguiente de cada uno en alguna lista de acciones. En definitiva que quede el sistema listo para una nueva semana.
    Como aún no tengo mi aplicación desarrollada la parte de alto nivel lo plasmé en papel, es decir, visión, objetivos. Los proyectos de GTD para mí son mis metas.

Hacer

Un problema con el que ya llevaba desde mucho tiempo atrás y con el que igualmente llevaba lidiando es el de dedicar demasiado tiempo a leer información sobre el tema y no actuar, entraba en un bucle de buscar algo, surgía algo nuevo y vuelta. De esto que entraba a Internet a buscar algo y pasaba por ver algún documental, trailers de películas, una película, gatitos, redes sociales, y entonces me acordaba de lo que quería buscar, o aunque buscara lo que quería, eso me llevase a otra información y veía que ignoraba mucho ocasionando una necesidad de conocer más antes de hacer. Es por eso que me plantee el ir implementando la metodología, y leer sobre ella en distintos periodos para ir afinando y no desviarme.
    Lo de compartir tablero se veía que no funcionaría porque uno de los problemas es el concepto de acabado o terminado, pues varias veces algo que otra persona había colocado en Hecho luego yo lo estaba moviendo a Acciones En espera porque no consideraba que estuviera terminado. Como bien decía Allen en su libro, mis acciones en espera serán acciones de otra persona pero tendrá que estar en su sistema, en donde corresponda. Además, aumenta el número de contenedores sin aportar ventaja.
    La parte más difícil para mí es el Hacer por mi tendencia a procrastinar. La siguiente parte que me cuesta es la de separar el capturar del, aclarar y organizar. Para lo primero, una de las acciones fue el tener una lista de Acciones hechas en la semana que luego cada semana pase a archivarse; la lista de hecho en la semana con el fin de diferenciar lo hecho esa semana de lo hecho en general. Otra de las acciones es el intentar hacer en la semana las acciones organizadas en la revisión semanal, y hacer lo posible por enviar a encubar o a la lista de cosas esta semana no las acciones que surgen durante la semana para evitar el buscar hacer tareas más fáciles en vez de las que me cuesta hacer. Otra de las tendencias con las que tengo que luchar es el de hacer tareas de otros, porque necesitan ayuda,  o para otros antes que las mías. Así como luchar con las ganas de aclarar las entradas cada momento.


domingo, 19 de agosto de 2018

Moodle: Enviar email como HTML




  • Se añade un quinto valor a la función email_to_user que corresponde con el mensaje en HTML.
Archivo en el que reemplazar texto: moodle/lib/moodlelib.php
Texto a buscar: email_to_user($user, $supportuser, $subject, $message);
Se reemplaza por: email_to_user($user, $supportuser, $subject, $message, $message);
  • Se elimina la función html_to_text
Archivo: moodle/message/lib.php
Texto a buscar: $eventdata->fullmessage = html_to_text($eventdata->fullmessagehtml);
Se reemplaza por: $eventdata->fullmessage = $eventdata->fullmessagehtml;
  • Dónde escribir el texto HTML:

- Personalizar email auto-matriculación en curso:
Cuando el usuario se auto-matricula en un curso.
Administración del curso/Usuarios/Método de matriculación/Auto-matriculación (estudiante)
Rellenar con el texto HTML en la casilla «Mensaje personalizado de bienvenida» y guardar.

- Personalización email alta usuario manual:
Cuando el administrador lo añade de forma manual al sitio, tanto de forma individual como en subida con fichero CSV.
Administración del sitio/Idioma/Personalización idioma
core: moodle.php
string: newusernewpasswordtext
Escribir el texto HTML en la casilla «Traducción local personalizada» y guardar los cambios del paquete de idioma.



- Personalizar email de restablecimiento de contraseña:
Cuando el usuario ha olvidado su usuario o contraseña, y busca por nombre de usuario o contraseña se le envía el e-mail de restablecimiento.
Administración del sitio/Idioma/Personalización idioma
core: moodle.php
string: emailresetconfirmation
Escribir el texto HTML en la casilla «Traducción local personalizada» y guardar los cambios del paquete de idioma.

- Personalizar email de inscripción manual en el sitio:
Cuando el usuario se registra en el sitio.
Administración del sitio/Idioma/Personalización idioma
core: moodle.php
string: emailconfirmation
Escribir el texto HTML en la casilla «Traducción local personalizada» y guardar los cambios del paquete de idioma.

Personalizar email de solicitud de nueva contraseña:
Administración del sitio/Idioma/Personalización idioma
core: moodle.php
string: emailpasswordconfirmation
Escribir el texto HTML en la casilla «Traducción local personalizada» y guardar los cambios del paquete de idioma.

Personalizar email con nueva contraseña:
Administración del sitio/Idioma/Personalización idioma
core: moodle.php
string: newpasswordtext
Escribir el texto HTML en la casilla «Traducción local personalizada» y guardar los cambios del paquete de idioma.

Probado en Moodle 3.3.7