Hallo Community, ich erstelle mir aktuell gerade ein Modul um Daten aus einer XML zu extrahieren und diese in eine DB zu importieren.
Die Funktion funktioniert so wie ich es mir wünsche. Nur wie bekomme ich es hin das wenn der User im Backend das Modul mit den geforderten Daten gefüllt hat und auf Speichern klickt das dann die unten aufgeführte Funktion aufgerufen wird bzw. ausgeführt wird?
Code
public static function getInsertUserAllyXml($params, $playerXml) {
// database connection
$db = JFactory::getDbo();
$query = $db->getQuery(true);
//Check that URL is reachable
if (!fopen($playerXml, "r")){ return ('XML Server nicht erreichbar.');}
// xml datei
$xmlFile = simplexml_load_file($playerXml)or die("Error: Cannot create object");
$resultXml = $xmlFile->xpath('/players/player');
//count Arrays
$resultCount = count($resultXml);
foreach ( $resultXml as $arrayId => $rohdata )
{
if (empty($rohdata['status'])){
$rohdata['status'] = '-';
}
if (empty($rohdata['alliance'])){
$rohdata['alliance'] = '0';
}
$insertIntoDb = 'INSERT INTO #__ogameally ';
$columsData = '( `userid_ogame`, `user_name_ogame`, `status_ogame`, `ally_id_ogame`)';
$valueDb = ' VALUES ';
$userData = '("' . $rohdata['id'] . '","' . $rohdata['name'] . '","' . $rohdata['status'] . '","' . $rohdata['alliance'] . '");';
$queryString = array($insertIntoDb. $columsData. $valueDb. $userData);
foreach ($queryString as $keyString => $ergebnis)
{
$queries[] = $ergebnis;
}
}
for($i = 0; $i < $resultCount; $i++)
{
$queryDb = $queries[$i];
$db->setQuery($queryDb);
$result = $db->execute();
}
}
Alles anzeigen