Oxid Eshopの無限のスクロールリストを作成 - 基本
キーテイクアウト
- 酸化eShop、または酸化エサールは、高度にカスタマイズ可能でスケーラブルなeコマースプラットフォームです。このチュートリアルは、記事リストの無限のスクロールを実装し、従来のページネーションを置き換える新しい酸化モジュール拡張機能を作成するための段階的なガイドを提供します。 チュートリアルの最初の部分は、新しいモジュール拡張機能の適切なフォルダー構造の作成をカバーしています。metadata.phpを使用して必要なコントローラーを拡張し、既存のテンプレートを新しいテンプレートに置き換え、新しいモジュール構成オプションを追加します。 。また、バックエンド言語ファイルを操作して表示名を作成し、モジュールの設定のテキストを支援する方法と、新しいモジュールコントローラーの操作方法についても説明しています。
- チュートリアルの2番目の部分は、モジュールURLを適切に取得する方法、酸化テンプレートエンジンの操作、新しいテンプレートのコンテンツの追加、JavaScriptの追加のインフィナイトスクロールの実行を処理するなど、新しいテンプレートの操作に焦点を当てます。記事リストで、データベースビューを更新し、モジュールをアクティブにします。 チュートリアルは、酸化eShopでの実務経験を想定しており、新しいモジュール拡張機能を開発するためのバックエンドの実装に焦点を当てています。次の部分は、テンプレートのカスタマイズと、無限のスクロール用のワークフローを処理するためにJavaScriptを追加することで構成される必須のフロントエンド実装の詳細に説明します。
- 酸化Eshop は、公式には酸化エサールとして知られていますが、オンラインビジネスのすべてのセグメントに最適化された強力でスケーラブルなeコマース標準プラットフォームです。開発者は、「9対5」タスクのほとんどを酸化して費やしているため、このeコマースシステムは非常に簡単にカスタマイズして拡張できることがわかりました。
酸化を初めて使用している場合、または独自のオンラインビジネスに向けてシンプルだが効果的なプラットフォームを探している場合は、開始するための標準的な実装を考え出したOxid EsalesのMatthew Setterのシリーズを読むことをお勧めします。酸化システムを使用しています。 この2部構成のチュートリアルでは、従来のページネーションではなく記事リストに無限のスクロールを実装する新しい酸化モジュール拡張機能を作成します。この記事では、後で酸化開発に遭遇した場合に作業プロセスをスピードアップするのに役立つ可能性のある個人的な経験を共有しようとします。
ここにあなたが達成するものがあります。
ソースコード全体がシリーズの最後に利用可能になります。 チュートリアルでは、次の領域について説明します パート1:
- 新しいモジュール拡張機能のための適切なフォルダー構造を作成します。
- metadata.phpを使用して:
- 必要なコントローラーを拡張します 既存のテンプレートを新しいテンプレートに置き換えます
- 新しいモジュール構成オプションを追加します バックエンド言語ファイルを使用して表示名を作成し、モジュールの設定のテキストをヘルプする方法
- 新しいモジュールコントローラーで作業します。
- パート2:
- 新しいテンプレートの操作:
モジュールURLを適切に取得する方法
酸化テンプレートエンジンの操作にまとめます。-
新しいテンプレートのコンテンツの追加
- javaScriptを追加して、記事リストで無限のスクロールの実行を処理します。
データベースビューを更新し、モジュールをアクティブ化します- 注:酸化eShopを使用した実務経験
- があると仮定します(そうでない場合は、上記のマシューの記事を参照)。したがって、酸化の基本概念についてはあまり説明しません。
酸化モジュールフォルダー構造 - 最初にしなければならない最も重要なタスクは、標準のフォルダー構造を作成することです。
- {your_web_root}/oxid/modules/
AHO_INFINITESCROLLという新しいフォルダーを作成し、その後のフォルダー/ファイルが続きます。新しいモジュールに名前を付けるベストプラクティスは、ベンダー/開発者/グループとモジュールの機能の名前を組み合わせることです。チームコラボレーションのための新しいモジュールのベンダーと機能を即座に明らかにするのに役立ちます。注:
したがって、式は次のとおりです
ベンダー名
- アンダースコア
- 機能
aho_infinitescroll/ | |--- controllers/ | |-- aho_infinite_alist.php # A new controller that extends alist.php | |--- out/ | |--admin/ | |--en/ | |-- aho_infinitescroll_lang.php # Back-end English text. | |--de/ | |-- aho_infinitescroll_lang.php # Back-end Deustch text. | | |--css/ | |--> infinitescroll.css # Style for infinite scrolling elements. | | |--img/ | |--> ajax-loader.gif # image indicates the loading status. | |--js/ | |--- translations/ | |--de/ | |--> aho_infinitescroll_lang.php # Front-end Deustch text. | |--en/ | |--> aho_infinitescroll_lang.php # Front-end English text. | |--- views/ | |-- page/ | |-- list/ | |--> aho_infinitescroll_list.tpl # new template file. | |--- metadata.php # Define extension name, classes and other infos. |--- picture.jpg # A thumbnail for the module's functionality.
ベンダー名は、開発者名またはグループ名のいずれかに置き換えることができます。それはあなた次第です。
metadata.phpの作業 metadata.phpは、あらゆるモジュール開発に不可欠です。このファイルは、モジュール、拡張するクラス、過大評価されるブロック、交換するテンプレート、フロントエンドとバックエンドの両方の側面の設定などの基本的な詳細を提供します。 ファイルMetadata.phpを開き、次のコード行を追加してください。
新しいモジュールの基本情報を挿入したばかりで、すべての要素は用語によって自己記述的です。IDとタイトルは必須の変数であることに注意してください。特に、IDの値はモジュールのフォルダー名と同じでなければなりません。
サムネイルは、モジュールを視覚的に説明するオプションの要素です。私は通常、絵が千の言葉の価値があると信じているので、見栄えの良いサムネイルを準備します。時には、お気に入りの自己開発モジュールの一部を酸化市場を介して販売することを意図しています。
次に、メールの直後にさらに要素を定義します。
aho_infinitescroll/ | |--- controllers/ | |-- aho_infinite_alist.php # A new controller that extends alist.php | |--- out/ | |--admin/ | |--en/ | |-- aho_infinitescroll_lang.php # Back-end English text. | |--de/ | |-- aho_infinitescroll_lang.php # Back-end Deustch text. | | |--css/ | |--> infinitescroll.css # Style for infinite scrolling elements. | | |--img/ | |--> ajax-loader.gif # image indicates the loading status. | |--js/ | |--- translations/ | |--de/ | |--> aho_infinitescroll_lang.php # Front-end Deustch text. | |--en/ | |--> aho_infinitescroll_lang.php # Front-end English text. | |--- views/ | |-- page/ | |-- list/ | |--> aho_infinitescroll_list.tpl # new template file. | |--- metadata.php # Define extension name, classes and other infos. |--- picture.jpg # A thumbnail for the module's functionality.
値拡張は、新しいモジュールが拡張される特定のコア/コントローラークラスを指定します。この場合、それは/oxid/application/ControllersにあるAlist.phpになります/。
値テンプレートは配列であり、新しいモジュールのすべての登録テンプレートを保存します。簡単なチームコラボレーションのために、交換するテンプレートの同じフォルダー構造を作成することをお勧めします。テンプレートの項目と値の両方がファイル名拡張子を含める必要があることに注意してください-
新しいテンプレートに名前を付ける適切な方法は、「
- モジュール名
- _古いテンプレート名」です i.e:aho_infinitescroll_list.tpl
現時点で新しいテンプレートファイルを空にしたままにし、ファイルMetadata.phpを続行します。アイテムのテンプレートの直後に設定と呼ばれる配列を挿入してください:
<span><span><?php </span></span><span> </span><span><span>$sMetadataVersion = '1.0'; # Define version of this file </span></span><span> </span><span><span>// An array to store modules' details </span></span><span><span>$aModule = array </span></span><span><span>( </span></span><span> <span>'id' => 'aho_infinitescroll', </span></span><span> <span>'title' => '[AHO] Infinite Scrolling List', </span></span><span> <span>'description' => 'Infinite Scrolling for article list', </span></span><span> <span>'thumbnail' => 'picture.jpg', </span></span><span> <span>'version' => '1.0.0', </span></span><span> <span>'author' => 'Tuan Anh Ho', </span></span><span> <span>'url' => '', </span></span><span> <span>'email' => 'anhhothai@gmail.com' </span></span><span><span>);</span></span>
- 値設定は、新しいモジュールのすべての構成オプションを登録する場所です。グループには常にモジュールのIDと同じ値があります。
- 行
として設定し、最後まで使用し続けます。 初めてモジュールをアクティブにすると、この設定は2つのテーブル
oxconfig and - oxconfigdisplay
に挿入されます。酸化は、値モジュールを自動的に挿入します:AHO_INFINITESCROLLは列 oxcfgmodule (表Oxconfigdisplay)を値モジュールで挿入します:aho_infinitecroll。自動的に発生するため、これは非常に便利です。 このオンライン拡張メタデータのドキュメントに従って、他の可能な引数について詳しく読むことができます。 次に、バックエンドの翻訳を調べます。
バックエンド翻訳の追加
ファイルを開いてください
構成オプションの翻訳を追加する構文shop_module _ setting_column_name。
<span>'extend' => array( </span> <span>'alist' => 'aho_infinitescroll/controllers/aho_infinitescroll_alist' </span> <span>), </span> <span>'templates' => array( </span> <span>'aho_infinitescroll_list.tpl' </span> <span>=> 'aho_infinitescroll/views/page/list/aho_infinitescroll_list.tpl' </span> <span>)</span>
-
上記のコード行は、下の図のように出力されます。後で、モジュールをアクティブにしたら、テキストボックスに行を入力してください:
新しいコントローラーの操作
AHO_INFINITESCROLL/CONTROLLERS/AHO_INFINITE_ALIST.PHPを開き、次の行を追加してください。
aho_infinitescroll/ | |--- controllers/ | |-- aho_infinite_alist.php # A new controller that extends alist.php | |--- out/ | |--admin/ | |--en/ | |-- aho_infinitescroll_lang.php # Back-end English text. | |--de/ | |-- aho_infinitescroll_lang.php # Back-end Deustch text. | | |--css/ | |--> infinitescroll.css # Style for infinite scrolling elements. | | |--img/ | |--> ajax-loader.gif # image indicates the loading status. | |--js/ | |--- translations/ | |--de/ | |--> aho_infinitescroll_lang.php # Front-end Deustch text. | |--en/ | |--> aho_infinitescroll_lang.php # Front-end English text. | |--- views/ | |-- page/ | |-- list/ | |--> aho_infinitescroll_list.tpl # new template file. | |--- metadata.php # Define extension name, classes and other infos. |--- picture.jpg # A thumbnail for the module's functionality.
- $ _STHISTEMPLATEの値をAHO_INFINITESCROLL.TPLに変更します。これはMetadata.phpで定義しています。ここでテンプレート名を指定するだけでいいことに注意してください。したがって、テンプレート名は一意でなければなりません。システムが正しいテンプレートをすばやく見つけるのに役立ちます。
- 関数レンダリングは、新しいテンプレート名を返すだけではありません。 関数getViewTypelistは、Metadata.phpで定義されているデータ列sinfinitescrollListtypeのデータを返します。テンプレートAHO_INFINITESCROLL.TPLは、この値を使用して、記事リストにどのビュータイプが適用されるかを決定します。
- 拡張クラスの名前はAHO_INFINITESCROLL_ALIST_PARENTであることに注意してください。式はモジュールコントローラー名_ parentです
- を拡張するために必要なクラスを見つけるためのヒント
上記の行は、現在のビューで使用されるコアクラスを印刷するのに役立ちます。 AJAXリクエストを実行するコアクラスを検出したい場合は、Chromedevツールを使用してもう少し努力する必要があります。
結論- これまでのところ、新しいモジュール拡張機能を開発するために、ステップバイステップのバックエンド実装を行ってきました。現時点では、モジュールをアクティブにして、管理ダッシュボードに何があるかを確認することができます。問題が発生した場合は、ここにコメントを残してください。私はあなたを助けるために最善を尽くします。
<span><span><?php </span></span><span> </span><span><span>$sMetadataVersion = '1.0'; # Define version of this file </span></span><span> </span><span><span>// An array to store modules' details </span></span><span><span>$aModule = array </span></span><span><span>( </span></span><span> <span>'id' => 'aho_infinitescroll', </span></span><span> <span>'title' => '[AHO] Infinite Scrolling List', </span></span><span> <span>'description' => 'Infinite Scrolling for article list', </span></span><span> <span>'thumbnail' => 'picture.jpg', </span></span><span> <span>'version' => '1.0.0', </span></span><span> <span>'author' => 'Tuan Anh Ho', </span></span><span> <span>'url' => '', </span></span><span> <span>'email' => 'anhhothai@gmail.com' </span></span><span><span>);</span></span>
酸化eshopで無限のスクロールリストを構築することについてよく尋ねる質問
酸化eShopで無限のスクロールを使用する目的は何ですか?
無限のスクロールは、ブラウザスクロールバーがページの下部にスクロールするのを防ぐWebデザイン手法であり、ページが追加で成長します。代わりにコンテンツ。 Oxid Eshopのコンテキストでは、この手法を使用して、ユーザーがページを下にスクロールするときに製品を継続的に表示し、製品のシームレスなナビゲーションと探索を許可することでユーザーエクスペリエンスを向上させることができます。
Infinite Scrollは、eコマースWebサイトのパフォーマンスをどのように改善しますか? Infinite Scrollは、負荷時間を短縮することにより、eコマースWebサイトのパフォーマンスを大幅に向上させることができます。サイトを遅くすることができるすべての製品を一度にロードする代わりに、Infiniteスクロールは最初に特定の数の製品をロードし、ユーザーがスクロールを続けるにつれてより多くロードされます。これにより、サイトの速度が向上するだけでなく、ユーザーのエンゲージメントと保持が向上します。
PHPを使用して酸化ESHOPに無限のスクロールを実装するにはどうすればよいですか? Ajaxコールとページネーションシステム。 Ajaxリクエストを処理し、製品リストを更新するには、リストコントローラーと製品リストテンプレートの関数を変更する必要があります。詳細な手順とコードスニペットはこの記事に記載されています。
酸化eShopで無限の巻物を使用することに潜在的な欠点はありますか?すべてのタイプのeコマースWebサイトに適しています。たとえば、Webサイトに重要なリンクがあるフッターがある場合、Infinite Scrollはユーザーがフッターに到達することを困難にする可能性があります。また、特定の製品またはページに移動したいユーザーにとって、無限の巻物が混乱する場合があります。 Infinite Scrollは、カスタムコーディングをサポートするさまざまなeコマースプラットフォームに実装できます。ただし、実装プロセスは、プラットフォームのアーキテクチャとコーディング言語によって異なる場合があります。特定のプラットフォームのドキュメントを参照したり、専門の開発者から助けを求めることをお勧めします。
SEOにどのように影響しますか? AJAXを介してロードされたコンテンツを適切にクロールし、インデックスコンテンツ。ただし、これは、ユーザー向けの無限のスクロールバージョンと並んで、検索エンジン用のサイトのページングされたバージョンを実装することで軽減できます。PHPはeコマースWebサイトに推奨されていますか?柔軟性、スケーラビリティ、堅牢性のため、eコマースWebサイトに人気のある選択肢があります。幅広いデータベースをサポートし、酸化eShopを含むさまざまなeコマースプラットフォームと互換性があります。ただし、プログラミング言語の選択は、特定の要件と専門知識に依存する必要があります。
無限の巻物に代わるものは何ですか?ページネーションでは、コンテンツを個別のページに分割しますが、「より多くのロード」ボタンにより、ユーザーはより多くのコンテンツを手動で読み込むことができます。これらのオプションの選択は、あなたのウェブサイトのデザインとユーザーの好みに依存します。酸化eShopの無限の巻物のルックアンドフィールをカスタマイズするにはどうすればよいですか?無限の巻物のルックアンドフィールは、CSSを使用してカスタマイズできます。あなたはあなたのウェブサイトのデザインに一致するように、ロードインジケーター、製品リスト、その他の要素のスタイルを変更できます。 Oxid Eshopの特定のページの無限の巻物を無効にすることを選択できます。これは、リストコントローラーの条件と製品リストテンプレートを変更して、特定のページを除外することで実行できます。
以上がOxid Eshopの無限のスクロールリストを作成 - 基本の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

