protected function build_tree_sections($id_parent, $depth = 0) { global $dbh; if ($this->parameters['max_depth'] == 0 || $depth < $this->parameters['max_depth']) { $items = $ids = $rows = array(); $query = "select id_section,section_title from cms_sections where section_num_parent = " . $id_parent . " order by section_order asc"; $result = pmb_mysql_query($query, $dbh); if (pmb_mysql_num_rows($result)) { while ($row = pmb_mysql_fetch_object($result)) { $ids[] = $row->id_section; $rows[] = $row; } $ids = $this->filter_datas("sections", $ids); foreach ($rows as $row) { if (in_array($row->id_section, $ids)) { $section = cms_provider::get_instance("section", $row->id_section); $item = array('id' => $row->id_section, 'title' => $row->section_title, 'link' => $this->get_constructed_link("section", $row->id_section), 'details' => $section->format_datas(false, false)); $sub_query = "select count(id_section) from cms_sections where section_num_parent = " . $row->id_section; $sub_result = pmb_mysql_query($sub_query, $dbh); if (pmb_mysql_num_rows($result) && pmb_mysql_result($sub_result, 0, 0) > 0) { $item['children'] = $this->build_tree_sections($row->id_section, $depth + 1); } $items[] = $item; } } } } return $items; }
public function get_datas() { //on commence par récupérer l'identifiant retourné par le sélecteur... $selector = $this->get_selected_selector(); if ($selector) { $section_id = $selector->get_value(); $section_ids = $this->filter_datas("sections", array($section_id)); if ($section_ids[0]) { $group_metadatas = parent::get_group_metadatas(); $datas = array(); $section = cms_provider::get_instance("section", $section_ids[0]); $datas = $section->format_datas(); $datas["details"] = $datas; $datas = array_merge($datas, parent::get_datas()); $datas['link'] = $this->get_constructed_link("section", $section_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; }
public function render($ids) { $datas = array(); for ($i = 0; $i < count($ids); $i++) { $section = cms_provider::get_instance("section", $ids[$i]); $infos = $section->format_datas(false, false); $infos['link'] = $this->get_constructed_link("section", $infos['id']); $datas[] = $infos; } return parent::render(array('records' => $datas)); }
public function render($ids) { $datas = array(); $datas['records'] = array(); for ($i = 0; $i < count($ids); $i++) { $article = cms_provider::get_instance("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_ids = $this->filter_datas("articles", array($selector->get_value())); if ($article_ids[0]) { $article = cms_provider::get_instance("article", $article_ids[0]); return $article->format_datas(); } } return false; }
public function render($datas) { global $opac_url_base; $render_datas = array(); $render_datas['sections'] = array(); $render_datas['home'] = array('title' => $this->msg['home'], 'link' => $opac_url_base); foreach ($datas as $section) { $cms_section = cms_provider::get_instance("section", $section); $infos = $cms_section->format_datas(false, false); $infos['link'] = $this->get_constructed_link("section", $section); $render_datas['sections'][] = $infos; } //on rappelle le tout... return parent::render($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) { $section_id = $selector->get_value(); $section_ids = $this->filter_datas("sections", array($section_id)); if ($section_ids[0]) { $section = cms_provider::get_instance("section", $section_ids[0]); $return = $section->format_datas(true, true, true, true); return $return; } } 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 = cms_provider::get_instance("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 render($datas) { //on rajoute nos éléments... //le titre $render_datas = array(); $render_datas['title'] = "Liste de rubriques"; $render_datas['sections'] = array(); if (is_array($datas) && count($datas)) { foreach ($datas as $section) { $cms_section = cms_provider::get_instance("section", $section); $infos = $cms_section->format_datas(true, true, true, true); $infos['link'] = $this->get_constructed_link("section", $section); foreach ($infos['articles'] as $i => $article) { $infos['articles'][$i]['link'] = $this->get_constructed_link("article", $article["id"]); } $render_datas['sections'][] = $infos; } } //on rappelle le tout... return parent::render($render_datas); }
public function format_datas() { if ($this->formated_datas === null) { $this->formated_datas = array(); $parent = cms_provider::get_instance("section", $this->num_parent); $documents = array(); foreach ($this->documents_linked as $id_doc) { $document = new cms_document($id_doc); $documents[] = $document->format_datas(); } $this->formated_datas = array('id' => $this->id, 'parent' => $parent->format_datas(false, false), 'title' => $this->title, 'resume' => $this->resume, 'logo' => $this->logo->format_datas(), 'publication_state' => $this->publication_state, 'start_date' => format_date($this->start_date), 'end_date' => format_date($this->end_date), 'descriptors' => $this->descriptors, 'content' => $this->contenu, 'type' => $this->type_content, 'fields_type' => $this->fields_type, 'create_date' => $this->create_date, 'documents' => $documents, 'nb_documents' => count($documents), 'last_update_date' => format_date($this->last_update_date)); } return $this->formated_datas; }
public function get_articles($filter) { global $dbh; if ($filter && $this->articles['filter'] === null || !$filter && $this->articles['full'] === null) { $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 = cms_provider::get_instance("article", $row->id_article); //new cms_article($row->id_article); $articles[] = $article->format_datas(); } } if ($filter) { $this->articles['filter'] = $articles; } else { $this->articles['full'] = $articles; } } } if ($filter) { return $this->articles['filter']; } else { return $this->articles['full']; } }
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 = cms_provider::get_instance("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 = cms_provider::get_instance("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 = cms_provider::get_instance("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; } }