Prestashop 1.6 - 如何动态获取管理目录名称?

时间:2016-01-28 10:17:01

标签: php plugins module prestashop prestashop-1.6

我希望将我的模块放在Prestashop市场,并将其标准化,每个人都可以使用它。此插件需要动态了解管理目录名称以执行其服务。

我在互联网上搜索了很多次,但我找不到解决这个问题的方法。

1 个答案:

答案 0 :(得分:3)

您可以使用_PS_ADMIN_DIR_中设置的[your_admin_dir]/index.php

if (!defined('_PS_ADMIN_DIR_')) {
    define('_PS_ADMIN_DIR_', getcwd());
}

此常量仅在您处于管理上下文时设置。您的FrontOffice不了解此目录,不应出于明显的安全原因。

课程getAdminLink中还有一个Link方法:

/**
 * Use controller name to create a link
 *
 * @param string $controller
 * @param bool $with_token include or not the token in the url
 * @return string url
 */
public function getAdminLink($controller, $with_token = true)
{
    $id_lang = Context::getContext()->language->id;

    $params = $with_token ? array('token' => Tools::getAdminTokenLite($controller)) : array();
    return Dispatcher::getInstance()->createUrl($controller, $id_lang, $params, false);
}

示例:

// Here we create a link to the dashboard without token
$this->context->link->getAdminLink(Tab::getClassNameById(1), false)