尝试在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;
}
答案 0 :(得分:14)
将帮助文件放在系统目录
中的帮助文件夹中 system/helper/myhelper.php
并将其包含在
中 system/startup.php
档案
require_once(DIR_SYSTEM . 'helper/myhelper.php');
你已经完成了。
答案 1 :(得分:4)
将该功能放入文件中,例如。 myhelper.php并将其保存到../ system / library /
然后添加
require_once(DIR_SYSTEM . 'library/myhelper.php');
到../ system / startup.php
答案 2 :(得分:2)
正确和推荐的方法是使用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;
}