X-Git-Url: http://git.dj3c1t.com/?a=blobdiff_plain;f=app%2Fdata%2Fmodules%2Fsql%2Fsml_data_sources.php;h=4c85c2b4ddbeb7f948791b0c50c0d7eb17f37c99;hb=refs%2Ftags%2Fsourceml.1.1.2;hp=8e8056e2bf07a04fbdc45302933401918860124b;hpb=9391cb9ccb3dd2884e7be2f15aa729733288f1e5;p=mw_sourceml diff --git a/app/data/modules/sql/sml_data_sources.php b/app/data/modules/sql/sml_data_sources.php index 8e8056e..4c85c2b 100644 --- a/app/data/modules/sql/sml_data_sources.php +++ b/app/data/modules/sql/sml_data_sources.php @@ -5,7 +5,7 @@ var $status; # ---------------------------------------------------------------------------------------- - # status de source + # classes de source # function source_status(){ @@ -44,6 +44,7 @@ $id_composition = isset($params["id_composition"]) ? $params["id_composition"] : null; $id_source_derivation = isset($params["id_source_derivation"]) ? $params["id_source_derivation"] : null; $id_licence = isset($params["id_licence"]) ? $params["id_licence"] : null; + $is_reference = isset($params["is_reference"]) ? $params["is_reference"] : null; $order_by = isset($params["order_by"]) ? $params["order_by"] : "ordre"; $order = isset($params["order"]) ? $params["order"] : "ASC"; $sgbd = $this->sgbd(); @@ -52,7 +53,7 @@ $ORDER_FROM_SOURCES_INFOS = !$ORDER_FIELD_EXISTS; $sources = array("list" => array(), "total" => 0); $COUNT_SELECT = "SELECT count(*) as n"; - $SELECT = "SELECT #--sml_sources.*, #--sml_sources.id_class as status"; + $SELECT = "SELECT #--sml_sources.*, #--sml_sources.id_class as `status`"; if($ORDER_FROM_SOURCES_INFOS){ if($order_by == "ordre"){ $SELECT .= ", (0 + #--sml_sources_infos.`value`) as ordre"; @@ -78,13 +79,13 @@ ($WHERE ? " AND " : " WHERE ") ." #--sml_sources.id=#--sml_sources_authors.id_source" ." AND #--sml_sources_authors.id_author=#--sml_authors.id" - ." AND #--sml_authors.id_user=".$this->eq($id_user) - ." AND #--sml_sources_authors.id_sources_access=".$this->id_groupe_status_admin(); + ." AND #--sml_authors.id_user=".$this->eq($id_user)/* + ." AND #--sml_sources_authors.id_sources_access=".$this->id_groupe_status_admin()*/; if(isset($id_groupe)) $WHERE .= ($WHERE ? " AND " : " WHERE ") ." #--sml_sources.id=#--sml_sources_authors.id_source" - ." AND #--sml_sources_authors.id_author=".$this->eq($id_groupe) - ." AND #--sml_sources_authors.id_sources_access=".$this->id_groupe_status_admin(); + ." AND #--sml_sources_authors.id_author=".$this->eq($id_groupe)/* + ." AND #--sml_sources_authors.id_sources_access=".$this->id_groupe_status_admin()*/; if(isset($status)) $WHERE .= ($WHERE ? " AND " : " WHERE ") ." #--sml_sources.id_class=".$this->eq($status); @@ -117,6 +118,19 @@ if(isset($id_licence)) $WHERE .= ($WHERE ? " AND " : " WHERE ") ." #--sml_sources.licence=".$this->eq($id_licence); + if(isset($is_reference)){ + $WHERE .= ($WHERE ? " AND " : " WHERE "); + if($is_reference){ + $WHERE .= + " #--sml_sources.reference IS NOT NULL" + ." AND LENGTH(#--sml_sources.reference) > 0"; + } + else{ + $WHERE .= + " (#--sml_sources.reference IS NULL" + ." OR (LENGTH(#--sml_sources.reference) = 0))"; + } + } $ORDER_BY = " ORDER BY ".$order_by." ".$order; $LIMIT = (isset($start) && $env->config("max_list") ? " LIMIT ".$env->config("max_list")." OFFSET ".$start : ""); try{ @@ -206,6 +220,9 @@ if(($source["has_derivations"] = $this->source_derivations(array("derivation" => $source["id"]))) === false) return false; if(($source["derivations"] = $this->source_derivations(array("id_source" => $source["id"]))) === false) return false; if(($source["reference"] = $this->source_reference($source)) === false) return false; + if($user = $env->user()){ + if(($source["permissions"] = $this->source_permissions($source, $user["id"])) === false) return false; + } if(!$source["reference"]) { if(($source["documents"] = $this->source_documents($source["id"])) === false) return false; }