public function get_value()
 {
     if (!$this->value) {
         $parent = new cms_module_common_selector_sections($this->get_sub_selector_id("cms_module_common_selector_sections"));
         $cp = new cms_module_common_selector_type_section_filter($this->get_sub_selector_id("cms_module_common_selector_type_section_filter"));
         $parents = $parent->get_value();
         $field = $cp->get_value();
         $var = new cms_module_common_selector_env_var($this->get_sub_selector_id("cms_module_common_selector_env_var"));
         $this->value = array();
         if (is_array($parents) && count($parents)) {
             $query = "select id_section from cms_sections where section_num_parent in (" . implode(",", $parents) . ")";
             $result = pmb_mysql_query($query);
             $fields = new cms_editorial_parametres_perso($field['type']);
             if (pmb_mysql_num_rows($result)) {
                 while ($row = pmb_mysql_fetch_object($result)) {
                     $fields->get_values($row->id_section);
                     if (in_array($var->get_value(), $fields->values[$field['field']])) {
                         $this->value[] = $row->id_section;
                     }
                 }
             }
         }
     }
     return $this->value;
 }
 public function get_value()
 {
     if (!$this->value) {
         $query = "select id_editorial_type from cms_editorial_types where editorial_type_element = 'section_generic'";
         $result = pmb_mysql_query($query);
         if (pmb_mysql_num_rows($result)) {
             $fields = new cms_editorial_parametres_perso(pmb_mysql_result($result, 0, 0));
             if ($this->parameters['sub_selector']) {
                 $sub = new $this->parameters['sub_selector']($this->get_sub_selector_id($this->parameters['sub_selector']));
                 $fields->get_values($sub->get_value());
                 $this->value = $fields->values[$this->parameters['type_editorial_field']];
             }
         }
     }
     return $this->value;
 }
 public function get_value()
 {
     if (!$this->value) {
         $fields = new cms_editorial_parametres_perso($this->parameters["type_editorial"]);
         if ($this->parameters['sub_selector']) {
             $sub = new $this->parameters['sub_selector']($this->get_sub_selector_id($this->parameters['sub_selector']));
             $fields->get_values($sub->get_value());
             if (isset($fields->values[$this->parameters['type_editorial_field']])) {
                 $this->value = $fields->values[$this->parameters['type_editorial_field']];
             } else {
                 $query = "select id_editorial_type from cms_editorial_types where editorial_type_element = '" . $this->cms_module_common_selector_type_editorial_type . "_generic'";
                 $result = mysql_query($query);
                 if (mysql_num_rows($result)) {
                     $fields_type = new cms_editorial_parametres_perso(mysql_result($result, 0, 0));
                     $fields_type->get_values($sub->get_value());
                     $this->value = $fields_type->values[$this->parameters['type_editorial_field']];
                 }
             }
         } else {
             $this->value = array('type' => $this->parameters['type_editorial'], 'field' => $this->parameters['type_editorial_field']);
         }
     }
     return $this->value;
 }
 public function filter($datas)
 {
     $filtered_datas = array();
     //on récupère le champ à tester...
     $selector_from = $this->get_selected_selector("from");
     $field_from = $selector_from->get_value();
     //a quoi...
     $selector_by = $this->get_selected_selector("by");
     $field_by = $selector_by->get_value();
     if ($field_by) {
         $fields = new cms_editorial_parametres_perso($field_from['type']);
         foreach ($datas as $article_id) {
             $fields->get_values($article_id);
             if (in_array($field_by, $fields->values[$field_from['field']])) {
                 $filtered_datas[] = $article_id;
             }
         }
     } else {
         //pas de valeur pour le filtre, on filtre pas...
         $filtered_datas = $datas;
     }
     return $filtered_datas;
 }