article_variant.php

Go to the documentation of this file.
00001 <?php
00002 
00008 class Article_Variant extends oxAdminDetails
00009 {
00016     public function render()
00017     {
00018         parent::render();
00019 
00020         $soxId = oxConfig::getParameter( "oxid");
00021         $sSLViewName = getViewName('oxselectlist');
00022 
00023         // all selectlists
00024         $oAllSel = oxNew( "oxlist");
00025         $oAllSel->init( "oxselectlist");
00026         $sQ = "select * from $sSLViewName";
00027         $oAllSel->selectString( $sQ);
00028         $this->_aViewData["allsel"] = $oAllSel;
00029 
00030         $oArticle = oxNew( "oxarticle");
00031         $this->_aViewData["edit"] =  $oArticle;
00032 
00033         if ( $soxId != "-1" && isset( $soxId)) {
00034             // load object
00035             $oArticle->loadInLang( $this->_iEditLang, $soxId );
00036 
00037 
00038             $_POST["language"] = $_GET["language"] = $this->_iEditLang;
00039             $oVariants = $oArticle->getAdminVariants( $this->_iEditLang);
00040 
00041             $this->_aViewData["mylist"] =  $oVariants;
00042 
00043             // load object in other languages
00044             $oOtherLang = $oArticle->getAvailableInLangs();
00045             if (!isset($oOtherLang[ $this->_iEditLang])) {
00046                 // echo "language entry doesn't exist! using: ".key($oOtherLang);
00047                 $oArticle->loadInLang( key($oOtherLang), $soxId );
00048             }
00049 
00050             foreach ( $oOtherLang as $id => $language) {
00051                 $oLang= new oxStdClass();
00052                 $oLang->sLangDesc = $language;
00053                 $oLang->selected = ($id == $this->_iEditLang);
00054                 $this->_aViewData["otherlang"][$id] =  clone $oLang;
00055             }
00056 
00057             if ( $oArticle->oxarticles__oxparentid->value) {
00058                 $oParentArticle = oxNew( "oxarticle");
00059                 $oParentArticle->load( $oArticle->oxarticles__oxparentid->value);
00060                 $this->_aViewData["parentarticle"] =  $oParentArticle;
00061                 $this->_aViewData["oxparentid"] =  $oArticle->oxarticles__oxparentid->value;
00062                 $this->_aViewData["issubvariant"] = 1;
00063                 // A. disable variant information editing for variant
00064                 $this->_aViewData["readonly"] = 1;
00065             }
00066             $this->_aViewData["editlanguage"] = $this->_iEditLang;
00067 
00068             $aLang = array_diff (oxLang::getInstance()->getLanguageNames(), $oOtherLang);
00069             if ( count( $aLang))
00070                 $this->_aViewData["posslang"] = $aLang;
00071 
00072             foreach ( $oOtherLang as $id => $language) {
00073                 $oLang= new oxStdClass();
00074                 $oLang->sLangDesc = $language;
00075                 $oLang->selected = ($id == $this->_iEditLang);
00076                 $this->_aViewData["otherlang"][$id] =  $oLang;
00077             }
00078         }
00079 
00080         return "article_variant.tpl";
00081     }
00082 
00091     public function savevariant($sOXID = null, $aParams = null)
00092     {
00093         if ( !isset( $sOXID ) && !isset( $aParams ) ) {
00094             $sOXID   = oxConfig::getParameter( "voxid" );
00095             $aParams = oxConfig::getParameter( "editval" );
00096         }
00097 
00098         // checkbox handling
00099         if ( !isset( $aParams['oxarticles__oxactive'] ) ) {
00100             $aParams['oxarticles__oxactive'] = 0;
00101         }
00102 
00103             // shopid
00104             $aParams['oxarticles__oxshopid'] = oxSession::getVar( "actshop" );
00105 
00106         // varianthandling
00107         $soxparentId = oxConfig::getParameter( "oxid" );
00108         if ( isset( $soxparentId) && $soxparentId && $soxparentId != "-1" ) {
00109             $aParams['oxarticles__oxparentid'] = $soxparentId;
00110         } else {
00111             unset( $aParams['oxarticles__oxparentid'] );
00112         }
00113 
00114         $oArticle = oxNew( "oxarticle");
00115         /*
00116         //TODO: solve this from lazy loading point of view
00117         //acessing main fields for lazy loading mechnism to iniatialise them
00118         $oArticle->oxarticles__oxvarselect->value;
00119         $oArticle->oxarticles__oxartnum->value;
00120         $oArticle->oxarticles__oxprice->value;
00121         $oArticle->oxarticles__oxstock->value;
00122         $oArticle->oxarticles__oxshopid->value;
00123         $oArticle->oxarticles__oxshopincl->value;
00124         $oArticle->oxarticles__oxshopexcl->value;*/
00125 
00126         if ( $sOXID != "-1" ) {
00127             $oArticle->loadInLang( $this->_iEditLang, $sOXID );
00128         }
00129 
00130 
00131         $oArticle->setLanguage( 0 );
00132         $oArticle->assign( $aParams );
00133         $oArticle->setLanguage( $this->_iEditLang );
00134 
00135 
00136         $oArticle->save();
00137     }
00138 
00144     public function savevariants()
00145     {
00146 
00147         $aParams = oxConfig::getParameter( "editval" );
00148         if ( is_array( $aParams ) ) {
00149             foreach ( $aParams as $soxId => $aVarParams ) {
00150                 $this->savevariant( $soxId, $aVarParams );
00151             }
00152         }
00153 
00154     }
00155 
00161     public function deleteVariant()
00162     {
00163 
00164 
00165         $soxId = oxConfig::getParameter( "voxid" );
00166         $oDelete = oxNew( "oxarticle" );
00167         $oDelete->delete( $soxId );
00168     }
00169 
00175     public function changename()
00176     {
00177         $soxId = oxConfig::getParameter( "oxid" );
00178 
00179         $aParams = oxConfig::getParameter( "editval");
00180 
00181 
00182             // shopid
00183             $aParams['oxarticles__oxshopid'] = oxSession::getVar( "actshop" );
00184 
00185         $oArticle = oxNew( "oxarticle" );
00186         if ( $soxId != "-1") {
00187             $oArticle->loadInLang( $this->_iEditLang, $soxId );
00188         }
00189 
00190         $oArticle->setLanguage( 0 );
00191         $oArticle->assign( $aParams);
00192         $oArticle->setLanguage( $this->_iEditLang );
00193         $oArticle->save();
00194     }
00195 
00196 
00202     public function addsel()
00203     {
00204         $oArticle = oxNew("oxarticle");
00205         $oArticle->setEnableMultilang( false );
00206         if ( $oArticle->load( oxConfig::getParameter("oxid") ) ) {
00207 
00208 
00209 
00210             if ( $aSels = oxConfig::getParameter( "allsel" ) ) {
00211                 $oVariantHandler = oxNew( "oxVariantHandler" );
00212                 $oVariantHandler->genVariantFromSell( $aSels, $oArticle );
00213             }
00214         }
00215     }
00216 }

Generated by  doxygen 1.6.2