Go to the documentation of this file.00001 <?php
00002
00009 class Article_List extends oxAdminList
00010 {
00016 protected $_sListClass = 'oxarticle';
00017
00023 protected $_sListType = 'oxarticlelist';
00024
00031 public function render()
00032 {
00033 $myConfig = $this->getConfig();
00034 $sPwrSearchFld = oxConfig::getParameter( "pwrsearchfld" );
00035 if ( !isset( $sPwrSearchFld ) ) {
00036 $sPwrSearchFld = "oxtitle";
00037 }
00038
00039 $oArticle = null;
00040 $oList = $this->getItemList();
00041 if ( $oList) {
00042 foreach ( $oList as $key => $oArticle ) {
00043 $sFieldName = "oxarticles__".strtolower( $sPwrSearchFld );
00044
00045
00046 if ( !$myConfig->getConfigParam( 'blSkipFormatConversion' ) ) {
00047 if ( $oArticle->$sFieldName->fldtype == "datetime" )
00048 oxDb::getInstance()->convertDBDateTime( $oArticle->$sFieldName );
00049 elseif ( $oArticle->$sFieldName->fldtype == "timestamp" )
00050 oxDb::getInstance()->convertDBTimestamp( $oArticle->$sFieldName );
00051 elseif ( $oArticle->$sFieldName->fldtype == "date" )
00052 oxDb::getInstance()->convertDBDate( $oArticle->$sFieldName );
00053 }
00054
00055 $oArticle->pwrsearchval = $oArticle->$sFieldName->value;
00056 $oList[$key] = $oArticle;
00057 }
00058 }
00059
00060 parent::render();
00061
00062
00063 if ( !$oArticle && $oList ) {
00064 $oArticle = $oList->getBaseObject();
00065 }
00066 $this->_aViewData["pwrsearchfields"] = $oArticle ? $oArticle->getSearchableFields() : null;
00067 $this->_aViewData["pwrsearchfld"] = strtoupper( $sPwrSearchFld );
00068
00069 if ( isset( $this->_aViewData["where"] ) ) {
00070 $sFieldName = "oxarticles__".strtoupper( $sPwrSearchFld );
00071 if ( isset( $this->_aViewData["where"]->$sFieldName ) ) {
00072 $this->_aViewData["pwrsearchinput"] = $this->_aViewData["where"]->$sFieldName;
00073 }
00074 }
00075
00076 $sType = '';
00077 $sValue = '';
00078
00079 $sArtCat= oxConfig::getParameter( "art_category" );
00080 if ( $sArtCat && strstr( $sArtCat, "@@" ) !== false ) {
00081 list( $sType, $sValue ) = explode( "@@", $sArtCat );
00082 }
00083
00084
00085 $this->_aViewData["cattree"] = $this->getCategoryList($sType, $sValue);
00086
00087
00088 $this->_aViewData["mnftree"] = $this->getManufacturerlist($sType, $sValue);
00089
00090
00091 $this->_aViewData["vndtree"] = $this->getVendorList($sType, $sValue);
00092
00093 return "article_list.tpl";
00094 }
00095
00104 public function getCategoryList($sType, $sValue)
00105 {
00106 $myConfig = $this->getConfig();
00107
00108
00109 $oCatTree = oxNew( "oxCategoryList");
00110 $oCatTree->buildList( $myConfig->getConfigParam( 'bl_perfLoadCatTree' ) );
00111 if ( $sType === 'cat' ) {
00112 foreach ($oCatTree as $oCategory ) {
00113 if ( $oCategory->oxcategories__oxid->value == $sValue ) {
00114 $oCategory->selected = 1;
00115 break;
00116 }
00117 }
00118 }
00119
00120 return $oCatTree;
00121 }
00122
00131 public function getManufacturerList($sType, $sValue)
00132 {
00133 $oMnfTree = oxNew( "oxManufacturerList");
00134 $oMnfTree->loadManufacturerList();
00135 if ( $sType === 'mnf' ) {
00136 foreach ($oMnfTree as $oManufacturer ) {
00137 if ( $oManufacturer->oxmanufacturers__oxid->value == $sValue ) {
00138 $oManufacturer->selected = 1;
00139 break;
00140 }
00141 }
00142 }
00143
00144 return $oMnfTree;
00145 }
00146
00155 public function getVendorList($sType, $sValue)
00156 {
00157 $oVndTree = oxNew( "oxVendorList");
00158 $oVndTree->loadVendorList();
00159 if ( $sType === 'vnd' ) {
00160 foreach ($oVndTree as $oVendor ) {
00161 if ( $oVendor->oxvendor__oxid->value == $sValue ) {
00162 $oVendor->selected = 1;
00163 break;
00164 }
00165 }
00166 }
00167
00168 return $oVndTree;
00169 }
00170
00178 protected function _changeselect( $sSql )
00179 {
00180 $sArtCat= oxConfig::getParameter("art_category");
00181 if ( $sArtCat && strstr($sArtCat, "@@") !== false ) {
00182 list($sType, $sValue) = explode("@@", $sArtCat);
00183 }
00184
00185 $sTable = getViewName( "oxarticles" );
00186 switch ($sType) {
00187
00188 case 'cat':
00189 $oStr = getStr();
00190 $sO2CView = getViewName( "oxobject2category" );
00191 $sInsert = "from $sTable left join $sO2CView on $sTable.oxid = $sO2CView.oxobjectid where $sO2CView.oxcatnid = ".oxDb::getDb()->quote($sValue)." and ";
00192 $sSql = $oStr->preg_replace( "/from\s+$sTable\s+where/i", $sInsert, $sSql);
00193 break;
00194
00195 case 'mnf':
00196 $sSql.= " and $sTable.oxmanufacturerid = ".oxDb::getDb()->quote($sValue);
00197 break;
00198
00199 case 'vnd':
00200 $sSql.= " and $sTable.oxvendorid = ".oxDb::getDb()->quote($sValue);
00201 break;
00202 }
00203 return $sSql;
00204 }
00205
00211 public function buildWhere()
00212 {
00213
00214 $this->_aWhere = ( array ) parent::buildWhere();
00215
00216
00217 $sFolder = oxConfig::getParameter( 'folder' );
00218 if ( $sFolder && $sFolder != '-1' ) {
00219 $sViewName = getViewName( 'oxarticles' );
00220 $this->_aWhere["$sViewName.oxfolder"] = $sFolder;
00221 }
00222
00223 return $this->_aWhere;
00224 }
00225
00234 protected function _prepareWhereQuery( $aWhere, $sQ )
00235 {
00236 $sQ = parent::_prepareWhereQuery( $aWhere, $sQ );
00237
00238 return $sQ . " and ".getViewName( 'oxarticles' ).".oxparentid = '' ";
00239 }
00240
00246 public function deleteEntry()
00247 {
00248 $sOxId = oxConfig::getParameter( "oxid" );
00249 $oArticle = oxNew( "oxarticle");
00250 if ( $sOxId && $oArticle->load( $sOxId ) ) {
00251 parent::deleteEntry();
00252 }
00253 }
00254
00255 }