5

尝试在 opencart 中创建自定义 PHP 函数。基本上我需要知道我们是否正在查看购物车或结帐页面。我了解完成此操作的最简单方法是访问路由请求参数。我想创建一个可重用的函数,但是它在站点范围内可用。

这可能吗?它会去哪里?

该函数看起来像这样:

function isCheckout() {

    $route = $this->request->get['route'];

    //is cart?
    if($route == 'checkout/cart')
        return 'cart';

    $parts = explode('/', $route);

    if($parts[0] == 'checkout')
        return 'checkout';

    return false;

}
4

3 回答 3

17

将您的帮助文件放在系统目录内的帮助文件夹中

system/helper/myhelper.php

并将其包含在

system/startup.php文件

像这样

require_once(DIR_SYSTEM . 'helper/myhelper.php');

你就完成了。

于 2013-06-24T10:53:29.870 回答
4

将函数放在一个文件中,例如。myhelper.php 并将其保存到 ../system/library/

然后加

require_once(DIR_SYSTEM . 'library/myhelper.php');

到 ../system/startup.php

于 2012-10-24T18:58:55.263 回答
3

正确且推荐的方法是使用 OpenCart 的内置加载程序:

$this->load->helper('helper_name');

助手位于目录system/helper 中。加载时不需要附加 php 后缀,因为 OpenCart 的加载器引擎会自动附加它。

然后,因为帮助器不是一个类,所以您可以直接使用函数而无需$this。 例如:

$this->load->helper('general');

token();

结果将是一个 32 个字符的标记。token()函数位于system/helper目录中的通用助手中。

这是通用助手的示例:

<?php
function token($length = 32) {
    // Create token to login with
    $string = 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789';

    $token = '';

    for ($i = 0; $i < $length; $i++) {
        $token .= $string[mt_rand(0, strlen($string) - 1)];
    }   

    return $token;
}
于 2018-08-29T12:37:16.627 回答