05. [J] BlackBox の スタイルをカスタマイズ

https://paper.dropbox.com/doc/05.-Customising-BlackBox-Styles--BtPgemLkjERSJHIFTRdcCZjGAg-NeyCZGR4jv1TCUmTHZ0Db

05. Customising BlackBox Styles

<— Reactor Home J

Reload Reactor を検討していたとき、ランクから外れた最初のタクシーの 1 つは、最新のインターフェイスを備えた新しいカレンダーを構築するための優れた JavaScript ライブラリを見つけることでした。 dHTMLx ライブラリ スイート、特に Scheduler にたどり着くまで、それほど時間はかかりませんでした。

https://dhtmlx.com/docs/products/dhtmlxScheduler/

(黒い) 箱から出してすぐに素晴らしいように見えますが、FileMaker 開発者として、私たちは構築したものをカスタマイズする機能に慣れています。 この記事では、Demo BlackBox をカスタマイズして、FileMaker アプリケーションにシームレスに統合する方法を示します。

BlackBox は基本的に Web ページであり、通常は次のもので構成されます。

  • JavaScript ライブラリ - この例では dHTMLxScheduler

  • HTML ドキュメント - Web ページの構造と、ライブラリが FileMaker と通信する方法を定義します。

  • CSS - BlackBox の外観を定義します

この記事は、CSS ドキュメントのみに関係しています。 第 1 部では、CSS への変更のハードコーディングについて検討し、記事の第 2 部では、少し動的な Reactor ジャズに足を踏み入れます。

Part 1 - CSS カスタマイズ

xScheduler カレンダーの「appointment」は角が直角ですが、角を丸くしたいですか?

これを行うために、CSS の専門家である必要はありません。 では、希望どおりの外観にするために何を変更する必要があるか、どのように変更すればよいかをどのように判断しますか? これは、友人の助けを借りて行うことができます。 Web ブラウザ、および任意の Web 検索エンジン。

まず、CSS オブジェクトに角丸を追加する方法を見てみましょう。 簡単な Web 検索で、border-radius プロパティを使用するように指示されます。

https://www.w3schools.com/css/css3_borders.asp

何を変更する必要があるかはわかりましたが、どこを変更すればよいかわかりません。 ここで Web ブラウザの出番です。

Reactor には便利な機能:デバッグ モードに入る機能があります。これを行うには、Webビューアで次の関数を評価します。

Turn on Reactor debugging
BlackBoxDebbugging( "YES" )

 

Using Reactor debugging

 

Webビューア上の Reactor BlackBox に、右下隅に小さな Reactor ボタンが表示されます。 これを使用してエラー メッセージをデバッグしたり、さらに重要なこととして、BlackBox を Web ブラウザで開くことができます。

簡単なメモとして、これらの手順とスクリーンショットは Google Chrome に関連しています。 他の Web ブラウザでは、これらの領域の名前が少し異なりますが、同様の方法でそこに到達する方法を理解できるはずです。

Calendar appointment オブジェクト のスタイルを変更しようとしています。 これを行うには、どの CSS 要素を変更する必要があるかを調べる必要があります。 これらの appointment 要素のいずれかを右クリックし、[検査(Inspect)] を選択します。

 

これにより、次のことがわかります。

HTML を見ると、クラスの <div> オブジェクトに要約されていることがわかります。

 

dhx_cal_event_line

これが、変更する必要がある CSS のクラスです。

最初に、ここに次の CSS 行を追加して、角を丸くする CSS の追加をテストしましょう (タブの 2 行目の [スタイル] タブにいることを確認する必要があります)。

Changing the style of an HTML element ad-hoc

border-radius:20px;

バーを見て、変更されているかどうかを確認します。

すごい! これで、適切な CSS クラスと適切な CSS プロパティが見つかったことがわかりました。 ただし、まだ何も変更していません。その単一のバーの CSS プロパティを変更しただけです。 ページを更新するとすぐに、通常の状態に戻ります。 次に、CSS ドキュメントに変更を加える必要があります。

続けて、ブラウザで[ソース] タブをクリックし、CSS ファイルを見つけます。

次に、CSS クラスを見つけて、CSS を変更する必要があります。行った変更はすぐに適用されます。したがって、変更を適用します。:

バーをチェックして、変更が行われたかどうかを確認します。:

反映していないようですが、大丈夫、こういうこともあります。 CSS はカスケードです。つまり、私たちが試したものは、チェーンのさらに上に設定された CSS プロパティと互換性がありません。プロパティ値に !important を追加するだけです。これは、継承されたプロパティをオーバーライドすることを意味します。:

バーを確認します。:

成功!

ここでの教訓は、CSS プロパティが機能していないように見える場合は、!important ディレクティブを試してみることです。

ただし、これもページのリロード時にリセットされ、元の CSS ファイルがリロードされます。しかし今、私たちは何を変える必要があり、どこを変えるべきかを知っています。そのため、Reactor を使用して、BlackBox のファイルのリストにある「編集」アイコンをクリックして、実際の CSS ドキュメントを開きます。

Web ブラウザから CSS をコピーして貼り付け、ファイルを保存し、BlackBox 画面またはプレビュー画面の [コンパイル] ボタンをクリックして、BlackBox を再コンパイルします。

出来上がり!これで、カレンダーの appointment の角が丸く表示されます。

Part 2 - CSS プロパティをパラメーターに変換する

これで、BlackBox の CSS を変更する方法がわかりました。しかし、上記のすべてを行う必要なく、このカレンダーの外観を変更できる機能を誰かに提供したい場合はどうでしょうか? BlackBox のパラメーターを作成して、ユーザーが必要とするプロパティを動的に設定できます。

たとえば、BlackBox に event_bar_curve というパラメーターを指定し、CSS に小さな変更を加えてこの値を読み取り、appointment のバーに適用することができます。

まず、Reactor の [関数] タブに切り替えて、xScheduler 関数の新しいパラメーターを追加し、それが「テキスト」に設定されていることを確認します。これは、BlackBox が FileMaker から読み込むフィールド名ではなく、単に引き渡される値であるためです。

この BlackBox のメイン CSS ファイル dhtmlxscheduler_flat.css を開きます。

次に、dhx_cal_event_line クラスを見つけて、border-radius プロパティを次のように変更/追加します。

 

.dhx_cal_event_line{ padding-left:10px; cursor:pointer; overflow:hidden; border-radius: <?Reactor $event_bar_curve Reactor?> !important; }

<?Reactor Reactor?> タグは、Reactor に内部のすべてを解釈するように指示するだけです。この例では、これは単なるパラメーター名です。この行は event_bar-curve パラメーターを取得し、Web ビューア に到達するまでに、Reactor タグの代わりになります。

ドキュメントを保存して再コンパイルします。新しいパラメータ セットで BlackBox を実行します

任務完了!Appointment バーのボックス カーブを好きなように設定できるようになりました。

これは、視覚要素の 1 つのタイプの 1 つのパラメーターにすぎません。あなたが望むかもしれない他の変更もあなたの指先にあります。対象となる HTML 要素を把握し、CSS プロパティのかなり基本的な理解を得ると、CSS ドキュメント (お気に入りのコード エディターで) と BlackBox プレビューを切り替えながらコンパイルすることで、これらの変更を非常に迅速に行うことができます。

<— Reactor Home J