00001 <?php 00017 include_once("ColumnText.php"); 00018 00028 class ColumnShare extends ColumnText 00029 { 00030 public $m_MyPrivateImg = null; 00031 public $m_MySharedImg = null; 00032 public $m_MyAssignedImg = null; 00033 public $m_MyDistributedImg = null; 00034 public $m_GroupSharedImg = null; 00035 public $m_OtherSharedImg = null; 00036 public $m_DefaultImg = null; 00037 00038 public $m_RecordOwnerId = null; 00039 public $m_RecordGroupId = null; 00040 public $m_RecordGroupPerm = null; 00041 public $m_RecordOtherPerm = null; 00042 public $m_RecordCreatorId = null; 00043 00044 protected $m_RecordOwnerId_AutoLoad = false; 00045 protected $m_RecordGroupId_AutoLoad = false; 00046 protected $m_RecordGroupPerm_AutoLoad = false; 00047 protected $m_RecordOtherPerm_AutoLoad = false; 00048 00049 public $m_hasOwnerField = false; 00050 00057 protected function readMetaData(&$xmlArr) 00058 { 00059 parent::readMetaData($xmlArr); 00060 $this->m_MyPrivateImg = isset($xmlArr["ATTRIBUTES"]["MYPRIVATEIMG"]) ? $xmlArr["ATTRIBUTES"]["MYPRIVATEIMG"] : "{RESOURCE_URL}/common/images/icon_data_private.gif"; 00061 $this->m_MySharedImg = isset($xmlArr["ATTRIBUTES"]["MYSHAREDIMG"]) ? $xmlArr["ATTRIBUTES"]["MYSHAREDIMG"] : "{RESOURCE_URL}/common/images/icon_data_shared.gif"; 00062 $this->m_MyAssignedImg = isset($xmlArr["ATTRIBUTES"]["MYASSIGNEDIMG"]) ? $xmlArr["ATTRIBUTES"]["MYASSIGNEDIMG"] : "{RESOURCE_URL}/common/images/icon_data_assigned.gif"; 00063 $this->m_MyDistributedImg = isset($xmlArr["ATTRIBUTES"]["MYDISTRIBUTEDIMG"]) ? $xmlArr["ATTRIBUTES"]["MYDISTRIBUTEDIMG"] : "{RESOURCE_URL}/common/images/icon_data_distributed.gif"; 00064 $this->m_GroupSharedImg = isset($xmlArr["ATTRIBUTES"]["GROUPSHAREDIMG"])? $xmlArr["ATTRIBUTES"]["GROUPSHAREDIMG"]: "{RESOURCE_URL}/common/images/icon_data_shared_group.gif"; 00065 $this->m_OtherSharedImg = isset($xmlArr["ATTRIBUTES"]["OTHERSHAREDIMG"])? $xmlArr["ATTRIBUTES"]["OTHERSHAREDIMG"]: "{RESOURCE_URL}/common/images/icon_data_shared_other.gif"; 00066 $this->m_DefaultImg = isset($xmlArr["ATTRIBUTES"]["DEFAULTIMG"])? $xmlArr["ATTRIBUTES"]["DEFAULTIMG"]: "{RESOURCE_URL}/common/images/icon_data_shared_other.gif"; 00067 00068 $this->m_RecordCreatorId = isset($xmlArr["ATTRIBUTES"]["CREATORID"]) ? $xmlArr["ATTRIBUTES"]["CREATORID"] : null; 00069 $this->m_RecordOwnerId = isset($xmlArr["ATTRIBUTES"]["OWNERID"]) ? $xmlArr["ATTRIBUTES"]["OWNERID"] : null; 00070 $this->m_RecordGroupId = isset($xmlArr["ATTRIBUTES"]["GROUPID"]) ? $xmlArr["ATTRIBUTES"]["GROUPID"] : null; 00071 $this->m_RecordGroupPerm= isset($xmlArr["ATTRIBUTES"]["GROUPPERM"]) ? $xmlArr["ATTRIBUTES"]["GROUPPERM"]: null; 00072 $this->m_RecordOtherPerm= isset($xmlArr["ATTRIBUTES"]["OTHERPERM"]) ? $xmlArr["ATTRIBUTES"]["OTHERPERM"]: null; 00073 00074 $this->m_RecordOwnerId_AutoLoad = isset($xmlArr["ATTRIBUTES"]["OWNERID"])?false:true; 00075 $this->m_RecordGroupId_AutoLoad = isset($xmlArr["ATTRIBUTES"]["GROUPID"])?false:true; 00076 $this->m_RecordGroupPerm_AutoLoad = isset($xmlArr["ATTRIBUTES"]["GROUPPERM"])?false:true; 00077 $this->m_RecordOtherPerm_AutoLoad = isset($xmlArr["ATTRIBUTES"]["OTHERPERM"])?false:true; 00078 } 00079 00080 public function setValue($value){ 00081 $formObj = $this->getFormObj(); 00082 $rec = $formObj->getActiveRecord(); 00083 00084 if($this->m_RecordOwnerId_AutoLoad) 00085 { 00086 $this->m_hasOwnerField = $this->hasOwnerField(); 00087 if($this->m_hasOwnerField){ 00088 $this->m_RecordOwnerId = $rec['owner_id']; 00089 $this->m_RecordCreatorId = $rec['create_by']; 00090 }else{ 00091 $this->m_RecordOwnerId = $rec['create_by']; 00092 } 00093 } 00094 00095 if($this->m_RecordGroupId_AutoLoad) 00096 { 00097 $this->m_RecordGroupId = $rec['group_id']; 00098 } 00099 00100 if($this->m_RecordGroupPerm_AutoLoad) 00101 { 00102 $this->m_RecordGroupPerm = $rec['group_perm']; 00103 } 00104 00105 if($this->m_RecordOtherPerm_AutoLoad) 00106 { 00107 $this->m_RecordOtherPerm = $rec['other_perm']; 00108 } 00109 } 00110 00111 public function getValue(){ 00112 $user_id = BizSystem::GetUserProfile("Id"); 00113 $groups = BizSystem::GetUserProfile("groups"); 00114 if (!$groups) $groups = array(); 00115 00116 $this->m_hasOwnerField = $this->hasOwnerField(); 00117 if($this->m_hasOwnerField){ 00118 00119 if($this->m_RecordOwnerId != $this->m_RecordCreatorId) 00120 { 00121 if($this->m_RecordOwnerId == $user_id) 00122 { 00123 $this->m_Value = 4; 00124 return $this->m_Value ; 00125 } 00126 elseif($this->m_RecordCreatorId == $user_id) 00127 { 00128 $this->m_Value = 5; 00129 return $this->m_Value ; 00130 } 00131 } 00132 } 00133 00134 if($user_id == $this->m_RecordOwnerId) 00135 { 00136 if((int)$this->m_RecordGroupPerm>0 || (int)$this->m_RecordOtherPerm>0 ) 00137 { 00138 00139 $this->m_Value = 1; 00140 } 00141 else 00142 { 00143 $this->m_Value = 0; 00144 } 00145 } 00146 elseif($this->m_RecordOtherPerm>0) 00147 { 00148 $this->m_Value = 3; 00149 00150 } 00151 else 00152 { 00153 foreach($groups as $group_id) 00154 { 00155 if($group_id == $this->m_RecordGroupId) 00156 { 00157 $this->m_Value = 2; 00158 break; 00159 } 00160 } 00161 00162 } 00163 00164 00165 00166 return $this->m_Value; 00167 } 00168 00174 public function render() 00175 { 00176 $style = $this->getStyle(); 00177 $text = $this->getText(); 00178 $id = $this->m_Name; 00179 $func = $this->getFunction(); 00180 00181 switch($this->getValue()){ 00182 case "0": 00183 $image_url = $this->m_MyPrivateImg; 00184 break; 00185 case "1": 00186 $image_url = $this->m_MySharedImg; 00187 break; 00188 case "2": 00189 $image_url = $this->m_GroupSharedImg; 00190 break; 00191 case "3": 00192 $image_url = $this->m_OtherSharedImg; 00193 break; 00194 case "4": 00195 $image_url = $this->m_MyAssignedImg; 00196 break; 00197 case "5": 00198 $image_url = $this->m_MyDistributedImg; 00199 break; 00200 default: 00201 if($this->m_DefaultImg=='{RESOURCE_URL}/common/images/icon_data_shared_other.gif'){ 00202 $this->m_DefaultImg = $this->m_OtherSharedImg; 00203 } 00204 $image_url = $this->m_DefaultImg; 00205 break; 00206 } 00207 00208 if(preg_match("/\{.*\}/si",$image_url)) 00209 { 00210 $formobj = $this->getFormObj(); 00211 $image_url = Expression::evaluateExpression($image_url, $formobj); 00212 }else{ 00213 $image_url = Resource::getImageUrl()."/".$image_url; 00214 } 00215 if($this->m_Width) 00216 { 00217 $width = "width=\"$this->m_Width\""; 00218 } 00219 if ($this->m_Link) 00220 { 00221 $link = $this->getLink(); 00222 $target = $this->getTarget(); 00223 $sHTML = "<a alt=\"".$text."\" title=\"".$text."\" id=\"$id\" href=\"$link\" $target $func $style><img $width src='$image_url' /></a>"; 00224 }else{ 00225 $sHTML = "<img id=\"$id\" alt=\"".$text."\" title=\"".$text."\" $width src='$image_url' />"; 00226 } 00227 return $sHTML; 00228 } 00229 00230 00231 public function hasOwnerField(){ 00232 $field = $this->getFormObj()->getDataObj()->getField('owner_id'); 00233 if($field){ 00234 return true; 00235 } 00236 else{ 00237 return false; 00238 } 00239 00240 } 00241 }