OXID eShop CE  4.10.1
 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 
51  protected $_aTrustedShopRatings = null;
52 
58  protected $_sActiveTheme = null;
59 
65  protected $_sShopLogo = null;
66 
72  public function getHomeLink()
73  {
74  if (($sValue = $this->getViewConfigParam('homeLink')) === null) {
75  $myConfig = $this->getConfig();
76  $myUtils = oxRegistry::getUtils();
77  $oLang = oxRegistry::getLang();
78  $iLang = $oLang->getBaseLanguage();
79 
80  $sValue = null;
81 
82  $blAddStartCl = $myUtils->seoIsActive() && ($iLang != $myConfig->getConfigParam('sDefaultLang'));
83 
84 
85  if ($blAddStartCl) {
86  $sValue = oxRegistry::get("oxSeoEncoder")->getStaticUrl($this->getSelfLink() . 'cl=start', $iLang);
87  $sValue = oxRegistry::get("oxUtilsUrl")->appendUrl(
88  $sValue,
89  oxRegistry::get("oxUtilsUrl")->getBaseAddUrlParams()
90  );
91  $sValue = getStr()->preg_replace('/(\?|&(amp;)?)$/', '', $sValue);
92  }
93 
94  if (!$sValue) {
95  $sValue = getStr()->preg_replace('#index.php\??$#', '', $this->getSelfLink());
96  }
97 
98  $this->setViewConfigParam('homeLink', $sValue);
99  }
100 
101  return $sValue;
102  }
103 
109  public function getActContentLoadId()
110  {
111  $sTplName = oxRegistry::getConfig()->getRequestParameter('oxloadid');
112  // #M1176: Logout from CMS page
113  if (!$sTplName && $this->getConfig()->getTopActiveView()) {
114  $sTplName = $this->getConfig()->getTopActiveView()->getViewConfig()->getViewConfigParam('oxloadid');
115  }
116 
117  return $sTplName ? basename($sTplName) : null;
118  }
119 
125  public function getActTplName()
126  {
127  return oxRegistry::getConfig()->getRequestParameter('tpl');
128  }
129 
135  public function getActCurrency()
136  {
137  return $this->getConfig()->getShopCurrency();
138  }
139 
145  public function getLogoutLink()
146  {
147  $sClass = $this->getTopActionClassName();
148  $sCatnid = $this->getActCatId();
149  $sMnfid = $this->getActManufacturerId();
150  $sArtnid = $this->getActArticleId();
151  $sTplName = $this->getActTplName();
152  $sContentLoadId = $this->getActContentLoadId();
153  $sSearchParam = $this->getActSearchParam();
154  // @deprecated v5.3 (2016-05-04); Tags will be moved to own module.
155  $sSearchTag = $this->getActSearchTag();
156  // END deprecated
157  // @deprecated since v5.3 (2016-06-17); Listmania will be moved to an own module.
158  $sRecommId = $this->getActRecommendationId();
159  // END deprecated
160  $sListType = $this->getActListType();
161 
162  $oConfig = $this->getConfig();
163 
164  return ($oConfig->isSsl() ? $oConfig->getShopSecureHomeUrl() : $oConfig->getShopHomeUrl())
165  . "cl={$sClass}"
166  . ($sCatnid ? "&amp;cnid={$sCatnid}" : '')
167  . ($sArtnid ? "&amp;anid={$sArtnid}" : '')
168  . ($sMnfid ? "&amp;mnid={$sMnfid}" : '')
169  . ($sSearchParam ? "&amp;searchparam={$sSearchParam}" : '')
170  // @deprecated v5.3 (2016-05-04); Tags will be moved to own module.
171  . ($sSearchTag ? "&amp;searchtag={$sSearchTag}" : '')
172  // END deprecated
173  // @deprecated since v5.3 (2016-06-17); Listmania will be moved to an own module.
174  . ($sRecommId ? "&amp;recommid={$sRecommId}" : '')
175  // END deprecated
176  . ($sListType ? "&amp;listtype={$sListType}" : '')
177  . "&amp;fnc=logout"
178  . ($sTplName ? "&amp;tpl=" . basename($sTplName) : '')
179  . ($sContentLoadId ? "&amp;oxloadid=" . $sContentLoadId : '')
180  . "&amp;redirect=1";
181  }
182 
188  protected function _getHelpContentIdents()
189  {
190  $sClass = $this->getActiveClassName();
191 
192  return array('oxhelp' . strtolower($sClass), 'oxhelpdefault');
193  }
194 
200  public function getHelpPageLink()
201  {
202  if ($this->_sHelpPageLink === null) {
203  $this->_sHelpPageLink = "";
204  $aContentIdents = $this->_getHelpContentIdents();
205  $oContent = oxNew("oxContent");
206  foreach ($aContentIdents as $sIdent) {
207  if ($oContent->loadByIdent($sIdent)) {
208  $this->_sHelpPageLink = $oContent->getLink();
209  break;
210  }
211  }
212  }
213 
214  return $this->_sHelpPageLink;
215  }
216 
222  public function getActCatId()
223  {
224  return oxRegistry::getConfig()->getRequestParameter('cnid');
225  }
226 
232  public function getActArticleId()
233  {
234  return oxRegistry::getConfig()->getRequestParameter('anid');
235  }
236 
242  public function getActSearchParam()
243  {
244  return oxRegistry::getConfig()->getRequestParameter('searchparam');
245  }
246 
254  public function getActSearchTag()
255  {
256  return oxRegistry::getConfig()->getRequestParameter('searchtag');
257  }
258 
266  public function getActRecommendationId()
267  {
268  return oxRegistry::getConfig()->getRequestParameter('recommid');
269  }
270 
276  public function getActListType()
277  {
278  return oxRegistry::getConfig()->getRequestParameter('listtype');
279  }
280 
286  public function getActManufacturerId()
287  {
288  return oxRegistry::getConfig()->getRequestParameter('mnid');
289  }
290 
296  public function getContentId()
297  {
298  return oxRegistry::getConfig()->getRequestParameter('oxcid');
299  }
300 
309  public function setViewConfigParam($sName, $sValue)
310  {
311  startProfile('oxviewconfig::setViewConfigParam');
312 
313  $this->_aConfigParams[$sName] = $sValue;
314 
315  stopProfile('oxviewconfig::setViewConfigParam');
316  }
317 
325  public function getViewConfigParam($sName)
326  {
327  startProfile('oxviewconfig::getViewConfigParam');
328 
329  if ($this->_oShop && isset($this->_oShop->$sName)) {
330  $sValue = $this->_oShop->$sName;
331  } elseif ($this->_aViewData && isset($this->_aViewData[$sName])) {
332  $sValue = $this->_aViewData[$sName];
333  } else {
334  $sValue = (isset($this->_aConfigParams[$sName]) ? $this->_aConfigParams[$sName] : null);
335  }
336 
337  stopProfile('oxviewconfig::getViewConfigParam');
338 
339  return $sValue;
340  }
341 
349  public function setViewShop($oShop, $aViewData)
350  {
351  $this->_oShop = $oShop;
352  $this->_aViewData = $aViewData;
353  }
354 
362  public function getSessionId()
363  {
364  if (($sValue = $this->getViewConfigParam('sessionid')) === null) {
365  $sValue = $this->getSession()->getId();
366  $this->setViewConfigParam('sessionid', $sValue);
367  }
368 
369  return $sValue;
370  }
371 
377  public function getHiddenSid()
378  {
379  if (($sValue = $this->getViewConfigParam('hiddensid')) === null) {
380  $sValue = $this->getSession()->hiddenSid();
381 
382  // appending language info to form
383  if (($sLang = oxRegistry::getLang()->getFormLang())) {
384  $sValue .= "\n{$sLang}";
385  }
386 
387 
388  $this->setViewConfigParam('hiddensid', $sValue);
389  }
390 
391  return $sValue;
392  }
393 
399  public function getSelfLink()
400  {
401  if (($sValue = $this->getViewConfigParam('selflink')) === null) {
402  $sValue = $this->getConfig()->getShopHomeURL();
403  $this->setViewConfigParam('selflink', $sValue);
404  }
405 
406  return $sValue;
407  }
408 
414  public function getSslSelfLink()
415  {
416  if ($this->isAdmin()) {
417  // using getSelfLink() method in admin mode (#2745)
418  return $this->getSelfLink();
419  }
420 
421  if (($sValue = $this->getViewConfigParam('sslselflink')) === null) {
422  $sValue = $this->getConfig()->getShopSecureHomeURL();
423  $this->setViewConfigParam('sslselflink', $sValue);
424  }
425 
426  return $sValue;
427  }
428 
434  public function getBaseDir()
435  {
436  if (($sValue = $this->getViewConfigParam('basedir')) === null) {
437 
438  if ($this->getConfig()->isSsl()) {
439  $sValue = $this->getConfig()->getSSLShopURL();
440  } else {
441  $sValue = $this->getConfig()->getShopURL();
442  }
443 
444  $this->setViewConfigParam('basedir', $sValue);
445  }
446 
447  return $sValue;
448  }
449 
455  public function getCoreUtilsDir()
456  {
457  if (($sValue = $this->getViewConfigParam('coreutilsdir')) === null) {
458  $sValue = $this->getConfig()->getCoreUtilsURL();
459  $this->setViewConfigParam('coreutilsdir', $sValue);
460  }
461 
462  return $sValue;
463  }
464 
470  public function getSelfActionLink()
471  {
472  if (($sValue = $this->getViewConfigParam('selfactionlink')) === null) {
473  $sValue = $this->getConfig()->getShopCurrentUrl();
474  $this->setViewConfigParam('selfactionlink', $sValue);
475  }
476 
477  return $sValue;
478  }
479 
485  public function getCurrentHomeDir()
486  {
487  if (($sValue = $this->getViewConfigParam('currenthomedir')) === null) {
488  $sValue = $this->getConfig()->getCurrentShopUrl();
489  $this->setViewConfigParam('currenthomedir', $sValue);
490  }
491 
492  return $sValue;
493  }
494 
500  public function getBasketLink()
501  {
502  if (($sValue = $this->getViewConfigParam('basketlink')) === null) {
503  $sValue = $this->getConfig()->getShopHomeURL() . 'cl=basket';
504  $this->setViewConfigParam('basketlink', $sValue);
505  }
506 
507  return $sValue;
508  }
509 
515  public function getOrderLink()
516  {
517  if (($sValue = $this->getViewConfigParam('orderlink')) === null) {
518  $sValue = $this->getConfig()->getShopSecureHomeUrl() . 'cl=user';
519  $this->setViewConfigParam('orderlink', $sValue);
520  }
521 
522  return $sValue;
523  }
524 
530  public function getPaymentLink()
531  {
532  if (($sValue = $this->getViewConfigParam('paymentlink')) === null) {
533  $sValue = $this->getConfig()->getShopSecureHomeUrl() . 'cl=payment';
534  $this->setViewConfigParam('paymentlink', $sValue);
535  }
536 
537  return $sValue;
538  }
539 
545  public function getExeOrderLink()
546  {
547  if (($sValue = $this->getViewConfigParam('exeorderlink')) === null) {
548  $sValue = $this->getConfig()->getShopSecureHomeUrl() . 'cl=order&amp;fnc=execute';
549  $this->setViewConfigParam('exeorderlink', $sValue);
550  }
551 
552  return $sValue;
553  }
554 
560  public function getOrderConfirmLink()
561  {
562  if (($sValue = $this->getViewConfigParam('orderconfirmlink')) === null) {
563  $sValue = $this->getConfig()->getShopSecureHomeUrl() . 'cl=order';
564  $this->setViewConfigParam('orderconfirmlink', $sValue);
565  }
566 
567  return $sValue;
568  }
569 
577  public function getResourceUrl($sFile = null)
578  {
579  if ($sFile) {
580  $sValue = $this->getConfig()->getResourceUrl($sFile, $this->isAdmin());
581  } elseif (($sValue = $this->getViewConfigParam('basetpldir')) === null) {
582  $sValue = $this->getConfig()->getResourceUrl('', $this->isAdmin());
583  $this->setViewConfigParam('basetpldir', $sValue);
584  }
585 
586  return $sValue;
587  }
588 
594  public function getTemplateDir()
595  {
596  if (($sValue = $this->getViewConfigParam('templatedir')) === null) {
597  $sValue = $this->getConfig()->getTemplateDir($this->isAdmin());
598  $this->setViewConfigParam('templatedir', $sValue);
599  }
600 
601  return $sValue;
602  }
603 
609  public function getUrlTemplateDir()
610  {
611  if (($sValue = $this->getViewConfigParam('urltemplatedir')) === null) {
612  $sValue = $this->getConfig()->getTemplateUrl($this->isAdmin());
613  $this->setViewConfigParam('urltemplatedir', $sValue);
614  }
615 
616  return $sValue;
617  }
618 
627  public function getImageUrl($sFile = null, $bSsl = null)
628  {
629  if ($sFile) {
630  $sValue = $this->getConfig()->getImageUrl($this->isAdmin(), $bSsl, null, $sFile);
631  } elseif (($sValue = $this->getViewConfigParam('imagedir')) === null) {
632  $sValue = $this->getConfig()->getImageUrl($this->isAdmin(), $bSsl);
633  $this->setViewConfigParam('imagedir', $sValue);
634  }
635 
636  return $sValue;
637  }
638 
644  public function getNoSslImageDir()
645  {
646  if (($sValue = $this->getViewConfigParam('nossl_imagedir')) === null) {
647  $sValue = $this->getConfig()->getImageUrl($this->isAdmin(), false);
648  $this->setViewConfigParam('nossl_imagedir', $sValue);
649  }
650 
651  return $sValue;
652  }
653 
660  public function getPictureDir()
661  {
662  if (($sValue = $this->getViewConfigParam('picturedir')) === null) {
663  $sValue = $this->getConfig()->getPictureUrl(null, $this->isAdmin());
664  $this->setViewConfigParam('picturedir', $sValue);
665  }
666 
667  return $sValue;
668  }
669 
675  public function getAdminDir()
676  {
677  if (($sValue = $this->getViewConfigParam('sAdminDir')) === null) {
678  $sValue = $this->getConfig()->getConfigParam('sAdminDir');
679  $this->setViewConfigParam('sAdminDir', $sValue);
680  }
681 
682  return $sValue;
683  }
684 
690  public function getActiveShopId()
691  {
692  if (($sValue = $this->getViewConfigParam('shopid')) === null) {
693  $sValue = $this->getConfig()->getShopId();
694  $this->setViewConfigParam('shopid', $sValue);
695  }
696 
697  return $sValue;
698  }
699 
705  public function isSsl()
706  {
707  if (($sValue = $this->getViewConfigParam('isssl')) === null) {
708  $sValue = $this->getConfig()->isSsl();
709  $this->setViewConfigParam('isssl', $sValue);
710  }
711 
712  return $sValue;
713  }
714 
715 
721  public function getRemoteAddress()
722  {
723  if (($sValue = $this->getViewConfigParam('ip')) === null) {
724  $sValue = oxRegistry::get("oxUtilsServer")->getRemoteAddress();
725  $this->setViewConfigParam('ip', $sValue);
726  }
727 
728  return $sValue;
729  }
730 
736  public function getPopupIdent()
737  {
738  if (($sValue = $this->getViewConfigParam('popupident')) === null) {
739  $sValue = md5($this->getConfig()->getShopUrl());
740  $this->setViewConfigParam('popupident', $sValue);
741  }
742 
743  return $sValue;
744  }
745 
751  public function getPopupIdentRand()
752  {
753  if (($sValue = $this->getViewConfigParam('popupidentrand')) === null) {
754  $sValue = md5(time());
755  $this->setViewConfigParam('popupidentrand', $sValue);
756  }
757 
758  return $sValue;
759  }
760 
766  public function getArtPerPageForm()
767  {
768  if (($sValue = $this->getViewConfigParam('artperpageform')) === null) {
769  $sValue = $this->getConfig()->getShopCurrentUrl();
770  $this->setViewConfigParam('artperpageform', $sValue);
771  }
772 
773  return $sValue;
774  }
775 
781  public function isBuyableParent()
782  {
783  return $this->getConfig()->getConfigParam('blVariantParentBuyable');
784  }
785 
791  public function showBirthdayFields()
792  {
793  return $this->getConfig()->getConfigParam('blShowBirthdayFields');
794  }
795 
803  public function showFinalStep()
804  {
805  return true;
806  }
807 
813  public function getNrOfCatArticles()
814  {
815  $sListType = oxRegistry::getSession()->getVariable('ldtype');
816 
817  if (is_null($sListType)) {
818  $sListType = oxRegistry::getConfig()->getConfigParam('sDefaultListDisplayType');
819  }
820 
821  if ('grid' === $sListType) {
822  $aNrOfCatArticles = oxRegistry::getConfig()->getConfigParam('aNrofCatArticlesInGrid');
823  } else {
824  $aNrOfCatArticles = oxRegistry::getConfig()->getConfigParam('aNrofCatArticles');
825  }
826 
827  return $aNrOfCatArticles;
828  }
829 
835  public function getShowWishlist()
836  {
837  return $this->getConfig()->getConfigParam('bl_showWishlist');
838  }
839 
845  public function getShowCompareList()
846  {
847  $myConfig = $this->getConfig();
848  $blShowCompareList = true;
849 
850  if (!$myConfig->getConfigParam('bl_showCompareList') ||
851  ($myConfig->getConfigParam('blDisableNavBars') && $myConfig->getActiveView()->getIsOrderStep())
852  ) {
853  $blShowCompareList = false;
854  }
855 
856  return $blShowCompareList;
857  }
858 
866  public function getShowListmania()
867  {
868  return $this->getConfig()->getConfigParam('bl_showListmania');
869  }
870 
876  public function getShowVouchers()
877  {
878  return $this->getConfig()->getConfigParam('bl_showVouchers');
879  }
880 
886  public function getShowGiftWrapping()
887  {
888  return $this->getConfig()->getConfigParam('bl_showGiftWrapping');
889  }
890 
896  public function getActLanguageId()
897  {
898  if (($sValue = $this->getViewConfigParam('lang')) === null) {
899  $iLang = oxRegistry::getConfig()->getRequestParameter('lang');
900  $sValue = ($iLang !== null) ? $iLang : oxRegistry::getLang()->getBaseLanguage();
901  $this->setViewConfigParam('lang', $sValue);
902  }
903 
904  return $sValue;
905  }
906 
912  public function getActLanguageAbbr()
913  {
914  return oxRegistry::getLang()->getLanguageAbbr($this->getActLanguageId());
915  }
916 
922  public function getActiveClassName()
923  {
924  return $this->getConfig()->getActiveView()->getClassName();
925  }
926 
933  public function getTopActiveClassName()
934  {
935  return $this->getConfig()->getTopActiveView()->getClassName();
936  }
937 
943  public function getArtPerPageCount()
944  {
945  return $this->getViewConfigParam('iartPerPage');
946  }
947 
953  public function getNavUrlParams()
954  {
955  if (($sParams = $this->getViewConfigParam('navurlparams')) === null) {
956  $sParams = '';
957  $aNavParams = $this->getConfig()->getActiveView()->getNavigationParams();
958  foreach ($aNavParams as $sName => $sValue) {
959  if (isset($sValue)) {
960  if ($sParams) {
961  $sParams .= '&amp;';
962  }
963  $sParams .= "{$sName}=" . rawurlencode($sValue);
964  }
965  }
966  if ($sParams) {
967  $sParams = '&amp;' . $sParams;
968  }
969  $this->setViewConfigParam('navurlparams', $sParams);
970  }
971 
972  return $sParams;
973  }
974 
980  public function getNavFormParams()
981  {
982 
983  if (($sParams = $this->getViewConfigParam('navformparams')) === null) {
984  $oStr = getStr();
985  $sParams = '';
986  $aNavParams = $this->getConfig()->getTopActiveView()->getNavigationParams();
987  foreach ($aNavParams as $sName => $sValue) {
988  if (isset($sValue)) {
989  $sParams .= "<input type=\"hidden\" name=\"{$sName}\" value=\"";
990  $sParams .= $oStr->htmlentities($sValue) . "\" />\n";
991  }
992  }
993  $this->setViewConfigParam('navformparams', $sParams);
994  }
995 
996  return $sParams;
997  }
998 
1004  public function getStockOnDefaultMessage()
1005  {
1006  return $this->getConfig()->getConfigParam('blStockOnDefaultMessage');
1007  }
1008 
1014  public function getStockOffDefaultMessage()
1015  {
1016  return $this->getConfig()->getConfigParam('blStockOffDefaultMessage');
1017  }
1018 
1024  public function getShopVersion()
1025  {
1026  return $this->getViewConfigParam('sShopVersion');
1027  }
1028 
1034  public function getAjaxLink()
1035  {
1036  return $this->getViewConfigParam('ajaxlink');
1037  }
1038 
1044  public function isMultiShop()
1045  {
1046  $oShop = $this->getConfig()->getActiveShop();
1047 
1048  return isset($oShop->oxshops__oxismultishop) ? ((bool) $oShop->oxshops__oxismultishop->value) : false;
1049  }
1050 
1056  public function getServiceUrl()
1057  {
1058  return $this->getViewConfigParam('sServiceUrl');
1059  }
1060 
1067  public function getRemoteAccessToken()
1068  {
1069  $sRaToken = oxRegistry::getSession()->getRemoteAccessToken();
1070 
1071  return $sRaToken;
1072  }
1073 
1080  public function getActionClassName()
1081  {
1082  return $this->getConfig()->getActiveView()->getActionClassName();
1083  }
1084 
1091  public function getTopActionClassName()
1092  {
1093  return $this->getConfig()->getTopActiveView()->getActionClassName();
1094  }
1095 
1103  public function getFbAppId()
1104  {
1105  return $this->getConfig()->getConfigParam('sFbAppId');
1106  }
1107 
1113  public function getShowBasketTimeout()
1114  {
1115  return $this->getConfig()->getConfigParam('blPsBasketReservationEnabled')
1116  && ($this->getSession()->getBasketReservations()->getTimeLeft() > 0);
1117  }
1118 
1124  public function getBasketTimeLeft()
1125  {
1126  if (!isset($this->_dBasketTimeLeft)) {
1127  $this->_dBasketTimeLeft = $this->getSession()->getBasketReservations()->getTimeLeft();
1128  }
1129 
1130  return $this->_dBasketTimeLeft;
1131  }
1132 
1141  public function getShowFbConnect()
1142  {
1143  $myConfig = $this->getConfig();
1144 
1145  if ($myConfig->getConfigParam('bl_showFbConnect')) {
1146  if ($myConfig->getConfigParam("sFbAppId") && $myConfig->getConfigParam("sFbSecretKey")) {
1147  return true;
1148  }
1149  }
1150 
1151  return false;
1152  }
1153 
1161  public function getTsDomain()
1162  {
1163  $sDomain = false;
1164  $aTsConfig = $this->getConfig()->getConfigParam("aTsConfig");
1165  if (is_array($aTsConfig)) {
1166  $sDomain = $aTsConfig["blTestMode"] ? $aTsConfig["sTsTestUrl"] : $aTsConfig["sTsUrl"];
1167  }
1168 
1169  return $sDomain;
1170  }
1171 
1179  public function getTsRatings()
1180  {
1181  if ($this->_aTrustedShopRatings === null) {
1182  $sTsId = $this->getTsId();
1183  if ($sTsId) {
1184  $oTsRatings = oxNew("oxTsRatings");
1185  $oTsRatings->setTsId($sTsId);
1186  $this->_aTrustedShopRatings = $oTsRatings->getRatings();
1187 
1189  }
1190  }
1191 
1193  }
1194 
1202  public function getTsRatingUrl()
1203  {
1204  $sUrl = false;
1205  $sTsId = $this->getTsId();
1206  if ($sTsId) {
1207  $sTsUrl = $this->getTsDomain();
1208 
1209  $sLangId = oxRegistry::getLang()->getLanguageAbbr();
1210  $aTsConfig = $this->getConfig()->getConfigParam("aTsConfig");
1211  if (isset($aTsConfig["sTsRatingUri"]) && isset($aTsConfig["sTsRatingUri"][$sLangId])) {
1212  $sTsRateUri = $aTsConfig["sTsRatingUri"][$sLangId];
1213  } else {
1214  $sTsRateUri = false;
1215  }
1216 
1217  if ($sTsUrl && $sTsRateUri) {
1218  $sUrl = sprintf("{$sTsUrl}/{$sTsRateUri}", $sTsId);
1219  }
1220  }
1221 
1222  return $sUrl;
1223  }
1224 
1234  public function showTs($sType)
1235  {
1236  $blShow = false;
1237  switch ($sType) {
1238  case "WIDGET":
1239  $blShow = (bool) $this->getConfig()->getConfigParam("blTsWidget");
1240  break;
1241  case "THANKYOU":
1242  $blShow = (bool) $this->getConfig()->getConfigParam("blTsThankyouReview");
1243  break;
1244  case "ORDEREMAIL":
1245  $blShow = (bool) $this->getConfig()->getConfigParam("blTsOrderEmailReview");
1246  break;
1247  case "ORDERCONFEMAIL":
1248  $blShow = (bool) $this->getConfig()->getConfigParam("blTsOrderSendEmailReview");
1249  break;
1250  }
1251 
1252  return $blShow;
1253  }
1254 
1262  public function getTsId()
1263  {
1264  $sTsId = false;
1265  $oConfig = $this->getConfig();
1266  $aLangIds = $oConfig->getConfigParam("aTsLangIds");
1267  $aActInfo = $oConfig->getConfigParam("aTsActiveLangIds");
1268 
1269  // mapping with language id
1270  $sLangId = oxRegistry::getLang()->getLanguageAbbr();
1271  if (isset($aActInfo[$sLangId]) && $aActInfo[$sLangId] &&
1272  isset($aLangIds[$sLangId]) && $aLangIds[$sLangId]
1273  ) {
1274  $sTsId = $aLangIds[$sLangId];
1275  }
1276 
1277  return $sTsId;
1278  }
1279 
1285  public function isTplBlocksDebugMode()
1286  {
1287  return (bool) $this->getConfig()->getConfigParam('blDebugTemplateBlocks');
1288  }
1289 
1295  public function getPasswordLength()
1296  {
1297  $iPasswordLength = 6;
1298 
1299  $oConfig = $this->getConfig();
1300 
1301  if ($oConfig->getConfigParam("iPasswordLength")) {
1302  $iPasswordLength = $oConfig->getConfigParam("iPasswordLength");
1303  }
1304 
1305  return $iPasswordLength;
1306  }
1307 
1313  public function getCountryList()
1314  {
1315  if ($this->_oCountryList === null) {
1316  // passing country list
1317  $this->_oCountryList = oxNew('oxcountrylist');
1318  $this->_oCountryList->loadActiveCountries();
1319  }
1320 
1321  return $this->_oCountryList;
1322  }
1323 
1324 
1335  public function getModulePath($sModule, $sFile = '')
1336  {
1337  if (!$sFile || ($sFile[0] != '/')) {
1338  $sFile = '/' . $sFile;
1339  }
1340  $oModule = oxNew("oxmodule");
1341  $sModulePath = $oModule->getModulePath($sModule);
1342  $sFile = $this->getConfig()->getModulesDir() . $sModulePath . $sFile;
1343  if (file_exists($sFile) || is_dir($sFile)) {
1344  return $sFile;
1345  } else {
1347  $oEx = oxNew("oxFileException", "Requested file not found for module $sModule ($sFile)");
1348  $oEx->debugOut();
1349  if (!$this->getConfig()->getConfigParam('iDebug')) {
1350  return '';
1351  }
1352  throw $oEx;
1353  }
1354  }
1355 
1366  public function getModuleUrl($sModule, $sFile = '')
1367  {
1368  $sUrl = str_replace(
1369  rtrim($this->getConfig()->getConfigParam('sShopDir'), '/'),
1370  rtrim($this->getConfig()->getCurrentShopUrl(false), '/'),
1371  $this->getModulePath($sModule, $sFile)
1372  );
1373 
1374  return $sUrl;
1375  }
1376 
1387  public function isModuleActive($sModuleId, $sVersionFrom = null, $sVersionTo = null)
1388  {
1389  $blModuleIsActive = false;
1390 
1391  // use aModuleVersions instead of aModules, because aModules gives only modules which extend oxid classes
1392  $aModuleVersions = $this->getConfig()->getConfigParam('aModuleVersions');
1393 
1394  if (is_array($aModuleVersions)) {
1395  $blModuleIsActive = $this->_moduleExists($sModuleId, $aModuleVersions);
1396 
1397  if ($blModuleIsActive) {
1398  $blModuleIsActive = $this->_isModuleEnabled($sModuleId) && $this->_isModuleVersionCorrect($sModuleId, $sVersionFrom, $sVersionTo);
1399  }
1400  }
1401 
1402  return $blModuleIsActive;
1403  }
1404 
1412  public function getViewThemeParam($sName)
1413  {
1414  $sValue = false;
1415 
1416  if ($this->getConfig()->isThemeOption($sName)) {
1417  $sValue = $this->getConfig()->getConfigParam($sName);
1418  }
1419 
1420  return $sValue;
1421  }
1422 
1423 
1429  public function showSelectLists()
1430  {
1431  return (bool) $this->getConfig()->getConfigParam('bl_perfLoadSelectLists');
1432  }
1433 
1439  public function showSelectListsInList()
1440  {
1441  return $this->showSelectLists() && (bool) $this->getConfig()->getConfigParam('bl_perfLoadSelectListsInAList');
1442  }
1443 
1444 
1445 
1451  public function isAltImageServerConfigured()
1452  {
1453  $oConfig = $this->getConfig();
1454 
1455  return $oConfig->getConfigParam('sAltImageUrl') || $oConfig->getConfigParam('sSSLAltImageUrl') ||
1456  $oConfig->getConfigParam('sAltImageDir') || $oConfig->getConfigParam('sSSLAltImageDir');
1457  }
1458 
1466  public function isFunctionalityEnabled($sParamName)
1467  {
1468  return (bool) $this->getConfig()->getConfigParam($sParamName);
1469  }
1470 
1476  public function getActiveTheme()
1477  {
1478  if ($this->_sActiveTheme === null) {
1479  $oTheme = oxNew('oxTheme');
1480  $this->_sActiveTheme = $oTheme->getActiveThemeId();
1481  }
1482 
1483  return $this->_sActiveTheme;
1484  }
1485 
1491  public function getShopLogo()
1492  {
1493  if (is_null($this->_sShopLogo)) {
1494 
1495  $sLogoImage = $this->getConfig()->getConfigParam('sShopLogo');
1496  if (empty($sLogoImage)) {
1497  $sLogoImage = "logo.png";
1498  }
1499 
1500  $this->setShopLogo($sLogoImage);
1501  }
1502 
1503  return $this->_sShopLogo;
1504  }
1505 
1511  public function setShopLogo($sLogo)
1512  {
1513  $this->_sShopLogo = $sLogo;
1514  }
1515 
1521  public function getSessionChallengeToken()
1522  {
1523  if (oxRegistry::getSession()->isSessionStarted()) {
1524  $sessionChallengeToken = $this->getSession()->getSessionChallengeToken();
1525  } else {
1526  $sessionChallengeToken = "";
1527  }
1528 
1529  return $sessionChallengeToken;
1530  }
1531 
1540  private function _moduleExists($sModuleId, $aModuleVersions)
1541  {
1542  $blModuleExists = false;
1543 
1544  if (in_array($sModuleId, array_keys($aModuleVersions) )) {
1545  $blModuleExists = true;
1546  }
1547 
1548  return $blModuleExists;
1549  }
1550 
1558  private function _isModuleEnabled($sModuleId)
1559  {
1560  $blModuleIsActive = false;
1561 
1562  $aDisabledModules = $this->getConfig()->getConfigParam('aDisabledModules');
1563  if (!(is_array($aDisabledModules) && in_array($sModuleId, $aDisabledModules))) {
1564  $blModuleIsActive = true;
1565  }
1566  return $blModuleIsActive;
1567  }
1568 
1578  private function _isModuleVersionCorrect($sModuleId, $sVersionFrom, $sVersionTo)
1579  {
1580  $blModuleIsActive = true;
1581 
1582  $aModuleVersions = $this->getConfig()->getConfigParam('aModuleVersions');
1583 
1584  if ($sVersionFrom && !version_compare($aModuleVersions[$sModuleId], $sVersionFrom, '>=')) {
1585  $blModuleIsActive = false;
1586  }
1587 
1588  if ($blModuleIsActive && $sVersionTo && !version_compare($aModuleVersions[$sModuleId], $sVersionTo, '<')) {
1589  $blModuleIsActive = false;
1590  }
1591 
1592  return $blModuleIsActive;
1593  }
1594 
1600  public function getEdition()
1601  {
1602  return $this->getConfig()->getEdition();
1603  }
1604 }