ホットAIツール

Undresser.AI Undress
リアルなヌード写真を作成する AI 搭載アプリ

AI Clothes Remover
写真から衣服を削除するオンライン AI ツール。

Undress AI Tool
脱衣画像を無料で

Clothoff.io
AI衣類リムーバー

Video Face Swap
完全無料の AI 顔交換ツールを使用して、あらゆるビデオの顔を簡単に交換できます。

人気の記事

ホットツール

メモ帳++7.3.1
使いやすく無料のコードエディター

SublimeText3 中国語版
中国語版、とても使いやすい

ゼンドスタジオ 13.0.1
強力な PHP 統合開発環境

ドリームウィーバー CS6
ビジュアル Web 開発ツール

SublimeText3 Mac版
神レベルのコード編集ソフト(SublimeText3)

ホットトピック











PHPでは、Password_hashとpassword_verify関数を使用して安全なパスワードハッシュを実装する必要があり、MD5またはSHA1を使用しないでください。 1)password_hashセキュリティを強化するために、塩値を含むハッシュを生成します。 2)password_verifyハッシュ値を比較して、パスワードを確認し、セキュリティを確保します。 3)MD5とSHA1は脆弱であり、塩の値が不足しており、最新のパスワードセキュリティには適していません。

PHPは、サーバー側で広く使用されているスクリプト言語で、特にWeb開発に適しています。 1.PHPは、HTMLを埋め込み、HTTP要求と応答を処理し、さまざまなデータベースをサポートできます。 2.PHPは、ダイナミックWebコンテンツ、プロセスフォームデータ、アクセスデータベースなどを生成するために使用され、強力なコミュニティサポートとオープンソースリソースを備えています。 3。PHPは解釈された言語であり、実行プロセスには語彙分析、文法分析、編集、実行が含まれます。 4.PHPは、ユーザー登録システムなどの高度なアプリケーションについてMySQLと組み合わせることができます。 5。PHPをデバッグするときは、error_reporting()やvar_dump()などの関数を使用できます。 6. PHPコードを最適化して、キャッシュメカニズムを使用し、データベースクエリを最適化し、組み込み関数を使用します。 7

