Drupal, bir düğümün gövdesinin içeriğini nerede saklar?


48

Düğüm tablosunda, gerçek gövde dışındaki her şeyi bulacaksınız. Bu gövde metnini nerede bulabilirim? Sanırım bir yerlerde bir damla gibi saklanıyor.


Bir düğümün tüm alanlarının Drupal 7'de nerede depolandığını anlamak için: bkz. Drupal.stackexchange.com/questions/68515/…
pençeleri

Yanıtlar:


38

Burada çalışan bir drupal kurulumum yok, ancak birkaç hafta önce bu soruyu kendime sordum ve cevabı bulmam zaman aldı.

Doğru hatırlıyorsam, düğümün gövdesi düğümün "revizyonlarını" tutmak için kullanılan tabloda saklanır. Adının ne olduğundan emin değilim, ancak "node_revision" veya "node_revisions" gibi bir şey olmalı.


4
doğru. öyle node_revisions.body

Sadece eklemek için ... düğümün gövdesini ayırmanın amacı, dev'lerin istedikleri kadar farklı içerik türü oluşturmalarını sağlamak ve tüm node_id'leri içeren tek bir tabloya sahip olmalarını sağlamaktır. Gövde içeren revizyonlar ayrı masalardadır.
Randell

Webdevgeeks.com bağlantısı koptu.
programcı

Bu cevap hangi drupal sürümü için doğru?
pençeleri

1
@claws, bu cevap Drupal 6 içindir, Drupal 7 için vücut alanı field_data_body tablosuna kaydedilir.
Yogesh

53

Drupal 7'de vücut field_data_body tablosuna taşındı.


2
Drupal 7 sitemde içeriğimin gövdelerini "field_data_body" ve "field_revision_body" tablolarında görebiliyorum.
programcı

Bu yalnızca bir gövde alanı içeren içerik türleriniz varsa geçerlidir (diğer tüm başlık olmayan alanlarla aynı). Örneğin anketlerde bir yok.
Scott Evernden

1
Tam olarak doğru değil. Gövde metni, valuebir alanın sütununda saklanır body. Bu , varsayılan olarak tablonun body_valuesütununda saklanır field_data_body. Ancak, hiçbir şey kullanımınızı durduramaz, MongoDB'nin verileri bodyalanda depolamak için söylemediğini söyleyin (neredeyse hiçbir şey: standart profil SQL'de oluşturur, bu nedenle daha sonra acı veren bir geçişi kaydetmek için MongoDB kullanmak istiyorsanız daha az kullanın).

Bir düğüm ve arasındaki ilişki nedir field_data_body? İkincisi yok nidveya vidsütun var (en azından bu isimde değil)
Patlama Hapları

Field_data_body içinde nid düğümü tablosundan nid referansı olan bir columity entity_is var
yenilikçi kundan


8

Drupal 6'da, düğümün gövdesinin içeriği, 'vücut' alanının altındaki 'düğüm_evizyonları' tablosuna kaydedilir.

node_revisions.body

Drupal 7'de, düğümün gövdesinin içeriği 'body_value' alanının altındaki 'field_data_body' tablosunda kaydedilir. İçerik revizyonlarının olması durumunda, 'body_value' alanının altındaki 'field_revision_body' tablosundaki verileri de kaydeder.

field_data_body.body_value

field_revision_body.body_value

Drupal 8'de, düğümün gövdesinin içeriği, 'body_value' alanı altındaki 'düğüm__body' tablosuna kaydedilir. İçerik revizyonlarının olması durumunda, verileri 'body_value' alanının altındaki 'node_revision__body' tablosunda da kaydeder.

node__body.body_value

node_revision__body.body_value


5

İçerik türünüzün gövde içeriği kaydedildi field_data_bodyve field_revision_bodytablolar.


2

Kullanacağınız SQL (MySQL istemcisi):

SELECT node.nid,node.vid,type,node.title, body 
FROM node join node_revisions ON node.nid = node_revisions.nid
WHERE node.title = 'some title';

Yani evet, cevap Drupal 6'daki "node_revisions" tablosu.


2

Drupal 7'de, düğüm gövdesi field_data_body ve field_revision_body içinde bulunur. CCK kullanılarak eklenen yeni alanlar (Drupal 7'deki çekirdeğe eklenir) field_config ve field_config_instance içinde bulunur. Drupal6'da, düğüm gövdesi node_revisions'de depolanır ve oluşturulan alanlar content_node_field ve content_node_field_instance konumunda saklanır.


1

Ben birkaç yeni içerik türleri oluşturduk ve onlar için, vücut veya açıklaması tablonun sütun field_description_value gider yeni içerik türünün adıdır.content_type_<type_name>type_name


1

Drupal 7'de onun field_revision_body .. içinde bu tabloyu tanımlarsanız Vücut özeti için bir sütun ve uzun metin türü göreceksiniz.

Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.