Skip to main content

Welkom bij Joomla!NL

Om alle mogelijkheden van dit forum te kunnen gebruiken, moet je je eerst registreren.

Als je zelf een extensie ontwikkelt, kan je hier je vragen stellen.

opgelost Plugin maar 1x uitvoeren.

Plugin maar 1x uitvoeren.

28 jan 2016 21:00
#1
Goedemiddag,

Ik ben bezig met het bouwen van een api maar ik loop even vast.

Mijn module heb ik gereed en werkt naar behoren. De bedoeling van deze module is om wedstrijdgegevens van de KNVB via een api call te tonen. D.m.v. een pulldown menu kun je betreffende team kiezen en daarna zie je bv de uitslagen, aankomend wedstrijden, stand etc.

De teams van onze vereniging heb ik via een handmatige apiCall verkregen en voor nu in de helper.php gezet. (teamnaam, competitienaam, district, etc) .
api.knvbdataservice.nl/api/teams?PHPSESSID= <12345>&hash=
Dit werkt naar behoren maar ik zou graag de module voor een ieder beschikbaar maken en ik kan niet verwachten dan dit handmatig gaan aantallen en ook handmatig een MD5 hash gaat genereren.

Nu komt mijn vraag. Het liefst will ik deze handmatige actie eenmalig uitvoeren en dan de JSON uitkomst in de Joomla database opslaan.
Deze records worden daarna de basis van mijn pulldown en overige selecties.

In mijn hoofd dacht ik aan "onInstallerBeforeInstallation" alleen dient men eerst de api key en clubnaam via params in de module vast te leggen en daardoor werkt deze oplossing niet.
Dus ik zoek een mogelijkheid dat de plugin checkt of een record gevuld is. Mocht dit niet zo zijn dan de call uitvoeren en storen in de database.

Heeft iemand enig idee welke event trigger ik hier het beste voor kan gebruiken? Dus eigenlijk zoek ik een conceptuele oplossing en daarna ga ik wel met de techniek stoeien :-) (vingers crossed)

Hieronder een stukje code om mijn probleem beter uit te leggen.
Ik hoop dat ik het een beetje helder uitgelegd hebt

Dank je wel!
Code:
Nu handmatig in de helper file gezet: if($team == 'PW ZA 1') { $teamid = '166209'; $district = 'OO'; $compId = '0212'; $classId = '14'; $pouleId = '419817'; } else if($team == 'PW ZA 2') { $teamid = '166210'; $district = 'OO'; $compId = '0214'; $classId = '15'; $pouleId = '428063'; } else if($team == 'PW ZA 3') { $teamid = '166211'; $district = 'OO'; $compId = '0214'; $classId = '16'; $pouleId = '428278'; } Het bovenstaande wil ik de automatisch storen in de database. De waardes worden daarna gebruikt om de api aan te roepen. $data = Apicall($baseUrl,"/competities/$teamid/$district/$compId/$classId/$pouleId/results",$session_id,$apikey,"?weeknummer=A");$json = json_decode($data, true);
  • esorone
  • esorone's berichtenfoto Heeft onderwerp gestart
  • Joomla!NL ontdekker
  • Joomla!NL ontdekker
  • Berichten: 22

Plugin maar 1x uitvoeren.

12 feb 2016 18:48 - 12 feb 2016 18:48
#2
Goedenavond,

Inmiddels is het bovenstaande gelukt. Ik heb toch een OnContentPrepare gebruikt.
En daarna kijken of ik überhaupt wel records heb. Mocht dit niet zo zijn, voer dan query uit.

Code:
public static function onContentPrepare() { // Maak Connectie $db = JFactory::getDbo(); // Set de query object gereed $query = $db->getQuery(true); //Selecteer de records $query->select($db->quoteName('TeamReportNaam','CompName')); $query->from($db->quoteName('#__knvb_api_team')); // Query Restultaten $db->setQuery($query); // De database execute is tbv van de regelstellen $db->execute(); // get the count $my_count = $db->getNumRows(); if ($my_count <1){ Run APiCALL en zet hem in de database } Else { $db->setQuery($query); $column= $db->loadColumn(); }

Dus het is opgelost.

Dank je wel.
  • esorone
  • esorone's berichtenfoto Heeft onderwerp gestart
  • Joomla!NL ontdekker
  • Joomla!NL ontdekker
  • Berichten: 22
Moderators: JelleRomke
Tijd voor maken pagina: 0.599 seconden
Gemaakt door Kunena

Wil je Joomla!NL steunen?

Steun Joomla!NLAlle teamleden werken enthousiast, op vrijwillige basis, mee aan Joomla!NL. Maar een website met forum kost nu eenmaal geld. Dus als je Joomla!NL wilt steunen, dan kan dat, graag zelfs!

Lees hier meer informatie