如何获得Prestashop admin dir&;管理员url?
我试图从一个模块中获取管理员url和管理员目录 您能给出一个从模块php页面查找管理员url和管理员目录的示例吗如何获得Prestashop admin dir&;管理员url?,prestashop,Prestashop,我试图从一个模块中获取管理员url和管理员目录 您能给出一个从模块php页面查找管理员url和管理员目录的示例吗 <?php define('PS_ADMIN_DIR', dirname(__file__) . '/../../testadmin'); echo PS_ADMIN_DIR; 我本想得到 /home/myaccount/public_html/testadmin 有什么想法吗 <?php $path = '/http/fpm/http/data/../../n
<?php
define('PS_ADMIN_DIR', dirname(__file__) . '/../../testadmin');
echo PS_ADMIN_DIR;
我本想得到
/home/myaccount/public_html/testadmin
有什么想法吗
<?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);
?>
您可以通过使用“\u PS\u ROOT\u DIR\u”获得它,并将您的admin DIR名称附加在它后面,如下所示
_PS_ROOT_DIR_."/testadmin"
这将为您提供管理目录的完整路径。_PS_ROOT_DIR_u用于获取安装它的目录的PS完整路径
您无法直接获取管理员url,因为PS系统不知道管理员目录,因为出于安全原因,我们可以随时将管理员目录名称更改为任何名称。因此,要构造一个知道管理员目录名“testadmin”和控制器名“AdminTest”的管理员url,您可以创建如下url
$link = new Link();
_PS_BASE_URL_.__PS_BASE_URI__."testadmin/".$link->getAdminLink('AdminTest', true);
这将为您提供完整的链接,包括完整的域和子目录(如果安装在子目录中)
getAdminLink获得两个参数,控制器名称和第二个参数为布尔值true/false。默认情况下,第二个值设置为true,因此需要传递它。它用于为控制器创建令牌
我希望这对你有帮助
注意:上面的代码只是为了构思,可能需要也可能不需要做一些更改。您可以通过使用“\u PS\u ROOT\u DIR\u”来获得它,并将您的管理员目录名称附加在后面,如下所示
_PS_ROOT_DIR_."/testadmin"
这将为您提供管理目录的完整路径。_PS_ROOT_DIR_u用于获取安装它的目录的PS完整路径
您无法直接获取管理员url,因为PS系统不知道管理员目录,因为出于安全原因,我们可以随时将管理员目录名称更改为任何名称。因此,要构造一个知道管理员目录名“testadmin”和控制器名“AdminTest”的管理员url,您可以创建如下url
$link = new Link();
_PS_BASE_URL_.__PS_BASE_URI__."testadmin/".$link->getAdminLink('AdminTest', true);
这将为您提供完整的链接,包括完整的域和子目录(如果安装在子目录中)
getAdminLink获得两个参数,控制器名称和第二个参数为布尔值true/false。默认情况下,第二个值设置为true,因此需要传递它。它用于为控制器创建令牌
我希望这对你有帮助
注意:上面的代码只是为了构思,可能需要也可能不需要一些更改。Admin dir存储在
\u PS\u Admin\u dir\u
变量中 管理目录存储在变量中 对于admin dir,您可以这样获得它
$admin = explode(DIRECTORY_SEPARATOR,_PS_ADMIN_DIR_);
$admin_folder = array_pop((array_slice($admin, -1)));
管理员url
$admin_url =_PS_BASE_URL_.__PS_BASE_URI__.$admin_folder
对于admin dir,您可以这样获得它
$admin = explode(DIRECTORY_SEPARATOR,_PS_ADMIN_DIR_);
$admin_folder = array_pop((array_slice($admin, -1)));
管理员url
$admin_url =_PS_BASE_URL_.__PS_BASE_URI__.$admin_folder
PS\u BASE\u URI.basename(\u PS\u ADMIN\u DIR)PS\u BASE\u URI.basename(\u PS\u ADMIN\u DIR)但此变量不适用于任何地方,但此变量不适用于任何可以获得管理员文件夹名称的地方,如$ADMIN=explode(目录分隔符,PS\u ADMIN\u DIR)$admin_folder=array_pop((array_slice($admin,-1));您可以获得如下的管理员文件夹名$admin=explode(目录分隔符,PS\u admin\u DIR)$admin_folder=array_pop((array_slice($admin,-1));