X-Cart学習ノート(三)X-Cartフレームワーク2

5953 ワード

目次
X-Cart学習ノート(一)X-Cartの理解とインストール
X-Cart学習ノート(二)X-Cartフレームワーク1
X-Cart学習ノート(三)X-Cartフレームワーク2
X-Cart学習ノート(四)一般的な操作
 
3、X-Cartサイトのディレクトリ構造を理解する
開発を行う前に、まずX-Cartシステムの構造を理解する必要があります.
以下はPhpStormのスクリーンショットです.
 
 
次に、上のスクリーンショットについて説明します.
ルートディレクトリ
お客様がWebサイトにアクセスするときに閲覧するページ(カスタマイズされた静的ページを除く)は、すべてサイトとディレクトリの下にあります.例えば、ページlogin.php、製品ページproduct.phpなどです.
ディレクトリの下には、開発において非常に注意しなければならない重要なファイルもあります.
  • prepare.php 異なるサーバとデータベースのバージョンに適応するために、いくつかの関数を準備し、変更します.
  • init.php ファイルの初期化(必要な関数のロード、メモリ制限の設定、データテーブルフィールドの構築など);
  • config.php サイトのauto code、security keyなどの情報の検証など、プロファイルは非常に重要で、簡単に手動で変更することはできません.そうしないと、サイト全体が開かない状況になります.
  • auth.php  ユーザ認証
  • cleanup.phpは、サイトキャッシュをクリーンアップするために使用されます.リクエスト時には、
  • などのAuth codeを追加する必要があります.
    www.x-cart-plus.com/cleanup.php?auth_code=XXXXXXXXXXXXXXXXXXXXX
  • top.inc.phpは、コア定数と変数を定義します.

  • x-cartが使用する場合のモジュール開発では、多くのモジュールコードが共通であるため、よりディレクトリの下の*.phpは他の場所の*.phpに加算されます.たとえば、x_を使用load()メソッドはinclude/funcフォルダの下のコードファイルをロードします.
    adminフォルダ
    adminユーザーはウェブサイトにアクセスし、アクセスしたページは直接要求されたadminディレクトリの下のファイルであり、adminが検索ページ要求にアクセスしたのはhttp://www.x-cart-plus.com/admin/search.phpである.
    共通ファイル:
  • admin/home.php 開始ファイル
  • admin/auth.php ユーザ認証ファイル(主にsessionを利用してユーザ登録情報をデータベースに保存する)
  • admin/home.tpl メニューを含める 割引 位置 認証等テンプレート(main/authentication.tpl)、
  • admin/main.php ダッシュボードコネクタ (xcart運転状況)
  • admin/configuration.php  概略設定とモジュール構成
  • catalogフォルダ
    このフォルダは、adminがバックグラウンド管理ページHTML catalogで生成したHTMLページを保存するために使用されます.
    filesフォルダ
    サイトにアップロードされたファイルを保存し、管理者がサイト内のファイル(画像など)を選択して設定したときにアクセスするのがフォルダの下のファイルです.
    imagesフォルダ
    このファイルは、製品分類の画像、製品の画像、広告の画像など、サイト内の様々な画像を保存するために使用されます.
    includeフォルダ
    このフォルダの下のファイルは非常に重要で、システムの論理処理とデータ処理層に相当し、論理処理のファイルはincludeフォルダの下に直接保存されます.詳細は次のとおりです.
  • include/classes:データストレージのクラスclass.DataStorage.phpなど、システムで使用されるいくつかの大きなクラスを保存します.
  • include/func:データ処理層のファイル;
  • include/lib:
  • などのライブラリを保存するために使用されます.
    include/lib/smarty --smarty かたわくエンジン
    include/lib/phpmailer --メール送受信用
  • include/payment:支払いに関する処理ファイル;
  • include/templater:smarty継承とプラグイン拡張.
  • includeディレクトリの下のファイル:論理処理の関連ファイル、例えば:
  • include/xcartmailer.php  --smtp送信メールクラス
    moduleフォルダ
    このフォルダは、受注管理モジュールのコントローラコードがディレクトリmodule/Advanced_にあるなど、ロードするモジュールのコントローラコードを保存するために使用されます.Order_管理下.
    パートナーフォルダ
    プロダクトプロバイダは、ページがこのディレクトリに保存されるように設計されています.
    paymentフォルダ
    支払いに関連するコントローラファイル.
    providerフォルダ
    メーカープロバイダ関連の処理書類.
    shippingフォルダ
    運賃に関する処理書類.
    skinフォルダ
    異なる肌を保存するために使用され、フロントでもポストのテンプレートページでもskinフォルダの下に保存されます.詳細については、章を参照してください.
    skin_backupフォルダ
    バックアップ用のスキンファイルを保存します.
    sqlフォルダ
    いくつかの*.sqlファイルを保存するために使用します.
    varフォルダ
    システムログファイル、キャッシュファイル、一時ファイルなどを保存します.掃除できます.
    その他のフォルダ
    Customerフォルダ、mailフォルダ、schemesフォルダ、toolsフォルダ、upgradeフォルダ、これらはあまりはっきりしていないので紹介しません.
    4、skinフォルダ
    skinフォルダはシステムのすべての皮膚を保存し、フロントページでもadminページでもシステムのすべてのテンプレートファイルを含む.
    skinフォルダの下にcommon_がありますファイルのフォルダ、このフォルダはシステムのすべてのベーステンプレートを保存して、他のフォルダはすべて異なる皮膚で、common_filesベースの二次開発は,書き換えともいえる.ここで、common_をfilesフォルダの下のファイルについて詳しく説明します.
  • common_filesディレクトリの下のファイル:ディレクトリの下のテンプレートファイルは基本的にbottom.tpl、dialog.tplなどのすべてのページの共通のテンプレートです.
  • 404:エラーメッセージページを格納するフォルダであることは明らかである.
  • common_files/admin:admin管理ページのテンプレート;
  • common_files/buttons:Webサイトのボタンのテンプレート;
  • common_files/css:Webサイトのすべてのテンプレートスタイルファイル;
  • common_files/customer:フロントページのテンプレート;
  • common_files/help:ヘルプモジュールのテンプレート;
  • common_files/images:テンプレートで使用される画像;
  • common_files/js:テンプレートで使用するjsファイル;
  • common_files/lib:テンプレートで使用されるjsクラスライブラリ、例えばjquery;
  • common_files/mail:システムが各種メールを送信する際、各モジュールが使用するテンプレート;
  • common_files/main:admin管理ページのいくつかのテンプレート;
  • common_files/modules:フロントページのモジュールテンプレート、例えば顧客評価テンプレートCustomer_Reviews
  • common_files/pages:adminで作成された静的ページ;
  • common_files/partner:パートナー関連ページのテンプレート;
  • common_files/payment:支払いモジュールのテンプレート;
  • common_files/provider:メーカーベンダーテンプレート;
  • common_files/fulfilmentとcommon_files/single:home.tplとmenuを含むbox.tpl.

  • 5、バグ持参
    order問題の更新
    Edit ordered productsページで、注文を変更し、updateをクリックします.現在のページのデータは変更されましたが、func.edit.phpの更新関数func_が呼び出されていないため、データはデータベースに保存されていません.update_order、呼び出すと修復できます.
    Taxed priceの問題
    Related productsもBestsellersもtaxed priceを計算していないので、カスタムtaxを適用することはできません.
    次のように変更します.
    func.product.php  1387行、
    if ($current_area == 'C' && empty($skip_tables['product_taxes']){
    
        //……
    
    
    
    }
    
    
    
    To:
    
    
    
     if ($current_area == 'C' && !empty($skip_tables['product_taxes']){
    
    
    
        //……
    
    
    
    }
    
    

      
    Edit order totalの問題
    Edit order totalsページでは、管理者が注文のpayment method,delivery method,discount,coupon,shipping priceなどを修正した後、updateをクリックしてページがリフレッシュされると修正後の状態が表示されますが、これらの修正されたデータはデータライブラリに更新されません.
     
     
    もし間違いがあったら、指摘して、一緒に勉強してください.ありがとうございます.
     
    作者を尊重して、転載して出典を説明してください.