キーテイクアウト
- 酸化eShop、または酸化エサールは、高度にカスタマイズ可能でスケーラブルなeコマースプラットフォームです。このチュートリアルは、記事リストの無限のスクロールを?qū)g裝し、従來のページネーションを置き換える新しい酸化モジュール拡張機能を作成するための段階的なガイドを提供します。 チュートリアルの最初の部分は、新しいモジュール拡張機能の適切なフォルダー構(gòu)造の作成をカバーしています。metadata.phpを使用して必要なコントローラーを拡張し、既存のテンプレートを新しいテンプレートに置き換え、新しいモジュール構(gòu)成オプションを追加します。 。また、バックエンド言語ファイルを操作して表示名を作成し、モジュールの設(shè)定のテキストを支援する方法と、新しいモジュールコントローラーの操作方法についても説明しています。
- チュートリアルの2番目の部分は、モジュールURLを適切に取得する方法、酸化テンプレートエンジンの操作、新しいテンプレートのコンテンツの追加、JavaScriptの追加のインフィナイトスクロールの実行を処理するなど、新しいテンプレートの操作に焦點を當てます。記事リストで、データベースビューを更新し、モジュールをアクティブにします。 チュートリアルは、酸化eShopでの実務(wù)経験を想定しており、新しいモジュール拡張機能を開発するためのバックエンドの実裝に焦點を當てています。次の部分は、テンプレートのカスタマイズと、無限のスクロール用のワークフローを処理するためにJavaScriptを追加することで構(gòu)成される必須のフロントエンド実裝の詳細に説明します。
- 酸化Eshop は、公式には酸化エサールとして知られていますが、オンラインビジネスのすべてのセグメントに最適化された強力でスケーラブルなeコマース標準プラットフォームです。開発者は、「9対5」タスクのほとんどを酸化して費やしているため、このeコマースシステムは非常に簡単にカスタマイズして拡張できることがわかりました。
酸化を初めて使用している場合、または獨自のオンラインビジネスに向けてシンプルだが効果的なプラットフォームを探している場合は、開始するための標準的な実裝を考え出したOxid EsalesのMatthew Setterのシリーズを読むことをお勧めします。酸化システムを使用しています。 この2部構(gòu)成のチュートリアルでは、従來のページネーションではなく記事リストに無限のスクロールを?qū)g裝する新しい酸化モジュール拡張機能を作成します。この記事では、後で酸化開発に遭遇した場合に作業(yè)プロセスをスピードアップするのに役立つ可能性のある個人的な経験を共有しようとします。
ここにあなたが達成するものがあります。
ソースコード全體がシリーズの最後に利用可能になります。 チュートリアルでは、次の領(lǐng)域について説明します パート1:
- 新しいモジュール拡張機能のための適切なフォルダー構(gòu)造を作成します。
- metadata.phpを使用して:
- 必要なコントローラーを拡張します 既存のテンプレートを新しいテンプレートに置き換えます
- 新しいモジュール構(gòu)成オプションを追加します バックエンド言語ファイルを使用して表示名を作成し、モジュールの設(shè)定のテキストをヘルプする方法
- 新しいモジュールコントローラーで作業(yè)します。
- パート2:
- 新しいテンプレートの操作:
モジュールURLを適切に取得する方法
酸化テンプレートエンジンの操作にまとめます。-
新しいテンプレートのコンテンツの追加
- javaScriptを追加して、記事リストで無限のスクロールの実行を処理します。
データベースビューを更新し、モジュールをアクティブ化します- 注:酸化eShopを使用した実務(wù)経験
- があると仮定します(そうでない場合は、上記のマシューの記事を參照)。したがって、酸化の基本概念についてはあまり説明しません。
酸化モジュールフォルダー構(gòu)造 - 最初にしなければならない最も重要なタスクは、標準のフォルダー構(gòu)造を作成することです。
- {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の作業(yè) metadata.phpは、あらゆるモジュール開発に不可欠です。このファイルは、モジュール、拡張するクラス、過大評価されるブロック、交換するテンプレート、フロントエンドとバックエンドの両方の側(cè)面の設(shè)定などの基本的な詳細を提供します。 ファイルMetadata.phpを開き、次のコード行を追加してください。
新しいモジュールの基本情報を挿入したばかりで、すべての要素は用語によって自己記述的です。IDとタイトルは必須の変數(shù)であることに注意してください。特に、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になります/。
値テンプレートは配列であり、新しいモジュールのすべての登録テンプレートを保存します。簡単なチームコラボレーションのために、交換するテンプレートの同じフォルダー構(gòu)造を作成することをお勧めします。テンプレートの項目と値の両方がファイル名拡張子を含める必要があることに注意してください-
新しいテンプレートに名前を付ける適切な方法は、「
- モジュール名
- _古いテンプレート名」です i.e:aho_infinitescroll_list.tpl
現(xiàn)時點で新しいテンプレートファイルを空にしたままにし、ファイルMetadata.phpを続行します。アイテムのテンプレートの直後に設(shè)定と呼ばれる配列を挿入してください:
<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>
- 値設(shè)定は、新しいモジュールのすべての構(gòu)成オプションを登録する場所です。グループには常にモジュールのIDと同じ値があります。
- 行
として設(shè)定し、最後まで使用し続けます。 初めてモジュールをアクティブにすると、この設(shè)定は2つのテーブル
oxconfig and - oxconfigdisplay
に挿入されます。酸化は、値モジュールを自動的に挿入します:AHO_INFINITESCROLLは列 oxcfgmodule (表Oxconfigdisplay)を値モジュールで挿入します:aho_infinitecroll。自動的に発生するため、これは非常に便利です。 このオンライン拡張メタデータのドキュメントに従って、他の可能な引數(shù)について詳しく読むことができます。 次に、バックエンドの翻訳を調(diào)べます。
バックエンド翻訳の追加
ファイルを開いてください
構(gòu)成オプションの翻訳を追加する構(gòu)文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で定義しています。ここでテンプレート名を指定するだけでいいことに注意してください。したがって、テンプレート名は一意でなければなりません。システムが正しいテンプレートをすばやく見つけるのに役立ちます。
- 関數(shù)レンダリングは、新しいテンプレート名を返すだけではありません。 関數(shù)getViewTypelistは、Metadata.phpで定義されているデータ列sinfinitescrollListtypeのデータを返します。テンプレートAHO_INFINITESCROLL.TPLは、この値を使用して、記事リストにどのビュータイプが適用されるかを決定します。
- 拡張クラスの名前はAHO_INFINITESCROLL_ALIST_PARENTであることに注意してください。式はモジュールコントローラー名_ parentです
- を拡張するために必要なクラスを見つけるためのヒント
上記の行は、現(xiàn)在のビューで使用されるコアクラスを印刷するのに役立ちます。 AJAXリクエストを?qū)g行するコアクラスを検出したい場合は、Chromedevツールを使用してもう少し努力する必要があります。
結(jié)論- これまでのところ、新しいモジュール拡張機能を開発するために、ステップバイステップのバックエンド実裝を行ってきました。現(xiàn)時點では、モジュールをアクティブにして、管理ダッシュボードに何があるかを確認することができます。問題が発生した場合は、ここにコメントを殘してください。私はあなたを助けるために最善を盡くします。
<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で無限のスクロールリストを構(gòu)築することについてよく尋ねる質(zhì)問
酸化eShopで無限のスクロールを使用する目的は何ですか?
??無限のスクロールは、ブラウザスクロールバーがページの下部にスクロールするのを防ぐWebデザイン手法であり、ページが追加で成長します。代わりにコンテンツ。 Oxid Eshopのコンテキストでは、この手法を使用して、ユーザーがページを下にスクロールするときに製品を継続的に表示し、製品のシームレスなナビゲーションと探索を許可することでユーザーエクスペリエンスを向上させることができます。
Infinite Scrollは、eコマースWebサイトのパフォーマンスをどのように改善しますか? Infinite Scrollは、負荷時間を短縮することにより、eコマースWebサイトのパフォーマンスを大幅に向上させることができます。サイトを遅くすることができるすべての製品を一度にロードする代わりに、Infiniteスクロールは最初に特定の數(shù)の製品をロードし、ユーザーがスクロールを続けるにつれてより多くロードされます。これにより、サイトの速度が向上するだけでなく、ユーザーのエンゲージメントと保持が向上します。
PHPを使用して酸化ESHOPに無限のスクロールを?qū)g裝するにはどうすればよいですか? Ajaxコールとページネーションシステム。 Ajaxリクエストを処理し、製品リストを更新するには、リストコントローラーと製品リストテンプレートの関數(shù)を変更する必要があります。詳細な手順とコードスニペットはこの記事に記載されています。
酸化eShopで無限の巻物を使用することに潛在的な欠點はありますか?すべてのタイプのeコマースWebサイトに適しています。たとえば、Webサイトに重要なリンクがあるフッターがある場合、Infinite Scrollはユーザーがフッターに到達することを困難にする可能性があります。また、特定の製品またはページに移動したいユーザーにとって、無限の巻物が混亂する場合があります。 Infinite Scrollは、カスタムコーディングをサポートするさまざまなeコマースプラットフォームに実裝できます。ただし、実裝プロセスは、プラットフォームのアーキテクチャとコーディング言語によって異なる場合があります。特定のプラットフォームのドキュメントを參照したり、専門の開発者から助けを求めることをお勧めします。
SEOにどのように影響しますか? AJAXを介してロードされたコンテンツを適切にクロールし、インデックスコンテンツ。ただし、これは、ユーザー向けの無限のスクロールバージョンと並んで、検索エンジン用のサイトのページングされたバージョンを?qū)g裝することで軽減できます。PHPはeコマースWebサイトに推奨されていますか?柔軟性、スケーラビリティ、堅牢性のため、eコマースWebサイトに人気のある選択肢があります。幅広いデータベースをサポートし、酸化eShopを含むさまざまなeコマースプラットフォームと互換性があります。ただし、プログラミング言語の選択は、特定の要件と専門知識に依存する必要があります。
無限の巻物に代わるものは何ですか?ページネーションでは、コンテンツを個別のページに分割しますが、「より多くのロード」ボタンにより、ユーザーはより多くのコンテンツを手動で読み込むことができます。これらのオプションの選択は、あなたのウェブサイトのデザインとユーザーの好みに依存します。酸化eShopの無限の巻物のルックアンドフィールをカスタマイズするにはどうすればよいですか?無限の巻物のルックアンドフィールは、CSSを使用してカスタマイズできます。あなたはあなたのウェブサイトのデザインに一致するように、ロードインジケーター、製品リスト、その他の要素のスタイルを変更できます。 Oxid Eshopの特定のページの無限の巻物を無効にすることを選択できます。これは、リストコントローラーの條件と製品リストテンプレートを変更して、特定のページを除外することで実行できます。
以上がOxid Eshopの無限のスクロールリストを作成 - 基本の詳細內(nèi)容です。詳細については、PHP 中國語 Web サイトの他の関連記事を參照してください。

