00001 <?php 00002 00006 class oxAttributeList extends oxList 00007 { 00015 public function __construct( $sObjectsInListName = 'oxattribute') 00016 { 00017 parent::__construct( 'oxattribute'); 00018 } 00019 00027 public function loadAttributesByIds( $aIds) 00028 { 00029 if (!count($aIds)) { 00030 return; 00031 } 00032 00033 foreach ($aIds as $iKey => $sVal) { 00034 $aIds[$iKey] = mysql_real_escape_string($sVal); 00035 } 00036 00037 $sAttrViewName = getViewName( 'oxattribute' ); 00038 $sLangAdd = oxLang::getInstance()->getLanguageTag(); 00039 $sSelect = "select $sAttrViewName.oxid, $sAttrViewName.oxtitle$sLangAdd, oxobject2attribute.oxvalue$sLangAdd, oxobject2attribute.oxobjectid "; 00040 $sSelect .= "from oxobject2attribute "; 00041 $sSelect .= "left join $sAttrViewName on $sAttrViewName.oxid = oxobject2attribute.oxattrid "; 00042 $sSelect .= "where oxobject2attribute.oxobjectid in ( '".implode("','", $aIds)."' ) "; 00043 $sSelect .= "order by oxobject2attribute.oxpos, $sAttrViewName.oxpos"; 00044 00045 return $this->_createAttributeListFromSql( $sSelect); 00046 } 00047 00055 protected function _createAttributeListFromSql( $sSelect) 00056 { 00057 $aAttributes = array(); 00058 $rs = oxDb::getDb()->Execute( $sSelect); 00059 if ($rs != false && $rs->recordCount() > 0) { 00060 while (!$rs->EOF) { 00061 if ( !isset( $aAttributes[$rs->fields[0]])) { 00062 $aAttributes[$rs->fields[0]] = new stdClass(); 00063 } 00064 00065 $aAttributes[$rs->fields[0]]->title = $rs->fields[1]; 00066 if ( !isset( $aAttributes[$rs->fields[0]]->aProd[$rs->fields[3]])) { 00067 $aAttributes[$rs->fields[0]]->aProd[$rs->fields[3]] = new stdClass(); 00068 } 00069 $aAttributes[$rs->fields[0]]->aProd[$rs->fields[3]]->value = $rs->fields[2]; 00070 $rs->moveNext(); 00071 } 00072 } 00073 return $aAttributes; 00074 } 00075 00083 public function loadAttributes( $sArtId) 00084 { 00085 if ( !$sArtId) { 00086 return; 00087 } 00088 00089 $sSuffix = oxLang::getInstance()->getLanguageTag(); 00090 00091 $sAttrViewName = getViewName( 'oxattribute' ); 00092 $sSelect = "select $sAttrViewName.*, o2a.* "; 00093 $sSelect .= "from oxobject2attribute as o2a "; 00094 $sSelect .= "left join $sAttrViewName on $sAttrViewName.oxid = o2a.oxattrid "; 00095 $sSelect .= "where o2a.oxobjectid = '$sArtId' and o2a.oxvalue$sSuffix != '' "; 00096 $sSelect .= "order by o2a.oxpos, $sAttrViewName.oxpos"; 00097 00098 $this->selectString( $sSelect ); 00099 } 00100 }