Voorbeeld PHP-code t.b.v. WordPress website


Zoals beloofd, hier wat PHP-code waarmee ik voor het eerst de Dataservices heb uitgeprobeerd. Het is een eenvoudig voorbeeld, dat alleen over Teams gaat, maar het kan behulpzaam zijn bij de eerste stap. Vul bij XXXXXXX je eigen Client_Id in.


<?php


  $url='https://data.sportlink.com/teams?client_id=XXXXXXX';

  $ch = curl_init();

  curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, false);

  curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);

  curl_setopt($ch, CURLOPT_URL,$url);

  $result=curl_exec($ch);

  curl_close($ch);

  $programma_output = json_decode($result, true);

  $aantalrecords = count($programma_output);

  echo 'Aantal records = ' . $aantalrecords . '<br/>';

  echo '<table width="100%" border="0" cellspacing="2" cellpadding="2">';

  for ($i = 0; $i < $aantalrecords; $i++)

  {

    echo '<tr>';

      echo '<td>' . $programma_output[$i]["teamcode"] . '</td>';

      echo '<td>' . $programma_output[$i]["teamnaam"] . '</td>';

      echo '<td>' . $programma_output[$i]["poulecode"] . '</td>';

      echo '<td>' . $programma_output[$i]["competitienaam"] . '</td>';

      echo '<td>' . $programma_output[$i]["klassepoule"] . '</td>'; 

      echo '<td>' . $programma_output[$i]["spelsoort"] . '</td>';

      echo '<td>' . $programma_output[$i]["competitiesoort"] . '</td>';

      echo '<td>' . $programma_output[$i]["geslacht"] . '</td>';

    echo '</tr>';

  }

  //var_dump($programma_output);

  echo '</table>';

  echo 'Klaar';

?>


Voor Wordpress is er er een prachtige (betaalde) plugin die al het werk uit handen neemt. Google maar eens..

 

 

		echo '<td class="grijs" style="width:45px">' . $programma_output[$i]["datum"]. '</td>';
		echo '<td class="grijs" style="width:100px">' . $programma_output[$i]["aanvangstijd"]. '</td>';
		echo '<td class="grijs" style="width:30px"><img src="http://bin617.website-voetbal.nl/sites/voetbal.nl/files/knvblogos_width35/'.$programma_output[$i]["thuisteamclubrelatiecode"].'.png" alt="Club Logo" style="width:35px"</td>';
		echo '<td class="grijs" style="width:175px">' . $programma_output[$i]["thuisteam"]. '</td>';
		echo '<td class="grijs" style="width:5px">-</td>';
		echo '<td class="grijs" style="width:30px"><img src="http://bin617.website-voetbal.nl/sites/voetbal.nl/files/knvblogos_width35/'.$programma_output[$i]["uitteamclubrelatiecode"].'.png" alt="Club Logo" style="width:35px"</td>';
		echo '<td class="grijs" style="width:175px">' . $programma_output[$i]["uitteam"] . '</td>';
		echo '<td class="grijs" style="width:90px">' . $programma_output[$i]["veld"] . '</td>';
		echo '<td class="grijs" style="width:90px"><a href="http://www.hvvodb.nl/sportlink/meerinfo.php?wedstrijdcode='. $programma_output[$i]["wedstrijdcode"] . '"><img src="http://www.hvvodb.nl/sportlink/vergroot-glas.gif" style="width:30px"></a></td>';

 

 

Ron, ik zie mooie logo's bij de wedstrijden op jullie site. Hoe doe je dit?

Is er al iemand die een werkende dropdownlist heeft.
En per datum in een tabel zou ik ook mooi vinden.
Ben zelf geen programmeur probeer alleen de club te helpen, dus hulp op dit forum wordt zeer gewaardeerd.

Mvg,
Ron

 


1 persoon vindt dit leuk

Aan de hand van bovenstaande voorbeeld. Het ophalen van een programma van een team in Wordpress


  

define('CLIENTID', '********');
define('AANTALDAGEN', '30');
define('EIGENWEDSTRIJDEN', 'NEE');


$teamId = get_post_meta(get_the_ID(), 'team_id', true);


function getLeagueSchedule ($clientId, $teamId, $aantalDagen, $eigenwedstrijden)
	{
			
		$BASE_URL_PROG ="https://data.sportlink.com/poule-programma?client_id=";
		$url_prog = ( $BASE_URL_PROG . $clientId . '&poulecode=' . $teamId . '&aantaldagen=' . $aantalDagen . '&eigenwedstrijden=' . $eigenwedstrijden);
		$ch = curl_init();
		
		curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, false);
		curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
		curl_setopt($ch, CURLOPT_URL,$url_prog);
		$result_prog=curl_exec($ch);
		curl_close($ch);				
		
		$data_prog = json_decode($result_prog, true);
		
		return $data_prog;
		echo json_last_error(); // 4 (JSON_ERROR_SYNTAX)
		
		
	}

