Skip to content

Instantly share code, notes, and snippets.

@KlonD90
Created July 2, 2013 08:46
Show Gist options
  • Save KlonD90/5907693 to your computer and use it in GitHub Desktop.
Save KlonD90/5907693 to your computer and use it in GitHub Desktop.
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