ホットAIツール

Undress AI Tool
脫衣畫像を無料で

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

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

Clothoff.io
AI衣類リムーバー

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

人気の記事

ホットツール

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

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

ゼンドスタジオ 13.0.1
強力な PHP 統(tǒng)合開発環(huán)境

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

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

PHP変數(shù)スコープの一般的な問題とソリューションには次のものが含まれます。1。グローバル変數(shù)は関數(shù)內(nèi)でアクセスできず、グローバルキーワードまたはパラメーターを使用して渡す必要があります。 2。靜的変數(shù)は靜的で宣言され、1回のみ初期化され、値は複數(shù)の呼び出し間で維持されます。 3. $ _GETや$ _POSTなどのハイパーグローバル変數(shù)は、任意の範囲で直接使用できますが、安全なフィルタリングに注意を払う必要があります。 4.匿名関數(shù)は、使用キーワードを使用して親スコープ変數(shù)を?qū)毪工氡匾ⅳ?、外部変?shù)を変更する場合は、參照を渡す必要があります。これらのルールを習得すると、エラーを回避し、コードの安定性が向上するのに役立ちます。

PHPファイルのアップロードを安全に処理するには、ソースとタイプを確認し、ファイル名とパスを制御し、サーバー制限を設(shè)定し、メディアファイルを2回プロセスする必要があります。 1.トークンを介してCSRFを防ぐためにアップロードソースを確認し、ホワイトリストコントロールを使用してFINFO_FILEを介して実際のMIMEタイプを検出します。 2。ファイルをランダムな文字列に変更し、検出タイプに従って非WEBディレクトリに保存する拡張機能を決定します。 3。PHP構(gòu)成は、アップロードサイズを制限し、一時的なディレクトリnginx/apacheはアップロードディレクトリへのアクセスを禁止します。 4. GDライブラリは寫真を再利用して、潛在的な悪意のあるデータをクリアします。

