Contao 4.13.0を利用可能
2022年2月17日 18:00 Leo Feyer
Contaoバージョン4.13.0を利用できます。このリリースは下位ページのレイアウト、フロントエンドのプレビューのリンク、正規のURL、ドキュメントのプレビュー画像、コマンドによるデータベースのバックアップ、削除したレコードの概要の改善、makerバンドル、さらに多数の新しい機能を含んでいます。
ページレイアウトの継承
ページ構造で下位のページに異なるページレイアウトを設定できるようにしました。初期状態では、選択したページレイアウトを下位のページは継承します。
リソース: #3419
フロントエンドのプレビューのリンク
フロントエンドのプレビューのリンクは、他の人と共有可能な特定のフロントエンドのページのリンクです。バックエンドのアカウントを持たない誰でも、プレビューにアクセスできます。
リソース: #3872
ルートのページ毎の保守モード
今後はフロントエンドの保守モードはルートのページ毎に有効にできます。Contao 4.13でバックエンドを含んだシステム全体の保守モードはContao Manager、またはコマンド行から有効にできます。
リソース: #3729
同じエイリアスの2つのページ
Contao 4.13では、異なるパラメーターを持てば複数のページで、同じページのエイリアスを使用できます。
例: 「News」というページはnews
というエイリアスで、すべてのニュースを一覧します。「News reader」というページもnewsというエイリアスで、「項目を必要」という追加の設定があり、ニュースの項目の詳細を表示します。
リソース: #3843
フロントエンドの正規なURL
ルートのページの設定でrel="canonical"
タグを有効にすると、Contaoはフロントエンドで正規のURLを出力します。正規のURLは下位のページ毎にカスタマイズできます。Contaoは自動的に自身を正規化して指すようになり、問い合わせのパラメーターでも確実に指定できます。
加えて、今後は検索のインデックス処理では外部の正規なURLのページを無視し、結果的に検索のインデックスを改善します。
リソース: #3616
ドキュメントのプレビュー画像
例えばダウンロード要素での、プレビューの画像をPDF、ワード、エクセルのファイルといったドキュメントにも作成します。これにはImagemagickやGraphicsmagickがサーバーにインストールしていて、PHPをImagickやGmagick拡張と共にコンパイルしている必要があります。ドキュメントの種類によっては、Ghostscriptのようなパッケージもさらに必要です。
リソース: #3625
ルートのページに依存したモジュール
新しいモジュール「ルートページに依存するモジュール」によって、ルートのページに応じて異なるモジュールを取り込むことができます。これは iflng
とinsert_module
の様な挿入タグを使用したモジュールの取り込みの代替手段となります。
リソース: #3522
RSSフィードの画像の大きさ
ニュースとイベントのRSSフィードで、使用する画像のサイズを指定できます。
リソース: #3630
アップロードウィジェットで画像の寸法
フォームジェネレーターのファイルのアップロードで、画像の幅と高さのシステム全体の設定を個々に上書きできるようにしました。
リソース: #3628
改善した復元
復元のモジュールはデータベースの問い合わせの代わりに、削除した要素のプレビューを表示します。これにより、何の要素だったかが、はるかにわかりやすくなります。また、親の要素をすぐに開いて、削除した要素が所属していた場所を確認できます。
リソース: #3498
バックエンドのUXを改善
ツリー表示で制限された権限(ページマウント)がある場合、親のページを表示して編集者は自分の位置をよりよく確認できるようにしました。加えて、ナビゲーションのパスをクリックできるようにしました。
ファイル管理では、フォルダー名にスラッシュを含めて、一度に複数の階層のフォルダーを作成できるようにしました。
バックエンドのURLのカスタマイズ
標準的な/contao
をバックエンドの呼び出し使用していますが、例えば/admin
といった具合に変更できるようにしました。現時点では、この機能はセキュリティ対策と誤解しないように指摘しておきたいと思います。これはむしろ、フロントエンドの通常のページで/contao
を使用したい場合を対象としています。
リソース: #3472
挿入タグのリンクのパラメーター
新しいパラメーター::blank
と::absolute
によって、挿入タグのリンクを新しいウィンドウで開くことと、絶対URLを生成することができます。
リソース: #3230
コマンドによるデータベースのバックアップ
コマンドのcontao:backup:create
、contao:backup:list
、contao:backup:restore
によって、mysqldumpがサーバーにインストールされていなくてもデータベースのバックアップの作成と管理を可能にしました。バックアップするテーブルは構成によって制限できます。
Contaoはデータベースの移行が起きるときは自動的にバックアップを作成します。この必要がない場合は--no-backupフラッグ
を指定できます。
リソース: #3631
Maker bundle
Symfony Maker bundleと似ている、Contao Maker bundleを以下のリソースの作成に使用できます:
- コンテント要素
- DCAコールバック
- イベントのリスナー
- フロントエンドモジュール
- フックのリスナー
リソース: #3615
SendNewsletterEvent
SendNewsletterEvent
をsendNewsletter
フックの置き換えとして追加しました。既存のフックと異なり、このイベントはニュースレターを送信する前に実行されるので、ニュースレターの内容をカスタマイズするだけではなく、個々の受信者には送信を飛ばすこともできます。
リソース: #3489
DCAのフラッグの定数
'mode' => 4
に代えて、'mode' => DataContainer::MODE_PARENT
と書けるようにしました。
#[AsContentElement(category: "texts")]
class CustomElementController extends AbstractContentElementController
{
}
リソース: #3889
Loggerサービス
新しいloggerサービスによって、バックエンドでシステムログの項目を簡単に書くことができ、Contaoのコンテキストを使用する必要もなくなりました。このために、Contaoは次を含むいくつかのサービスを提供しています:
monolog.logger.contao.cron
monolog.logger.contao.error
monolog.logger.contao.files
monolog.logger.contao.general
リソース: #3702
Cacheのタグのサービス
新しいサービスcontao.cache.entity_tags
によって、必要なキャッシュのタグを応答に追加できます。これは、共有キャッシュを自動的に無効にするために必要でした。
class MyController
{
private EntityCacheTags $entityCacheTags;
public function __construct(EntityCacheTags $entityCacheTags)
{
$this->entityCacheTags = $entityCacheTags;
}
public function __invoke(): Response
{
// ...
$this->entityCacheTags->tagWithModelInstance($page);
return $response;
}
}
リソース: #3180
独自のバックエンドのコントローラー
独自のバックエンドのコントローラーはAbstractCustomBackendController
クラスを継承して、be_main
テンプレートで直接動作できるようになりました。
リソース: #3180
挿入タグのTwig関数
新しいTwigの関数のinsert_tag
とinsert_tag_raw
によって、挿入タグをTwigのテンプレートの中で処理できるようにしました。
{{ '<br>
'|insert_tag }}
{{ '<br>
'|insert_tag_raw }}
リソース: #3606
仮想ファイルシステム
Flysystemを元にした仮想ファイルシステムを新しい、実験的な機能として追加しました。初期状態では、ローカルのファイルシステムのcontao.filesystem.virtual.backups
とcontao.filesystem.virtual.files
がマウントされています。すなわち、さらにVFSを追加できます。
リソース: #3774
そしてさらにたくさん
他の変更の概要は変更履歴から参照できます。
ドキュメンテーションチームとすべての助力していただいた方に特別に感謝したいと思います。Contao 4.13.0のリリースの前に殆どの新機能を既に文書化できたのは彼らのおかげです。あなたたちは最高です!
互換性
Contao 4.13はSymfony 5.4、PHP 7.4以降、DOctrine 3と互換性があります。