<?php 

try	{
	$games = getLeagueSchedule ($clientId, $teamId, $aantalDagen, $eigenwedstrijden, $item['datum'], $item['wedstrijd'], $item['aanvangstijd'], NULL);
	
	}
		catch(Exception $exc) 
	{
		$games = array();
		
	}
?>

<?php 
    if(empty($games)) 
    {
        echo '<tr><td colspan="2">Geen wedstrijden beschikbaar</td></tr>';
    } else 
        {
        foreach($games as $index => &$game) { ?>
            <tr>
                <td><?php echo date("j-n-Y", strtotime($game['wedstrijddatum']))?></td>
				<td><?php echo $game['wedstrijd']?></td>
				<td class="text-center"><?php echo $game['aanvangstijd']?></td>
            </tr>
    <?php }
    } ?>

 

  

Dat snap ik maar ik dacht dat een community juist was om te delen...

Dat wordt programmeren. En als je dat zelf wilt maken, heb je wel wat PHP-kennis en ervaring nodig. Wij doen dit ook zelf op onze eigen website. Zie bijvoorbeeld http://www.bsleiden.nl/programma alwaar we ook een dropdownlist uitgeprogrammeerd hebben om het programma van een bepaald team te tonen.


Maar dat is wel voor gevorderden!

Hoe maak je hiervan een drop-down en hoe combineer je dat dan met het programma overzicht? Wat ik zo graag wil is dat je een keuze voor leeftijdscategorie maakt en dat het programma van deze leeftijdscategorie wordt getoond.

<?php

 

  // ========================================= SportLink Keuzelijst Leeftijdscategorieen ==================================================

 

  echo '<h1>SportLink Keuzelijst Leeftijdscategorieen</h1>';

  $url='https://data.sportlink.com/keuzelijst-leeftijdscategorieen?client_id=XXXXXX';

 

  $ch = curl_init();

  curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, false);

  curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);

  curl_setopt($ch, CURLOPT_URL,$url);

  $result=curl_exec($ch);

  curl_close($ch);

 

  $programma_output = json_decode($result, true);

  $aantalrecords = count($programma_output);

  echo 'Aantal records = ' . $aantalrecords . '<br/>';

 

  echo '<table width="100%" border="0" cellspacing="0" cellpadding="2">';

  echo '<tr><strong>';

    echo '<td class="blue"><strong>Waarde</strong></td>';

    echo '<td class="blue"><strong>Omschrijving</strong></td>';

  echo '</strong></tr>';

 

  for ($i = 0; $i < $aantalrecords; $i++)

  {

    $class = "odd";

    $color = "blue";

 

 

    echo '<tr class="' . $class . '">';

      echo '<td class="'.$color.'">' . $programma_output[$i]["waarde"] . '</td>';

      echo '<td class="'.$color.'">' . $programma_output[$i]["omschrijving"] . '</td>';

    echo '</tr>';

 

  }

  echo '</table>';

  //var_dump($programma_output);

  echo 'Klaar';

 

 

?>

Ik heb de service keuzelijst-leeftijdscategorieen zojuist uitgeprobeerd en die levert 0 records. Zowel in op de pagina van Sportlink als in mijn eigen code (zie onder). Ik ga nu nog even een paar andere keuzelijsten proberen. Tevens ga ik een nieuw draadje openen over dit onderwerp.

Martin, ik ben benieuwd of jou het gelukt is met de keuzelijsten?

Timo, wat heeft jouw bericht te maken met oorspronkelijke bericht van Martin? Als je een vraag hebt maak dan een nieuw bericht aan. Het is natuurlijk een beetje moeilijk om antwoord te geven met de informatie welke je hebt gegeven. Heb je een code in je header geplaatst? Graag niet hier antwoorden maar een nieuwe post aanmaken.

Ik krijg in die library (http://dexels.github.io/navajofeeds-json-parser/article/) bij programma steeds error 500:


{"error":{"message":"Internal server error","code":5001}}


Ik roep deze aan:
https://data.sportlink.com/programma?client_id=xxx


"xxx" uiteraard vervangen met de juiste client id


Hebben jullie enig idee wat ik fout doe?



Ik heb al een flink aantal services uitgeprobeerd, maar nog geen keuze-lijsten. Daar ga ik morgenavond even naar kijken.

Ik had eerst moeten kijken voordat ik ging vragen. Ik zie het al: In de tweede regel moet je aangeven welke library opgehaald moet worden. teams vervangen voor programma.


1 persoon vindt dit leuk
Inloggen of registreren om een reactie te posten