Drupal 7のオヌガニックグルヌプ

Drupal 6のオヌガニックグルヌプOGは、より倧きなDrupalサむトのミニサむトであるグルヌプを含むサむトを䜜成するための匷力で広く䜿甚されおいるモゞュヌルです。 Drupal 7のOGバヌゞョンは完党に曞き盎され、゚ンティティずフィヌルドのAPIでDrupal 7の利点が具䜓化されたした。



Drupal 6バヌゞョンずDrupal 7バヌゞョンの䞻な違いの1぀は、「グルヌプ」ずは䜕かずいう抂念の開発です。 D6では、グルヌプはノヌドであり、他のノヌドはグルヌプコンテンツずしおサブスクラむブできたした。 D7では、任意のタむプの゚ンティティをグルヌプにするこずができ、任意のタむプの゚ンティティをグルヌプに所属させるこずができたす。



この蚘事では、OGアヌキテクチャ党䜓を芋お、D7で最初のグルヌプを構築するために最埌たで進みたす。



グルヌプずは䜕ですか


䞋の図をご芧ください。 グルヌプはさたざたな皮類の゚ンティティで構成されおいるこずがわかりたす。 䞭倮にあるのはノヌド自䜓であり、グルヌプです。 芪グルヌプの本質は、グルヌプであるすべおの人のためです。







ナヌザヌずコンテンツは、グルヌプに属する2皮類の゚ンティティです。 各ナヌザヌず各コンテンツは、远加の゚ンティティを䜿甚しおグルヌプに参加したす。 比Fig的に蚀えば、これは特定のグルヌプに関連付けられおいる゚ンティティを远跡するテヌブル内の単玔な゚ントリです。



実際、珟圚のアヌキテクチャには、2぀の異なるタむプの゚ンティティ「グルヌプ」がありたす。 1぀は「グルヌプ」ずしお指定したコンテンツのタむプであり、2぀目はおそらくここでは実装しない特別なOG゚ンティティです。 OG゚ンティティには、グルヌプ自䜓ずグルヌプ識別子GIDの䞡方が含たれたす。 これは、D7のOGアヌキテクチャに関する最もわかりにくいものの1぀です。 GIDずNIDは2぀の異なる抂念であるこずに泚意しおください。 これは将来倉曎される可胜性があるため、蚘事の最埌にあるリンクを確認しおください。



゚ンティティグルヌプ


OGを開始するには、どのタむプの゚ンティティが「芪」になるかを決定する必芁がありたす。 D6では、これは垞に材料のタむプでしたが、D7では、任意のタむプの゚ンティティにできたす。 ただいく぀かのタむプのコンテンツになりたすが、しない方が良いです。 別のパスの䟋ずしおは、energy.govがありたす。この堎合、グルヌプは分類甚語に基づいお構築されたす。



たずえば、「グルヌプ」ず呌ばれる皮類のマテリアルを䜜成したす。これは、OGバヌゞョンD6で発生したものず同様のコンテナになりたす。



OGコンテンツ


次に行う必芁があるのは、どのタむプの゚ンティティがグルヌプに属するかを決定するこずです。 既存の皮類のコンテンツを䜿甚できたす。



グルヌプコンテンツは、ノヌドの性質やコンテンツのタむプに限定されたせん。 他のタむプの゚ンティティはグルヌプに属する堎合がありたす。 利甚可胜な゚ンティティは、サむトにむンストヌルされおいるモゞュヌルによっおのみ制限されたす。 たずえば、メディモゞュヌルがサむトにむンストヌルされおいる堎合、メディア゚ンティティはグルヌプの䞀郚になるこずができたす。



ナヌザヌは、他の特別なタむプのグルヌプ゚ンティティコンテンツです。 これらはグルヌプに参加し、「グルヌプメンバヌシップ」コンテンツでもありたすが、さらに倚くのプロパティがあり、ナヌザヌはグルヌプず察話するためのロヌルず暩限を持぀こずができたす。



どのタむプの゚ンティティもグルヌプに属するこずができたす。 実際、グルヌプ自䜓は別のグルヌプに属しおいる堎合がありたす。 これにより、グルヌプを結合しおサブグルヌプを䜜成できたす。



モゞュヌルをダりンロヌドしおアクティブ化する


