Go to the documentation of this file.00001 <?php
00005 class Navigation extends oxAdminView
00006 {
00007
00013 protected $_sAllowedHost = "http://admin.oxid-esales.com";
00014
00021 public function render()
00022 {
00023 parent::render();
00024 $myUtilsServer = oxRegistry::get("oxUtilsServer");
00025
00026 $sItem = oxRegistry::getConfig()->getRequestParameter("item");
00027 $sItem = $sItem ? basename($sItem) : false;
00028 if (!$sItem) {
00029 $sItem = "nav_frame.tpl";
00030 $aFavorites = oxRegistry::getConfig()->getRequestParameter("favorites");
00031 if (is_array($aFavorites)) {
00032 $myUtilsServer->setOxCookie('oxidadminfavorites', implode('|', $aFavorites));
00033 }
00034 } else {
00035 $oNavTree = $this->getNavigation();
00036
00037
00038 $this->_aViewData["menustructure"] = $oNavTree->getDomXml()->documentElement->childNodes;
00039
00040
00041 $sVersion = str_replace(array("EE.", "PE."), "", $this->_sShopVersion);
00042 $this->_aViewData["sVersion"] = trim($sVersion);
00043
00044
00045 if (!oxRegistry::getConfig()->getRequestParameter("navReload")) {
00046
00047 if ('home.tpl' == $sItem) {
00048 $this->_aViewData['aMessage'] = $this->_doStartUpChecks();
00049 }
00050 } else {
00051
00052 oxRegistry::getSession()->deleteVariable("navReload");
00053 }
00054
00055
00056 $aFavorites = explode('|', $myUtilsServer->getOxCookie('oxidadminfavorites'));
00057
00058 if (is_array($aFavorites) && count($aFavorites)) {
00059 $this->_aViewData["menufavorites"] = $oNavTree->getListNodes($aFavorites);
00060 $this->_aViewData["aFavorites"] = $aFavorites;
00061 }
00062
00063
00064 $aHistory = explode('|', $myUtilsServer->getOxCookie('oxidadminhistory'));
00065 if (is_array($aHistory) && count($aHistory)) {
00066 $this->_aViewData["menuhistory"] = $oNavTree->getListNodes($aHistory);
00067 }
00068
00069
00070 $this->_aViewData["blOpenHistory"] = oxRegistry::getConfig()->getRequestParameter('openHistory');
00071 }
00072
00073 $sWhere = '';
00074 $blisMallAdmin = oxRegistry::getSession()->getVariable('malladmin');
00076 $oShoplist = oxNew('oxShopList');
00077 if (!$blisMallAdmin) {
00078
00079 $iShopId = oxRegistry::getSession()->getVariable("actshop");
00081 $oShop = oxNew('oxShop');
00082 $oShop->load($iShopId);
00083 $oShoplist->add($oShop);
00084 } else {
00085 $oShoplist->getIdTitleList();
00086 }
00087
00088 $this->_aViewData['shoplist'] = $oShoplist;
00089 return $sItem;
00090 }
00091
00095 public function chshp()
00096 {
00097 parent::chshp();
00098
00099
00100 $this->_aViewData['loadbasefrm'] = true;
00101 $sListView = oxRegistry::getConfig()->getRequestParameter('listview');
00102 $sEditView = oxRegistry::getConfig()->getRequestParameter('editview');
00103 $iActEdit = oxRegistry::getConfig()->getRequestParameter('actedit');
00104
00105
00106 $this->_aViewData['listview'] = $sListView;
00107 $this->_aViewData['editview'] = $sEditView;
00108 $this->_aViewData['actedit'] = $iActEdit;
00109 }
00110
00114 public function logout()
00115 {
00116 $mySession = $this->getSession();
00117 $myConfig = $this->getConfig();
00118
00119 $oUser = oxNew("oxuser");
00120 $oUser->logout();
00121
00122
00123 $mySession->destroy();
00124
00125
00126 if ($myConfig->getConfigParam('blAdodbSessionHandler')) {
00127 $oDb = oxDb::getDb();
00128 $oDb->execute("delete from oxsessions where SessionID = " . $oDb->quote($mySession->getId()));
00129 }
00130
00131
00132 if ($myConfig->getConfigParam('blClearCacheOnLogout')) {
00133 $this->resetContentCache(true);
00134 }
00135
00136 oxRegistry::getUtils()->redirect('index.php', true, 302);
00137 }
00138
00142 public function exturl()
00143 {
00144 $myUtils = oxRegistry::getUtils();
00145 if ($sUrl = oxRegistry::getConfig()->getRequestParameter("url")) {
00146
00147
00148 $myConfig = $this->getConfig();
00149 if ($myConfig->getConfigParam('blLoadDynContents') && strpos($sUrl, $this->_sAllowedHost) === 0) {
00150
00151 $sPath = $myConfig->getConfigParam('sCompileDir') . "/" . md5($sUrl) . '.html';
00152 if ($myUtils->getRemoteCachePath($sUrl, $sPath)) {
00153
00154 $oStr = getStr();
00155 $sVersion = $myConfig->getVersion();
00156 $sEdition = $myConfig->getFullEdition();
00157 $sCurYear = date("Y");
00158
00159
00160 $sOutput = file_get_contents($sPath);
00161
00162
00163 $sOutput = $oStr->preg_replace("/<\/head>/i", "<base href=\"" . dirname($sUrl) . '/' . "\"></head>\n <!-- OXID eShop {$sEdition}, Version {$sVersion}, Shopping Cart System (c) OXID eSales AG 2003 - {$sCurYear} - http://www.oxid-esales.com -->", $sOutput);
00164
00165
00166 $myUtils->showMessageAndExit($oStr->preg_replace("/href=\"#\"/i", 'href="javascript::void();"', $sOutput));
00167 }
00168 } else {
00169
00170 $myUtils->redirect($sUrl, true, 302);
00171 }
00172 }
00173
00174 $myUtils->showMessageAndExit("");
00175 }
00176
00183 protected function _doStartUpChecks()
00184 {
00185 $aMessage = array();
00186
00187
00188 $oSysReq = new oxSysRequirements();
00189 if (!$oSysReq->getSysReqStatus()) {
00190 $aMessage['warning'] = oxRegistry::getLang()->translateString('NAVIGATION_SYSREQ_MESSAGE');
00191 $aMessage['warning'] .= '<a href="?cl=sysreq&stoken=' . $this->getSession()->getSessionChallengeToken() . '" target="basefrm">';
00192 $aMessage['warning'] .= oxRegistry::getLang()->translateString('NAVIGATION_SYSREQ_MESSAGE2') . '</a>';
00193 }
00194
00195
00196 if ($this->getConfig()->getConfigParam('blCheckForUpdates')) {
00197 if ($sVersionNotice = $this->_checkVersion()) {
00198 $aMessage['message'] .= $sVersionNotice;
00199 }
00200 }
00201
00202
00203
00204 if (file_exists($this->getConfig()->getConfigParam('sShopDir') . '/setup/index.php')) {
00205 $aMessage['warning'] .= ((!empty($aMessage['warning'])) ? "<br>" : '') . oxRegistry::getLang()->translateString('SETUP_DIRNOTDELETED_WARNING');
00206 }
00207
00208
00209 $sUpdateDir = $this->getConfig()->getConfigParam('sShopDir') . '/updateApp/';
00210 if (file_exists($sUpdateDir) && !(count(glob("$sUpdateDir/*")) === 0)) {
00211 $aMessage['warning'] .= ((!empty($aMessage['warning'])) ? "<br>" : '') . oxRegistry::getLang()->translateString('UPDATEAPP_DIRNOTDELETED_WARNING');
00212 }
00213
00214
00215 $sConfPath = $this->getConfig()->getConfigParam('sShopDir') . "/config.inc.php";
00216 if (!is_readable($sConfPath) || is_writable($sConfPath)) {
00217 $aMessage['warning'] .= ((!empty($aMessage['warning'])) ? "<br>" : '') . oxRegistry::getLang()->translateString('SETUP_CONFIGPERMISSIONS_WARNING');
00218 }
00219
00220 return $aMessage;
00221 }
00222
00228 protected function _checkVersion()
00229 {
00230 $sVersion = 'CE';
00231
00232 $sQuery = 'http://admin.oxid-esales.com/' . $sVersion . '/onlinecheck.php?getlatestversion';
00233 if ($sVersion = oxRegistry::get("oxUtilsFile")->readRemoteFileAsString($sQuery)) {
00234
00235 if (version_compare($this->getConfig()->getVersion(), $sVersion) == '-1') {
00236 return sprintf(oxRegistry::getLang()->translateString('NAVIGATION_NEWVERSIONAVAILABLE'), $sVersion);
00237 }
00238 }
00239 }
00240 }