কোনও ক্ষেত্রের মাধ্যমে নোড সম্পর্কিত ফাইলের বিষয়বস্তু ধরে রাখা সহজেই এটি ব্যবহার করে EntityMetadataWrapper
:
$wrapper = entity_metadata_wrapper('node', $node);
$images = $wrapper->field_images;
সুতরাং এটি দুর্দান্ত। তবে আমি স্ট্যান্ডার্ড ফাইল অবজেক্টের কয়েকটি বৈশিষ্ট্য ব্যবহার করতে চাই এবং সেগুলি উপলভ্য নয়। আমি যখন $images[0]->file
উপরের কোডটি ব্যবহারের জন্য উপলব্ধ বৈশিষ্ট্যগুলি দেখি, তখন আমি এগুলি দেখতে পাই:
- গোঁজ
- নাম
- মূকাভিনয়
- আয়তন
- URL
- টাইমস্ট্যাম্প
- মালিক
সবচেয়ে উল্লেখযোগ্যভাবে, uri
অনুপস্থিত এবং এর জায়গায় একটি url
সম্পত্তি রয়েছে যা চিত্র ফাইলের সম্পূর্ণ বাহ্যিক URL। আমি এই চিত্রগুলি তাদের ইউআরআই (থাম্ব ইত্যাদি তৈরি করুন) এর মাধ্যমে পরিচালনা করতে চাই, তাই আমি এটি করতেই বাকি রেখেছি:
$fid = $images[0]->file->fid->value();
$uri = file_load($fid)->uri;
যা EntityMetadataWrapper
প্রথম স্থানে একটি ব্যবহারের পুরো বিন্দুটিকে অস্বীকার করে বলে মনে হচ্ছে ।
আমি কী মিস করছি? মোড়ানো ফাইল অবজেক্টে ইউআরআই কোথায়? যদি এটি উপলভ্য না হয় তবে ভাল এবং খাঁটি সব কিছুর ভালবাসার জন্য কেন ?!
আমি সচেতন আমি ইউআরআইতে আবার ইউআরএল ডিকনস্ট্রাক্ট করতে পারি, তবে এটি খুব অপ্রয়োজনীয়ও বোধ করে।
hook_entity_property_info_alter()
" তবে এটি ঠিক আছে, কেবল জানতে চেয়েছিলেন
entity_metadata_system_entity_property_info()
, যেখানে একগুচ্ছ নতুন সম্পত্তি সন্ধান করা হবে $info['file']['properties']
। আমি বাজি রাখতে রাজি যদি ফাইল_এন্টিটি সেখানে থাকে যে অ্যারে ইতিমধ্যে সেখানে সত্তার সম্পত্তি থাকবে themselves
uri
সেখানে ফাইল_েন্টিটি রয়েছে।