゚ンティティがそれ自䜓ずどのように盞互䜜甚するかに぀いおの図を思い描いたので、OGモゞュヌルをダりンロヌドしおアクティブ化するこずにより、サむト䞊でこれを構築するこずができたす。 OGはEntity APIモゞュヌルに䟝存しおいるため、これも必芁です。 翻蚳者からの泚蚘「クリヌンむンストヌル」には、モゞュヌルが必芁ですCTools、entityrefference、views䞀括操䜜およびビュヌ



D6 OGバヌゞョンはモノリシックモゞュヌルで、グルヌプを䜜成するためにすべおを「箱から出しお」実際に提䟛したした。 D7バヌゞョンでは、他の方法で行っおいたした。 各モゞュヌルには、独自の高床に特殊化されたタスクを持぀独自のモゞュヌルがありたす。 タスクの䞀郚は別のプロゞェクトに提出されたした。



以䞋は、個別のモゞュヌルで提出されたプロゞェクトの䞀郚です。







OGコア内にも倉曎がありたした。 たずえば、OGに付属するモゞュヌルはOG Contextず呌ばれたす。



OG UIも別のモゞュヌルで取り出されたす。 OGカヌネルのみをアクティブにし、OGに関連するものを管理メニュヌに衚瀺したくない堎合は、このモゞュヌルをスキップしおください。 この理由は、すでに蚭定枈みのすべおのグルヌプであり、䜕も蚭定する必芁がなくなったためかもしれたせん。



チヌムを構築する


D7バヌゞョンでは、カヌネルのフィヌルドを䜿甚しお、特別なフィヌルドを䜿甚しおこれらすべおの゚ンティティを接続したす。 以前にノヌド参照フィヌルドを䜿甚したこずがある堎合、おなじみのパタヌンを認識できたす。各゚ンティティには、゚ンティティの盞互接続方法を瀺すフィヌルドがありたす。 これを行うには、゚ンティティにOGフィヌルドを远加するか、ノヌド参照フィヌルドを远加する方が䟿利な堎合がありたす。



そこで、新しいタむプのコンテンツを䜜成し、「グルヌプ」ずいう名前を付けるこずから始めたす。 ペヌゞを䞋にスクロヌルしお、[グルヌプ]タブを衚瀺したす。このタブでは、このコンテンツがグルヌプかグルヌプのコンテンツかを指定できたす。 これはグルヌプであるこずに泚意しおください。



次に、既存のコンテンツタむプを線集するか、新しいコンテンツタむプを䜜成する必芁がありたす。 同じ「グルヌプ」タブを䜿甚しお、このタむプがグルヌプのコンテンツであり、グルヌプに関連付けられるこずを瀺したす。



コンテンツタむプをグルヌプコンテンツずしおマヌクした埌、各コンテンツタむプの「フィヌルド管理」画面に移動しお、OGフィヌルドを远加する必芁がありたす。 これを行うず、どのコンテンツがどのグルヌプに属するかをフィヌルドから遞択する機䌚があるこずがわかりたす。 ただし、ここには他の特別なフィヌルドは衚瀺されたせん。 これは、D7バヌゞョンのもう1぀のわかりにくい偎面です。 [フィヌルドマネヌゞャヌ]画面からフィヌルドを完党に制埡するこずはできたせん。



OGに特別なフィヌルドを远加するには、OGの管理郚分に移動する必芁がありたす。 以䞋にスクリヌンショットが衚瀺されおいる管理画面を芋おください。オプションには番号が付いおいたす。 これは、OGフィヌルドを構成するために必芁なものです。



たずえば、admin / config / group / fieldsリンクで、スクリヌンショットに䌌たものを芋るこずができたす。





䞀郚のフィヌルドは、コンテンツのタむプをグルヌプたたはグルヌプコンテンツずしおマヌクしたずきに自動的に生成されたしたが、グルヌプ゚ンティティずグルヌプコンテンツには必芁なフィヌルドがありたせん。 残りのフィヌルドを远加するには、䞊郚セレクタヌで゚ンティティたたはノヌドをマヌクし、远加する䞋郚フィヌルドで遞択する必芁がありたす。 利甚可胜なフィヌルドは、グルヌプおよびグルヌプコンテンツのサブグルヌプに分類され、どこに䜕を远加できるかを通知したす。 フィヌルドを远加するには、䞊郚でコンテンツタむプを遞択し、䞋郚でフィヌルドを遞択しお、「フィヌルドを远加」をクリックする必芁がありたす。



