Go to the documentation of this file.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 }