মাল্টি-পেজ ওয়েবফর্মের পূর্ববর্তী পদক্ষেপগুলি থেকে কীভাবে মানগুলি অ্যাক্সেস করবেন?


12

আমি ওয়েবফর্ম ৪ ব্যবহার করছি 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'], এটিকে বহু পদক্ষেপের মধ্য দিয়ে মান বহন করা এবং সম্পাদনা উইন্ডোতে টোকেন তালিকায় (উপলব্ধ ওয়েবফর্ম উপাদানগুলি থেকে) দৃশ্যমান করার উপায়?


আপনি যখন পৃষ্ঠায় পছন্দসই মান সহ পৃষ্ঠাটি জমা করবেন তখন আপনি একটি সেশন ভেরিয়েবল সেট করতে পারবেন?
দারভেনেন

@ ডারভেন সম্ভবত আমি পারলাম, তবে মানটি ইতিমধ্যে কোথাও সংরক্ষিত আছে, তাই না? সুতরাং আমি ইতিমধ্যে সেখানে ব্যবহার করতে পছন্দ করব। এবং আমি খুব কমই বিশ্বাস করি যে আমি এর প্রথম প্রয়োজন। সম্ভবত আমি সমাধান খুঁজে বের করতে ব্যর্থ যে সেখানে আছে?
মোআওট

আমি এই $ ফর্ম_স্টেট ['স্টোরেজ'] সম্পর্কে নিশ্চিত নই তবে আমি 2 বা 3 টি পোস্টে অনুসন্ধান করেছিলাম তারা $ ফর্ম_স্টেট ['স্টোরেজ'] এ সঞ্চিত সমস্ত ডেটা উল্লেখ করেছে তাই আমার মনে হয় আপনি ডেটা অ্যাক্সেস করতে পারবেন সোর্স স্ট্যাকওভারফ্লো / প্রশ্ন / 6408170 / ... এবং drupal.org/node/717750
বালা

2
@ বালা এটি সমস্ত হুকের রূপগুলিতে কাজ করে। তবে আমি কীভাবে টোকনে ফর্ম স্টেট পাব? মানে আমি এই কাজটি দুই সপ্তাহের মধ্যে ছেড়ে দিচ্ছি। যে লোক এই ফর্মটির যত্ন নেবে সে কোডার নয়, সে এটি করতে পারে তবে এটি তার প্রাথমিক দক্ষতা নয় - এজন্য আমার টোকেন দরকার need
মোয়াট

হ্যাঁ আপনি ভবিষ্যতের প্রয়োজনের জন্য উল্লেখ করেছেন আমি পুরোপুরি ভুলে গেছি।
বালা

উত্তর:


1

এটি আপনার শিরোনামে প্রশ্নের উত্তর দেয় না, তবে আপনার ব্যবহারের ঘটনাটি পড়লে এটি প্রোফাইল 2-র জন্য লেখা দৃশ্যের মতো মনে হয় । সম্পর্কিত স্ট্যাকওভারফ্লো পোস্ট

জরিপ এবং এ জাতীয় জন্য ওয়েবফর্ম দুর্দান্ত, তবে আপনি যখন "ভবিষ্যতের ক্ষেত্রগুলির জন্য এগুলি ডিফল্ট মান হিসাবে ব্যবহার করতে সক্ষম হতে চান" তখন তাদের ব্যবহারকারীর সাথে সংযুক্ত হওয়া দরকার। সুতরাং আপনার বিলিং ঠিকানার পরিবর্তনের পরিবর্তে এই মানগুলিকে টানতে ব্যবহারকারীর historicতিহাসিক ওয়েবফর্ম জমাটি আনতে আপনার আরও কাস্টম কোডের প্রয়োজন হবে। প্রোফাইলটি (2) এটিকে আরও সহজ করার জন্য অবিকল লেখা আছে।

এছাড়াও, এটিকে অন্য কারও হাতে তুলে দেওয়ার আগে আপনি যতটা কম মিনিটের কাস্টম কোডিং করছেন তা হ'ল, যখন তারা আপডেট করার চেষ্টা করছেন তখন অন্য কেউ তাদের অন্তরে আপনাকে অভিশাপ দেবে।


সমস্ত সূক্ষ্ম এবং সুন্দর, তবে এই ফর্মটি একটি প্রোফাইল ছিল না :( আমার অর্থ, আমরা সাবস্ক্রিপশন জিজ্ঞাসা করে এমন লোকেদের জন্য প্রোফাইল তৈরি করতে চাইনি। আপনি যখন আরও কঠোর আইন প্রয়োগ করেন তখন বিভিন্ন আইন প্রয়োগ হয় Or বা তাই আমি ছিলাম আইন বিভাগ জানিয়েছে, এছাড়াও, এখন একেবারেই সম্পর্কিত না হলে সম্পূর্ণ সম্পর্কিত ক্ষেত্রে এর জন্য আমার এটি প্রয়োজন :)
Mołot

ঠিক আছে, আপনার আইনী দল যা বলেছিল তা আকর্ষণীয়। নীচের লাইন, আপনি যদি ব্যবহারকারীর সাথে সংযুক্ত ডেটা সহ ফর্মগুলি প্রিপোপুলেট করতে চান তবে আপনার ব্যবহারকারীর সাথে সংযুক্ত ডেটা দরকার। প্রোফাইল মডিউলটি সেই ডেটা সক্ষমতা বজায় রাখার একটি সহজ উপায় এবং আপনি যে ফাংশনগুলির জন্য অনুরোধ করছেন তার জন্য একটি খুব কাছের ম্যাচ। সাইটের অনুমতিগুলি পরিবর্তন করুন যাতে কেউ প্রোফাইল দেখতে না পারে এবং এটি এখন আপনি যা চান ঠিক তেমনই তবে আরও মানক কোড সহ। মডিউলটির নাম প্রোফাইল হিসাবে রাখা হয়েছে তার অর্থ এটির মতো এটি স্থাপন করা উচিত নয়।
বিকাশকারীগণ

0

ভেরিয়েবলগুলি বিশ্বব্যাপী হিসাবে ঘোষণা করুন এবং তাদের মধ্যে_স্তাপ [মান] [] পাস করুন। এটি আমার জন্য সিটিউল মডেল পপআপ সহ বহু পর্যায়ের ফর্মগুলিতে কাজ করেছে।

আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.