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にあります。OpenCartのローダーエンジンが自動的に追加するため、ロード時にphpサフィックスを追加する必要はありません。

そして、ヘルパーはクラスではないため、$thisなしで関数を直接使用します。 例えば:

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

token();

そして、結果は32文字のトークンになります。token()関数は、system/helperディレクトリのgeneralhelperにあります。

これは、一般的なヘルパーの例です。

<?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 に答える