2013-04-28 153 views
2

我試圖從模塊中得到管理URL和admin目錄。如何獲得Prestashop管理員目錄和管理員網址?

你能舉一個例子,從一個模塊的PHP頁面發現管理URL和admin目錄?

<?php 
define('PS_ADMIN_DIR', dirname(__file__) . '/../../testadmin'); 
echo PS_ADMIN_DIR; 

這段代碼給了我

/home/myaccount/public_html/modules/suppliers/../../testadmin 

我期待得到

/home/myaccount/public_html/testadmin 

任何想法?

回答

4

您可以通過使用 「_PS_ROOT_DIR_」 得到它,並把它添加你的管理目錄名稱,比如下面

_PS_ROOT_DIR_."/testadmin" 

這會給您完整路徑到管理員目錄。 _PS_ROOT_DIR_用於獲取安裝它的目錄的PS完整路徑。

你不能直接將管理URL,如PS系統不知道admin目錄,因爲我們可以爲安全起見,在任何時候更改admin目錄名的任何名稱。因此,要構建一個管理URL知道你的管理目錄名「testadmin的賬戶」和控制器名稱「AdminTest」,你可以創建一個網址如下

$link = new Link(); 
_PS_BASE_URL_.__PS_BASE_URI__."testadmin/".$link->getAdminLink('AdminTest', true); 

這會給你一個完整的鏈接,包括完整的域名和子目錄(如安裝在子目錄中)。

的getAdminLink增加了兩個參數,控制器名稱,第二個是布爾真/假。默認情況下,第二個設置爲true,所以需要傳遞它。它用於爲控制器創建令牌。

我希望這會幫助你。

注:以上代碼僅僅是想法,它可能會或可能不會需要一些改變。

+0

,你可以得到管理員文件夾名這樣的$管理=爆炸(DIRECTORY_SEPARATOR,_PS_ADMIN_DIR_); $ admin_folder = array_pop((array_slice($ admin,-1))); – 2016-11-07 16:13:14

-2
<?php 

$path = '/http/fpm/http/data/../../node/'; 

print 'path : '.$path.'<br/>'; 

$isdir = (is_dir($path) === true) ? 'yes':'no'; 

print 'isdir ? ['.$isdir.']<br/>'; 

print 'dirname : '.dirname($path).'<br/>'; 

$nfo = pathinfo($path); 

print 'pathinfo : '.$nfo['dirname'].'<br/>'; 

function trimpath($p){ 
    $p = explode('/',$p); 
     $out = array(); 
     foreach($p as $n => $v) 
      switch($v) 
      { case '.': continue; break; 
       case '..': 
        array_pop($out); 
       break; 
       default : 
        $out[] = $v; 
       break; 
      }; 
     return implode('/',$out); 
} 

print 'trimpath : '.trimpath($path); 

?> 

這將打印

path : /http/fpm/http/data/../../node/ 
isdir ? [yes] 
dirname : /http/fpm/http/data/../.. 
pathinfo : /http/fpm/http/data/../.. 
trimpath : /http/fpm/node/ 
0

管理員DIR存儲內部_PS_ADMIN_DIR_變量。

+0

但是這個變量在任何地方都不可用 – joseantgv 2016-10-28 10:23:34

0

有關管理目錄,你可以把它像

$admin = explode(DIRECTORY_SEPARATOR,_PS_ADMIN_DIR_); 
$admin_folder = array_pop((array_slice($admin, -1))); 

聯繫網址

$admin_url =_PS_BASE_URL_.__PS_BASE_URI__.$admin_folder