Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.

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.
( (warning) 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).