検索
ホームページバックエンド開発PHPチュートリアルOxid Eshopの無限のスクロールリストを作成 - 基本

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.
i.e:sitepoint_infinitescroll


ベンダー名は、開発者名またはグループ名のいずれかに置き換えることができます。それはあなた次第です。

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></span>
    値設定は、新しいモジュールのすべての構成オプションを登録する場所です。グループには常にモジュールのIDと同じ値があります。
  • 値:この新しい設定は、ビューのタイプのリストを管理するのに役立ちます。このチュートリアルの範囲では、デフォルト値を
  • として設定し、最後まで使用し続けます。 初めてモジュールをアクティブにすると、この設定は2つのテーブル

    oxconfig
  • and
  • oxconfigdisplay

    に挿入されます。酸化は、値モジュールを自動的に挿入します:AHO_INFINITESCROLLは列 oxcfgmodule (表Oxconfigdisplay)を値モジュールで挿入します:aho_infinitecroll。自動的に発生するため、これは非常に便利です。 このオンライン拡張メタデータのドキュメントに従って、他の可能な引数について詳しく読むことができます。 次に、バックエンドの翻訳を調べます。

    バックエンド翻訳の追加
最後のセクションでは、新しいモジュールの設定を追加しました。さあ、翻訳を操作する時が来ました。

ファイルを開いてください

構成オプションの翻訳を追加する構文shop_module _ setting_column_name。


構成オプションのヘルプテキストを追加するsyntax help_shop_module _ setting_colum_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/OUT/ADMIN/DE/AHO_INFINITESCROLL_LANG.PHPについても同じことをしてください。 Value Deustchを使用して変数$ slangnameを割り当て、言語に特化した人にすべてのテキストをドイツ語に翻訳するか、英語とは異なる限り、違いを確認できます。

新しいコントローラーの操作

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です

    ヒント
  • を拡張するために必要なクラスを見つけるためのヒント

    通常、どのクラスを拡張する必要があるかを知る必要があります。現在のビューでどのクラスが実行されているかを簡単に確認する方法があります。 file /application/views/ {theme_name }/tpl/layout/page.tplを参照し、ファイルの上部に次の行を挿入します。

上記の行は、現在のビューで使用されるコアクラスを印刷するのに役立ちます。 AJAXリクエストを実行するコアクラスを検出したい場合は、Chromedevツールを使用してもう少し努力する必要があります。

結論
  • これまでのところ、新しいモジュール拡張機能を開発するために、ステップバイステップのバックエンド実装を行ってきました。現時点では、モジュールをアクティブにして、管理ダッシュボードに何があるかを確認することができます。問題が発生した場合は、ここにコメントを残してください。私はあなたを助けるために最善を尽くします。
次の部分は、テンプレートをカスタマイズし、無限のスクロール用のワークフローを処理するためにJavaScriptを追加することで構成される、本質的なフロントエンド実装の詳細に説明します。
<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></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 サイトの他の関連記事を参照してください。

声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
PHPコードの最適化:メモリの使用と実行時間の短縮PHPコードの最適化:メモリの使用と実行時間の短縮May 10, 2025 am 12:04 AM

TooptimizePHPcodeforreducedmemoryusageandexecutiontime,followthesesteps:1)Usereferencesinsteadofcopyinglargedatastructurestoreducememoryconsumption.2)LeveragePHP'sbuilt-infunctionslikearray_mapforfasterexecution.3)Implementcachingmechanisms,suchasAPC

PHPメール:ステップバイステップ送信ガイドPHPメール:ステップバイステップ送信ガイドMay 09, 2025 am 12:14 AM

PhpisusedForsedingEmailsDueToitsIttegration withServerMailServicesAndExternalSmtpproviders、自動化とMarketingCampaign.1)SetupYourphpenvironment withebeBironment witheBiserverandphp、保証

PHP経由で電子メールを送信する方法:例とコードPHP経由で電子メールを送信する方法:例とコードMay 09, 2025 am 12:13 AM

