Podmioty w Drupal 7

13

Co to są byty Drupal w Drupal 7? Rozumiem, że Drupal Commerce zbudował Produkty jako Podmiot. Wiem, że istnieje podstawowy interfejs API Entity i dodatek contrib do interfejsu API Entity.

W tym roku mam kilka projektów, w których chciałbym korzystać z Drupala 7, NoSQL i ewentualnie interfejsu API Entity, jeśli wymaga tego - ale mam problem z ustaleniem, gdzie byłby potrzebny.

Zakładając, że budujesz witrynę z ogłoszeniami o pracę - zadanie niekoniecznie przypomina treść węzła, czy mógłbyś / zrobiłbyś to bytem?

Ponadto, czy nadal możesz uzyskać możliwość rozmowy z modułami z Entity i jak to się robi? Na przykład jednostka ogłoszenia o pracy zostaje aliasowana za pomocą Pathauto i widoczna w widokach, a także wyświetlana w mapie witryny XML.

Kevin
źródło

Odpowiedzi:

9

Encja to struktura danych zdefiniowana przez hook_entity_info () i może być zmienna na pole, co oznacza, że ​​możesz dodawać do nich pola.

W Drupal 7 Core węzły, użytkownicy, komentarze, słowniki i warunki to podmioty.

W Contrib jest wiele innych, na przykład prywatne wiadomości i handel, jak kilkanaście;)

Myślę jednak, że oferty pracy są w porządku jak węzły :) Jednostki nie mają automatycznie integracji Pathauto (Tokeny), Widoki itp.

Berdir
źródło
9

Encje to meta poziom powyżej węzłów, użytkowników itp.

Zasadniczo, jeśli spojrzysz na D6, istnieje wiele zduplikowanych modułów i funkcjonalność w tego typu rzeczach. Na przykład istnieją moduły do ​​dołączania pól cck do użytkowników i warunków taksonomicznych.

W D7 podjęto decyzję, aby traktować je w ten sam sposób, architektonicznie, więc jeśli masz moduł, który robi coś z jednostkami, powinien działać dla węzłów, terminów i użytkowników.

W poprzednich wersjach Drupala moduł taki jak Commerce miałby dwie opcje, aby zbudować niestandardowy typ węzła lub całkowicie wyjść z wewnętrznych systemów Drupala i zdefiniować własny typ rzeczy. W przypadku encji można opisać Produkt jako rodzaj rzeczy, różny od istniejących typów, ale nadal korzystać z funkcji takich jak pola w ich składzie.

Zakładając, że budujesz witrynę z ogłoszeniami o pracę - zadanie niekoniecznie przypomina treść węzła, czy mógłbyś / zrobiłbyś to bytem?

Mógłbyś. Myślę, że powinieneś uważać na zbyt szybkie tworzenie bytów rzeczy. Często niestandardowe typy węzłów będą nadal robić to, co chcesz. Czy zadanie wymienia inny rodzaj rzeczy niż węzeł, czy może jest to węzeł o specjalnych właściwościach?

Jeremy French
źródło
3

Zacząłem używać encji w kilku moich projektach do rzeczy, które tak naprawdę nie były „treścią”. Używamy ich do rzeczy, w których tak naprawdę nie obchodzi nas, kiedy to zostało opublikowane lub kto był autorem.

Prawdziwe korzyści z definiowania jednostek są, jeśli opracowujesz własne niestandardowe moduły. Otrzymasz ładną strukturę stołu i garść dobroci Drupala (Fieldability, integracja widoków, ...) za darmo. Nie musisz już tworzyć własnych niestandardowych struktur tabel ani modernizować typu węzła zgodnie z własnymi potrzebami. Podoba mi się również ich lekkość, więc jednostki pod względem wydajności powinny być lepsze. Jeśli wykonałeś jakieś zapytania w D6 z węzłami, zrozumiesz, co mam na myśli.

PPC-Coder
źródło
1

Węzły, użytkownicy, taksonomie są przykładami bytów Drupala. Główną cechą jednostki jest to, że można ją przypisać do innych jednostek: użytkownik jest powiązany z węzłem, a systematykę można przypisać do węzłów i użytkowników.

Jeśli to, co opisujesz jako zadanie, można przypisać do użytkownika lub węzła, uczyniłbym to bytem. Jeśli to, co możesz „zlecić”, jest tylko typem treści, nie uczyniłbym tego bytem.

kiamlaluno
źródło
1

Jeśli chcesz powiedzieć, że w kilku słowach, możesz powiedzieć, że en byt to po prostu fragment danych, o którym Drupal jest świadomy i można go przechowywać w dowolnym miejscu.

Haza
źródło