Bir alandaki düğümlerle ilgili dosya nesnelerini elde etmek aşağıdakileri kullanarak kolaydır EntityMetadataWrapper
:
$wrapper = entity_metadata_wrapper('node', $node);
$images = $wrapper->field_images;
Bu harika. Ancak, standart dosya nesnesinin bazı özelliklerini kullanmak istiyorum ve kullanılabilir değil. $images[0]->file
Yukarıdaki kodu kullanarak kullanılabilir özelliklere baktığımda, bunları görüyorum:
- kama
- isim
- mim
- boyut
- uRL
- Zaman damgası
- sahip
En önemlisi, uri
eksiktir ve onun yerine url
görüntü dosyasının tam harici URL'si olan bir özellik vardır . Onların URI (başparmak oluşturmak, vb) aracılığıyla bu görüntüleri manipüle etmek istiyorum, bu yüzden bunu yapıyorum:
$fid = $images[0]->file->fid->value();
$uri = file_load($fid)->uri;
Hangi bir bütün olarak kullanım noktasını reddetmek gibi görünüyor EntityMetadataWrapper
.
Neyi kaçırıyorum? Sarılmış dosya nesnesindeki URI nerede? Eğer mevcut değilse, iyi ve saf her şeyin aşkı için neden olmasın ?!
URL'yi bir URI'ye geri yapılandırabileceğimin farkındayım, ancak bu da çok gereksiz geliyor.
hook_entity_property_info_alter()
" ise, sorun değil, sadece bilmek istedim
entity_metadata_system_entity_property_info()
, burada bir sürü yeni özellik tacked $info['file']['properties']
. Eğer file_entity orada dizi zaten varlık özellikleri kendilerini orada olurdu eğer bahis istekli. Kimse daha önce yapmadıysa, daha sonra veya yarın bir cevap yazmaya çalışacağım
uri
file_entity ile orada.