Created
July 2, 2013 08:46
-
-
Save KlonD90/5907693 to your computer and use it in GitHub Desktop.
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
function GetGroupAttribute($users_id,$alias){ | |
$ret =''; | |
$id = $this->GetGroupId($alias); | |
$arr = $this->dsp->db->select_array('select A.USERS_ATTRIBUTE_ID, A.NAME, A.TABLENORMAL, A.ALIAS,A.USERS_ATTRIBUTETYPE_ID, A.MANDATORY,UAG.MANDATORY AS MAN, A.WISYWIG from USERS_ATTRGROUP_ATTR UAG | |
inner join USERS_ATTRIBUTE A on(A.USERS_ATTRIBUTE_ID=UAG.USERS_ATTRIBUTE_ID) where UAG.USERS_ATTRGROUP_ID=? and A.STATUS=1 order by UAG.ORDER_',$id); | |
if(isset($arr[0])){ | |
for($i=0;$i<count($arr);$i++){ | |
//fuck this shit | |
extract($arr[$i]); | |
$t = ($TABLENORMAL) ? $this->table_prefix . '_ATTRIBUTEVALUE_INTTABLE' : $this->tableByType($USERS_ATTRIBUTETYPE_ID); | |
//$t = $this->tableByType($USERS_ATTRIBUTETYPE_ID); | |
//$this->cmf->DEBUG=1; | |
$CONSIST_DATE = 0; | |
if($USERS_ATTRIBUTETYPE_ID == 5){ | |
$VALUE = $this->dsp->db->select_array("select VALUE from {$t} where USERS_ID=? and USERS_ATTRIBUTE_ID=?",$users_id,$USERS_ATTRIBUTE_ID); | |
}else{ | |
$VALUE = $this->dsp->db->select_value("select VALUE from {$t} where USERS_ID=? and USERS_ATTRIBUTE_ID=?",$users_id,$USERS_ATTRIBUTE_ID); | |
} | |
//$this->cmf->DEBUG=0; | |
$str_value = ''; | |
if(in_array($USERS_ATTRIBUTETYPE_ID,array(4,5))){ | |
//FIVE in TEST. BASE TABLE IS NOT OPTIMIZE FOR THIS TYPE | |
if($TABLENORMAL){ | |
$DATA = "DATA_".$TABLENORMAL; | |
$arr_ = (isset($$DATA)) ? $$DATA : $this->dsp->db->select_array("select NAME as S_NAME,{$TABLENORMAL}_ID as S_ID from {$TABLENORMAL} where STATUS=1"); | |
$$DATA = $arr_; | |
for($p=0;$p<count($arr_);$p++){ | |
extract($arr_[$p]); | |
if($USERS_ATTRIBUTETYPE_ID == 5){ | |
$ACTIVE = 0; | |
for($n=0;$n<count($VALUE);$n++){if($VALUE[$n] == $S_ID) $ACTIVE = 1;} | |
$SEL = ($ACTIVE) ? 1 : 0; | |
}else $SEL = ($VALUE == $S_ID) ? 1 : 0; | |
$str_value .= "<item id='$S_ID' sel='$SEL'><name>$S_NAME</name></item>"; | |
} | |
$str_value = ($str_value) ? "<data>$str_value</data>" : ""; | |
}else{ | |
$arr_ = $this->dsp->db->select_array("select NAME as S_NAME,USERS_DATA_OTHER_ID as S_ID from USERS_DATA_OTHER where STATUS=1 and USERS_ATTRIBUTE_ID=?",$USERS_ATTRIBUTE_ID); | |
for($p=0;$p<count($arr_);$p++){ | |
extract($arr_[$p]); | |
if($USERS_ATTRIBUTETYPE_ID == 5){ | |
$ACTIVE = 0; | |
for($n=0;$n<count($VALUE);$n++){if($VALUE[$n] == $S_ID) $ACTIVE = 1;} | |
$SEL = ($ACTIVE) ? 1 : 0; | |
}else $SEL = ($VALUE == $S_ID) ? 1 : 0; | |
$str_value .= "<item id='$S_ID' sel='$SEL'><name>$S_NAME</name></item>"; | |
} | |
$str_value = ($str_value) ? "<data>$str_value</data>" : ""; | |
} | |
}elseif($TABLENORMAL){ | |
//$this->cmf->DEBUG=1; | |
$VALUE = $this->dsp->db->select_value("select NAME from {$TABLENORMAL} where STATUS=1 and {$TABLENORMAL}_ID=?",$VALUE); | |
//$this->cmf->DEBUG=0; | |
switch($USERS_ATTRIBUTETYPE_ID){ | |
case 9: | |
$VALUE = explode(' ',$VALUE); | |
$VALUE = $VALUE[0]; | |
break; | |
case 10: | |
$CONSIST_DATE = 1; | |
$BREAK = explode(' ',$VALUE); | |
$BREAK = $BREAK[0]; | |
$arr_date = explode('-',$BREAK); | |
$arr_date = (isset($arr_date[1])) ? $arr_date : array('','',''); | |
break; | |
} | |
$str_value = "<value>$VALUE</value>"; | |
}else{ | |
switch($USERS_ATTRIBUTETYPE_ID){ | |
case 9: | |
$VALUE = explode(' ',$VALUE); | |
$VALUE = $VALUE[0]; | |
break; | |
case 10: | |
$CONSIST_DATE = 1; | |
$BREAK = explode(' ',$VALUE); | |
$BREAK = $BREAK[0]; | |
$arr_date = explode('-',$BREAK); | |
$arr_date = (isset($arr_date[1])) ? $arr_date : array('','',''); | |
break; | |
} | |
$str_value = "<value>$VALUE</value>"; | |
} | |
$MANDATORY_ = ($MAN or $MANDATORY) ? 1 : 0; | |
$WISYWIG = ($WISYWIG and $USERS_ATTRIBUTETYPE_ID==3) ? "wisywig='1'" : ''; | |
if(!$CONSIST_DATE) | |
$ret .="<attribute id='$USERS_ATTRIBUTE_ID' alias='$ALIAS' $WISYWIG> | |
<name>$NAME</name> | |
<alias>$ALIAS</alias> | |
<type>$USERS_ATTRIBUTETYPE_ID</type> | |
<mandatory>$MANDATORY_</mandatory> | |
$str_value | |
</attribute>"; | |
else{ | |
$NAME_ARR = array('РУод','РЬеСБСПСЖ','РФенСМ'); | |
$ALIAS_ARR = array($ALIAS."_year",$ALIAS."_month",$ALIAS."_day"); | |
for($k=0;$k<count($arr_date);$k++){ | |
$str_value =''; | |
switch($k){ | |
case 0: | |
for($p=date('Y');$p>=1900;$p--){ | |
$SEL = ($arr_date[$k] == $p) ? 1 : 0; | |
$str_value .= "<item id='$p' sel='$SEL'><name>$p</name></item>"; | |
} | |
break; | |
case 1: | |
for($p=1;$p<13;$p++){ | |
$SEL = ($arr_date[$k] == $p) ? 1 : 0; | |
$str_value .= "<item id='$p' sel='$SEL'><name>{$this->dsp->builder->months[$p]}</name></item>"; | |
} | |
break; | |
case 2: | |
for($p=1;$p<32;$p++){ | |
$SEL = ($arr_date[$k] == $p) ? 1 : 0; | |
$str_value .= "<item id='$p' sel='$SEL'><name>$p</name></item>"; | |
} | |
break; | |
} | |
$ret .="<attribute id='$USERS_ATTRIBUTE_ID' index='{$k}' alias='{$ALIAS_ARR[$k]}'> | |
<name>{$NAME_ARR[$k]}</name> | |
<alias>{$ALIAS_ARR[$k]}</alias> | |
<type>$USERS_ATTRIBUTETYPE_ID</type> | |
<mandatory>$MANDATORY_</mandatory> | |
<data>$str_value</data> | |
</attribute>"; | |
} | |
} | |
} | |
} | |
return ($ret)? "<group_attribute alias='$alias' id='{$id}'>$ret</group_attribute>" : ''; | |
} |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment