oxerptype_article.php

Go to the documentation of this file.
00001 <?php
00002 
00003 require_once( 'oxerptype.php');
00004 
00005 class oxERPType_Article extends oxERPType
00006 {
00007 
00008     protected $_aFieldListVersions = array (
00009         '1' => array(
00010             'OXSHOPID'         => 'OXSHOPID',
00011             'OXSHOPINCL'       => 'OXSHOPINCL',
00012             'OXSHOPEXCL'       => 'OXSHOPEXCL',
00013             'OXPARENTID'       => 'OXPARENTID',
00014             'OXACTIV'          => 'OXACTIV',
00015             'OXACTIVFROM'      => 'OXACTIVFROM',
00016             'OXACTIVTO'        => 'OXACTIVTO',
00017             'OXARTNUM'         => 'OXARTNUM',
00018             'OXEAN'            => 'OXEAN',
00019             'OXDISTEAN'        => 'OXDISTEAN',
00020             'OXTITLE'          => 'OXTITLE',
00021             'OXSHORTDESC'      => 'OXSHORTDESC',
00022             'OXLONGDESC'       => 'OXLONGDESC',
00023             'OXPRICE'          => 'OXPRICE',
00024             'OXBLFIXEDPRICE'   => 'OXBLFIXEDPRICE',
00025             'OXPRICEA'         => 'OXPRICEA',
00026             'OXPRICEB'         => 'OXPRICEB',
00027             'OXPRICEC'         => 'OXPRICEC',
00028             'OXBPRICE'         => 'OXBPRICE',
00029             'OXTPRICE'         => 'OXTPRICE',
00030             'OXUNITNAME'       => 'OXUNITNAME',
00031             'OXUNITQUANTITY'   => 'OXUNITQUANTITY',
00032             'OXEXTURL'         => 'OXEXTURL',
00033             'OXURLDESC'        => 'OXURLDESC',
00034             'OXURLIMG'         => 'OXURLIMG',
00035             'OXVAT'            => 'OXVAT',
00036             'OXTHUMB'          => 'OXTHUMB',
00037             'OXICON'         => 'OXICON',
00038             'OXPIC1'         => 'OXPIC1',
00039             'OXPIC2'         => 'OXPIC2',
00040             'OXPIC3'         => 'OXPIC3',
00041             'OXPIC4'         => 'OXPIC4',
00042             'OXPIC5'         => 'OXPIC5',
00043             'OXPIC6'         => 'OXPIC6',
00044             'OXPIC7'         => 'OXPIC7',
00045             'OXPIC8'         => 'OXPIC8',
00046             'OXPIC9'         => 'OXPIC9',
00047             'OXPIC10'         => 'OXPIC10',
00048             'OXPIC11'         => 'OXPIC11',
00049             'OXPIC12'         => 'OXPIC12',
00050             'OXZOOM1'         => 'OXZOOM1',
00051             'OXZOOM2'         => 'OXZOOM2',
00052             'OXZOOM3'         => 'OXZOOM3',
00053             'OXZOOM4'         => 'OXZOOM4',
00054             'OXWEIGHT'        => 'OXWEIGHT',
00055             'OXSTOCK'         => 'OXSTOCK',
00056             'OXSTOCKFLAG'     => 'OXSTOCKFLAG',
00057             'OXSTOCKTEXT'     => 'OXSTOCKTEXT',
00058             'OXNOSTOCKTEXT'   => 'OXNOSTOCKTEXT',
00059             'OXDELIVERY'     => 'OXDELIVERY',
00060             'OXINSERT'       => 'OXINSERT', //always now()
00061             'OXTIMESTAMP'    => 'OXTIMESTAMP',
00062             'OXLENGTH'       => 'OXLENGTH',
00063             'OXWIDTH'        => 'OXWIDTH',
00064             'OXHEIGHT'       => 'OXHEIGHT',
00065             'OXAKTION'       => 'OXAKTION',
00066             'OXFILE'         => 'OXFILE',
00067             'OXSEARCHKEYS'   => 'OXSEARCHKEYS',
00068             'OXTEMPLATE'     => 'OXTEMPLATE',
00069             'OXQUESTIONEMAIL'=> 'OXQUESTIONEMAIL',
00070             'OXISSEARCH'     => 'OXISSEARCH',
00071             'OXVARNAME'      => 'OXVARNAME',
00072             'OXVARSTOCK'     => 'OXVARSTOCK',
00073             'OXVARCOUNT'     => 'OXVARCOUNT',
00074             'OXVARSELECT'    => 'OXVARSELECT',
00075             'OXVARNAME_1'    => 'OXVARNAME_1',
00076             'OXVARSELECT_1'  => 'OXVARSELECT_1',
00077             'OXVARNAME_2'   =>'OXVARNAME_2',
00078             'OXVARSELECT_2' =>'OXVARSELECT_2',
00079             'OXVARNAME_3'   =>'OXVARNAME_3',
00080             'OXVARSELECT_3' =>'OXVARSELECT_3',
00081             'OXTITLE_1'     =>'OXTITLE_1',
00082             'OXSHORTDESC_1' =>'OXSHORTDESC_1',
00083             'OXLONGDESC_1'  =>'OXLONGDESC_1',
00084             'OXURLDESC_1'   =>'OXURLDESC_1',
00085             'OXSEARCHKEYS_1'=>'OXSEARCHKEYS_1',
00086             'OXTITLE_2'     =>'OXTITLE_2',
00087             'OXSHORTDESC_2' =>'OXSHORTDESC_2',
00088             'OXLONGDESC_2'  =>'OXLONGDESC_2',
00089             'OXURLDESC_2'   =>'OXURLDESC_2',
00090             'OXSEARCHKEYS_2'=>'OXSEARCHKEYS_2',
00091             'OXTITLE_3'     =>'OXTITLE_3',
00092             'OXSHORTDESC_3' =>'OXSHORTDESC_3',
00093             'OXLONGDESC_3'  =>'OXLONGDESC_3',
00094             'OXURLDESC_3'   =>'OXURLDESC_3',
00095             'OXSEARCHKEYS_3'=>'OXSEARCHKEYS_3',
00096             'OXFOLDER'      =>'OXFOLDER',
00097             'OXSUBCLASS'    =>'OXSUBCLASS',
00098             'OXSTOCKTEXT_1' =>'OXSTOCKTEXT_1',
00099             'OXSTOCKTEXT_2' =>'OXSTOCKTEXT_2',
00100             'OXSTOCKTEXT_3' =>'OXSTOCKTEXT_3',
00101             'OXNOSTOCKTEXT_1'=>'OXNOSTOCKTEXT_1',
00102             'OXNOSTOCKTEXT_2'=>'OXNOSTOCKTEXT_2',
00103             'OXNOSTOCKTEXT_3'=>'OXNOSTOCKTEXT_3',
00104             'OXSORT'         => 'OXSORT',
00105             'OXSOLDAMOUNT'   => 'OXSOLDAMOUNT',
00106             'OXNONMATERIAL'  => 'OXNONMATERIAL',
00107             'OXFREESHIPPING' => 'OXFREESHIPPING',
00108             'OXREMINDACTIV'  => 'OXREMINDACTIV',
00109             'OXREMINDAMOUNT' => 'OXREMINDAMOUNT',
00110             'OXAMITEMID'    =>'OXAMITEMID',
00111             'OXAMTASKID'    =>'OXAMTASKID',
00112             'OXVENDORID'    =>'OXVENDORID',
00113             'OXSKIPDISCOUNTS'=> 'OXSKIPDISCOUNTS',
00114             'OXORDERINFO'   =>'OXORDERINFO',
00115             'OXSEOID'       =>'OXSEOID',
00116             'OXSEOID_1'     =>'OXSEOID_1',
00117             'OXSEOID_2'     =>'OXSEOID_2',
00118             'OXSEOID_3'     =>'OXSEOID_3',
00119             'OXPIXIEXPORT'   => 'OXPIXIEXPORT',
00120             'OXPIXIEXPORTED' => 'OXPIXIEXPORTED',
00121             'OXVPE'          => 'OXVPE',
00122             'OXID'           => 'OXID',
00123         ),
00124         '2' => array(
00125             'OXID' => 'OXID',
00126             'OXSHOPID' => 'OXSHOPID',
00127             'OXSHOPINCL' => 'OXSHOPINCL',
00128             'OXSHOPEXCL' => 'OXSHOPEXCL',
00129             'OXPARENTID' => 'OXPARENTID',
00130             'OXACTIVE' => 'OXACTIVE',
00131             'OXACTIVEFROM' => 'OXACTIVEFROM',
00132             'OXACTIVETO' => 'OXACTIVETO',
00133             'OXARTNUM' => 'OXARTNUM',
00134             'OXEAN' => 'OXEAN',
00135             'OXDISTEAN' => 'OXDISTEAN',
00136             'OXTITLE' => 'OXTITLE',
00137             'OXSHORTDESC' => 'OXSHORTDESC',
00138             'OXPRICE' => 'OXPRICE',
00139             'OXBLFIXEDPRICE' => 'OXBLFIXEDPRICE',
00140             'OXPRICEA' => 'OXPRICEA',
00141             'OXPRICEB' => 'OXPRICEB',
00142             'OXPRICEC' => 'OXPRICEC',
00143             'OXBPRICE' => 'OXBPRICE',
00144             'OXTPRICE' => 'OXTPRICE',
00145             'OXUNITNAME' => 'OXUNITNAME',
00146             'OXUNITQUANTITY' => 'OXUNITQUANTITY',
00147             'OXEXTURL' => 'OXEXTURL',
00148             'OXURLDESC' => 'OXURLDESC',
00149             'OXURLIMG' => 'OXURLIMG',
00150             'OXVAT' => 'OXVAT',
00151             'OXTHUMB' => 'OXTHUMB',
00152             'OXICON' => 'OXICON',
00153             'OXPIC1' => 'OXPIC1',
00154             'OXPIC2' => 'OXPIC2',
00155             'OXPIC3' => 'OXPIC3',
00156             'OXPIC4' => 'OXPIC4',
00157             'OXPIC5' => 'OXPIC5',
00158             'OXPIC6' => 'OXPIC6',
00159             'OXPIC7' => 'OXPIC7',
00160             'OXPIC8' => 'OXPIC8',
00161             'OXPIC9' => 'OXPIC9',
00162             'OXPIC10' => 'OXPIC10',
00163             'OXPIC11' => 'OXPIC11',
00164             'OXPIC12' => 'OXPIC12',
00165             'OXZOOM1' => 'OXZOOM1',
00166             'OXZOOM2' => 'OXZOOM2',
00167             'OXZOOM3' => 'OXZOOM3',
00168             'OXZOOM4' => 'OXZOOM4',
00169             'OXWEIGHT' => 'OXWEIGHT',
00170             'OXSTOCK' => 'OXSTOCK',
00171             'OXSTOCKFLAG' => 'OXSTOCKFLAG',
00172             'OXSTOCKTEXT' => 'OXSTOCKTEXT',
00173             'OXNOSTOCKTEXT' => 'OXNOSTOCKTEXT',
00174             'OXDELIVERY' => 'OXDELIVERY',
00175             'OXINSERT' => 'OXINSERT',
00176             'OXTIMESTAMP' => 'OXTIMESTAMP',
00177             'OXLENGTH' => 'OXLENGTH',
00178             'OXWIDTH' => 'OXWIDTH',
00179             'OXHEIGHT' => 'OXHEIGHT',
00180             'OXFILE' => 'OXFILE',
00181             'OXSEARCHKEYS' => 'OXSEARCHKEYS',
00182             'OXTEMPLATE' => 'OXTEMPLATE',
00183             'OXQUESTIONEMAIL' => 'OXQUESTIONEMAIL',
00184             'OXISSEARCH' => 'OXISSEARCH',
00185             'OXVARNAME' => 'OXVARNAME',
00186             'OXVARSTOCK' => 'OXVARSTOCK',
00187             'OXVARCOUNT' => 'OXVARCOUNT',
00188             'OXVARSELECT' => 'OXVARSELECT',
00189             'OXVARMINPRICE' => 'OXVARMINPRICE',
00190             'OXVARNAME_1' => 'OXVARNAME_1',
00191             'OXVARSELECT_1' => 'OXVARSELECT_1',
00192             'OXVARNAME_2' => 'OXVARNAME_2',
00193             'OXVARSELECT_2' => 'OXVARSELECT_2',
00194             'OXVARNAME_3' => 'OXVARNAME_3',
00195             'OXVARSELECT_3' => 'OXVARSELECT_3',
00196             'OXTITLE_1' => 'OXTITLE_1',
00197             'OXSHORTDESC_1' => 'OXSHORTDESC_1',
00198             'OXURLDESC_1' => 'OXURLDESC_1',
00199             'OXSEARCHKEYS_1' => 'OXSEARCHKEYS_1',
00200             'OXTITLE_2' => 'OXTITLE_2',
00201             'OXSHORTDESC_2' => 'OXSHORTDESC_2',
00202             'OXURLDESC_2' => 'OXURLDESC_2',
00203             'OXSEARCHKEYS_2' => 'OXSEARCHKEYS_2',
00204             'OXTITLE_3' => 'OXTITLE_3',
00205             'OXSHORTDESC_3' => 'OXSHORTDESC_3',
00206             'OXURLDESC_3' => 'OXURLDESC_3',
00207             'OXSEARCHKEYS_3' => 'OXSEARCHKEYS_3',
00208             'OXFOLDER' => 'OXFOLDER',
00209             'OXSUBCLASS' => 'OXSUBCLASS',
00210             'OXSTOCKTEXT_1' => 'OXSTOCKTEXT_1',
00211             'OXSTOCKTEXT_2' => 'OXSTOCKTEXT_2',
00212             'OXSTOCKTEXT_3' => 'OXSTOCKTEXT_3',
00213             'OXNOSTOCKTEXT_1' => 'OXNOSTOCKTEXT_1',
00214             'OXNOSTOCKTEXT_2' => 'OXNOSTOCKTEXT_2',
00215             'OXNOSTOCKTEXT_3' => 'OXNOSTOCKTEXT_3',
00216             'OXSORT' => 'OXSORT',
00217             'OXSOLDAMOUNT' => 'OXSOLDAMOUNT',
00218             'OXNONMATERIAL' => 'OXNONMATERIAL',
00219             'OXFREESHIPPING' => 'OXFREESHIPPING',
00220             'OXREMINDACTIV' => 'OXREMINDACTIV',
00221             'OXREMINDAMOUNT' => 'OXREMINDAMOUNT',
00222             'OXAMITEMID' => 'OXAMITEMID',
00223             'OXAMTASKID' => 'OXAMTASKID',
00224             'OXVENDORID' => 'OXVENDORID',
00225             'OXSKIPDISCOUNTS' => 'OXSKIPDISCOUNTS',
00226             'OXORDERINFO' => 'OXORDERINFO',
00227             'OXPIXIEXPORT' => 'OXPIXIEXPORT',
00228             'OXPIXIEXPORTED' => 'OXPIXIEXPORTED',
00229             'OXVPE' => 'OXVPE',
00230             'OXRATING' => 'OXRATING',
00231             'OXRATINGCNT' => 'OXRATINGCNT',
00232             'OXLONGDESC'       => 'OXLONGDESC',
00233             'OXLONGDESC_1'     => 'OXLONGDESC_1',
00234             'OXLONGDESC_2'     => 'OXLONGDESC_2',
00235             'OXLONGDESC_3'     => 'OXLONGDESC_3',
00236         ),
00237     );
00238     public function __construct()
00239     {
00240 
00241         parent::__construct();
00242 
00243         $this->_sTableName      = 'oxarticles';
00244         $this->_sShopObjectName = 'oxarticle';
00245 
00246     }
00247 
00256     protected function getSqlFieldName($sField, $iLanguage = 0, $iShopID = 1)
00257     {
00258         switch ($sField) {
00259             // oxlongdesc is valid in all versions
00260             case 'OXLONGDESC':
00261             case 'OXLONGDESC_1':
00262             case 'OXLONGDESC_2':
00263             case 'OXLONGDESC_3':
00264                 // take from oxartextends
00265                 return "(select $sField from oxartextends where ".$this->getTableName($iShopID).".oxid = oxartextends.oxid limit 1) as $sField";
00266         }
00267 
00268         if ('1' == oxERPBase::getUsedDbFieldsVersion()) {
00269             switch ($sField) {
00270                 case 'OXAKTION':
00271                 case 'OXSEOID':
00272                 case 'OXSEOID_1':
00273                 case 'OXSEOID_2':
00274                 case 'OXSEOID_3':
00275                     return "'' as $sField";
00276                 case 'OXACTIV':
00277                     return "OXACTIVE as OXACTIV";
00278                 case 'OXACTIVFROM':
00279                     return "OXACTIVEFROM as OXACTIVFROM";
00280                 case 'OXACTIVTO':
00281                     return "OXACTIVETO as OXACTIVTO";
00282             }
00283         }
00284 
00285         return parent::getSqlFieldName($sField, $iLanguage, $iShopID);
00286     }
00287 
00297     protected function _preAssignObject($oShopObject, $aData, $blAllowCustomShopId)
00298     {
00299         $oCompat = oxNew('OXERPCompatability');
00300         if ( !$oCompat->isArticleNullLongDescComatable() ) {
00301 
00302             $aLongDescriptionFields = array('OXLONGDESC_1','OXLONGDESC_2','OXLONGDESC_3');
00303 
00304             foreach ($aLongDescriptionFields as $iKey => $sField){
00305                 if( in_array($sField,$this->_aFieldList)){
00306                     unset($aLongDescriptionFields[$iKey]);
00307                 }
00308             }
00309 
00310             if(count($aLongDescriptionFields)){
00311                 $oArtExt = oxNew('oxbase');
00312                 $oArtExt->init('oxartextends');
00313 
00314                 if( $oArtExt->load($aData['OXID']) ) {
00315                     foreach ($aLongDescriptionFields as $sField) {
00316                         $sFieldName = $oArtExt->getCoreTableName()."__".strtolower( $sField );
00317                         $sLongDesc  = null;
00318 
00319                         if ($oArtExt->$sFieldName instanceof oxField) {
00320                             $sLongDesc = $oArtExt->$sFieldName->getRawValue();
00321                         } elseif (is_object($oArtExt->$sFieldName)) {
00322                             $sLongDesc = $oArtExt->$sFieldName->value;
00323                         }
00324 
00325                         if ( isset($sLongDesc) ) {
00326                             $aData[$sField] = $sLongDesc;
00327                         }
00328                     }
00329                 }
00330             }
00331         }
00332 
00333         return parent::_preAssignObject($oShopObject, $aData, $blAllowCustomShopId);
00334     }
00335 }

Generated on Tue Apr 21 15:45:44 2009 for OXID eShop CE by  doxygen 1.5.5