সামগ্রীর ধরণ বা ব্যবহারকারীর ভূমিকা দ্বারা উল্লম্ব ট্যাবগুলি অক্ষম করুন


10

কিছু ব্যবহারকারীর কেবলমাত্র এমন একটি ফিল্ডসেট সম্পাদনা করার ক্ষমতা থাকতে পারে যা নোড সম্পাদনা ফর্মের উল্লম্ব ট্যাবগুলিতে প্রদর্শিত হয়। এই জাতীয় ক্ষেত্রে উলম্ব ট্যাব ব্যবহার করা নিখুঁত বলে মনে হচ্ছে যেহেতু বেছে নিতে কেবল একটি উল্লম্ব ট্যাব রয়েছে। স্ক্রিনশট দেখুন:

স্ক্রিনশট

সুতরাং, ব্যবহারকারী ভূমিকা দ্বারা উল্লম্ব ট্যাব অক্ষম করা সম্ভব? বা, ব্যতীত, নির্দিষ্ট সামগ্রীর ধরণের জন্য তাদের পুরোপুরি অক্ষম করবেন? আমার ব্যবহারের ক্ষেত্রে আমি কেবল চাই যে অবস্থানটি উল্লম্ব ট্যাবগুলিতে প্রদর্শিত না হয়।

আমি একসাথে রেন্ডারেবল ফিল্ডস এবং ফিল্ড গ্রুপ চেষ্টা করেছি তবে তারা ফর্মটি ভুলভাবে পরিচালনা করেছে (বগি, আমার মনে হয়)। ক্ষেত্রগুলি সাজান উল্লম্ব ট্যাবগুলি আলাদা করতে পারে না।


আপনি কি কখনও এটি ঠিক করেছেন? উবারকার্ট পণ্য ট্যাবে এটি করার চেষ্টা করছেন।
ডি

উত্তর:


7

এটি করার কয়েকটি উপায় রয়েছে:

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

  2. বা আপনার কাস্টম মডিউলটিতে নিম্নলিখিতগুলি যুক্ত করুন:

    $config['yourcontenttype_node_form'] = FALSE;
    variable_set('vertical_tabs_forms', $config);
    
  3. একটি স্যান্ডবক্স মডিউল যা উল্লম্ব ট্যাবগুলি অক্ষম করে

এখানে এই মূল সমস্যাটি এটি উল্লেখ করে।


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

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

হ্যা ঠিক আছে. অন্য কোনও বিকল্প না থাকলে আমি দেব সংস্করণটি ব্যবহার করার চেষ্টা করব। আপাতত এই খোলা ছেড়ে।
জে

আমি আরও বিকল্প দিয়ে আমার উত্তরটি পরিবর্তন করেছি।

1
তুমি ঠিক. আমি কেবল এটি চেষ্টা করেছি এবং এটি D7-তে যেমন কাজ করে না D6 তেও তেমন কাজ করে না। দুর্ভাগ্যক্রমে যদি রেন্ডারযোগ্য উপাদানগুলি কাজ না করে এবং আপনার নিজস্ব মডিউলটি বা স্যান্ডবক্স মডিউল ব্যবহার করে আপনি স্বাচ্ছন্দ্য বোধ করেন না তবে আমি আর নিশ্চিত নই।

6

আপনি উল্লম্ব ট্যাবগুলি দেখতে না দেওয়াতে # অ্যাক্সেস চেকটিও ব্যবহার করতে পারেন।

$form['additional_settings']['#access'] = FALSE;

কেবল একটি হুক ফর্মের পরিবর্তনের সাথে অথবা কোনও ফর্মের লোডিং এবং রেন্ডারিংয়ের মধ্যে যুক্ত করুন। এর পরে আপনি মার্কআপটি পেতে রেন্ডার ($ ফর্ম) কল করতে পারেন।


2

আমি ইতিমধ্যে উল্লিখিত থ্রেডে একটি সহজ সম্ভাব্য সমাধান লিখেছি: https://drupal.org/node/1048644#comment-7822687 । সুবিধার জন্য, আমি এটি এখানে আটকান।

কোনও ফর্মের উপর উল্লম্ব ট্যাবগুলি অক্ষম করার একটি সহজ উপায় আছে, কেবলমাত্র $form['additional_settings']['#type']ভেরিয়েবলের মান হুক_ফর্ম_াল্টার () বা হুক_ফর্ম_এফএমএম_আইডি_এলটার () এর'fieldset' প্রয়োগের ক্ষেত্রে পরিবর্তিত করে , যদি এটির সমান হয় । আপনার অ্যাক্সেস সেটিংস পরিবর্তন করার বা পুনরাবৃত্তভাবে পুরো অ্যারে চলার দরকার নেই , পরেরটি অহেতুক অত্যধিক সংস্থান গ্রহণ করে। (দ্রুপাল .2.২৩ এ পরীক্ষিত ।)'vertical_tabs'
$form

/**
 * Disable Vertical tabs on a form with simply changing the value of $form['additional_settings']['#type']
 * @see https://drupal.org/node/1048644
 */
function form_disable_vertical_tabs(&$form){
  // originally $form['additional_settings']['#type'] equals to 'vertical_tabs'
  if(isset($form['additional_settings']['#type']) && ($form['additional_settings']['#type'] === 'vertical_tabs')){
    $form['additional_settings']['#type'] = 'fieldset';
  }
}

/**
 * Implements hook_form_alter().
 */
