মঞ্জুরিপ্রাপ্ত এইচটিএমএল ট্যাগগুলি পরিবর্তন করা হচ্ছে: সহায়তা পাঠ্যের ইনপুট ক্ষেত্রের জন্য @ ট্যাগ্স


11

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

Instructions to present to the user below this field on the editing form. Allowed HTML tags: a b big code del em i ins pre q small span strong sub sup tt ol ul li p br img

যদি কোনও সহজ উপায় না থাকে তবে এটি করার পরবর্তী সহজ উপায়টি কী?

হালনাগাদ:

ক্লাইভ কাস্টম মডিউলটি দিয়ে নীচে এটি করার দুর্দান্ত উপায় নিয়ে এসেছিল। নিম্নলিখিত সাহায্যে পাঠ্যটিকে সঙ্কুচিত করে তুলতে আপনি এই টোটুলগুলি ব্যবহার করে যুক্ত করতে পারেন:

// Implement hook_field_widget_form_alter()
function MYMODULE_field_widget_form_alter(&$element, &$form_state, &$context) {
  // If some condition is matched based on the element provided...
  if (isset($element[0]) && $element[0]['#field_name'] == 'field_test') {
    // Alter the description using your more permissive set of tags
    $reworked = filter_xss($context['instance']['description'], _MYMODULE_field_filter_xss_allowed_tags());
    $element[0]['#description'] = theme('ctools_collapsible', array('handle' => 'Help text', 'content' => $reworked, 'collapsed' => TRUE));
  }
}

// Provide a more permissive set of tags to be used with filter_xss()
function _MYMODULE_field_filter_xss_allowed_tags() {
  // Merge the new set of allowed tags with the less permissive defaults
  $new_tags = array('table', 'thead', 'tbody', 'tfoot', 'tr', 'th', 'td');
  return array_merge(_field_filter_xss_allowed_tags(), $new_tags);
}

আপনি কি কোনও পাঠ্য ক্ষেত্র (প্রশ্নের শিরোনাম) বা ফাইল ক্ষেত্র (প্রশ্নের বিবরণ) সম্পর্কে কথা বলছেন?
googletorp

@ 7 ওয়ান্ডার্স আপনি প্রশ্নের সাথে যা যুক্ত করেছেন তা উত্তর হিসাবে ভাল হবে।
কিমলালুনো

উত্তর:


7

এটি করার কোনও সহজ উপায় নেই, অনুমোদিত ট্যাগগুলির তালিকাটি _field_filter_xss_allowed_tags()ফাংশনে কঠোরভাবে কোডড ।

এটি field_filter_xss()ডেটাবেজে ডেটা সংরক্ষণ করার সময় নয় বরং এটি প্রদর্শিত হওয়ার সময় পরিবর্তিত বলে ডাকা হয় field_default_form()

ভাগ্যক্রমে একটি উপায় আছে তবে এটি করতে একটি ছোট কাস্টম মডিউল লাগবে। আপনি মূলত ক্ষেত্রের উইজেট ফর্মের জন্য একটি ফর্ম অল্টার হুক বাস্তবায়ন করতে দেখছেন এবং filter_xss()ট্যাগগুলির আরও অনুমোদিত সেট সহ উপাদানটির বিবরণটি সেট করতে পারেন ।

এই লাইন বরাবর কিছু:

// Implement hook_field_widget_form_alter()
function MYMODULE_field_widget_form_alter(&$element, &$form_state, &$context) {
  // If some condition is matched based on the element provided...
  if (isset($element[0]) && $element[0]['#field_name'] == 'field_test') {
    // Alter the description using your more permissive set of tags
    $element[0]['#description'] = filter_xss($context['instance']['description'], _MYMODULE_field_filter_xss_allowed_tags());
  }
}

// Provide a more permissive set of tags to be used with filter_xss()
function _MYMODULE_field_filter_xss_allowed_tags() {
  // Merge the new set of allowed tags with the less permissive defaults
  $new_tags = array('table', 'thead', 'tbody', 'tfoot', 'tr', 'th', 'td');
  return array_merge(_field_filter_xss_allowed_tags(), $new_tags);
}

