2022年8月4日木曜日

APEX 22.1のリージョン・イメージとログイン画面のカスタマイズ

 Oracle APEX 22.1より、以下のようにログイン画面をカスタマイズしたり、


アプリケーションのページに画像を表示するのが容易になりました。


以下に設定方法を紹介します。

元ネタはOracle APEXの開発チームが公開しているYouTubeのImproved Region Images Support in Oracle APEX 22.1です。2分16秒ですので、英語が苦でなければ動画を見た方が早いかもしれません。

アプリケーションの静的アプリケーション・ファイルとして、以下の4つ画像がアップロード済みとします。

#APP_FILES#fujisan-banner.jpg - アプリケーションのバナーに表示する富士山の画像。
#APP_FILES#fujisan-region.jpg - ファセット検索のリージョンの上に表示する富士山の画像。
#APP_FILES#kangaroo-square.jpg - ログイン画面のアイコンとして表示するカンガルーの画像。
#APP_FILES#kangaroo-background.jpg - ログイン画面のバックグラウンドに表示するカンガルーの画像。



ログイン画面のアイコン



ログイン・ページに含まれるリージョン(外観テンプレートとしてLoginが設定されているリージョン)のプロパティに、イメージファイルURLがあります。このプロパティに、ログイン画面のアイコンとして表示する画像を指定します。

今回は#APP_FILES#kangaroo-square.jpgを指定しています。



ログイン画面のバックグラウンド画像



リージョンを作成し、レイアウト位置Background Imageに設定します。外観テンプレートImageを指定し、イメージファイルURLに画像のURLを指定すると、指定した画像がログイン画面のバックグランドに表示されます。

今回は#APP_FILES#kangaroo-background.jpgを指定しています。


表示される画像は、テンプレート・オプションの指定により調整できます。


例えば、ScaleFillFilterSepiaに変更します。


ログイン画面の表示は以下のように変わります。



バナーの画像



アプリケーションのほとんどのページで表示するため、グローバル・ページ(ページ番号)にリージョンを作成します。レイアウト位置Bannerを選択します。

外観テンプレートImageを選択し、イメージファイルURLに表示する画像のURLを設定します。

今回は#APP_FILES#fujisan-banner.jpgを指定しています。


リージョンにサーバー側の条件を設定することにより、バナーを表示するページを選択することができます。

標準のタイプには現在のページはカンマで区切られたリストに含まれる現在のページはカンマで区切られたリストに含まれない、という条件があります。タイプファンクション本体を選択し、PL/SQLのコードを記述することにより、管理ページを除くといった条件を作ることも可能です。

ページ・テンプレートに位置Bannerが登録されていないモーダル・ダイアログやログイン・ページでは、Bannerに配置したリージョンは表示されません。そのため、これらのページについて、サーバー側の条件を使って非表示にする必要はありません。



リージョンの画像



リージョンを作成し、表示したい位置にリージョンを配置します。これが、最も基本的な使い方と言えるでしょう。

外観テンプレートImageを選択し、イメージファイルURLに表示する画像のURLを指定します。

今回は#APP_FILES#fujisan-region.jpgを指定しています。


ページ・プロパティのイメージで指定しているファイルURLアクセシビリティ対応の説明カスタム属性はそれぞれ、HTMLのIMGタグのSRCALTその他に対応します。

例えば以下のようにイメージを設定します。


生成されるHTMLは以下のようになります。


以上になります。

Oracle APEXのアプリケーション作成の参考になれば幸いです。