আমি ওয়েবফর্ম ৪ ব্যবহার করছি It এটি ড্রুপালের টোকেন ব্যবহার করে, এটি নিজস্ব% টোকেন যেমন সংস্করণ 3 তে ব্যবহার করে না, এবং আমি যা পেয়েছি তা ওয়েবফর্ম 3 সম্পর্কে।
বলুন আমি বহু-পৃষ্ঠা সাবস্ক্রিপশন ফর্ম তৈরি করতে চাই। প্রথম পৃষ্ঠায় কেবল একটি ইমেল ক্ষেত্র রয়েছে। দ্বিতীয়ত, আমি একটি মার্কআপ চাই যা এরকম কিছু বলবে:
Molot@example.com এর জন্য বিশদ সাবস্ক্রিপশন কনফিগারেশন
একইভাবে, আমি এগুলি ভবিষ্যতের ক্ষেত্রগুলির জন্য পূর্ববর্তী মান হিসাবে বিলিং ঠিকানার জন্য ব্যবহারকারীকে জিজ্ঞাসা করা, এবং তারপরে সরবরাহের ঠিকানা হিসাবে ব্যবহার করতে সক্ষম হতে চাই।
এর জন্য কি কোনও টোকেন রয়েছে? আমি আপাতত যা করেছি তা হ'ল:
function mymodule_token_info() {
$type = array(
'name' => t('Webform submitted values'),
'description' => t('Tokens related to $_POST[\'submitted\'].'),
);
$tokens = array();
if(isset($_POST['submitted'])) {
foreach($_POST['submitted'] as $key => $val) { //discard $val now
$tokens[$key] = array(
'name' => $key,
'description' => "\$_POST['submitted']['$key']",
);
}
}
return array(
'types' => array('webform_submitted' => $type),
'tokens' => array('webform_submitted' => $tokens),
);
}
function mymodule_tokens($type, $tokens, $data, $options) {
if($type == 'webform_submitted') {
$replacements = array();
foreach ($tokens as $name => $original) {
//Hide errors below. We don't care if it really exists yet. If empty, so be it.
@$replacements[$original] = (string)$_POST['submitted'][$name];
}
return $replacements;
}
}
এটি কাজ করে, তবে এটি কেবল এক ধাপ আগে থেকেই মানগুলি দেখায়, তাই একাধিক পদক্ষেপে ইমেল মান বহন করার জন্য লুকানো ক্ষেত্রগুলি সহ কিছু নোংরা কৌশলগুলি প্রয়োজন। আমি স্বীকার করি - এটি কেবল দ্রুত এবং নোংরা ছিল। এটি করার কোনও অন্তর্নির্মিত উপায় আছে, বা এর জন্য অবদানযুক্ত মডিউলটি সঠিকভাবে বজায় রাখা আছে ? অথবা এই কোডটি স্বাধীনভাবে কাজ করার কোনও উপায় $_POST['submitted']
, এটিকে বহু পদক্ষেপের মধ্য দিয়ে মান বহন করা এবং সম্পাদনা উইন্ডোতে টোকেন তালিকায় (উপলব্ধ ওয়েবফর্ম উপাদানগুলি থেকে) দৃশ্যমান করার উপায়?