OXID eShop CE  4.10.7
 All Classes Namespaces Files Functions Variables Pages
oxviewconfig.php
Go to the documentation of this file.
1 <?php
2 
8 class oxViewConfig extends oxSuperCfg
9 {
10 
16  protected $_oShop = null;
17 
23  protected $_aViewData = null;
24 
30  protected $_aConfigParams = array();
31 
37  protected $_sHelpPageLink = null;
38 
44  protected $_oCountryList = null;
45 
53  protected $_aTrustedShopRatings = null;
54 
60  protected $_sActiveTheme = null;
61 
67  protected $_sShopLogo = null;
68 
74  public function getHomeLink()
75  {
76  if (($sValue = $this->getViewConfigParam('homeLink')) === null) {
77  $myConfig = $this->getConfig();
78  $myUtils = oxRegistry::getUtils();
79  $oLang = oxRegistry::getLang();
80  $iLang = $oLang->getBaseLanguage();
81 
82  $sValue = null;
83 
84  $blAddStartCl = $myUtils->seoIsActive() && ($iLang != $myConfig->getConfigParam('sDefaultLang'));
85 
86 
87  if ($blAddStartCl) {
88  $sValue = oxRegistry::get("oxSeoEncoder")->getStaticUrl($this->getSelfLink() . 'cl=start', $iLang);
89  $sValue = oxRegistry::get("oxUtilsUrl")->appendUrl(
90  $sValue,
91  oxRegistry::get("oxUtilsUrl")->getBaseAddUrlParams()
92  );
93  $sValue = getStr()->preg_replace('/(\?|&(amp;)?)$/', '', $sValue);
94  }
95 
96  if (!$sValue) {
97  $sValue = getStr()->preg_replace('#index.php\??$#', '', $this->getSelfLink());
98  }
99 
100  $this->setViewConfigParam('homeLink', $sValue);
101  }
102 
103  return $sValue;
104  }
105 
111  public function getActContentLoadId()
112  {
113  $sTplName = oxRegistry::getConfig()->getRequestParameter('oxloadid');
114  // #M1176: Logout from CMS page
115  if (!$sTplName && $this->getConfig()->getTopActiveView()) {
116  $sTplName = $this->getConfig()->getTopActiveView()->getViewConfig()->getViewConfigParam('oxloadid');
117  }
118 
119  return $sTplName ? basename($sTplName) : null;
120  }
121 
127  public function getActTplName()
128  {
129  return oxRegistry::getConfig()->getRequestParameter('tpl');
130  }
131 
137  public function getActCurrency()
138  {
139  return $this->getConfig()->getShopCurrency();
140  }
141 
147  public function getLogoutLink()
148  {
149  $sClass = $this->getTopActionClassName();
150  $sCatnid = $this->getActCatId();
151  $sMnfid = $this->getActManufacturerId();
152  $sArtnid = $this->getActArticleId();
153  $sTplName = $this->getActTplName();
154  $sContentLoadId = $this->getActContentLoadId();
155  $sSearchParam = $this->getActSearchParam();
156  // @deprecated v5.3 (2016-05-04); Tags will be moved to own module.
157  $sSearchTag = $this->getActSearchTag();
158  // END deprecated
159  // @deprecated since v5.3 (2016-06-17); Listmania will be moved to an own module.
160  $sRecommId = $this->getActRecommendationId();
161  // END deprecated
162  $sListType = $this->getActListType();
163 
164  $oConfig = $this->getConfig();
165 
166  return ($oConfig->isSsl() ? $oConfig->getShopSecureHomeUrl() : $oConfig->getShopHomeUrl())
167  . "cl={$sClass}"
168  . ($sCatnid ? "&amp;cnid={$sCatnid}" : '')
169  . ($sArtnid ? "&amp;anid={$sArtnid}" : '')
170  . ($sMnfid ? "&amp;mnid={$sMnfid}" : '')
171  . ($sSearchParam ? "&amp;searchparam={$sSearchParam}" : '')
172  // @deprecated v5.3 (2016-05-04); Tags will be moved to own module.
173  . ($sSearchTag ? "&amp;searchtag={$sSearchTag}" : '')
174  // END deprecated
175  // @deprecated since v5.3 (2016-06-17); Listmania will be moved to an own module.
176  . ($sRecommId ? "&amp;recommid={$sRecommId}" : '')
177  // END deprecated
178  . ($sListType ? "&amp;listtype={$sListType}" : '')
179  . "&amp;fnc=logout"
180  . ($sTplName ? "&amp;tpl=" . basename($sTplName) : '')
181  . ($sContentLoadId ? "&amp;oxloadid=" . $sContentLoadId : '')
182  . "&amp;redirect=1";
183  }
184 
190  protected function _getHelpContentIdents()
191  {
192  $sClass = $this->getActiveClassName();
193 
194  return array('oxhelp' . strtolower($sClass), 'oxhelpdefault');
195  }
196 
202  public function getHelpPageLink()
203  {
204  if ($this->_sHelpPageLink === null) {
205  $this->_sHelpPageLink = "";
206  $aContentIdents = $this->_getHelpContentIdents();
207  $oContent = oxNew("oxContent");
208  foreach ($aContentIdents as $sIdent) {
209  if ($oContent->loadByIdent($sIdent)) {
210  $this->_sHelpPageLink = $oContent->getLink();
211  break;
212  }
213  }
214  }
215 
216  return $this->_sHelpPageLink;
217  }
218 
224  public function getActCatId()
225  {
226  return oxRegistry::getConfig()->getRequestParameter('cnid');
227  }
228 
234  public function getActArticleId()
235  {
236  return oxRegistry::getConfig()->getRequestParameter('anid');
237  }
238 
244  public function getActSearchParam()
245  {
246  return oxRegistry::getConfig()->getRequestParameter('searchparam');
247  }
248 
256  public function getActSearchTag()
257  {
258  return oxRegistry::getConfig()->getRequestParameter('searchtag');
259  }
260 
268  public function getActRecommendationId()
269  {
270  return oxRegistry::getConfig()->getRequestParameter('recommid');
271  }
272 
278  public function getActListType()
279  {
280  return oxRegistry::getConfig()->getRequestParameter('listtype');
281  }
282 
288  public function getActManufacturerId()
289  {
290  return oxRegistry::getConfig()->getRequestParameter('mnid');
291  }
292 
298  public function getContentId()
299  {
300  return oxRegistry::getConfig()->getRequestParameter('oxcid');
301  }
302 
311  public function setViewConfigParam($sName, $sValue)
312  {
313  startProfile('oxviewconfig::setViewConfigParam');
314 
315  $this->_aConfigParams[$sName] = $sValue;
316 
317  stopProfile('oxviewconfig::setViewConfigParam');
318  }
319 
327  public function getViewConfigParam($sName)
328  {
329  startProfile('oxviewconfig::getViewConfigParam');
330 
331  if ($this->_oShop && isset($this->_oShop->$sName)) {
332  $sValue = $this->_oShop->$sName;
333  } elseif ($this->_aViewData && isset($this->_aViewData[$sName])) {
334  $sValue = $this->_aViewData[$sName];
335  } else {
336  $sValue = (isset($this->_aConfigParams[$sName]) ? $this->_aConfigParams[$sName] : null);
337  }
338 
339  stopProfile('oxviewconfig::getViewConfigParam');
340 
341  return $sValue;
342  }
343 
351  public function setViewShop($oShop, $aViewData)
352  {
353  $this->_oShop = $oShop;
354  $this->_aViewData = $aViewData;
355  }
356 
364  public function getSessionId()
365  {
366  if (($sValue = $this->getViewConfigParam('sessionid')) === null) {
367  $sValue = $this->getSession()->getId();
368  $this->setViewConfigParam('sessionid', $sValue);
369  }
370 
371  return $sValue;
372  }
373 
379  public function getHiddenSid()
380  {
381  if (($sValue = $this->getViewConfigParam('hiddensid')) === null) {
382  $sValue = $this->getSession()->hiddenSid();
383 
384  // appending language info to form
385  if (($sLang = oxRegistry::getLang()->getFormLang())) {
386  $sValue .= "\n{$sLang}";
387  }
388 
389 
390  $this->setViewConfigParam('hiddensid', $sValue);
391  }
392 
393  return $sValue;
394  }
395 
401  public function getSelfLink()
402  {
403  if (($sValue = $this->getViewConfigParam('selflink')) === null) {
404  $sValue = $this->getConfig()->getShopHomeURL();
405  $this->setViewConfigParam('selflink', $sValue);
406  }
407 
408  return $sValue;
409  }
410 
416  public function getSslSelfLink()
417  {
418  if ($this->isAdmin()) {
419  // using getSelfLink() method in admin mode (#2745)
420  return $this->getSelfLink();
421  }
422 
423  if (($sValue = $this->getViewConfigParam('sslselflink')) === null) {
424  $sValue = $this->getConfig()->getShopSecureHomeURL();
425  $this->setViewConfigParam('sslselflink', $sValue);
426  }
427 
428  return $sValue;
429  }
430 
436  public function getBaseDir()
437  {
438  if (($sValue = $this->getViewConfigParam('basedir')) === null) {
439 
440  if ($this->getConfig()->isSsl()) {
441  $sValue = $this->getConfig()->getSSLShopURL();
442  } else {
443  $sValue = $this->getConfig()->getShopURL();
444  }
445 
446  $this->setViewConfigParam('basedir', $sValue);
447  }
448 
449  return $sValue;
450  }
451 
457  public function getCoreUtilsDir()
458  {
459  if (($sValue = $this->getViewConfigParam('coreutilsdir')) === null) {
460  $sValue = $this->getConfig()->getCoreUtilsURL();
461  $this->setViewConfigParam('coreutilsdir', $sValue);
462  }
463 
464  return $sValue;
465  }
466 
472  public function getSelfActionLink()
473  {
474  if (($sValue = $this->getViewConfigParam('selfactionlink')) === null) {
475  $sValue = $this->getConfig()->getShopCurrentUrl();
476  $this->setViewConfigParam('selfactionlink', $sValue);
477  }
478 
479  return $sValue;
480  }
481 
487  public function getCurrentHomeDir()
488  {
489  if (($sValue = $this->getViewConfigParam('currenthomedir')) === null) {
490  $sValue = $this->getConfig()->getCurrentShopUrl();
491  $this->setViewConfigParam('currenthomedir', $sValue);
492  }
493 
494  return $sValue;
495  }
496 
502  public function getBasketLink()
503  {
504  if (($sValue = $this->getViewConfigParam('basketlink')) === null) {
505  $sValue = $this->getConfig()->getShopHomeURL() . 'cl=basket';
506  $this->setViewConfigParam('basketlink', $sValue);
507  }
508 
509  return $sValue;
510  }
511 
517  public function getOrderLink()
518  {
519  if (($sValue = $this->getViewConfigParam('orderlink')) === null) {
520  $sValue = $this->getConfig()->getShopSecureHomeUrl() . 'cl=user';
521  $this->setViewConfigParam('orderlink', $sValue);
522  }
523 
524  return $sValue;
525  }
526 
532  public function getPaymentLink()
533  {
534  if (($sValue = $this->getViewConfigParam('paymentlink')) === null) {
535  $sValue = $this->getConfig()->getShopSecureHomeUrl() . 'cl=payment';
536  $this->setViewConfigParam('paymentlink', $sValue);
537  }
538 
539  return $sValue;
540  }
541 
547  public function getExeOrderLink()
548  {
549  if (($sValue = $this->getViewConfigParam('exeorderlink')) === null) {
550  $sValue = $this->getConfig()->getShopSecureHomeUrl() . 'cl=order&amp;fnc=execute';
551  $this->setViewConfigParam('exeorderlink', $sValue);
552  }
553 
554  return $sValue;
555  }
556 
562  public function getOrderConfirmLink()
563  {
564  if (($sValue = $this->getViewConfigParam('orderconfirmlink')) === null) {
565  $sValue = $this->getConfig()->getShopSecureHomeUrl() . 'cl=order';
566  $this->setViewConfigParam('orderconfirmlink', $sValue);
567  }
568 
569  return $sValue;
570  }
571 
579  public function getResourceUrl($sFile = null)
580  {
581  if ($sFile) {
582  $sValue = $this->getConfig()->getResourceUrl($sFile, $this->isAdmin());
583  } elseif (($sValue = $this->getViewConfigParam('basetpldir')) === null) {
584  $sValue = $this->getConfig()->getResourceUrl('', $this->isAdmin());
585  $this->setViewConfigParam('basetpldir', $sValue);
586  }
587 
588  return $sValue;
589  }
590 
596  public function getTemplateDir()
597  {
598  if (($sValue = $this->getViewConfigParam('templatedir')) === null) {
599  $sValue = $this->getConfig()->getTemplateDir($this->isAdmin());
600  $this->setViewConfigParam('templatedir', $sValue);
601  }
602 
603  return $sValue;
604  }
605 
611  public function getUrlTemplateDir()
612  {
613  if (($sValue = $this->getViewConfigParam('urltemplatedir')) === null) {
614  $sValue = $this->getConfig()->getTemplateUrl($this->isAdmin());
615  $this->setViewConfigParam('urltemplatedir', $sValue);
616  }
617 
618  return $sValue;
619  }
620 
629  public function getImageUrl($sFile = null, $bSsl = null)
630  {
631  if ($sFile) {
632  $sValue = $this->getConfig()->getImageUrl($this->isAdmin(), $bSsl, null, $sFile);
633  } elseif (($sValue = $this->getViewConfigParam('imagedir')) === null) {
634  $sValue = $this->getConfig()->getImageUrl($this->isAdmin(), $bSsl);
635  $this->setViewConfigParam('imagedir', $sValue);
636  }
637 
638  return $sValue;
639  }
640 
646  public function getNoSslImageDir()
647  {
648  if (($sValue = $this->getViewConfigParam('nossl_imagedir')) === null) {
649  $sValue = $this->getConfig()->getImageUrl($this->isAdmin(), false);
650  $this->setViewConfigParam('nossl_imagedir', $sValue);
651  }
652 
653  return $sValue;
654  }
655 
662  public function getPictureDir()
663  {
664  if (($sValue = $this->getViewConfigParam('picturedir')) === null) {
665  $sValue = $this->getConfig()->getPictureUrl(null, $this->isAdmin());
666  $this->setViewConfigParam('picturedir', $sValue);
667  }
668 
669  return $sValue;
670  }
671 
677  public function getAdminDir()
678  {
679  if (($sValue = $this->getViewConfigParam('sAdminDir')) === null) {
680  $sValue = $this->getConfig()->getConfigParam('sAdminDir');
681  $this->setViewConfigParam('sAdminDir', $sValue);
682  }
683 
684  return $sValue;
685  }
686 
692  public function getActiveShopId()
693  {
694  if (($sValue = $this->getViewConfigParam('shopid')) === null) {
695  $sValue = $this->getConfig()->getShopId();
696  $this->setViewConfigParam('shopid', $sValue);
697  }
698 
699  return $sValue;
700  }
701 
707  public function isSsl()
708  {
709  if (($sValue = $this->getViewConfigParam('isssl')) === null) {
710  $sValue = $this->getConfig()->isSsl();
711  $this->setViewConfigParam('isssl', $sValue);
712  }
713 
714  return $sValue;
715  }
716 
717 
723  public function getRemoteAddress()
724  {
725  if (($sValue = $this->getViewConfigParam('ip')) === null) {
726  $sValue = oxRegistry::get("oxUtilsServer")->getRemoteAddress();
727  $this->setViewConfigParam('ip', $sValue);
728  }
729 
730  return $sValue;
731  }
732 
738  public function getPopupIdent()
739  {
740  if (($sValue = $this->getViewConfigParam('popupident')) === null) {
741  $sValue = md5($this->getConfig()->getShopUrl());
742  $this->setViewConfigParam('popupident', $sValue);
743  }
744 
745  return $sValue;
746  }
747 
753  public function getPopupIdentRand()
754  {
755  if (($sValue = $this->getViewConfigParam('popupidentrand')) === null) {
756  $sValue = md5(time());
757  $this->setViewConfigParam('popupidentrand', $sValue);
758  }
759 
760  return $sValue;
761  }
762 
768  public function getArtPerPageForm()
769  {
770  if (($sValue = $this->getViewConfigParam('artperpageform')) === null) {
771  $sValue = $this->getConfig()->getShopCurrentUrl();
772  $this->setViewConfigParam('artperpageform', $sValue);
773  }
774 
775  return $sValue;
776  }
777 
783  public function isBuyableParent()
784  {
785  return $this->getConfig()->getConfigParam('blVariantParentBuyable');
786  }
787 
793  public function showBirthdayFields()
794  {
795  return $this->getConfig()->getConfigParam('blShowBirthdayFields');
796  }
797 
805  public function showFinalStep()
806  {
807  return true;
808  }
809 
815  public function getNrOfCatArticles()
816  {
817  $sListType = oxRegistry::getSession()->getVariable('ldtype');
818 
819  if (is_null($sListType)) {
820  $sListType = oxRegistry::getConfig()->getConfigParam('sDefaultListDisplayType');
821  }
822 
823  if ('grid' === $sListType) {
824  $aNrOfCatArticles = oxRegistry::getConfig()->getConfigParam('aNrofCatArticlesInGrid');
825  } else {
826  $aNrOfCatArticles = oxRegistry::getConfig()->getConfigParam('aNrofCatArticles');
827  }
828 
829  return $aNrOfCatArticles;
830  }
831 
837  public function getShowWishlist()
838  {
839  return $this->getConfig()->getConfigParam('bl_showWishlist');
840  }
841 
847  public function getShowCompareList()
848  {
849  $myConfig = $this->getConfig();
850  $blShowCompareList = true;
851 
852  if (!$myConfig->getConfigParam('bl_showCompareList') ||
853  ($myConfig->getConfigParam('blDisableNavBars') && $myConfig->getActiveView()->getIsOrderStep())
854  ) {
855  $blShowCompareList = false;
856  }
857 
858  return $blShowCompareList;
859  }
860 
868  public function getShowListmania()
869  {
870  return $this->getConfig()->getConfigParam('bl_showListmania');
871  }
872 
878  public function getShowVouchers()
879  {
880  return $this->getConfig()->getConfigParam('bl_showVouchers');
881  }
882 
888  public function getShowGiftWrapping()
889  {
890  return $this->getConfig()->getConfigParam('bl_showGiftWrapping');
891  }
892 
898  public function getActLanguageId()
899  {
900  if (($sValue = $this->getViewConfigParam('lang')) === null) {
901  $iLang = oxRegistry::getConfig()->getRequestParameter('lang');
902  $sValue = ($iLang !== null) ? $iLang : oxRegistry::getLang()->getBaseLanguage();
903  $this->setViewConfigParam('lang', $sValue);
904  }
905 
906  return $sValue;
907  }
908 
914  public function getActLanguageAbbr()
915  {
916  return oxRegistry::getLang()->getLanguageAbbr($this->getActLanguageId());
917  }
918 
924  public function getActiveClassName()
925  {
926  return $this->getConfig()->getActiveView()->getClassName();
927  }
928 
935  public function getTopActiveClassName()
936  {
937  return $this->getConfig()->getTopActiveView()->getClassName();
938  }
939 
945  public function getArtPerPageCount()
946  {
947  return $this->getViewConfigParam('iartPerPage');
948  }
949 
955  public function getNavUrlParams()
956  {
957  if (($sParams = $this->getViewConfigParam('navurlparams')) === null) {
958  $sParams = '';
959  $aNavParams = $this->getConfig()->getActiveView()->getNavigationParams();
960  foreach ($aNavParams as $sName => $sValue) {
961  if (isset($sValue)) {
962  if ($sParams) {
963  $sParams .= '&amp;';
964  }
965  $sParams .= "{$sName}=" . rawurlencode($sValue);
966  }
967  }
968  if ($sParams) {
969  $sParams = '&amp;' . $sParams;
970  }
971  $this->setViewConfigParam('navurlparams', $sParams);
972  }
973 
974  return $sParams;
975  }
976 
982  public function getNavFormParams()
983  {
984 
985  if (($sParams = $this->getViewConfigParam('navformparams')) === null) {
986  $oStr = getStr();
987  $sParams = '';
988  $aNavParams = $this->getConfig()->getTopActiveView()->getNavigationParams();
989  foreach ($aNavParams as $sName => $sValue) {
990  if (isset($sValue)) {
991  $sParams .= "<input type=\"hidden\" name=\"{$sName}\" value=\"";
992  $sParams .= $oStr->htmlentities($sValue) . "\" />\n";
993  }
994  }
995  $this->setViewConfigParam('navformparams', $sParams);
996  }
997 
998  return $sParams;
999  }
1000 
1006  public function getStockOnDefaultMessage()
1007  {
1008  return $this->getConfig()->getConfigParam('blStockOnDefaultMessage');
1009  }
1010 
1016  public function getStockOffDefaultMessage()
1017  {
1018  return $this->getConfig()->getConfigParam('blStockOffDefaultMessage');
1019  }
1020 
1026  public function getShopVersion()
1027  {
1028  return $this->getViewConfigParam('sShopVersion');
1029  }
1030 
1036  public function getAjaxLink()
1037  {
1038  return $this->getViewConfigParam('ajaxlink');
1039  }
1040 
1046  public function isMultiShop()
1047  {
1048  $oShop = $this->getConfig()->getActiveShop();
1049 
1050  return isset($oShop->oxshops__oxismultishop) ? ((bool) $oShop->oxshops__oxismultishop->value) : false;
1051  }
1052 
1058  public function getServiceUrl()
1059  {
1060  return $this->getViewConfigParam('sServiceUrl');
1061  }
1062 
1069  public function getRemoteAccessToken()
1070  {
1071  $sRaToken = oxRegistry::getSession()->getRemoteAccessToken();
1072 
1073  return $sRaToken;
1074  }
1075 
1082  public function getActionClassName()
1083  {
1084  return $this->getConfig()->getActiveView()->getActionClassName();
1085  }
1086 
1093  public function getTopActionClassName()
1094  {
1095  return $this->getConfig()->getTopActiveView()->getActionClassName();
1096  }
1097 
1105  public function getFbAppId()
1106  {
1107  return $this->getConfig()->getConfigParam('sFbAppId');
1108  }
1109 
1115  public function getShowBasketTimeout()
1116  {
1117  return $this->getConfig()->getConfigParam('blPsBasketReservationEnabled')
1118  && ($this->getSession()->getBasketReservations()->getTimeLeft() > 0);
1119  }
1120 
1126  public function getBasketTimeLeft()
1127  {
1128  if (!isset($this->_dBasketTimeLeft)) {
1129  $this->_dBasketTimeLeft = $this->getSession()->getBasketReservations()->getTimeLeft();
1130  }
1131 
1132  return $this->_dBasketTimeLeft;
1133  }
1134 
1143  public function getShowFbConnect()
1144  {
1145  $myConfig = $this->getConfig();
1146 
1147  if ($myConfig->getConfigParam('bl_showFbConnect')) {
1148  if ($myConfig->getConfigParam("sFbAppId") && $myConfig->getConfigParam("sFbSecretKey")) {
1149  return true;
1150  }
1151  }
1152 
1153  return false;
1154  }
1155 
1163  public function getTsDomain()
1164  {
1165  $sDomain = false;
1166  $aTsConfig = $this->getConfig()->getConfigParam("aTsConfig");
1167  if (is_array($aTsConfig)) {
1168  $sDomain = $aTsConfig["blTestMode"] ? $aTsConfig["sTsTestUrl"] : $aTsConfig["sTsUrl"];
1169  }
1170 
1171  return $sDomain;
1172  }
1173 
1181  public function getTsRatings()
1182  {
1183  if ($this->_aTrustedShopRatings === null) {
1184  $sTsId = $this->getTsId();
1185  if ($sTsId) {
1186  $oTsRatings = oxNew("oxTsRatings");
1187  $oTsRatings->setTsId($sTsId);
1188  $this->_aTrustedShopRatings = $oTsRatings->getRatings();
1189 
1191  }
1192  }
1193 
1195  }
1196 
1204  public function getTsRatingUrl()
1205  {
1206  $sUrl = false;
1207  $sTsId = $this->getTsId();
1208  if ($sTsId) {
1209  $sTsUrl = $this->getTsDomain();
1210 
1211  $sLangId = oxRegistry::getLang()->getLanguageAbbr();
1212  $aTsConfig = $this->getConfig()->getConfigParam("aTsConfig");
1213  if (isset($aTsConfig["sTsRatingUri"]) && isset($aTsConfig["sTsRatingUri"][$sLangId])) {
1214  $sTsRateUri = $aTsConfig["sTsRatingUri"][$sLangId];
1215  } else {
1216  $sTsRateUri = false;
1217  }
1218 
1219  if ($sTsUrl && $sTsRateUri) {
1220  $sUrl = sprintf("{$sTsUrl}/{$sTsRateUri}", $sTsId);
1221  }
1222  }
1223 
1224  return $sUrl;
1225  }
1226 
1236  public function showTs($sType)
1237  {
1238  $blShow = false;
1239  switch ($sType) {
1240  case "WIDGET":
1241  $blShow = (bool) $this->getConfig()->getConfigParam("blTsWidget");
1242  break;
1243  case "THANKYOU":
1244  $blShow = (bool) $this->getConfig()->getConfigParam("blTsThankyouReview");
1245  break;
1246  case "ORDEREMAIL":
1247  $blShow = (bool) $this->getConfig()->getConfigParam("blTsOrderEmailReview");
1248  break;
1249  case "ORDERCONFEMAIL":
1250  $blShow = (bool) $this->getConfig()->getConfigParam("blTsOrderSendEmailReview");
1251  break;
1252  }
1253 
1254  return $blShow;
1255  }
1256 
1264  public function getTsId()
1265  {
1266  $sTsId = false;
1267  $oConfig = $this->getConfig();
1268  $aLangIds = $oConfig->getConfigParam("aTsLangIds");
1269  $aActInfo = $oConfig->getConfigParam("aTsActiveLangIds");
1270 
1271  // mapping with language id
1272  $sLangId = oxRegistry::getLang()->getLanguageAbbr();
1273  if (isset($aActInfo[$sLangId]) && $aActInfo[$sLangId] &&
1274  isset($aLangIds[$sLangId]) && $aLangIds[$sLangId]
1275  ) {
1276  $sTsId = $aLangIds[$sLangId];
1277  }
1278 
1279  return $sTsId;
1280  }
1281 
1287  public function isTplBlocksDebugMode()
1288  {
1289  return (bool) $this->getConfig()->getConfigParam('blDebugTemplateBlocks');
1290  }
1291 
1297  public function getPasswordLength()
1298  {
1299  $iPasswordLength = 6;
1300 
1301  $oConfig = $this->getConfig();
1302 
1303  if ($oConfig->getConfigParam("iPasswordLength")) {
1304  $iPasswordLength = $oConfig->getConfigParam("iPasswordLength");
1305  }
1306 
1307  return $iPasswordLength;
1308  }
1309 
1315  public function getCountryList()
1316  {
1317  if ($this->_oCountryList === null) {
1318  // passing country list
1319  $this->_oCountryList = oxNew('oxcountrylist');
1320  $this->_oCountryList->loadActiveCountries();
1321  }
1322 
1323  return $this->_oCountryList;
1324  }
1325 
1326 
1337  public function getModulePath($sModule, $sFile = '')
1338  {
1339  if (!$sFile || ($sFile[0] != '/')) {
1340  $sFile = '/' . $sFile;
1341  }
1342  $oModule = oxNew("oxmodule");
1343  $sModulePath = $oModule->getModulePath($sModule);
1344  $sFile = $this->getConfig()->getModulesDir() . $sModulePath . $sFile;
1345  if (file_exists($sFile) || is_dir($sFile)) {
1346  return $sFile;
1347  } else {
1349  $oEx = oxNew("oxFileException", "Requested file not found for module $sModule ($sFile)");
1350  $oEx->debugOut();
1351  if (!$this->getConfig()->getConfigParam('iDebug')) {
1352  return '';
1353  }
1354  throw $oEx;
1355  }
1356  }
1357 
1368  public function getModuleUrl($sModule, $sFile = '')
1369  {
1370  $c = $this->getConfig();
1371  $shopUrl = null;
1372  if ($this->isAdmin()) {
1373  if ($c->isSsl()) {
1374  // From admin and with SSL we try to use sAdminSSLURL config directive
1375  $shopUrl = $c->getConfigParam('sAdminSSLURL');
1376  if ($shopUrl) {
1377  // but we don't need the admin directory
1378  $adminDir = '/'.$c->getConfigParam('sAdminDir');
1379  $shopUrl = substr($shopUrl, 0, -strlen($adminDir));
1380  } else {
1381  // if no sAdminSSLURL directive were defined we use sSSLShopURL config directive instead
1382  $shopUrl = $c->getConfigParam('sSSLShopURL');
1383  }
1384  }
1385  // From admin and with no config usefull directive, we use the sShopURL directive
1386  if (!$shopUrl) {
1387  $shopUrl = $c->getConfigParam('sShopURL');
1388  }
1389  }
1390  // We are either in front, or in admin with no $sShopURL defined
1391  if (!$shopUrl) {
1392  $shopUrl = $c->getCurrentShopUrl();
1393  }
1394  $shopUrl = rtrim($shopUrl, '/');
1395 
1396  $sUrl = str_replace(
1397  rtrim($c->getConfigParam('sShopDir'), '/'),
1398  $shopUrl,
1399  $this->getModulePath($sModule, $sFile)
1400  );
1401 
1402  return $sUrl;
1403  }
1404 
1415  public function isModuleActive($sModuleId, $sVersionFrom = null, $sVersionTo = null)
1416  {
1417  $blModuleIsActive = false;
1418 
1419  // use aModuleVersions instead of aModules, because aModules gives only modules which extend oxid classes
1420  $aModuleVersions = $this->getConfig()->getConfigParam('aModuleVersions');
1421 
1422  if (is_array($aModuleVersions)) {
1423  $blModuleIsActive = $this->_moduleExists($sModuleId, $aModuleVersions);
1424 
1425  if ($blModuleIsActive) {
1426  $blModuleIsActive = $this->_isModuleEnabled($sModuleId) && $this->_isModuleVersionCorrect($sModuleId, $sVersionFrom, $sVersionTo);
1427  }
1428  }
1429 
1430  return $blModuleIsActive;
1431  }
1432 
1440  public function getViewThemeParam($sName)
1441  {
1442  $sValue = false;
1443 
1444  if ($this->getConfig()->isThemeOption($sName)) {
1445  $sValue = $this->getConfig()->getConfigParam($sName);
1446  }
1447 
1448  return $sValue;
1449  }
1450 
1451 
1457  public function showSelectLists()
1458  {
1459  return (bool) $this->getConfig()->getConfigParam('bl_perfLoadSelectLists');
1460  }
1461 
1467  public function showSelectListsInList()
1468  {
1469  return $this->showSelectLists() && (bool) $this->getConfig()->getConfigParam('bl_perfLoadSelectListsInAList');
1470  }
1471 
1472 
1473 
1479  public function isAltImageServerConfigured()
1480  {
1481  $oConfig = $this->getConfig();
1482 
1483  return $oConfig->getConfigParam('sAltImageUrl') || $oConfig->getConfigParam('sSSLAltImageUrl') ||
1484  $oConfig->getConfigParam('sAltImageDir') || $oConfig->getConfigParam('sSSLAltImageDir');
1485  }
1486 
1494  public function isFunctionalityEnabled($sParamName)
1495  {
1496  return (bool) $this->getConfig()->getConfigParam($sParamName);
1497  }
1498 
1504  public function getActiveTheme()
1505  {
1506  if ($this->_sActiveTheme === null) {
1507  $oTheme = oxNew('oxTheme');
1508  $this->_sActiveTheme = $oTheme->getActiveThemeId();
1509  }
1510 
1511  return $this->_sActiveTheme;
1512  }
1513 
1519  public function getShopLogo()
1520  {
1521  if (is_null($this->_sShopLogo)) {
1522 
1523  $sLogoImage = $this->getConfig()->getConfigParam('sShopLogo');
1524  if (empty($sLogoImage)) {
1525  $sLogoImage = "logo.png";
1526  }
1527 
1528  $this->setShopLogo($sLogoImage);
1529  }
1530 
1531  return $this->_sShopLogo;
1532  }
1533 
1539  public function setShopLogo($sLogo)
1540  {
1541  $this->_sShopLogo = $sLogo;
1542  }
1543 
1549  public function getSessionChallengeToken()
1550  {
1551  if (oxRegistry::getSession()->isSessionStarted()) {
1552  $sessionChallengeToken = $this->getSession()->getSessionChallengeToken();
1553  } else {
1554  $sessionChallengeToken = "";
1555  }
1556 
1557  return $sessionChallengeToken;
1558  }
1559 
1568  private function _moduleExists($sModuleId, $aModuleVersions)
1569  {
1570  $blModuleExists = false;
1571 
1572  if (in_array($sModuleId, array_keys($aModuleVersions) )) {
1573  $blModuleExists = true;
1574  }
1575 
1576  return $blModuleExists;
1577  }
1578 
1586  private function _isModuleEnabled($sModuleId)
1587  {
1588  $blModuleIsActive = false;
1589 
1590  $aDisabledModules = $this->getConfig()->getConfigParam('aDisabledModules');
1591  if (!(is_array($aDisabledModules) && in_array($sModuleId, $aDisabledModules))) {
1592  $blModuleIsActive = true;
1593  }
1594  return $blModuleIsActive;
1595  }
1596 
1606  private function _isModuleVersionCorrect($sModuleId, $sVersionFrom, $sVersionTo)
1607  {
1608  $blModuleIsActive = true;
1609 
1610  $aModuleVersions = $this->getConfig()->getConfigParam('aModuleVersions');
1611 
1612  if ($sVersionFrom && !version_compare($aModuleVersions[$sModuleId], $sVersionFrom, '>=')) {
1613  $blModuleIsActive = false;
1614  }
1615 
1616  if ($blModuleIsActive && $sVersionTo && !version_compare($aModuleVersions[$sModuleId], $sVersionTo, '<')) {
1617  $blModuleIsActive = false;
1618  }
1619 
1620  return $blModuleIsActive;
1621  }
1622 
1628  public function getEdition()
1629  {
1630  return $this->getConfig()->getEdition();
1631  }
1632 }