Bitrix + Bitcoin。 Marketplace向けのソリューションを作成しています。 パート1

はじめに:ほとんどの場合、Bitrixの標準ソリューションの開発は、最も些細なタスクに対するソリューションです。 新しいプロジェクトごとに、同じことを何度も何度も繰り返す必要があります...しかし、あなたの生活を楽にする方法があります-コンポーネントのライブラリを作成し、要求された機能を提供する場合はそれらでお金を稼ぎさえします。



条件



与えられた:編集事務所のビトリックス「スモールビジネス」-ワンピース。

タスク:ビットコインの支払いを受け入れるように彼に教え、...

そして、ここで私は考えました-しかし、どのように? Bitrixの決済システムの統合のための多くのモジュールを作成し、書き直しました。 しかし、ビットコインをどうするか? どちらの側にアプローチしますか? 知りませんでした



ソリューションを検索する



かなり長いグーグルの過程で、BTCを受け入れ、ストア設定で売り手が選択した通貨に自動的に変換できる支払いシステムに入ることができました。 ここではすべてが非常に簡単であることが判明しました-APIがあり、ビットコインは通貨として受け入れられていますが、他に何が必要ですか? 行こう!



アイデアの出現



このタスクの時間は実際には何にも制限されていなかったため、「風水に従って」すべてを実行したいと考えました。つまり、支払いシステムハンドラーを作成し、クライアントに渡して忘れるだけでなく、ユニバーサルインストールパッケージも切り開きました。 Bitrixには、ご存じのとおり、 モジュールとソリューションを備えた独自のマーケットプレイスがあります。そこでは、作業を実質的に価値があると考える場合に、ソリューションを完全に自由に配置し、お金をもらえます。 現在、Marketplaceのほとんどのモジュールは無料です。 私の手はこの方向で実験するために長い間私の手を引っ掻いてきました。そして今、ついに、この機会が現れました。



ドキュメント



支払いシステムAPIが非常によく文書化されており、直感的であることが判明した場合(そして、理解するものがまったくない場合-いくつかの関数とサンプルコード)、Bitrixのモジュールを作成するための手順では、すべてが非常に曖昧です。

一方で、それはあまり助けにはなりませんでした。 質問への回答を求めて、すべてが何らかの形でテキストに散らかった、しわくちゃの、絶え間ないジャンプです。 Bitrixフォーラム自体に非常に正確に気づいた人がいます。「モジュールのドライマニュアルを開かない方がいいでしょう。学習したい人のためではなく、既に方法を知っている人のために書かれています。」 優れたビデオチュートリアルが役に立ちました。少なくとも生きている人が説明します。



注:私は、私がまったく愚か者ではなく、機知に富んでいないことを別に強調したいと思います。 これは、マーケットプレイス用のモジュールを開発した最初の経験でした。 さて、このパスを通過した後、私は多くのものが実際に初歩的であることがわかりますが、これらのソリューションの検索は初めて「天国への指」法を使用して実行されました



モジュールはどこから始まりますか?



まず、モジュール自体は単なるファイルのコレクションであり、その一部はインストールプロセス中に実行されます。

モジュールには特定のディレクトリ構造があり、これはモジュールで解決しようとしているタスクに依存します。

したがって、構造を再作成します。



公式文書から取られた画像。

ここで、何が何であるかを説明する必要があります。 画像に示されているフォルダ構造は、まったく同じではありません。 それは冗長であり、いつ(もし)モジュールを開発するのであれば、いくつかのフォルダーといくつかのファイルだけがモジュールから残ります。

これらのうちどれが必要ですか:

  1. /install/version.php-バージョン番号を持つファイル(いくつかの変数を持つ配列の宣言)
  2. /install/index.php-モジュールのインストーラー/アンインストーラーを含むモジュール記述ファイル。 実際、それはインストーラーです。 ユーザーが「インストール」ボタンをクリックしたときに起動するのは彼です。 むしろ、ファイル自体と、それに記載されているDoInstall / DoUninstallメソッド 。 さらに、SQLクエリなどを実行する別のディレクトリにファイルをコピーするヘルパーメソッドが含まれる場合があります。
  3. /include.php-インクルードファイル。 サイトスクリプトの実行中にモジュールがアクティブになったときに接続されます。 つまり、本質的に、これはエンジン自体への注入です。 たとえば、バックグラウンドエージェントハンドラーを追加したり、管理インターフェイスにメニュー項目を追加したりできます。


構造の残りの要素は補助的です:

  1. / lang / -すべてのエンコーディングに敏感なファイルが配置されるディレクトリ-ローカリゼーション。 コンポーネントコードから言語ファイルへのローカライズを怠らないでください!
  2. /クラス/ -サブディレクトリの名前からわかるように、これらはモジュールのメインクラスです(さまざまなデータベースの操作を含む)
  3. /インストール/管理者/ | /インストール/コンポーネント/ | / install / themes / -インストールプロセス中にサービスファイルをコピーする補助ディレクトリ。




各要素の目的をよりよく理解するために、テンプレートモジュールを使用してアーカイブからソースを確認し、それに基づいて最終決定を下します。



記事の次のパートでは、この知識を実践する方法を学び、3番目のパートでは、モジュール更新の構造と目的について説明します。



All Articles