本日 Craft CMS の 3.4 がリリースされた。

Craft 3.4 is Here! | Craft CMS
https://craftcms.com/blog/craf...

開発者の方々お疲れ様でした!!

早速 3.4.0.1 もでてたけど。
まだこのブログはアップしてないが、ひとまずテスト環境を作ってみたのでみてみる。

UIのアップデート / New look and feel. 

見た目が変わった。若干ダークになったり。

丸っこくなった気がする。

Delta entry updates.  Change tracking.

複雑なフィールドであっても、変更があったところだけをみる?とかで少し快適になった、、、ということかな。

なんと訳すのがいいのかわからないのだけど、変更チェックの方法が変わったことにあわせて公開版と下書き版とでフィールドごとに変更があったかどうかなどを表示するようになった。

公開エントリの作成。

変更して下書きで保存。

「下」ってアイコンが(笑

公開済みのエントリのタイトルを編集して保存。

ドラフトをみる。

タイトル脇のアイコンの色が変わった。

「変更を下書きにマージ」をクリックしてみる。

タイトル脇の「下」アイコンが赤から青に変わったが、中身は変わらなかった(苦笑

どういう挙動が正しいんだろうな。。。もう少し調査が必要そう。

【追記20200129-1100】

 @BUN にいわれてマージはドラフトに変更なしで、公開データが変更された場合のマージでは?ということで試してみたらその通りだった。

公開エントリを作成。

一部変更してドラフトを作成。

公開データを変更。

下書きを確認。

黄色いアイコンが出た。これは「ソースエントリで変更済み」だった。
赤いアイコンは「下書きとソースエントリで変更済み」だった。

この状態で「変更を下書きにマージ」をクリック。

公開のデータが取り込まれた。

【追記ここまで】

アセットごとの編集ページが追加 / Asset edit pages.

アセットもエントリなどと同様に管理画面に個別の編集画面が出るようになった。

フィールドを追加した場合などはここで編集ができる。

エントリでアセットをクリックした時の挙動はそこまで変わらない。

HTMLやPDFのアセットをプレビュー / Text and PDF previewing.

HTML / PDF をエントリのライブプレビューのようにプレビューできるようになった。

PDFのアセット

プレビューをクリック

右側でPDFをプレビューできている。

HTMLも似たような感じになった。

パスがあってないのでCSSとかは切れてるが。

アセット周りの権限追加 / Enhanced asset permissions.

アセットについて誰がアップしたかを見れるようになった。

それに伴い、アセット関係の権限周りについて他の人がアップしたものについての設定項目が増えた。

アセットのフィールドの設定にもその辺の他の人のあげた画像を見れるようにするか?などの項目が増えている。

エクスポート機能の拡張 / Extended exporting.

エクスポート周りが拡張された。一旦実装されたけど無効になってたのが改めて登場。

一覧画面も変わった。

エクスポートできるタイプ

エクスポートできるフォーマット

サンプルでエクスポートしてみる

生データでCSV

id,fieldLayoutId,uid,enabled,archived,dateCreated,dateUpdated,slug,siteId,uri,enabledForSite,sectionId,typeId,authorId,postDate,expiryDate,contentId,title,field_sampleRadio,field_sampleText,root,lft,rgt,level,structureId
12,2,83d33d2d-1866-43c3-8890-b010c78c9d0d,1,0,"2020-01-29 00:36:19","2020-01-29 00:40:18",サンプルエントリ,1,article/サンプルエントリ,1,1,1,1,"2020-01-29 00:35:00",null,5,サンプルエントリ公開済みを変更,blue,サンプルテキスト,null,null,null,null,null

生データでJSON

[
    {
        "id": "12",
        "fieldLayoutId": "2",
        "uid": "83d33d2d-1866-43c3-8890-b010c78c9d0d",
        "enabled": "1",
        "archived": "0",
        "dateCreated": "2020-01-29 00:36:19",
        "dateUpdated": "2020-01-29 00:40:18",
        "slug": "サンプルエントリ",
        "siteId": "1",
        "uri": "article/サンプルエントリ",
        "enabledForSite": "1",
        "sectionId": "1",
        "typeId": "1",
        "authorId": "1",
        "postDate": "2020-01-29 00:35:00",
        "expiryDate": null,
        "contentId": "5",
        "title": "サンプルエントリ公開済みを変更",
        "field_sampleRadio": "blue",
        "field_sampleText": "サンプルテキスト",
        "root": null,
        "lft": null,
        "rgt": null,
        "level": null,
        "structureId": null
    }
]

生データでXML

<?xml version="1.0" encoding="UTF-8"?>
<entries><entry><id>12</id><fieldLayoutId>2</fieldLayoutId><uid>83d33d2d-1866-43c3-8890-b010c78c9d0d</uid><enabled>1</enabled><archived>0</archived><dateCreated>2020-01-29 00:36:19</dateCreated><dateUpdated>2020-01-29 00:40:18</dateUpdated><slug>サンプルエントリ</slug><siteId>1</siteId><uri>article/サンプルエントリ</uri><enabledForSite>1</enabledForSite><sectionId>1</sectionId><typeId>1</typeId><authorId>1</authorId><postDate>2020-01-29 00:35:00</postDate><expiryDate></expiryDate><contentId>5</contentId><title>サンプルエントリ公開済みを変更</title><field_sampleRadio>blue</field_sampleRadio><field_sampleText>サンプルテキスト</field_sampleText><root></root><lft></lft><rgt></rgt><level></level><structureId></structureId></entry></entries>

展開済みでCSV

sectionId,typeId,authorId,postDate,expiryDate,newParentId,deletedWithEntryType,id,tempId,draftId,revisionId,uid,fieldLayoutId,contentId,enabled,archived,siteId,title,slug,uri,dateCreated,dateUpdated,dateDeleted,trashed,propagateAll,newSiteIds,resaving,duplicateOf,previewing,hardDelete,ref,status,structureId,url,sampleText,sampleRadio,sampleMatrix
1,1,1,2020-01-29T09:35:00+09:00,null,null,,12,null,null,null,83d33d2d-1866-43c3-8890-b010c78c9d0d,2,5,1,0,1,サンプルエントリ公開済みを変更,サンプルエントリ,article/サンプルエントリ,2020-01-29T09:36:19+09:00,2020-01-29T09:40:18+09:00,null,,,[],,null,,,article/サンプルエントリ,live,null,http://example.com/article/サンプルエントリ?token=KjRLxU7WCuMZLz2lMTSsVUAmuTBswUG6,サンプルテキスト,blue,"{""20"":{""type"":""image_text"",""enabled"":""1"",""collapsed"":false,""fields"":{""heading"":""見出しサンプル"",""asset"":[""10""],""body"":""本文です本文です。""}}}"

リレーション系のマトリックスとか周りの情報が増えてる感じかな。

展開済みでJSON

[
    {
        "sectionId": "1",
        "typeId": "1",
        "authorId": "1",
        "postDate": "2020-01-29T09:35:00+09:00",
        "expiryDate": null,
        "newParentId": null,
        "deletedWithEntryType": false,
        "id": "12",
        "tempId": null,
        "draftId": null,
        "revisionId": null,
        "uid": "83d33d2d-1866-43c3-8890-b010c78c9d0d",
        "fieldLayoutId": "2",
        "contentId": "5",
        "enabled": "1",
        "archived": "0",
        "siteId": "1",
        "title": "サンプルエントリ公開済みを変更",
        "slug": "サンプルエントリ",
        "uri": "article/サンプルエントリ",
        "dateCreated": "2020-01-29T09:36:19+09:00",
        "dateUpdated": "2020-01-29T09:40:18+09:00",
        "dateDeleted": null,
        "trashed": false,
        "propagateAll": false,
        "newSiteIds": [],
        "resaving": false,
        "duplicateOf": null,
        "previewing": false,
        "hardDelete": false,
        "ref": "article/サンプルエントリ",
        "status": "live",
        "structureId": null,
        "url": "http://example.com/article/サンプルエントリ?token=9jB01Z_P498oCyMromBoU5X7cTQdBZ1b",
        "sampleText": "サンプルテキスト",
        "sampleRadio": "blue",
        "sampleMatrix": {
            "20": {
                "type": "image_text",
                "enabled": "1",
                "collapsed": false,
                "fields": {
                    "heading": "見出しサンプル",
                    "asset": [
                        "10"
                    ],
                    "body": "本文です本文です。"
                }
            }
        }
    }
]

アセットは関連づけられてるIDくらいまでっぽい。

が、まぁこれだけあればエクスポート・インポートはしやすくなりそう。

GraphQL 周りの改善 / GraphQL improvements.

GraphQL まわりが改善したらしい。

トークンとスキーマが別々になって、それぞれ必要に応じて管理できそう。

プラグインからも利用できますよー、とのこと。

GraphQL 周りはお試しでつくってみたものとかのをアップデートして色々試してみよう。

キューマネージャーの追加 / Queue Manager.

これまでプラグインではあったが、 キューマネージャーが追加された。

Better collaboration with project config. Interactive shell.

Project config 周りがよくなったらしいが、そもそも Project config をちゃんと使ったことがない。

@BUN , @tinybeans に聞きつつこの辺はこれから触ってみないとだ。


ざざっとインストールしたのをみてみた。

色々よくなっててこれはまた案件とかでも便利に使えそうだなー。楽しみ。

まずはブログをアップデートしよう。