PHPコメントコードには3つの一般的な方法があります。1。//#を使用して1行のコードをブロックすると、//を使用することをお勧めします。 2。使用/.../複數(shù)の行でコードブロックをラップするには、ネストすることはできませんが交差することができます。 3. / if(){}を使用するなどの組み合わせスキルコメントロジックブロックを制御するか、エディターショートカットキーで効率を改善するには、シンボルを閉じることに注意を払い、使用時にネストを避ける必要があります。

ageneratorinphpisamemory-efficientwaytoateate-overdeatatasetasetasetasetsinging valueseintimeintimeturningthemallatonce.1.generatorsususedeywordproducevaluesedemand、memoryusage.2を還元すること。2

PHPコメントを書くための鍵は、目的と仕様を明確にすることです。コメントは、「何が行われたのか」ではなく「なぜ」を説明する必要があり、冗長性や単純さを避けてください。 1.読みやすさとツールの互換性を向上させるために、クラスおよびメソッドの説明にdocblock(/*/)などの統(tǒng)合形式を使用します。 2。JSジャンプを手動で出力する必要がある理由など、ロジックの背後にある理由を強調(diào)します。 3.複雑なコードの前に概要説明を追加し、手順でプロセスを説明し、全體的なアイデアを理解するのに役立ちます。 4. TodoとFixmeを合理的に使用して、To Doアイテムと問題をマークして、その後の追跡とコラボレーションを促進します。優(yōu)れた注釈は、通信コストを削減し、コードメンテナンスの効率を向上させることができます。

PHPでは、四角い括弧または巻き毛裝具を使用して文字列固有のインデックス文字を取得できますが、正方形のブラケットをお勧めします。インデックスは0から始まり、範囲外のアクセスはnull値を返し、値を割り當てることができません。 MB_SUBSTRは、マルチバイト文字を処理するために必要です。例:$ str = "hello"; echo $ str [0];出力h; MB_Substr($ str、1,1)などの漢字は、正しい結(jié)果を得る必要があります。実際のアプリケーションでは、ループする前に文字列の長さをチェックする必要があり、ダイナミック文字列を有効性のために検証する必要があり、多言語プロジェクトはマルチバイトセキュリティ関數(shù)を均一に使用することをお勧めします。

to installphpquickly、usexampponwindowsorhomebrewonmacos.1.onwindows、downloadandinstallxampp、selectcomponents、startapache、andplacefilesinhtdocs.2

tolearnphpefctivially、startbysettingupalocalserverenvironmentusingtoolslikexamppandacodeeditorlikevscode.1)instalxamppforapa Che、mysql、andphp.2)useocodeeditorforsyntaxsupport.3)testyoursetup withasimplephpfile.next、Learnpbasicsincludingvariables、ech
