আমি একটি সিটিউলস প্যানেল সামগ্রী সামগ্রী তৈরি করছি (অর্থাত্ বিষয়বস্তু যুক্ত করার সময় আপনি প্যানেলে thingোকান এমন জিনিস, কোনও ধরণের নোড নয়) এবং আমি #ajax
কিছু ডিফল্ট মান সেট করতে একটি ফর্ম আইটেমের বৈশিষ্ট্যটি ব্যবহার করার চেষ্টা করছি । নীচে কোড দেখুন।
এটি সামগ্রীর ধরণের my_module_content_type_edit_form($form, &$form_state)
কলের ভিতরেই রয়েছে ।
$form['link_type'] = array(
'#type' => 'radios',
'#title' => t('Link Type'),
'#ajax' => array(
'callback' => 'my_module_set_target'
),
'#default_value' => empty($conf['link_type']) ? '_blank' : $conf['link_type'],
'#options' => array('none'=>t('No Link'), 'internal'=>t('Internal Link'), 'external'=>t('External Link'), 'document'=>t('Document Link')),
);
আমার কলব্যাকটি নিম্নলিখিত।
function my_module_set_target($form, $form_state) {
watchdog("Test", "Testing callback", array(), WATCHDOG_ALERT);
$form['link_target']['#default_value'] = '_parent';
return $form['link_target']['#default_value'];
}
আমি যে রিটার্নের প্রস্তাব দিচ্ছি তা আসলে কাজ করবে কিনা তা নির্বিশেষে, watchdog()
এমনকি কাজ করে না।
আমি জানি সিটুলস এজেএক্সের সাথে কিছু অদ্ভুত স্টাফ করে, তবে এটি এত অদ্ভুত হতে পারে না। আমি যা করতে চাই তা কীভাবে করব সে সম্পর্কে আপনার কোনও ধারণা আছে?
ধন্যবাদ!
বিকল্পভাবে: পূর্ববর্তী ফর্ম বিকল্পের মানের ভিত্তিতে আমি কীভাবে একটি ডিফল্ট মান সেট করব?
আমি কীভাবে এটি করব তা বুঝতে পেরেছি, তবে এটি কিছুটা হ্যাকি - আপনি প্রতিটি নির্ভরতার কাঁটাচামচের জন্য নতুন ফর্ম ক্ষেত্র তৈরি করেন। এরপরে আপনি hook_content_type_edit_form_submit()
উপাদানগুলির সাথে একত্রিত করতে পারেন , যেকোন একটি উপাদানটির জন্য চয়ন করা মানের সাথে সামঞ্জস্য করে যা প্রাথমিকভাবে সবকিছু ফোরক করে।
আমি প্রশ্নটি উন্মুক্ত রেখে চলেছি কারণ আমি (এবং, প্রকৃতপক্ষে, প্রতিটি প্রোগ্রামার যার সাথে আমি কাজ করছি) এই প্যানেল সামগ্রী প্রকারের সম্পাদনা ফর্মগুলির মধ্যে সত্যই AJAX ব্যবহার করার ভাল উপায় চাইছি।
আপডেট: মনে হচ্ছে আপনি # সংযুক্ত সঙ্গে স্টাফ করতে পারবেন না, হয়ও।
$form['link'][$i] = array(
'#type' => 'fieldset',
'#title' => t('Link #@num', array('@num' => $i)),
'#collapsible' => TRUE,
'#collapsed' => TRUE,
'#attached' => array(
'js' => array(
'alert("Yay.");', 'inline'
),
)
);
ctools_add_js();
বা drupal_add_js();
শেষে সফলভাবে যুক্ত করতে সক্ষম হয়েছি hook_content_type_edit_form();
। আপনি যদি কেবল সাধারণ ইউআই-সম্পর্কিত স্টাফ করছেন তবে মনে হচ্ছে এটি সেরা কল হতে পারে (কমপক্ষে কেউ এই প্রশ্নের সঠিকভাবে উত্তর না দেওয়া পর্যন্ত)।