public function get_datas()
 {
     //on commence par récupérer l'identifiant retourné par le sélecteur...
     $selector = $this->get_selected_selector();
     if ($selector) {
         $article_id = $selector->get_value();
         $article_ids = $this->filter_datas("articles", array($selector->get_value()));
         if ($article_ids[0]) {
             $group_metadatas = parent::get_group_metadatas();
             $datas = array();
             $article = new cms_article($article_ids[0]);
             $datas = $article->format_datas();
             $datas["details"] = $datas;
             $datas = array_merge($datas, parent::get_datas());
             $datas['link'] = $this->get_constructed_link("article", $article_ids[0]);
             $datas['logo_url'] = $datas["logo"]["big"];
             foreach ($group_metadatas as $i => $metadatas) {
                 if (is_array($metadatas["metadatas"])) {
                     foreach ($metadatas["metadatas"] as $key => $value) {
                         try {
                             $group_metadatas[$i]["metadatas"][$key] = H2o::parseString($value)->render($datas);
                         } catch (Exception $e) {
                         }
                     }
                 }
             }
             return $group_metadatas;
         }
     }
     return false;
 }
 /**
  * Génération de la structure de données representant les items de type article
  *
  */
 protected function get_items_datas($selector_values)
 {
     global $dbh;
     $articles_retour = array();
     if (count($selector_values)) {
         foreach ($selector_values as $id) {
             $article_instance = new cms_article($id);
             $article_data = $article_instance->format_datas();
             $article = array();
             $article['num_article'] = $article_data['id'];
             $article['title'] = $article_data['title'];
             $article['summary'] = $article_data['resume'];
             $article['content'] = $article_data['content'];
             if ($article_data['start_date'] == "") {
                 $article['publication_date'] = $article_data['create_date'];
             } else {
                 $article['publication_date'] = $article_data['start_date'];
             }
             $article['logo_url'] = $article_data['logo']['large'];
             $article['url'] = $this->get_constructed_link("article", $article_data['id']);
             $articles_retour[] = $article;
         }
     }
     return $articles_retour;
 }
 public function render($ids)
 {
     $datas = array();
     $datas['records'] = array();
     for ($i = 0; $i < count($ids); $i++) {
         $article = new cms_article($ids[$i]);
         $infos = $article->format_datas();
         $infos['link'] = $this->get_constructed_link("article", $infos['id']);
         $datas['records'][] = $infos;
     }
     return parent::render($datas);
 }
 public function get_datas()
 {
     //on commence par récupérer l'identifiant retourné par le sélecteur...
     $selector = $this->get_selected_selector();
     if ($selector) {
         $article_id = $selector->get_value();
         $article_ids = $this->filter_datas("articles", array($selector->get_value()));
         if ($article_ids[0]) {
             $article = new cms_article($article_ids[0]);
             return $article->format_datas();
         }
     }
     return false;
 }
 public function render($datas)
 {
     //on rajoute nos éléments...
     //le titre
     $render_datas = array();
     $render_datas['title'] = "Liste d'articles";
     $render_datas['articles'] = array();
     if (is_array($datas)) {
         foreach ($datas as $article) {
             $cms_article = new cms_article($article);
             $infos = $cms_article->format_datas();
             $infos['link'] = $this->get_constructed_link("article", $article);
             $render_datas['articles'][] = $infos;
         }
     }
     //on rappelle le tout...
     return parent::render($render_datas);
 }
 public function get_articles($filter)
 {
     global $dbh;
     $articles = array();
     if ($this->id) {
         $query = "select id_article from cms_articles JOIN cms_editorial_publications_states ON article_publication_state=id_publication_state where num_section = " . $this->id;
         if ($filter) {
             $query .= " and ((article_start_date != 0 and to_days(article_start_date)<=to_days(now()) and to_days(article_end_date)>=to_days(now()))||(article_start_date != 0 and article_end_date =0 and to_days(article_start_date)<=to_days(now()))||(article_start_date=0 and article_end_date=0)||(article_start_date = 0 and to_days(article_end_date)>=to_days(now()))) and (editorial_publication_state_opac_show=1" . (!$_SESSION['id_empr_session'] ? " and editorial_publication_state_auth_opac_show = 0" : "") . ") ";
         }
         $query .= " order by article_order";
         $result = pmb_mysql_query($query, $dbh);
         if (pmb_mysql_num_rows($result)) {
             while ($row = pmb_mysql_fetch_object($result)) {
                 $article = new cms_article($row->id_article);
                 $articles[] = $article->format_datas();
             }
         }
     }
     return $articles;
 }
 public function get_datas()
 {
     $datas = array();
     $selector = $this->get_selected_selector();
     switch ($this->parameters['selector']) {
         //devrait être le seul survivant...
         case "cms_module_agenda_selector_calendars":
             if ($selector) {
                 $calendars = array();
                 $query = "select managed_module_box from cms_managed_modules join cms_cadres on id_cadre = " . $this->cadre_parent . " and cadre_object = managed_module_name";
                 $result = pmb_mysql_query($query);
                 $events = array();
                 if (pmb_mysql_num_rows($result)) {
                     $box = pmb_mysql_result($result, 0, 0);
                     $infos = unserialize($box);
                     $calendars = $selector->get_value();
                     foreach ($calendars as $calendar) {
                         $elem = $infos['module']['calendars'][$calendar];
                         $query = "select id_article from cms_articles where article_num_type = " . $elem['type'];
                         $result = pmb_mysql_query($query);
                         if ($result && pmb_mysql_num_rows($result)) {
                             $articles = array();
                             while ($row = pmb_mysql_fetch_object($result)) {
                                 $articles[] = $row->id_article;
                             }
                             $articles = $this->filter_datas("articles", $articles);
                             foreach ($articles as $article) {
                                 $art = new cms_article($article);
                                 $event = $art->format_datas();
                                 foreach ($event['fields_type'] as $field) {
                                     if ($field['id'] == $elem['start_date']) {
                                         $event['event_start'] = $field['values'][0];
                                         $event['event_start']['time'] = mktime(0, 0, 0, substr($field['values'][0]['value'], 5, 2), substr($field['values'][0]['value'], 8, 2), substr($field['values'][0]['value'], 0, 4));
                                     }
                                     if ($field['id'] == $elem['end_date']) {
                                         $event['event_end'] = $field['values'][0];
                                         $event['event_end']['time'] = mktime(0, 0, 0, substr($field['values'][0]['value'], 5, 2), substr($field['values'][0]['value'], 8, 2), substr($field['values'][0]['value'], 0, 4));
                                     }
                                 }
                                 $event['id_type'] = $elem['type'];
                                 $event['color'] = $elem['color'];
                                 $event['calendar'] = $elem['name'];
                                 $events[] = $event;
                             }
                         }
                     }
                 }
                 usort($events, array($this, "sort_event"));
                 return array('events' => $events);
             }
             break;
         case "cms_module_common_selector_env_var":
             if ($selector) {
                 $art = new cms_article($selector->get_value());
                 $event = $art->format_datas();
                 //allons chercher les infos du calendrier associé à cet évènement
                 $query = "select managed_module_box from cms_managed_modules join cms_cadres on id_cadre = " . $this->cadre_parent . " and cadre_object = managed_module_name";
                 $result = pmb_mysql_query($query);
                 if (pmb_mysql_num_rows($result)) {
                     $box = pmb_mysql_result($result, 0, 0);
                     $infos = unserialize($box);
                     foreach ($infos['module']['calendars'] as $calendar) {
                         if ($calendar['type'] == $art->num_type) {
                             foreach ($event['fields_type'] as $field) {
                                 if ($field['id'] == $calendar['start_date']) {
                                     $event['event_start'] = $field['values'][0];
                                     $event['event_start']['time'] = mktime(0, 0, 0, substr($field['values'][0]['value'], 5, 2), substr($field['values'][0]['value'], 8, 2), substr($field['values'][0]['value'], 0, 4));
                                 }
                                 if ($field['id'] == $calendar['end_date']) {
                                     $event['event_end'] = $field['values'][0];
                                     $event['event_end']['time'] = mktime(0, 0, 0, substr($field['values'][0]['value'], 5, 2), substr($field['values'][0]['value'], 8, 2), substr($field['values'][0]['value'], 0, 4));
                                 }
                             }
                             $event['id_type'] = $calendar['type'];
                             $event['color'] = $calendar['color'];
                             $event['calendar'] = $calendar['name'];
                             break;
                         }
                     }
                 }
                 return $event;
             }
             break;
         case "cms_module_agenda_selector_calendars_date":
             if ($selector) {
                 $query = "select managed_module_box from cms_managed_modules join cms_cadres on id_cadre = " . $this->cadre_parent . " and cadre_object = managed_module_name";
                 $result = pmb_mysql_query($query);
                 if (pmb_mysql_num_rows($result)) {
                     $box = pmb_mysql_result($result, 0, 0);
                     $infos = unserialize($box);
                     $datas = $selector->get_value();
                     $time = mktime(0, 0, 0, substr($datas['date'], 5, 2), substr($datas['date'], 8, 2), substr($datas['date'], 0, 4));
                     foreach ($datas['calendars'] as $calendar) {
                         $elem = $infos['module']['calendars'][$calendar];
                         $query = "select id_article from cms_articles where article_num_type = " . $elem['type'];
                         $result = pmb_mysql_query($query);
                         if (pmb_mysql_num_rows($result)) {
                             $articles = array();
                             while ($row = pmb_mysql_fetch_object($result)) {
                                 $articles[] = $row->id_article;
                             }
                             $articles = $this->filter_datas("articles", $articles);
                             if (is_array($articles)) {
                                 foreach ($articles as $article) {
                                     $art = new cms_article($article);
                                     $event = $art->format_datas();
                                     foreach ($event['fields_type'] as $field) {
                                         if ($field['id'] == $elem['start_date']) {
                                             $event['event_start'] = $field['values'][0];
                                             $event['event_start']['time'] = mktime(0, 0, 0, substr($field['values'][0]['value'], 5, 2), substr($field['values'][0]['value'], 8, 2), substr($field['values'][0]['value'], 0, 4));
                                         }
                                         if ($field['id'] == $elem['end_date']) {
                                             $event['event_end'] = $field['values'][0];
                                             $event['event_end']['time'] = mktime(0, 0, 0, substr($field['values'][0]['value'], 5, 2), substr($field['values'][0]['value'], 8, 2), substr($field['values'][0]['value'], 0, 4));
                                         }
                                     }
                                     $event['id_type'] = $elem['type'];
                                     $event['color'] = $elem['color'];
                                     $event['calendar'] = $elem['name'];
                                     if ($event['event_start']['time'] >= $time || $event['event_start'] && $event['event_end'] && $event['event_end']['time'] >= $time) {
                                         $events[] = $event;
                                     }
                                 }
                             }
                         }
                     }
                 }
                 usort($events, array($this, "sort_event"));
                 return array('events' => $events);
             }
             break;
     }
 }