ユーザ用ツール

サイト用ツール


cms:drupal:upgrade8:references

差分

このページの2つのバージョン間の差分を表示します。

この比較画面へのリンク

次のリビジョン
前のリビジョン
cms:drupal:upgrade8:references [2022/01/03 15:49] – 作成 kingcms:drupal:upgrade8:references [2022/01/03 23:08] (現在) – [referenceを機能させる] king
行 2: 行 2:
 Viewsは、Drupal8からコアに内蔵されているとのことでreferenceもあるらしい。しかし、migradeで移行したあと、コンテンツタイプを確認したら node referenceのフィールドが全部なかった。 Viewsは、Drupal8からコアに内蔵されているとのことでreferenceもあるらしい。しかし、migradeで移行したあと、コンテンツタイプを確認したら node referenceのフィールドが全部なかった。
  
-views自体自体存在する+viewsはサイト構築の中にあるにあるが、、 
 +===== viewsが移行されてない ===== 
 +そもそも、viewsのブロックやらページが移行されてないようである。こんな記載があった。 
 +<blockquote>いいえ、それらを再構築する必要があります。7〜8の間にアップグレードパスはありません。コアメンテナは、8で再構築し、コンテンツを移行するというアプローチを採用しました。アーキテクチャの変更が多すぎます。そのため、コンテンツに関するドキュメントしか表示されません。</blockquote> 
 +4年前の記事であるが、migradeの機能としてはないようであるが、モジュールがあるようである 
 + 
 +===== referenceを機能させる ===== 
 +手動でやるしかないかな、ということで、やってみる。いくつか、かなり長い間(冬休みのほぼ数日)を変えてこの方法で一つクリアできた。 
 + 
 +  * Datasheet類は部品種類(例えばMCUやDiodeなどの)を示す「親分類」としての親コンテンツをDatasheet_daibunruiとして持ち、 
 +  * その下に紐づく部品(個別の部品毎)をDatasheet_childとしたコンテンツとして構成していた。 
 +  * Datasheet_childは、1部品1コンテンツになり、node_referenceで親を参照する 
 + 
 +D7でのコンテンツフィールドを示す(下段にD8移行後の状態を示している) 
 +^ ^Datasheet_daibunrui^Datasheet_child^ 
 +^D7もと|{{:cms:drupal:upgrade8:d8-ref-1.png?direct&400|}}|{{:cms:drupal:upgrade8:d8-ref-2.png?direct&400|}}| 
 +^D8移行後|{{:cms:drupal:upgrade8:d8-ref-3.png?direct&400|}}|{{:cms:drupal:upgrade8:d8-ref-4.png?direct&400|}}| 
 + 
 +代理店やメーカなどの参照先もあるが、ここで一旦無視するとして、参照するためのフィールドを作る。viewsは移行する手段があるようですが、コンテンツのフィールドが移行されてなきゃだめなんで、結局全てのコンテンツを修正する必要があるというわけですかね? 
 + 
 +さらにぐぐってみたら、[[https://stackoverflow.com/questions/57102034/drupal-8-node-reference-migrate-to-entity-reference-type|Drupal 8 - Node reference migrate to entity reference type]]の中に、こんなことが書いてある(ググ翻訳) 
 +<blockquote> 
 +古いCCKパッケージのおよびフィールドタイプのD7バージョンを提供するReferencesモジュールを使用しているようです。node_referenceuser_reference 
 + 
 +このモジュールは、drupal7の初期にこれらのフィールドタイプを有効にするためのソリューションでした。しばらくして、エンティティ参照がd7に登場し、任意のエンティティを参照するための汎用フィールドタイプを提供し、それ以来Drupal8コアに含まれています。 
 +問題に対処するには、参照フィールドを適切なフィールドタイプに移行することから始める必要がありますentity_reference。 
 +drupal 8の移行前に作業を完了するのに役立つ、Reference toEntityReferenceフィールド移行と呼ばれるモジュールがあります。</blockquote> 
 + 
 +**えっ?そうなの!**  全然知らんかったんだけど。これは別のページでもう一回やるとして、、、 
 + 
 +自分のサイトだったら、100もないけど、会社のイントラネット内のサイトのコンテンツは1000を超えてるからなー、誰がやるんかなぁ、なんて思っていましたが、方法があるようだ! 
 + 
 + 
 + 
 +==== 子コンテンツのフィールドを作る ==== 
 +{{:cms:drupal:upgrade8:d8-ref-5.png?direct&400|}} {{:cms:drupal:upgrade8:d8-ref-6.png?direct&200|}} 
 + 
 +次にフィールドの設定で\\ 
 +{{:cms:drupal:upgrade8:d8-ref-7.png?direct&400|}} {{:cms:drupal:upgrade8:d8-ref-8.png?direct&200|}} 
 + 
 +デフォルト値が選択式(セレクト)になるためには、あとで、フィールドの管理 ではなく、フォームの表示管理 で選べるようになる。 
 + 
 +{{:cms:drupal:upgrade8:d8-ref-9.png?direct&500|}} 
 + 
 +===== viewを作成 ===== 
 +最初、viewばっかりいじって頑張っていたのだが、コンテンツ見たらフィールドがないことがわかったから、あとからフィールドを作ったら、うんとあっさりいった。 
 + 
 +{{:cms:drupal:upgrade8:d8-view-1.png?direct&600|}} 
 + 
 +フィルタ条件に、「掲載」と「子コンテンツ」要素を入れることと、そのコンテクスチャフィルター(意味わかってないんだけど)の設定をやるってことだ。 
 + 
 +{{:cms:drupal:upgrade8:d8-view-2.png?direct&600|}} 
  
  
cms/drupal/upgrade8/references.1641192578.txt.gz · 最終更新: 2022/01/03 15:49 by king