今日は高負荷情報ブロックについてお話します。 より正確にそれらを使用する方法。 インターネットを見ると、どこからでも情報を取得する方法がありますが、書き込み、変更、削除の方法は見つかりませんでした(おそらく検索が不十分でした)が、本当に必要でした。
そこで、LifeAPIに目を向けて、何かを発掘しました。 順番に始めましょう。
お気づきのとおり、これらの情報ブロックにはカスタムフィールドが含まれています。 つまり 各フィールドはUFで始まります。 でも噛まない bitrixでエンコードする人は誰でもそれを知っています。
アクションの前に、必要なモジュールを接続する必要があります。
CModule::IncludeModule("highloadblock");
次に楽しい部分があります。
接続設定を行う:
use Bitrix\Highloadblock as HL; use Bitrix\Main\Entity;
これらは一種のシンボリックリンクです(マルチサイトで作業する人は理解できます)。 残りの場合-機能ではなく、条件などで接続しない (コンポーネントでresult_modifier.phpに接続することもできます)。
すべての条件の前に接続する必要があり、機能の接続などでは機能しません。
次に、次のコードを記述する必要があります(必要なフィールドを選択し、クラス関数を接続します):
$hlbl = 1; - "ID Highload " ( ). $hlblock = HL\HighloadBlockTable::getById($hlbl)->fetch(); // get entity $entity = HL\HighloadBlockTable::compileEntity($hlblock); $entity_data_class = $entity->getDataClass();
さらに、Highload情報ブロックを直接操作できます。
データの追加:
この関数は、常にデータを追加します。
$result = $entity_data_class::add($data);
ここで多くを説明する価値はないと思います:関数クラス。
実際、フィールドが$データ配列にどのように正確に与えられるかはわかりません。 説明します。 これは、すでに見たように、「ユーザーフィールド」であり、フィールドコードが送信されます(UF _ *******)。
つまり
data = array( "UF_DATE_FROM"=>'$datefrom', "UF_DATE_TO"=>'$dateto', );
さて、その後、すでに優れた機能を追加します。
追加後にIDを選択することです(追加が発生したかどうかを確認する必要がある場合)。
$ID = $result->getId();
データ削除:
データを削除するには、アイテムIDを知っている必要があります。 すべてがいつものように簡単です:
$entity_data_class::Delete($ID);
データ変更:
$result = $entity_data_class::update($ID, $data);
機能:
変更(変更が必要なパラメーターを1つだけ渡すことができます)。 つまり 渡すことができるプロパティは1つだけで、変更されます。 単純な情報ブロックの場合、これには別の機能が使用されます。
さて、$ IDは情報ブロックのHighload要素のIDです。
PS:
タイプY / Nのカスタムプロパティを変更するには、通常のY / Nではなく、Y / 0を返す必要があります。 (これは私の経験です)。
コンポーネントのこれらの情報ブロックから選択したデータが見つかります。
highloadblock.list
highloadblock.view
時間があれば、要素の配列に基づいて価格とそのすべての機能を備えた取引オファーを選択する1つのbitrix関数について書きます。 (ただし、ライブAPIを確認できます)。
この記事はレビュー用に書かれています。 誰かがもっと知っているなら-コメントを書いてください。
uv。、エンコーダー付き。