Quando si importa una vista tramite file YAML, la sua traduzione non viene inclusa in automatico.
Per avere anche la traduzione, serve importare il dato prendendolo dal database.
( Si prende come esempio la vista "Insegnamenti" di UNIPVd9 )
Nel database, infatti, la traduzione è presente all'interno di due macro tabelle: config e config_snapshot. Per vedere il dato si può andare all'interno del database del sito con un client (ad esempio phpMyAdmin) e portarsi in "config" (e poi "config_snapshot"). Da qui si cerca la vista (ad esempio "views.view.insegnamenti") con il comando:
...
Usciranno due risultati: uno in italiano ed uno in inglese. Il contenuto del BLOB è il dato che ci interessa; il file in italiano è più grande rispetto a quello inglese, perchè quest'ultimo contiene solo le parti che sono state tradotte, mentre il primo l'intera vista.
Andiamo sul server all'interno della cartella che vogliamo usare come sorgente per importare i dati, ad esempio la cartella /myconf del modello cdl00 di UNIPV. Eliminiamo tutti i file all'interno di questa cartella -insegnamenti nella root di UNIPVd9 (se non esiste, possiamo crearla), e creiamo due nuovi file:
...
Una volta che sono pronti i due file, si esegue lo script chiamato "script-views-traduzioni.sh" dalla root dell'Ateneo, che contiene il seguente codice (si prende come esempio unipvd9se non esiste, lo si crea):
Code Block |
---|
#!/bin/bash |
...
DRUSHSCRIPT=/drupal/dim_prod/dim/external/drush10/vendor/bin/drush |
...
DRUSHALIAS=/drupal/dim_prod/dim/var/build/drush_aliases/8 |
...
SITE=unipvd9 |
...
array=( cdl00 ) |
...
ENV=prod |
...
DENV=prod |
...
MYCONF=myconf-insegnamenti |
...
REPLACESQL=replace.en.insegnamenti.sql |
...
DENV=prod |
...
for i in "${array[@]}" |
...
do |
...
# per il calcolo grossolano dei tempi |
...
start=`date +%s` |
...
rm /shared/dim_prod/${ENV}/${SITE}/${i}/files/myconf/*.yml |
...
cp /shared/dim_prod/${ENV}/${SITE}/${MYCONF}/*.yml /shared/dim_prod/${ENV}/${SITE}/${i}/files/myconf/ |
...
cp /shared/dim_prod/${ENV}/${SITE}/${MYCONF}/*.sql /shared/dim_prod/${ENV}/${SITE}/${i}/files/myconf/ |
...
cd |
...
/shared/dim_prod/${ENV}/${SITE}/${i}/files/myconf/ |
...
echo "---------- ${i} ${DENV} ------------" |
...
# cd /shared/dim_prod/prod/unipvd9/cdl00/files/myconf/
...
echo "-- importazione viste --" |
...
$DRUSHSCRIPT --alias-path=$DRUSHALIAS @${SITE}-${i}.${DENV} config-import --partial --yes |
...
echo "-- importazione delle traduzioni delle viste --" |
...
$DRUSHSCRIPT --alias-path=$DRUSHALIAS @${SITE}-${i}.${DENV} sqlc < ${REPLACESQL} |
...
echo "-- pulizia cache --" |
...
$DRUSHSCRIPT --alias-path=$DRUSHALIAS @${SITE}-${i}.${DENV} cr |
...
end=`date +%s` |
...
runtime=$((end-start)) |
...
echo "-- ${i} done in ${runtime} sec" |
...
echo "---------------------" |
...
cd /shared/dim_prod/${ENV}/${SITE}/ done |
Questo codice fa in modo di rimuovere tutti i file contenuti nella cartella files/myconf del singolo sito e di copiare della cartella sorgente (es: myconf-insegnamenti) nella cartella /donemyconf i file YAML ed SQL.
Si sposta quindi all'interno della cartella /myconf ed importa il file YAML usando "drush config-import" ed il file SQL usando "drush sqlc < file_sorgente".
Infine ricostruisce le cache e si riporta alla root del sito (es: /shared/dim_prod/prod/unipvd9).