Galera,
Só compartilhando conhecimento em português
Caso você queira inserir uma tabela no seu plugin do moodle:
crie dentro do seu plugin a pasta seuplugin/db
- Tenha certeza da permissão de escrita do moodle nessa pasta.
- use o xmldb para criar a tabela.
- caso queira carregar dados nessa tabela vc precisar criar o arquivo install.php e criar o script para fazer a inserção dos dados
no meu caso ficou assim carregando os dados de um xml:
defined('MOODLE_INTERNAL') || die;
function xmldb_profilefield_ibge_install() {
global $CFG, $OUTPUT, $DB;
// Your add data code here.
$caminho = "$CFG->dirroot/user/profile/field/ibge/db/import.xml";
$xmlstr = simplexml_load_file($caminho);
$records = parse_xml($xmlstr);
//die($records);
foreach ($records as $record) {
$DB->insert_record('municipios', $record);
}
}
/**
* Converts XML text into an array of stdclass objects.
*
* @param type $text - xmltext
* @param type $elementnames - plural name of elements
* @param type $elementname - name of element
* @return array|boolean - array of record objects
*/
function parse_xml($xml) {
ini_set('memory_limit', '256M');
$registros = array();
foreach ($xml->table as $id => $municipio){
$cod_ibge = (string)$municipio->column[0];
$uf = (string)$municipio->column[1];
$no_municpio = (string)$municipio->column[2];
$row = new stdClass();
$row->ibgeid = $cod_ibge;
$row->uf = $uf;
$row->no_municipio = $no_municpio;
$registros[] = $row;
}
return $registros;
}
acho que ainda dá para melhorar um bocado.
mas já está funcionando :D o/