メールを送信する最良の方法は、PHPMailerライブラリを使用することです。 1)Mail()関数を使用することはシンプルですが信頼できないため、電子メールがスパムを入力するか、配信できない場合があります。 2)PHPMailerは、より良い制御と信頼性を提供し、HTMLメール、添付ファイル、SMTP認証をサポートします。 3)SMTP設定が正しく構成されていることを確認し、暗号化(StartTLSやSSL/TLSなど)を使用してセキュリティを強化します。 4)大量の電子メールについては、メールキューシステムを使用してパフォーマンスを最適化することを検討してください。

高度なPHPメール:カスタムヘッダーと機能高度なPHPメール:カスタムヘッダーと機能May 09, 2025 am 12:13 AM

customedersandaddadvancedfeaturesinphpemailentalitylivainability.1)customederadddetadata fortrackingandcategorization.2)htmLemailsallowStingtintintintintintinteractivity.3)添付物質の添付物質の添付

php&smtpでメールを送信するためのガイドphp&smtpでメールを送信するためのガイドMay 09, 2025 am 12:06 AM

PHPとSMTPを使用してメールを送信することは、PHPMailerライブラリを介して実現できます。 1)PHPMailerをインストールして構成する、2)SMTPサーバーの詳細を設定する、3)電子メールコンテンツを定義し、4)メールを送信してエラーを処理します。この方法を使用して、電子メールの信頼性とセキュリティを確保します。

PHPを使用して電子メールを送信する最良の方法は何ですか?PHPを使用して電子メールを送信する最良の方法は何ですか?May 08, 2025 am 12:21 AM

BestappRoachforseminginphpisusingthephpmailerlibrarydueToitsReliability、featurrichness、andeaseofuse.phpmailerSupportssmtpは、detairederorhandlingを提供します

PHPでの依存関係注射のベストプラクティスPHPでの依存関係注射のベストプラクティスMay 08, 2025 am 12:21 AM

依存関係注射(DI)を使用する理由は、コードのゆるい結合、テスト可能性、および保守性を促進するためです。 1)コンストラクターを使用して依存関係を注入します。2)サービスロケーターの使用を避け、3)依存関係噴射コンテナを使用して依存関係を管理する、4)依存関係を注入することでテスト可能性を向上させる、5)注入依存性を回避、6)パフォーマンスに対するDIの影響を考慮します。

PHPパフォーマンスのチューニングのヒントとコツPHPパフォーマンスのチューニングのヒントとコツMay 08, 2025 am 12:20 AM

phpperformancetuningisucial cuseenhancess andandandadsand。

See all articles

ホットAIツール

Undresser.AI Undress

Undresser.AI Undress

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

AI Clothes Remover

AI Clothes Remover

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

Undress AI Tool

Undress AI Tool

脱衣画像を無料で

Clothoff.io

Clothoff.io

AI衣類リムーバー

Video Face Swap

Video Face Swap

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

ホットツール

SAP NetWeaver Server Adapter for Eclipse

SAP NetWeaver Server Adapter for Eclipse

Eclipse を SAP NetWeaver アプリケーション サーバーと統合します。

DVWA

DVWA

Damn Vulnerable Web App (DVWA) は、非常に脆弱な PHP/MySQL Web アプリケーションです。その主な目的は、セキュリティ専門家が法的環境でスキルとツールをテストするのに役立ち、Web 開発者が Web アプリケーションを保護するプロセスをより深く理解できるようにし、教師/生徒が教室環境で Web アプリケーションを教え/学習できるようにすることです。安全。 DVWA の目標は、シンプルでわかりやすいインターフェイスを通じて、さまざまな難易度で最も一般的な Web 脆弱性のいくつかを実践することです。このソフトウェアは、

PhpStorm Mac バージョン

PhpStorm Mac バージョン

最新(2018.2.1)のプロフェッショナル向けPHP統合開発ツール

SublimeText3 中国語版

SublimeText3 中国語版

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

メモ帳++7.3.1

メモ帳++7.3.1

使いやすく無料のコードエディター