Exemple #1
0
 public function getInfosPersonne($url)
 {
     $last = Arrays::last(explode('/', $url));
     $wp = redis()->get('wp.wp.info.' . $last);
     $html = redis()->get('wp.html.info.' . $last);
     if (!$wp) {
         $wp = file_get_contents($url);
         redis()->set('wp.wp.info.' . $last, $wp);
     }
     $url = 'http://fr.dbpedia.org/page/' . $last;
     $infos = [];
     $html = redis()->get('wp.info.' . $last);
     if (!$html) {
         $html = file_get_contents($url);
         redis()->set('wp.info.' . $last, $html);
     }
     $infos['completename'] = Utils::cut('<title ng:bind-template="{{about.title}} | DBpedia">', '</title>', $html);
     $infos['abstract'] = Utils::cut('<li><span class="literal"><span property="dbpedia-owl:abstract" xmlns:dbpedia-owl="http://dbpedia.org/ontology/">', '</span>', $html);
     $infos['image'] = Utils::cut('<li><span class="literal"><a class="uri" rel="dbpedia-owl:thumbnail nofollow" xmlns:dbpedia-owl="http://dbpedia.org/ontology/" href="', '"', $html);
     $infos['profession'] = Utils::cut('<li><span class="literal"><a class="uri" rel="dbpedia-owl:profession" xmlns:dbpedia-owl="http://dbpedia.org/ontology/" href="http://fr.dbpedia.org/resource/', '"', $html);
     $infos['birthname'] = Utils::cut('<li><span class="literal"><span property="dbpedia-owl:birthName" xmlns:dbpedia-owl="http://dbpedia.org/ontology/">', '</span>', $html);
     $birthdate = Utils::cut('<li><span class="literal"><span property="dbpedia-owl:birthDate" xmlns:dbpedia-owl="http://dbpedia.org/ontology/">', '</span>', $html);
     list($y, $m, $d) = explode('-', $birthdate, 3);
     $birthdate = "{$d}/{$m}/{$y}";
     $infos['birthdate'] = $birthdate;
     $deathdate = Utils::cut('<li><span class="literal"><span property="dbpedia-owl:deathDate" xmlns:dbpedia-owl="http://dbpedia.org/ontology/">', '</span>', $html);
     list($y, $m, $d) = explode('-', $deathdate, 3);
     $deathdate = "{$d}/{$m}/{$y}";
     $infos['deathdate'] = $deathdate != '//' ? $deathdate : null;
     // $tagsHtml = explode('ontology/" href="http://fr.dbpedia.org/resource/', $html);
     // array_shift($tagsHtml);
     // $tags = [];
     $wp = str_replace('<p><small>', '<small>', $wp);
     $wp = str_replace('<p><span', '<span>', $wp);
     $wpid = Utils::cut('"wgArticleId":', ',', $wp);
     $p = Utils::cut('<p>', '</p>', $wp);
     $infos['abstract'] = str_replace(["\n", "\r", "\t"], '', strip_tags($p));
     $infos['id_wp'] = (int) $wpid;
     if (strstr($wp, 'Profession</th')) {
         $tab = explode('Profession</th>', $wp);
         if (count($tab) > 1) {
             $seg = Utils::cut('<td>', '</td>', $tab[1]);
             if (strlen($seg)) {
                 $seg = str_replace(['<br />', '<br/>', '<br>'], ', ', $seg);
                 $infos['profession'] = strip_tags($seg);
             }
         }
     } else {
         if (strstr($wp, 'Activité principale</th')) {
             $tab = explode('Activité principale</th', $wp);
             if (count($tab) > 1) {
                 $seg = Utils::cut('<td>', '</td>', $tab[1]);
                 if (strlen($seg)) {
                     $seg = str_replace(['<br />', '<br/>', '<br>'], ', ', $seg);
                     $infos['profession'] = strip_tags($seg);
                 }
             }
         }
     }
     // foreach ($tagsHtml as $tagHtml) {
     //     list($tag, $dummy) = explode('">', $tagHtml, 2);
     //     if (!fnmatch('*:*', $tag) && !is_numeric($tag)) {
     //         $tags[] = $tag;
     //     }
     // }
     if (fnmatch('http*', $infos['completename'])) {
         $infos['completename'] = ucwords(str_replace('_', ' ', Arrays::end(explode('/', $infos['completename']))));
     }
     $app = $this->getApp($last);
     $media = array_get($app, 'lead.media');
     if (is_array($media)) {
         $items = isAke($media, 'items', []);
         if (!empty($items)) {
             $item = current($items);
             $infos['image'] = isAke($item, 'url', false);
         }
     }
     if (!isset($infos['image'])) {
         $infos['image'] = $this->getImage((int) $wpid);
     }
     if (!$infos['image']) {
         $infos['image'] = $this->getImage((int) $wpid);
     }
     $infos['abstract'] = str_replace(['[1]', '[2]', '[3]', '[4]', '[5]'], '', $infos['abstract']);
     $infos['abstract'] = $this->getExtract((int) $wpid);
     // $tags = array_unique($tags);
     // asort($tags);
     // $infos['tags'] = array_values($tags);
     return $infos;
 }
