source: pmb4.1/trunk/fuentes/pmb/cms/modules/common/datasources/cms_module_common_datasource_articles_by_article_categories.class.php @ 478

Last change on this file since 478 was 478, checked in by mabarracus, 4 years ago

copy trusty code 4.1

  • Property svn:executable set to *
File size: 2.2 KB
Line 
1<?php
2// +-------------------------------------------------+
3// © 2002-2012 PMB Services / www.sigb.net pmb@sigb.net et contributeurs (voir www.sigb.net)
4// +-------------------------------------------------+
5// $Id: cms_module_common_datasource_articles_by_article_categories.class.php,v 1.2 2013-09-06 08:00:05 apetithomme Exp $
6
7if (stristr($_SERVER['REQUEST_URI'], ".class.php")) die("no access");
8
9class cms_module_common_datasource_articles_by_article_categories extends cms_module_common_datasource_list{
10       
11        public function __construct($id=0){
12                parent::__construct($id);
13                $this->sortable = true;
14                $this->limitable = true;
15        }
16        /*
17         * On défini les sélecteurs utilisable pour cette source de donnée
18         */
19        public function get_available_selectors(){
20                return array(
21                        "cms_module_common_selector_article",
22                        "cms_module_common_selector_env_var",
23                );
24        }
25
26        /*
27         * On défini les critères de tri utilisable pour cette source de donnée
28         */
29        protected function get_sort_criterias() {
30                return array (
31                        "publication_date",
32                        "id_article",
33                        "article_title",
34                        "article_order"
35                );
36        }
37       
38        /*
39         * Récupération des données de la source...
40         */
41        public function get_datas(){
42                $selector = $this->get_selected_selector();
43                if ($selector) {
44                        $query = "select distinct id_article,if(article_start_date != '0000-00-00 00:00:00',article_start_date,article_creation_date) as publication_date from cms_articles join cms_articles_descriptors on id_article=num_article where num_article != '".$selector->get_value()."' and num_noeud in (select num_noeud from cms_articles_descriptors where num_article = '".$selector->get_value()."')";
45                        if ($this->parameters["sort_by"] != "") {
46                                $query .= " order by ".$this->parameters["sort_by"];
47                                if ($this->parameters["sort_order"] != "") $query .= " ".$this->parameters["sort_order"];
48                        }
49                        $result = mysql_query($query);
50                        $return = array();
51                        if(mysql_num_rows($result) > 0){
52                                while($row = mysql_fetch_object($result)){
53                                        $return[] = $row->id_article;
54                                }
55                        }
56                        $return = $this->filter_datas("articles",$return);
57                        if ($this->parameters["nb_max_elements"] > 0) $return = array_slice($return, 0, $this->parameters["nb_max_elements"]);
58                        return $return;
59                }
60                return false;
61        }
62}
Note: See TracBrowser for help on using the repository browser.