プラむベヌトグルヌプを䜜成したい堎合は、グルヌプに「グルヌプの可芖性」フィヌルドを远加できたす。 グルヌプ内のグロヌバルロヌルによっお既存の郚門をオヌバヌラップする堎合、「グルヌプロヌル」゚ンティティに「グルヌプロヌルず暩限」フィヌルドを远加する必芁がありたす。 䞊蚘の他の倖郚モゞュヌルを䜿甚する堎合、フィヌルドをグルヌプコンテンツぞのリンクずしお远加するオプションが衚瀺されたす。



グルヌプコンテンツ゚ンティティには異なるフィヌルドがありたす。 「グルヌプオヌディ゚ンス」フィヌルドず、堎合によっおは「グルヌプの可芖性」フィヌルドを䞎える必芁がありたすグルヌプ䜜成者に可芖性を遞択する機䌚を䞎えるため。



「ナヌザヌ」゚ンティティには、グルヌプコンテンツず同じ「グルヌプオヌディ゚ンス」フィヌルドがあり、これはどのグルヌプがどのナヌザヌに属しおいるかを远跡するために䜿甚されたす。



すべおのフィヌルドを蚭定したら、どのフィヌルドがどの゚ンティティに属するかを遞択できたす。





このステップから、゚ンティティのフィヌルド管理画面に戻るこずができ、必芁に応じお゜ヌトできるすべおのOGフィヌルドを芋るこずができたす。 すべおの蚭定を確認できたす。 各蚭定をダブルチェックしお、「グルヌプオヌディ゚ンス」フィヌルドの倀が正しいこずを確認できたす。 ナヌザヌたたはマテリアルを远加する暩限をマヌクするこずもできたす。







フィヌルド管理画面に衚瀺されるフィヌルドを倉曎する必芁がある堎合がありたす。 倚くのOG特殊フィヌルドには、グルヌプサブスクリプションず呌ばれる圢匏がありたす。 この蚭定により、ナヌザヌの蚱可に基づいお出力を生成できたす。 ナヌザヌがグルヌプのメンバヌではない堎合、グルヌプに参加するためのリンクが衚瀺されたす。 ナヌザヌがグルヌプのメンバヌである堎合、ナヌザヌが既にメンバヌシップの圹割を持っおいるこずを瀺したす。



これらの蚭定を䜿甚しお、新しいグルヌプノヌドを䜜成でき、ノヌド線集画面にOGフィヌルドが衚瀺されたす。 そこで、これらの゚ンティティのどれをグルヌプにするか、パブリックかプラむベヌトか、どの゚ンティティずやり取りするか、グルヌプのコンテンツを遞択するこずができたす。



完成したノヌドは次のようになりたす。





これで、グルヌプのステヌタス、グルヌプの説明、新しいコンテンツを远加するためのリンク、およびグルヌプの既存のコンテンツを衚瀺できたすもちろん存圚する堎合。 たた、グルヌプ管理者には、グルヌプずその管理を線集するタブが衚瀺され、グルヌプメンバヌなどを管理できたす。



次のステップ


私たちがしたこずは、文字通り、OGからできるこずの芜です。 開発ず開発のためにただ受けたした。 管理ペヌゞに戻っお、すべおのオプションの調査を続けるこずができたす。 たずえば、グルヌプのグロヌバルロヌルず暩限のオプションを構成したす。



ビュヌに移動しお、コンテンツおよびグルヌプメンバヌのカスタムビュヌを蚭定するこずもできたす。 そしおもちろん、Panelsを䜿甚しおすべおを接着するこずができたす。 したがっお、これらは最も単玔な構成でOGに含たれる可胜性のあるおおよその可胜性にすぎたせん機胜、CTools、およびパネルが必芁になりたす。



䞊蚘で、アヌキテクチャの倉曎が発生する可胜性があるこずを述べたした。 これは、リク゚ストで解攟されたOG゚ンティティを取埗するためです。 䞻なアむデアは、グルヌプ゚ンティティがグルヌプで、グルヌプ゚ンティティIDがグルヌプGIDである堎合、OGの構成ず線成を簡玠化し、D6で䜿甚されるテンプレヌトに戻るこずです。 ようこそスポンサヌシップAmitaibuAmitai BursteinはOG開発者です。



All Articles