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のようなパッケージもさらに必要です。

リソース: #3848

テンプレート要素

テンプレート要素やテンプレートモジュールによって、HTML要素を「乱用」しないで個々のテンプレートを簡単に統合できます。

リソース: #3625

ルートのページに依存したモジュール

新しいモジュール「ルートページに依存するモジュール」によって、ルートのページに応じて異なるモジュールを取り込むことができます。これは iflnginsert_moduleの様な挿入タグを使用したモジュールの取り込みの代替手段となります。

リソース: #3613

概要のページ

ニュースリーダーやイベントリーダーで概要のページを選択すると、Contaoは概要のページに戻るリンクを自動的に作成します。リンクの名前はカスタマイズできます。

リソース: #3862

ホームディレクトリの削除

「アカウントの廃止」のモジュールに、メンバーがアカウントを完全に削除するときに、さらにホームディレクトリも自動的に削除する設定を用意しました。

リソース: #3522

RSSフィードの画像の大きさ

ニュースとイベントのRSSフィードで、使用する画像のサイズを指定できます。

リソース: #3630

アップロードウィジェットで画像の寸法

フォームジェネレーターのファイルのアップロードで、画像の幅と高さのシステム全体の設定を個々に上書きできるようにしました。

リソース: #3628

改善した復元

復元のモジュールはデータベースの問い合わせの代わりに、削除した要素のプレビューを表示します。これにより、何の要素だったかが、はるかにわかりやすくなります。また、親の要素をすぐに開いて、削除した要素が所属していた場所を確認できます。

リソース: #3498

バックエンドのUXを改善

ツリー表示で制限された権限(ページマウント)がある場合、親のページを表示して編集者は自分の位置をよりよく確認できるようにしました。加えて、ナビゲーションのパスをクリックできるようにしました。

ファイル管理では、フォルダー名にスラッシュを含めて、一度に複数の階層のフォルダーを作成できるようにしました。

リソース: #3391, #3727, #3793

バックエンドのURLのカスタマイズ

標準的な/contaoをバックエンドの呼び出し使用していますが、例えば/adminといった具合に変更できるようにしました。現時点では、この機能はセキュリティ対策と誤解しないように指摘しておきたいと思います。これはむしろ、フロントエンドの通常のページで/contaoを使用したい場合を対象としています。

リソース: #3472

挿入タグのリンクのパラメーター

新しいパラメーター::blank::absoluteによって、挿入タグのリンクを新しいウィンドウで開くことと、絶対URLを生成することができます。

リソース: #3230

コマンドによるデータベースのバックアップ

コマンドのcontao:backup:createcontao:backup:listcontao:backup:restoreによって、mysqldumpがサーバーにインストールされていなくてもデータベースのバックアップの作成と管理を可能にしました。バックアップするテーブルは構成によって制限できます。

Contaoはデータベースの移行が起きるときは自動的にバックアップを作成します。この必要がない場合は--no-backupフラッグを指定できます。

リソース: #3631

Maker bundle

Symfony Maker bundleと似ている、Contao Maker bundleを以下のリソースの作成に使用できます:

  • コンテント要素
  • DCAコールバック
  • イベントのリスナー
  • フロントエンドモジュール
  • フックのリスナー

リソース: #3615

SendNewsletterEvent

SendNewsletterEventsendNewsletterフックの置き換えとして追加しました。既存のフックと異なり、このイベントはニュースレターを送信する前に実行されるので、ニュースレターの内容をカスタマイズするだけではなく、個々の受信者には送信を飛ばすこともできます。

リソース: #3489

DCAのフラッグの定数

'mode' => 4に代えて、'mode' => DataContainer::MODE_PARENTと書けるようにしました。

リソース: #2892

挿入タグサービス

contao.insert_tag.parserサービスによって、挿入タグを解析できるようにしました。加えて、今後は挿入タグの設定も出来ます。

リソース: #3638, #3603

サービスのアノテーション

サービスのアノテーションをPHP 8のアトリビュートとしても記述できるようにしました。

#[AsContentElement(category: "texts")]
class CustomElementController extends AbstractContentElementController
{
}

リソース: #3619

DC_Table::toggle()

DC_Tableに、選択した項目を有効や無効にできるtoggle()メソッドを追加しました。

リソース: #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_taginsert_tag_rawによって、挿入タグをTwigのテンプレートの中で処理できるようにしました。

{{ '<br> 
'
|insert_tag }} {{ '<br>
'
|insert_tag_raw }}

リソース: #3606

仮想ファイルシステム

Flysystemを元にした仮想ファイルシステムを新しい、実験的な機能として追加しました。初期状態では、ローカルのファイルシステムのcontao.filesystem.virtual.backupscontao.filesystem.virtual.filesがマウントされています。すなわち、さらにVFSを追加できます。

リソース: #3774

そしてさらにたくさん

他の変更の概要は変更履歴から参照できます。

ドキュメンテーションチームとすべての助力していただいた方に特別に感謝したいと思います。Contao 4.13.0のリリースの前に殆どの新機能を既に文書化できたのは彼らのおかげです。あなたたちは最高です!

互換性

Contao 4.13はSymfony 5.4、PHP 7.4以降、DOctrine 3と互換性があります。

こちらも参照: チケット | 比較表示 | 変更履歴


Contao 4.13.0 is availableの翻訳です。