1C-Bitrix:正しくインフォブロック要素のプロパティ

Infoblockはおそらく最も使用されるモジュールです。 このCMSのサイトはそれなしではできません。 これは非常に柔軟なツールですが、このすべての柔軟性を活用するには、Bitrix APIを徹底的に研究する必要があります。 しかし、公式文書は、私たちが知っているように、すべてのポイントを説明していません;)

したがって、情報ブロックを使用するすべての開発者が直面するタスクは、情報ブロック要素のプロパティを選択して画面に表示することです。 ケースの前半はありふれたものです。CIBlockElementクラスのメソッドについては、 ドキュメントで詳しく説明しています 。 しかし、後半では(特にプロパティが複合型の場合)すでにより興味深いです:)

「HTML \ text」のようなプロパティを取りましょう。 このプロパティの場合、その値(「VALUE」キー)を単に表示することはできません。 生の値とそのタイプ(HTMLまたはテキスト)を含む配列です。 いいえ、もちろん、その種類に応じて「生の」値をフォーマットすることはできますが、疑問が頭の中に潜んでいます。これはCMS自体に実装されていないのでしょうか。 Bitrix:Newsコンポーネントは、任意のプロパティでどのように機能しますか?

実際、このbitrixのコード:ニュース自体から、その巧妙な仕組みを知ることができます:)しかし、それはトリッキーではありません! CIBlockFormatPropertiesクラスのGetDisplayValueメソッドを1回呼び出すだけです。

$ arResult [ "DISPLAY_PROPERTIES" ] [ $ pid ] =
CIBlockFormatProperties :: GetDisplayValue $ arResult $ prop "news_out" );


それだけです! テンプレートに次のように記述できます。

echo $ element [ 'PROPERTY_CODE' ] [ 'DISPLAY_VALUE' ];


そして、出力の前に値のフォーマットを含むタイプのプロパティは、それに応じて変換されます!

文書化されていないシステム機能の研究の成功;)

PS元の記事は私のものです。

Source: https://habr.com/ru/post/J30827/


All Articles