OpenClassroomsBridge.php 1.5 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546
  1. <?php
  2. class OpenClassroomsBridge extends BridgeAbstract{
  3. const MAINTAINER = "sebsauvage";
  4. const NAME = "OpenClassrooms Bridge";
  5. const URI = "https://openclassrooms.com/";
  6. const CACHE_TIMEOUT = 21600; // 6h
  7. const DESCRIPTION = "Returns latest tutorials from OpenClassrooms.";
  8. const PARAMETERS = array( array(
  9. 'u'=>array(
  10. 'name'=>'Catégorie',
  11. 'type'=>'list',
  12. 'required'=>true,
  13. 'values'=>array(
  14. 'Arts & Culture'=>'arts',
  15. 'Code'=>'code',
  16. 'Design'=>'design',
  17. 'Entreprise'=>'business',
  18. 'Numérique'=>'digital',
  19. 'Sciences'=>'sciences',
  20. 'Sciences Humaines'=>'humainities',
  21. 'Systèmes d\'information'=>'it',
  22. 'Autres'=>'others'
  23. )
  24. )
  25. ));
  26. public function getURI(){
  27. return self::URI.'/courses?categories='.$this->getInput('u').'&'
  28. .'title=&sort=updatedAt+desc';
  29. }
  30. public function collectData(){
  31. $html = getSimpleHTMLDOM($this->getURI())
  32. or returnServerError('Could not request OpenClassrooms.');
  33. foreach($html->find('.courseListItem') as $element) {
  34. $item = array();
  35. $item['uri'] = self::URI.$element->find('a', 0)->href;
  36. $item['title'] = $element->find('h3', 0)->plaintext;
  37. $item['content'] = $element->find('slidingItem__descriptionContent', 0)->plaintext;
  38. $this->items[] = $item;
  39. }
  40. }
  41. }