function MYMODULEORTHEMENAME_form_alter(&$form, &$form_state, $form_id) {

  if($form_id == 'my_form_id'){
    // disable vertical tabs for this form
    form_disable_vertical_tabs($form);
  }
}

যে সব, অবশ্যই, বিকল্পMYMODULEORTHEMENAME আপনার নিজের মডিউল বা থিমের নাম (একটি আধুনিক করার template.phpফাইল), এবংmy_form_id আপনার ফর্মের আইডি।


আপনি কেবল সেই ব্যবহারকারীদের জন্য উল্লম্ব ক্ষেত্রগুলি অক্ষম করতে পারেন যাদের প্রশাসকের ভূমিকা নেই :

/**
 * Implements hook_form_alter().
 */
function MYMODULEORTHEMENAME_form_alter(&$form, &$form_state, $form_id) {

  global $user;
  $is_administrator = in_array('administrator', array_values($user->roles));

  if($form_id == 'my_form_id'){
    // if $user does NOT have the administrator role.
    if (!$is_administrator) {
      // disable vertical tabs for this form
      form_disable_vertical_tabs($form);
    }
  }
}

মামলা কেউ আগ্রহী হয়, আমি একটি প্যাচ সংযুক্ত করার জন্য (যার উপরে হিসাবে একই নয়) Dripman এর স্যান্ডবক্স মডিউল: # 2080739: প্রক্রিয়া সহজ শুধু পরিবর্তন উল্লম্ব ট্যাব অক্ষম পদ্ধতি $form['additional_settings']['#type']থেকে'fieldset'


দুর্দান্ত সমাধান, @ Sk8erPeter। আমি অবাক হয়েছি যে সম্ভবত '#access' = FALSE না করে অতিরিক্ত সেটিংসটি লুকিয়ে রাখা উচিত, কারণ এটি ডিফল্ট সেটিংস যেমন url ওরফে এবং প্রকাশিত স্থিতির দ্বারা নির্ধারিত মানগুলি হারায়।
জাভা

0

রেন্ডার-সক্ষম উপাদানগুলি বর্তমানে সমর্থিত নয়, এবং প্রকল্পের পৃষ্ঠায় স্বীকৃতি জানায় যে এটি অন্য কয়েকটি অবদানীকৃত মডিউলগুলির সাথে সংঘর্ষে লিপ্ত হয় তাই আমি প্রোডাকশন সাইটের জন্য এটির উপর নির্ভর করব না।

উল্লম্ব ট্যাবগুলি কীভাবে সম্পূর্ণ অক্ষম করবেন সে প্রশ্নটি এই থ্রেডে মোকাবেলা করা হয়েছে ।

ড্রিপম্যান সম্পূর্ণরূপে উল্লম্ব ট্যাবগুলি অক্ষম করতে একটি সাধারণ স্যান্ডবক্স মডিউল তৈরি করেছে ।

কোডিংয়ের সাথে আপনার কাঙ্ক্ষিত স্তরের উপর নির্ভর করে ড্রিপম্যানের মডিউলটি ক্ষেত্র / ভূমিকার ভিত্তিতে বাছাই করার জন্য সহজেই অনুকূলিতকরণযোগ্য হওয়া উচিত।

@Nicoz দ্বারা সংক্ষিপ্ত উত্তর দিয়ে ওভারল্যাপের জন্য ক্ষমা


0

আপনি মডিউলটি উল্লম্ব ট্যাবগুলির দৃশ্যমানতা ব্যবহার করতে পারেন ।

এই মডিউলটি বিষয়বস্তু প্রকারের অ্যাড / এডিট ফর্মগুলিতে উল্লম্ব ট্যাবগুলির দৃশ্যমানতা পরিচালনা করতে সহায়তা করে।

সামগ্রীতে উল্লম্ব ট্যাবগুলির দৃশ্যমানতা পরিচালনা করতে ফর্মগুলি যুক্ত / সম্পাদনা করুন। কেবল /admin/config/user-interface/vertical-tabs-visibility পৃষ্ঠাতে যান এবং সামগ্রীর ধরণ নির্বাচন করুন। নোড অ্যাড / এডিট ফর্মের উল্লম্ব ট্যাবগুলি পরীক্ষিত সামগ্রীর ধরণের জন্য অক্ষম করা হবে।

বর্তমানে মডিউলটি স্যান্ডবক্সে রয়েছে


0

আমার ব্যবহারের ক্ষেত্রে, আমি নোড সম্পাদনা ফর্মটিতে প্রকাশনা বিকল্প বিভাগে প্রয়োগ করা উল্লম্ব ট্যাবগুলি অক্ষম করার চেষ্টা করছিলাম (যেহেতু এটির একমাত্র ফিল্ডসেট ছিল যা ব্যবহারকারীদের একটি নির্দিষ্ট সেটের অ্যাক্সেস ছিল):

// Place somewhere in MYMODULE_form_alter()...
$form['additional_settings']['#type'] = 'fieldset';
$form['additional_settings']['#collapsible'] = FALSE;
$form['options']['#collapsible'] = FALSE;

ব্যাখ্যা জন্য, না শুধুমাত্র আপনি সেট করতে হবে additional_settings #collapsibleমিথ্যাতে, অবশ্যই মধ্যে যে কোনো উপাদানগুলিকে #collapsible আছে set toমিথ্যা , in my case that was theoptions` উপাদান।

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