PHPとPythonにはそれぞれ独自の利点があり、プロジェクトの要件に従って選択します。 1.PHPは、特にWebサイトの迅速な開発とメンテナンスに適しています。 2。Pythonは、データサイエンス、機械学習、人工知能に適しており、簡潔な構文を備えており、初心者に適しています。

PHPは、電子商取引、コンテンツ管理システム、API開発で広く使用されています。 1)eコマース:ショッピングカート機能と支払い処理に使用。 2)コンテンツ管理システム:動的コンテンツの生成とユーザー管理に使用されます。 3)API開発:RESTFUL API開発とAPIセキュリティに使用されます。パフォーマンスの最適化とベストプラクティスを通じて、PHPアプリケーションの効率と保守性が向上します。

PHPタイプは、コードの品質と読みやすさを向上させるためのプロンプトがあります。 1)スカラータイプのヒント:php7.0であるため、基本データ型は、int、floatなどの関数パラメーターで指定できます。 3)ユニオンタイプのプロンプト:PHP8.0であるため、関数パラメーターまたは戻り値で複数のタイプを指定することができます。 4)Nullable Typeプロンプト:null値を含めることができ、null値を返す可能性のある機能を処理できます。

PHPは依然として動的であり、現代のプログラミングの分野で重要な位置を占めています。 1)PHPのシンプルさと強力なコミュニティサポートにより、Web開発で広く使用されています。 2)その柔軟性と安定性により、Webフォーム、データベース操作、ファイル処理の処理において顕著になります。 3)PHPは、初心者や経験豊富な開発者に適した、常に進化し、最適化しています。

PHPは、特に迅速な開発や動的なコンテンツの処理に適していますが、データサイエンスとエンタープライズレベルのアプリケーションには良くありません。 Pythonと比較して、PHPはWeb開発においてより多くの利点がありますが、データサイエンスの分野ではPythonほど良くありません。 Javaと比較して、PHPはエンタープライズレベルのアプリケーションでより悪化しますが、Web開発により柔軟性があります。 JavaScriptと比較して、PHPはバックエンド開発により簡潔ですが、フロントエンド開発のJavaScriptほど良くありません。

PHPは主に手順プログラミングですが、オブジェクト指向プログラミング(OOP)もサポートしています。 Pythonは、OOP、機能、手続き上のプログラミングなど、さまざまなパラダイムをサポートしています。 PHPはWeb開発に適しており、Pythonはデータ分析や機械学習などのさまざまなアプリケーションに適しています。
