OpenClassroomsBridge.php 1.4 KB

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