summaryrefslogtreecommitdiff
path: root/README.md
blob: 68f0ea1a4dca7439f803935f7ad832404c19e960 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
# REEVO 2020

Repositorio de código de la plataforma unificada de REEVO, correspondiente al periodo 2019-2020

## Componentes

* Mediawiki 1.31.3
* SemanticMediawiki 3.0.2

## Instalación

### Configurar y activar Nginx y php-fpm

Activar configuracion en Nginx, hay que editar ```/etc/nginx/nginx.conf``` agregando al final: ```include /srv/reevo-2020/etc/nginx/*.conf;```

Activar configuracion en php-fpm, hay que editar ```/etc/php/7.3/fpm/php-fpm.conf``` agregando al final: ```include=/srv/reevo-2020/etc/php-fpm/*.conf;```

Luego creamos los archivos de configuracion en /etc

### Crear base de datos

En la consola de MYSQL:

```
CREATE DATABASE reevo2020_wiki;

CREATE USER 'reevo2020'@'localhost' IDENTIFIED BY 'my-strong-password-here';

GRANT INDEX, SELECT, INSERT, UPDATE, DELETE, CREATE, DROP, ALTER, CREATE TEMPORARY TABLES, LOCK TABLES ON reevo2020_wiki.* TO 'reevo2020'@'localhost';
```


Para generar las tablas en la base de datos hacemos (no usamos el ```LocalSettings.php``` resultante):

~~~
php www/wiki/maintenance/install.php --dbname=reevo2020_wiki --dbserver="localhost" --installdbuser=reevo2020 --installdbpass=<password> --dbuser=reevo2020_wiki --dbpass=<password> --server="http://reevo.red" --scriptpath=/ --lang=es --pass=yaco22 "REEVO" "Admin" --confpath /var/dump
~~~

Cargamos los datos para conectar con la base de datos en ```etc/global_config.php```.

Activamos el ```LocalSettings.php``` oficial: ```ln -s www/wiki/LocalSettings.Reevo.php www/wiki/LocalSettings.php```

Corremos el script para generar tablas y cambios de las extensiones: ```php /srv/reevo-2020/www/wiki/maintenance/update.php```

Para correr la actualización de variable de SMW y demas: ```php /srv/reevo-2020/www/wiki/maintenance/runJobs.php```

### Crear usuario para API

Creamos el usuario de API

```
php createAndPromote.php --bureaucrat --sysop reebot <password>

php resetUserEmail.php reebot reebot@reevo.org

php changePassword.php --user=reebot --password=<password>
```

Y luego cargamos las credenciales en global_config.php


## Documentación de herramientas propias

### Cargar páginas, propiedades y formularios

* Script: ```bin/wiki/initReevo.php```
* Descripción: se usa para crear o actualizar las páginas con propiedades, plantillas, formularios que se alojamos en ```bin/wiki/reevoPages```. Luego de crear o actualizar, se protegen para que solo los admins puedan editarlas.

Para crear todas las páginas: ```cd bin/wiki/ && php initReevo.php --int```

Para actualizar todas las páginas cuando ya están creadas: ```cd bin/wiki/ && php initReevo.php --int --force```

Para actualizar solo las que pertenecen a un namespace: ```cd bin/wiki/ && php initReevo.php --int --force NameSpace```

Para actualizar una página en particular: ```cd bin/wiki/ && php initReevo.php --int --force Propiedad:Prensa:url```


### Generador de archivos de prensa

* Script: ```bin/wiki/GeneraSnapshot.php```
* Descripción: se usa para generar una copia en texto e imagen (snapshot) de los Objetos de Prensa (antes "Recursos Externos" o "Enlaces")


### Creador de páginas de usuarios que importa datos de Elgg

* Script: ```bin/wiki/ImportarPerfil/ImportarPerfil.php```
* Extensión de MW: ```ImportarPerfil```
* Descripción: cuando un usuario nuevo en el wiki usa un e-mail que tiene asociado un usuario en Elgg, se crea la página Usuario:NombreDeUsuario tomando los valores del perfil de Elgg. Si lo que coincide es el nombre de usuario nuevo y uno antiguo en Elgg, se pregunta al usuario se quiere hacer la importación (ya que podria ser otra persona queriendo usar el mismo nombre de usuario). Los datos no se obtienen directo de Elgg, sino de una base de datos exportada en json.

Para que el usuario API funcione, tiene que tener el email validado, para hacerlo por consola:

```
php resetUserEmail.php User user@gmail.com
php changePassword.php --user=User --password=password
```

Se puede importar desde la línea de comandos cualquier usuario de ELGG con este comando: ```php bin/wiki/ImportarPerfil/ImportarPerfil.php -f true -u <Usuario>```


### Migrar experiencias desde Ushahidi

Tenemos una aplicacicón web para procesar una a una las experiencias de Ushahidi. Disponible en http://reevo.test/ImportarExperiencia/


### Importar pagina de prensa desde URL

Existe la aplicacion web (http://reevo.test/ImportarDesdeURL/) que permite precargar el formulario de creación del objeto Prensa a partir de los metadatos de una URL.

Para que funcione, hay que instalar metascraper y otras aplicaciones de nodejs:

```
sudo npm install metascraper metascraper-author metascraper-date metascraper-description metascraper-image metascraper-logo metascraper-clearbit metascraper-publisher metascraper-title metascraper-url franc-cli got minimist --global
```

Tambien hay que instalar ```php-geoip```