var $status;
# ----------------------------------------------------------------------------------------
- # status de source
+ # classes de source
#
function source_status(){
$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();
$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";
($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);
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{
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;
}