Mudar versão de um plugin do Moodle na base de dados

Mudar versão de um plugin do Moodle na base de dados

por Lino Vaz Moniz -
Número de respostas: 0

Quando você desenvolve um plugin, frequentemente tem que efetuar atualização do número da versão.

Pode acontecer de colocar uma versão futura (data futura) por enquanto e depois querer corrigir. Mas o plugin já está instalado. Neste caso, para resolver teria que desinstalar e o plugin e instalar novamente.  Isso pode ser um problema se o plugin usa base de dados. Ao desinstalar, todas as tabelas que o plugin gera serão removidos, apagando assim as informações já cadastradas.

Já enfrentei esse problema. A solução que encontrei foi gerar um comando SQL e script PHP para solucionar isso.

O comando a seguir usa o plugin Badiu Grade Curricular como exemplo.

Consultar informação do plugin pelo nome e versão

SELECT * FROM  mdl_config_plugins WHERE plugin  =? AND name='version'

Coloque nome do plugin em plugin=?

 

Comando SQL que altere a versão do plugin

UPDATE mdl_config_plugins SET value= ? WHERE plugin  =?  AND name='version'

Coloque o valor da versão em value= ?  e nome do plugin em plugin=?

Script PHP que altera versão

                function update_plugin_version($plugin,$newversion){
       global $CFG,$DB;
           $sql="UPDATE {$CFG->prefix}config_plugins SET value= '".$newversion."' WHERE plugin  ='".$plugin."' and name='version'";
          $r=$DB->execute($sql);
           return  $r;
     }

  

Exemplo de invocação de função

update_plugin_version('enrol_badiugcurricular','2015051404');