Exemple #2
0
 public function fiche($reseller_id)
 {
     $user = session('user')->getUser();
     if (!$user) {
         $user = [];
     }
     $account_id = (int) isAke($user, 'id', 23);
     $fiche = Model::Restodata()->where(['reseller_id', '=', (int) $reseller_id])->first(true);
     /* c'est un restaurateur */
     if ($fiche) {
         $row = $fiche->toArray();
         $data = [];
         $options = $row['options'];
         $preferences_client_paiement_titre = isAke($options, 'preferences_client_paiement_titre', false);
         $data['paiement_cheque_montant_max'] = isAke($options, 'preferences_client_paiement_cheque_montant_max', 0);
         $data['paiement_carte'] = isAke($options, 'preferences_client_paiement_carte', -1);
         $data['paiement_titre_rendu_monnaie'] = isAke($options, 'preferences_client_paiement_titre_rendu_monnaie', $preferences_client_paiement_titre ? 0 : -1);
         $data['paiement_titre_max_accepte'] = isAke($options, 'preferences_client_paiement_titre_max_accepte', null);
         $data['company'] = $row['company'];
         $data['company']['siret'] = (string) isAke($row['company'], 'siret', '');
         $data['company']['tel'] = (string) str_replace([" ", ".", "-", "+"], ["", "", "", "00"], isAke($row['company'], 'tel', ''));
         if (fnmatch('0*', $data['company']['tel'])) {
             $data['company']['tel'] = strReplaceFirst('0', '+33', $data['company']['tel']);
         }
         $data['is_favorite'] = lib('favorite')->has('reseller', (int) $reseller_id, (int) $account_id);
         $data['is_resto'] = true;
         $data['nombre_places'] = $options['nombre_places'];
         $data['nombre_places_terrasse'] = $options['nombre_places_terrasse'];
         $horaires = [];
         $schedules = $row['schedules'];
         foreach ($schedules as $typeSchedule => $days) {
             if (!isset($horaires[$typeSchedule])) {
                 $horaires[$typeSchedule] = [];
             }
             foreach ($days as $day => $dataSchedule) {
                 if (!isset($horaires[$typeSchedule][$day])) {
                     $horaires[$typeSchedule][$day] = [];
                 }
                 foreach ($dataSchedule as $when => $hour) {
                     $hour = str_replace('_', 'h', $hour);
                     $horaires[$typeSchedule][$day][$when] = str_replace('h00', 'h', $hour);
                 }
             }
         }
         $data['horaires'] = $horaires;
         $prefsResto = array_keys(lib('resto')->extractPreferences($options));
         $activitesResto = array_keys(lib('resto')->extractActivites($options));
         $labelsResto = array_keys(lib('resto')->extractLabels($options));
         $thematiquesResto = array_keys(lib('resto')->extractThematiques($options));
         $guidesResto = array_keys(lib('resto')->extractGuides($options));
         $optionsMacro = (include APPLICATION_PATH . DS . 'models/options/413.php');
         $valuesGuides = array_get($optionsMacro, 'guides.values');
         $valuesActivities = array_get($optionsMacro, 'activites.values');
         $themes_affil = array_get($optionsMacro, 'activites.types_affil');
         $valuesThematiques = [];
         $valuesThematiques = array_merge($valuesThematiques, array_get($optionsMacro, 'thematiques.values_0'));
         $valuesThematiques = array_merge($valuesThematiques, array_get($optionsMacro, 'thematiques.values_1'));
         $valuesThematiques = array_merge($valuesThematiques, array_get($optionsMacro, 'thematiques.values_2'));
         $valuesThematiques = array_merge($valuesThematiques, array_get($optionsMacro, 'thematiques.values_3'));
         $valuesLabels = [];
         $valuesLabels = array_merge($valuesLabels, array_get($optionsMacro, 'labels.values_0'));
         $valuesLabels = array_merge($valuesLabels, array_get($optionsMacro, 'labels.values_1'));
         $acts = $themes = $lbls = $prefs = $guides = [];
         foreach ($guidesResto as $guidesId) {
             $guides[] = $valuesGuides[(int) str_replace('guides_', '', $guidesId)];
         }
         foreach ($activitesResto as $activiteId) {
             if (fnmatch('*_*_*', $activiteId)) {
                 continue;
             }
             $acts[] = $valuesActivities[(int) str_replace('activites_', '', $activiteId)];
         }
         foreach ($thematiquesResto as $thematiquesId) {
             $ind = str_replace('thematiques_', 'thematiques.values_', $thematiquesId);
             $last = Arrays::end(explode('_', $ind));
             $ind = str_replace('_' . $last, '.' . $last, $ind);
             $ind = str_replace('thematiques.values.', 'thematiques.values_', $ind);
             $val = array_get($optionsMacro, $ind);
             $themes[] = $val;
         }
         foreach ($labelsResto as $labelsId) {
             $ind = str_replace('labels_', 'labels.values_', $labelsId);
             $last = Arrays::end(explode('_', $ind));
             $ind = str_replace('_' . $last, '.' . $last, $ind);
             $ind = str_replace('labels.values.', 'labels.values_', $ind);
             $val = array_get($optionsMacro, $ind);
             $lbls[] = $val;
         }
         // foreach ($labelsResto as $labelsId) {
         //     $lbls[] = $valuesLabels[(int) str_replace('thematiques_', '', $labelsId)];
         // }
         foreach ($prefsResto as $index) {
             $tab = explode('_', $index);
             if (is_numeric(end($tab))) {
                 if (!isset($prefs[str_replace(['preferences_client_', '_' . end($tab)], '', $index)])) {
                     $prefs[str_replace(['preferences_client_', '_' . end($tab)], '', $index)] = [];
                 }
                 $values = array_get($optionsMacro, str_replace('_' . end($tab), '', $index) . '.values');
                 $prefs[str_replace(['preferences_client_', '_' . end($tab)], '', $index)][] = $values[end($tab)];
             }
         }
         $prefs['paiement'] = array_merge(isset($prefs['paiement_carte']) ? $prefs['paiement_carte'] : [], isset($prefs['paiement_titre']) ? $prefs['paiement_titre'] : []);
         unset($prefs['paiement_carte']);
         unset($prefs['paiement_titre']);
         $prefs['prestations_de_reception'] = array_merge(isset($prefs['prestations_specifiques']) ? $prefs['prestations_specifiques'] : [], isset($prefs['prestations_de_reception']) ? $prefs['prestations_de_reception'] : [], isset($prefs['prestations_de_reception_langue']) ? $prefs['prestations_de_reception_langue'] : []);
         unset($prefs['prestations_specifiques']);
         // unset($prefs['prestations_de_reception']);
         unset($prefs['prestations_de_reception_langue']);
         $p = [];
         foreach ($prefs as $k => $v) {
             $p[] = ['name' => $k, 'data' => $v];
         }
         $prefs = $p;
         $data['activites'] = array_values(array_unique($acts));
         $data['thematiques'] = array_values(array_unique($themes));
         $data['labels'] = array_values(array_unique($lbls));
         $data['preferences'] = $prefs;
         $data['guides'] = array_values(array_unique($guides));
         $data['location'] = $row['loc'];
         $extras = Model::Extradata()->where(['reseller_id', '=', (int) $reseller_id])->cursor()->first();
         if (empty($extras)) {
             $extras = ['access' => 'Prendre Tram 1 descendre à l\'arrêt Godrans.'];
         }
         $data['extras'] = $extras;
         $myzelift = Model::Myzelift()->where(['reseller_id', '=', (int) $reseller_id])->cursor()->first();
         if (!isset($myzelift['general_intro_1'])) {
             $myzelift = ['general_intro_1' => 'Lorem ipsum aequitis Lorem ipsum aequitis Lorem ipsum aequitis Lorem ipsum aequitis Lorem ipsum aequitis Lorem ipsum aequitis intro 1', 'general_intro_2' => 'Lorem ipsum aequitis Lorem ipsum aequitis Lorem ipsum aequitis Lorem ipsum aequitis Lorem ipsum aequitis Lorem ipsum aequitis intro 2', 'general_1' => 'Lorem ipsum aequitis Lorem ipsum aequitis Lorem ipsum aequitis Lorem ipsum aequitis Lorem ipsum aequitis Lorem ipsum aequitis Lorem ipsum aequitis Lorem ipsum aequitis Lorem ipsum aequitis Lorem ipsum aequitis Lorem ipsum aequitis 1', 'general_2' => 'Lorem ipsum aequitis Lorem ipsum aequitis Lorem ipsum aequitis Lorem ipsum aequitis Lorem ipsum aequitis Lorem ipsum aequitis Lorem ipsum aequitis Lorem ipsum aequitis Lorem ipsum aequitis Lorem ipsum aequitis Lorem ipsum aequitis 2', 'general_3' => 'Lorem ipsum aequitis Lorem ipsum aequitis Lorem ipsum aequitis Lorem ipsum aequitis Lorem ipsum aequitis Lorem ipsum aequitis Lorem ipsum aequitis Lorem ipsum aequitis Lorem ipsum aequitis Lorem ipsum aequitis Lorem ipsum aequitis 3', 'general_4' => 'Lorem ipsum aequitis Lorem ipsum aequitis Lorem ipsum aequitis Lorem ipsum aequitis Lorem ipsum aequitis Lorem ipsum aequitis Lorem ipsum aequitis Lorem ipsum aequitis Lorem ipsum aequitis Lorem ipsum aequitis Lorem ipsum aequitis 4', 'plus_1' => 'Lorem ipsum aequitis Lorem ipsum aequitis Lorem ipsum aequitis Lorem ipsum aequitis Lorem ipsum aequitis Lorem ipsum aequitis Lorem ipsum aequitis Lorem ipsum aequitis Lorem ipsum aequitis Lorem ipsum aequitis Lorem ipsum aequitis 1', 'plus_2' => 'Lorem ipsum aequitis Lorem ipsum aequitis Lorem ipsum aequitis Lorem ipsum aequitis Lorem ipsum aequitis Lorem ipsum aequitis Lorem ipsum aequitis Lorem ipsum aequitis Lorem ipsum aequitis Lorem ipsum aequitis Lorem ipsum aequitis 1', 'plus_3' => 'Lorem ipsum aequitis Lorem ipsum aequitis Lorem ipsum aequitis Lorem ipsum aequitis Lorem ipsum aequitis Lorem ipsum aequitis Lorem ipsum aequitis Lorem ipsum aequitis Lorem ipsum aequitis Lorem ipsum aequitis Lorem ipsum aequitis 1', 'coeur_1' => 'Lorem ipsum aequitis Lorem ipsum aequitis Lorem ipsum aequitis Lorem ipsum aequitis Lorem ipsum aequitis Lorem ipsum aequitis Lorem ipsum aequitis Lorem ipsum aequitis Lorem ipsum aequitis Lorem ipsum aequitis Lorem ipsum aequitis 1', 'coeur_2' => 'Lorem ipsum aequitis Lorem ipsum aequitis Lorem ipsum aequitis Lorem ipsum aequitis Lorem ipsum aequitis Lorem ipsum aequitis Lorem ipsum aequitis Lorem ipsum aequitis Lorem ipsum aequitis Lorem ipsum aequitis Lorem ipsum aequitis 1', 'coeur_3' => 'Lorem ipsum aequitis Lorem ipsum aequitis Lorem ipsum aequitis Lorem ipsum aequitis Lorem ipsum aequitis Lorem ipsum aequitis Lorem ipsum aequitis Lorem ipsum aequitis Lorem ipsum aequitis Lorem ipsum aequitis Lorem ipsum aequitis 1'];
         }
         if (isset($myzelift['images']) && isset($myzelift['data'])) {
             $zc = [];
             $zc['images'] = $myzelift['images'];
             $zc['data'] = $myzelift['data'];
             $myzelift = $zc;
         }
         $carte = $row['carte'];
         $nc = $c = [];
         $categories = Model::Catalogcategory()->cursor();
         foreach ($categories as $cat) {
             $nc[] = ['name' => $cat['name'], 'data' => $carte[$cat['id']]];
         }
         $data['carte'] = $nc;
         $data['myzelift'] = $myzelift;
         return $data;
     } else {
         /* ce n'est pas un restaurateur */
         $tab = Model::Company()->where(['reseller_id', '=', (int) $reseller_id])->first(false);
         $tab['rate'] = 0;
         $tab['is_resto'] = false;
         return $tab;
     }
 }