আমি আমার উত্তরটি /programming/8124089/get-value-of-custom-user-field-in-drupal-7-template থেকে এখানে পোস্ট করছিলাম যেহেতু আমি মনে করি এটি একটি বিকল্প সমাধান। এই উদাহরণটি দেখায় যে কীভাবে ডিফল্ট ব্যবহারকারীর পরিবর্তে ফিল্ড_রিয়াল_নাম ব্যবহার করা যায়।
আপনি যদি প্রিপ্রোসেস ফাংশন ব্যবহার করেন তবে বৈশ্বিক $user
অবজেক্টে টান দেওয়ার দরকার নেই । আপনি যে $variables['name']
কাস্টম ফিল্ডটি আমি কল করেছি তার মধ্যে আপনি $ ভেরিয়েবল অ্যারেতে ক্ষেত্রটি পরিবর্তন করতে পারেন field_real_name
। $variables
অ্যারেতে আপনার অ্যাক্সেস রয়েছে , সুতরাং আপনি এটির সাথে ব্যবহারকারীর তথ্য পেতে পারেন - এটি ইউইডের সাথে সম্পর্কিত তথ্য লোড করবে ( টেমপ্লেট_প্রেমপ্রসেস_উজারনেম দেখুন ):
function mythemename_preprocess_username(&$variables) {
$account = user_load($variables['account']->uid);
...more code will go here in a moment
}
যদি আপনি dpm($account)
(বা kpr($account)
আপনি যদি ডেভেল ব্যবহার না করেন) আপনি দেখতে পাবেন যে আপনার কাছে বৈশ্বিক $user
অবজেক্টটি ব্যবহার না করে ব্যবহারকারীর সমস্ত তথ্যে অ্যাক্সেস রয়েছে ।
তারপর আপনি আউটপুট পরিবর্তন করতে পারেন $variables['name']
আপনার হতে field_real_name
নিম্নরূপ:
function mythemename_preprocess_username(&$variables) {
// Load user information with user fields
$account = user_load($variables['account']->uid);
// See if user has real_name set, if so use that as the name instead
$real_name = $account->field_real_name[LANGUAGE_NONE][0]['safe_value'];
if (isset($real_name)) {
$variables['name'] = $real_name;
}
}