OpenClassroomsBridge.php 1.3 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445
  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') . '&title=&sort=updatedAt+desc';
  28. }
  29. public function collectData(){
  30. $html = getSimpleHTMLDOM($this->getURI())
  31. or returnServerError('Could not request OpenClassrooms.');
  32. foreach($html->find('.courseListItem') as $element){
  33. $item = array();
  34. $item['uri'] = self::URI . $element->find('a', 0)->href;
  35. $item['title'] = $element->find('h3', 0)->plaintext;
  36. $item['content'] = $element->find('slidingItem__descriptionContent', 0)->plaintext;
  37. $this->items[] = $item;
  38. }
  39. }
  40. }