এটি সেই ভিত্তির উপর ভিত্তি করে তৈরি হয়েছে যে আপনি কেবলমাত্র একটি উপাদান হিসাবে নতুন ট্যাগগুলিকে অনুমতি দিতে চান field_test, স্পষ্টতই যদি আপনি অন্য ক্ষেত্রের জন্যও একই কাজ করতে চান তবে আপনাকে এটি অন্য শর্তের সাথে মেলে পরিবর্তন করতে হবে। আমি আপনার ফর্ম পরিবর্তিত ফাংশন অবজেক্ট পরিদর্শন করতে dpm()অন্তর্ভুক্ত দুর্দান্ত ফাংশন ব্যবহার করার পরামর্শ দিচ্ছি Devel module

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


এটি পুরোপুরি কাজ করেছে। এটি সঠিকভাবে করার জন্য কারও অবশ্যই স্পষ্টভাবে একটি মডিউল তৈরি করা উচিত (কীভাবে এটির মূল বৈশিষ্ট্যটি আমি জানি না!)।
ওয়ান্ডার্স

@ W ওয়ান্ডারস হ্যাঁ, অবশ্যই একটি সুযোগের হাতছাড়া হওয়ার মতো মনে হচ্ছে তবে আমি বিকাশকারীদের দৃষ্টিভঙ্গি থেকে অনুমান করি এটির অর্থ ক্ষেত্রের মডিউলটি তার নিজস্ব পাঠ্য বিন্যাসটি বজায় রাখতে পারে এবং এটি ওভারকিল হিসাবে বিবেচিত হতে পারে। এটি পরিবর্তন করার জন্য একটি কাস্টম বিকল্পটি যদিও দুর্দান্ত হত। আমি এটিকে আরও দরকারী মডিউলে রূপান্তর করতে এবং এটি drupal.org এ আসলে পোস্ট করতে পারি, আপনাকে পোস্ট করে রাখব :)
ক্লাইভ

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

2

আপনি যদি ডি 6 ব্যবহার করছেন তবে আপনি / অ্যাডমিন / সেটিংস / ফিল্টারে নেভিগেট করতে পারেন। সেখানে আপনাকে "ফিল্টার করা এইচটিএমএল" এর "কনফিগার" বিকল্পটি ক্লিক করতে হবে। তারপরে কনফিগার ট্যাবে ক্লিক করুন। আপনাকে "অনুমোদিত HTML ট্যাগ" লেবেলযুক্ত একটি পাঠ্য বাক্স সহ উপস্থাপন করা হবে। এইচটিএমএল ট্যাগগুলি আপনার এখানে ব্যবহার করার প্রয়োজন Enter

ডি 7 এর ক্ষেত্রে অ্যাডমিন / কনফিগার / কনটেন্ট / ফর্ম্যাট / ফিল্টার_এইচটিএমএল যান। ফিল্টার সেটিংসের অধীনে, "সীমাবদ্ধ অনুমোদিত এইচটিএমএল ট্যাগগুলি" ট্যাবে ক্লিক করুন। আপনি পাঠ্য বাক্সে যে HTML ট্যাগগুলি ব্যবহার করতে চান তা প্রবেশ করুন।


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

আমি মাত্র একটি ডি 7 টাটকা ইনস্টল যুক্ত করেছি এবং এটির ডিফল্ট আচরণটি নিশ্চিত করতে পারি। এটি সাহায্যে বিভাগে ট্যাগগুলি পরিবর্তন করার অনুমতি দেবে না = পাগলামি! কোন হুক এটিকে ওভাররাইড করতে পারে?
ওয়ান্ডার

1
"ফুল এইচটিএমএল" কে ডিফল্ট ইনপুট ফর্ম্যাট হিসাবে সেট করার চেষ্টা করুন এবং তারপরে চেক করুন।
অ্যারোজেপেলিন

আমি নিশ্চিত করতে পারি যে আমি ড্রপাল 10.১০ এর মাধ্যমে ফিল্টারড এইচটিএমএল এর অনুমোদিত ট্যাগগুলি পরিবর্তন করতে সক্ষম হয়েছি এবং ফিল্টারটি 'অনুমোদিত ট্যাগগুলি' প্রদর্শনের পাশাপাশি কাজ করেছে। সুতরাং সত্যিই অ্যারোজেপেলিনের উত্তরটি সঠিক। :-)
পল-এম

1
তবে আপনি যদি পল প্রশ্নটি পড়ে থাকেন তবে এটি কোনও ক্ষেত্রের জন্য সহায়তা পাঠ্যের অনুমোদিত ট্যাগগুলির সাথে সম্পর্কিত, যাতে উত্তরটি সঠিক নয় not
ওয়ান্ডার্স
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.