maintainer = "16mhz"; $this->name = "LeBonCoin"; $this->uri = "http://www.leboncoin.fr"; $this->description = "Returns most recent results from LeBonCoin for a region, and optionally a category and a keyword ."; $this->parameters[] = array( 'k'=>array('name'=>'Mot Clé'), 'r'=>array( 'name'=>'Région', 'type'=>'list', 'values'=>array( 'Alsace'=>'alsace', 'Aquitaine'=>'aquitaine', 'Auvergne'=>'auvergne', 'Basse Normandie'=>'basse_normandie', 'Bourgogne'=>'bourgogne', 'Bretagne'=>'bretagne', 'Centre'=>'centre', 'Champagne Ardenne'=>'champagne_ardenne', 'Corse'=>'corse', 'Franche Comté'=>'franche_comte', 'Haute Normandie'=>'haute_normandie', 'Ile de France'=>'ile_de_france', 'Languedoc Roussillon'=>'languedoc_roussillon', 'Limousin'=>'limousin', 'Lorraine'=>'lorraine', 'Midi Pyrénées'=>'midi_pyrenees', 'Nord Pas De Calais'=>'nord_pas_de_calais', 'Pays de la Loire'=>'pays_de_la_loire', 'Picardie'=>'picardie', 'Poitou Charentes'=>'poitou_charentes', 'Provence Alpes Côte d\'Azur'=>'provence_alpes_cote_d_azur', 'Rhône-Alpes'=>'rhone_alpes', 'Guadeloupe'=>'guadeloupe', 'Martinique'=>'martinique', 'Guyane'=>'guyane', 'Réunion'=>'reunion' ) ), 'c'=>array( 'name'=>'Catégorie', 'type'=>'list', 'values'=>array( 'EMPLOI'=>'_emploi_', 'VEHICULES'=>array( 'Tous'=>'_vehicules_', 'Voitures'=>'voitures', 'Motos'=>'motos', 'Caravaning'=>'caravaning', 'Utilitaires'=>'utilitaires', 'Équipement Auto'=>'equipement_auto', 'Équipement Moto'=>'equipement_moto', 'Équipement Caravaning'=>'equipement_caravaning', 'Nautisme'=>'nautisme', 'Équipement Nautisme'=>'equipement_nautisme' ), 'IMMOBILIER'=>array( 'Tous'=>'_immobilier_', 'Ventes immobilières'=>'ventes_immobilieres', 'Locations'=>'locations', 'Colocations'=>'colocations', 'Bureaux & Commerces'=>'bureaux_commerces' ), 'VACANCES'=>array( 'Tous'=>'_vacances_', 'Location gîtes'=>'locations_gites', 'Chambres d\'hôtes'=>'chambres_d_hotes', 'Campings'=>'campings', 'Hôtels'=>'hotels', 'Hébergements insolites'=>'hebergements_insolites' ), 'MULTIMEDIA'=>array( 'Tous'=>'_multimedia_', 'Informatique'=>'informatique', 'Consoles & Jeux vidéo'=>'consoles_jeux_video', 'Image & Son'=>'image_son', 'Téléphonie'=>'telephonie' ), 'LOISIRS'=>array( 'Tous'=>'_loisirs_', 'DVD / Films'=>'dvd_films', 'CD / Musique'=>'cd_musique', 'Livres'=>'livres', 'Animaux'=>'animaux', 'Vélos'=>'velos', 'Sports & Hobbies'=>'sports_hobbies', 'Instruments de musique'=>'instruments_de_musique', 'Collection'=>'collection', 'Jeux & Jouets'=>'jeux_jouets', 'Vins & Gastronomie'=>'vins_gastronomie' ), 'MATÉRIEL PROFESSIONNEL'=>array( 'Tous'=>'_materiel_professionnel_', 'Matériel Agricole'=>'mateiel_agricole', 'Transport - Manutention'=>'transport_manutention', 'BTP - Chantier - Gros-œuvre'=>'btp_chantier_gros_oeuvre', 'Outillage - Matériaux 2nd-œuvre'=>'outillage_materiaux_2nd_oeuvre', 'Équipements Industriels'=>'equipement_industriels', 'Restauration - Hôtellerie'=>'restauration_hotellerie', 'Fournitures de Bureau'=>'fournitures_de_bureau', 'Commerces & Marchés'=>'commerces_marches', 'Matériel médical'=>'materiel_medical' ), 'SERVICES'=>array( 'Tous'=>'_services_', 'Prestations de services'=>'prestations_de_services', 'Billetterie'=>'billetterie', 'Évènements'=>'evenements', 'Cours particuliers'=>'cours_particuliers', 'Covoiturage'=>'covoiturage' ), 'MAISON'=>array( 'Tous'=>'_maison_', 'Ameublement'=>'ameublement', 'Électroménager'=>'electromenager', 'Arts de la table'=>'arts_de_la_table', 'Décoration'=>'decoration', 'Linge de maison'=>'linge_de_maison', 'Bricolage'=>'bricolage', 'Jardinage'=>'jardinage', 'Vêtements'=>'vetements', 'Chaussures'=>'chaussures', 'Accessoires & Bagagerie'=>'accessoires_bagagerie', 'Montres & Bijoux'=>'montres_bijoux', 'Équipement bébé'=>'equipement_bebe', 'Vêtements bébé'=>'vetements_bebe' ), 'AUTRES'=>'autres' ) ) ); } public function collectData(array $param){ $html = ''; if (empty($param['c'])) { $link = 'http://www.leboncoin.fr/annonces/offres/' . $param['r'] . '/?f=a&th=1&q=' . urlencode($param['k']); } else { $link = 'http://www.leboncoin.fr/' . $param['c'] . '/offres/' . $param['r'] . '/?f=a&th=1&q=' . urlencode($param['k']); } $html = $this->getSimpleHTMLDOM($link) or $this->returnServerError('Could not request LeBonCoin.'); $list = $html->find('.tabsContent', 0); if($list === NULL) { return; } $tags = $list->find('li'); foreach($tags as $element) { $element = $element->find('a', 0); $item = new \Item(); $item->uri = $element->href; $title = html_entity_decode($element->getAttribute('title')); $content_image = $element->find('div.item_image', 0)->find('.lazyload', 0); if($content_image !== NULL) { $content = 'thumbnail'; } else { $content = ""; } $date = $element->find('aside.item_absolute', 0)->find('p.item_sup', 0); $detailsList = $element->find('section.item_infos', 0); for($i = 0; $i <= 1; $i++) $content .= $detailsList->find('p.item_supp', $i)->plaintext; $price = $detailsList->find('h3.item_price', 0); $content .= $price === NULL ? '' : $price->plaintext; $item->title = $title; $item->content = $content . $date; $this->items[] = $item; } } }