এইচটিএমএল ক্লাসগুলি বাদ দেওয়া থেকে ডাব্লুওয়াইএসআইওয়াইজি + সিকেইডিটর প্রতিরোধ করুন


9

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

এর সমাধানের জন্য গুগল করার সময়, আমি সিকেইডিটর মডিউল পৃষ্ঠাটি পেয়েছি যা কেবলমাত্র সিকেইডিটর ব্যবহার করার সময় এটি কীভাবে ঠিক করতে হয় তা বর্ণনা করে। (মূলত, আমাদের config.allowedContent = trueএর উন্নত সামগ্রী ফিল্টার সেটিংসে একটি জেএস কনফিগারেশন সেট আপ করতে হবে )।

তবে ডাব্লুওয়াইএসআইওয়াইওয়াইজি-র মাধ্যমে সিকেইডিটার ব্যবহার করার সময়, এই সেটিংসটি অ্যাডমিন ইন্টারফেসে উন্মুক্ত হয় না। WYSIWYG এর মাধ্যমে CKEditor ব্যবহার করার সময় আপনি কীভাবে এটি অর্জন করতে পারেন?

PS: আমি একা CKEditor ব্যবহার করতে পারি না কারণ এটি মিডিয়া প্লাগইনের সাথে সংহত হয় না ।


আপনি আপনার লাইব্রেরি ফোল্ডারে কোন সি কেইডিটর সংস্করণটি ডাউনলোড করেছেন?
মৌমাছি

সংস্করণ 4.2 ব্যবহার করে
jrharshath

উত্তর:


4

আপনি সি কেইডিটরের কোন সংস্করণ ব্যবহার করছেন? সিকেইডিটার ৪.১++ নিয়ে একটি সমস্যা রয়েছে, যার স্বয়ংক্রিয় কন্টেন্ট ফিল্টার (এসিএফ) নামে একটি বৈশিষ্ট্য রয়েছে যা সম্পাদকের জন্য সংজ্ঞাযুক্ত নয় এমন বৈশিষ্ট্যগুলি স্বয়ংক্রিয়ভাবে স্ট্রিপ করে দেবে: https://drupal.org/node/1956778

ইস্যুতে # 37 প্যাচটি আমার পক্ষে কাজ করেছিল।


যদিও প্যাচটি আমার পক্ষে ব্যর্থ হয়েছিল, আমি কঠোর কোডে "परवानगी দেওয়া কনটেন্ট = সত্য" editors/ckeditor.incএর wysiwyg_ckeditor_settingsমজাদার কাজ
jharshath

ভাল লাগছে আপনাকে কাজ করতে দেখে। সেই প্যাচটি উইসইভিগ -ডেভ সংস্করণে প্রয়োগ করা দরকার, তাই এটি প্রয়োগ করা যায় নি।
ডেভ ব্রুনস

প্যাচটিতে সেই একক লাইনের চেয়ে আরও অনেক কিছু রয়েছে। আপনি পুরোপুরি পরীক্ষা করে নিন তা নিশ্চিত করুন যাতে সবকিছু সেই অনুযায়ী কাজ করছে!
মৌমাছি

10

আমি একটি সমাধান খুঁজে পেয়েছি।

এটি ফিল্টারিং বন্ধ করে দেয়, এটি কাজ করছে, তবে একটি ভাল ধারণা নয় ...

config.allowedContent = true;

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

সুতরাং আমার বাজিটি হ'ল সম্পাদকের যে কোনও শ্রেণিকে অনুমতি দেওয়ার জন্য:

config.extraAllowedContent = '*(*)';

এটি কোনও শ্রেণি এবং যে কোনও ইনলাইন শৈলীর অনুমতি দেয়।

config.extraAllowedContent = '*(*);*{*}';

যে কোনও ট্যাগের জন্য কেবল শ্রেণি = "এসএসডিএফ 1" এবং শ্রেণি = "এসএসডিএফ 2" এর অনুমতি দেওয়ার জন্য:

config.extraAllowedContent = '*(asdf1,asdf2)';

(সুতরাং আপনাকে ক্লাসের নামগুলি নির্দিষ্ট করতে হবে)

শুধুমাত্র পি ট্যাগের জন্য কেবল শ্রেণি = "এসএসডিএফ" অনুমতি দেওয়ার জন্য:

config.extraAllowedContent = 'p(asdf)';

যে কোনও ট্যাগের জন্য আইডি বৈশিষ্ট্যকে অনুমতি দেওয়ার জন্য:

config.extraAllowedContent = '*[id]';

ইত্যাদি

স্টাইল ট্যাগকে অনুমতি দেওয়ার জন্য (<স্টাইল টাইপ = "পাঠ্য / সিএসএস"> ... </ স্টাইল>):

config.extraAllowedContent = 'style';

কিছুটা জটিল হতে:

config.extraAllowedContent = 'span;ul;li;table;td;style;*[id];*(*);*{*}';

আশা করি এটির আরও ভাল সমাধান ...


1
কোথায়?!?!!?!? কোন ফাইল !!! ইন্টারনেটে কেউই ওএনসিএল-এর উল্লেখ করেনি যেখানে এই কনফিগার.নিড কনটেন্টটি সেট করতে হবে?
কোড্রামামা

@ প্রশাসক / কনফিগারেশন / বিষয়বস্তু / সেকিডিটারে কোডেরামা, সম্পাদনা করতে উন্নত বিকল্পগুলি প্রসারিত করুন এবং এটি কাস্টম জাভাস্ক্রিপ্ট কনফিগারেশনে রাখুন
আনসেটলিংট্রেড

2

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

function mymodule_wysiwyg_editor_settings_alter(&$settings, $context){
    //check if the editor is ckeditor and the version is at least 4.0
    if($context['profile']->editor=='ckeditor' && $context['editor']['installed version'][0]>3){
        //add custom settings for ckeditor 4.+ here
        $settings['allowedContent'] = TRUE;
    }
}

যেখানে "মাইমডিউল" অবশ্যই আপনার কাস্টম মডিউলটির নাম। এটি কারও এলিস মডিউলটি সম্পাদনা না করেই কার্য সম্পাদন করে।


0

মডিউল / wysiwyg / সম্পাদক / ckeditor.inc এ নিম্নলিখিতগুলি যুক্ত করার চেষ্টা করুন

'allowedContent' => TRUE, প্রতি function wysiwyg_ckeditor_settings($editor, $config, $theme)

যাতে এটি এখন পড়ে:

function wysiwyg_ckeditor_settings($editor, $config, $theme) {
  $settings = array(
    'width' => 'auto',
    // For better compatibility with smaller textareas.
    'resize_minWidth' => 450,
    'height' => 420,
    // @todo Do not use skins as themes and add separate skin handling.
    'theme' => 'default',
    'skin' => !empty($theme) ? $theme : 'kama',
    // By default, CKEditor converts most characters into HTML entities. Since
    // it does not support a custom definition, but Drupal supports Unicode, we
    // disable at least the additional character sets. CKEditor always converts
    // XML default characters '&', '<', '>'.
    // @todo Check whether completely disabling ProcessHTMLEntities is an option.
    // ADDED  'allowedContent' => TRUE, to keep WYSIWYG from removing classes
    'entities_latin' => FALSE,
    'entities_greek' => FALSE,
    'allowedContent' => TRUE, 
  );

0

কোনও উত্স হ্যাক না করে এবং এই সেটিংসটি কোথায় পড়েছে তা নির্ধারণের চেষ্টা না করে আপনি নিজের কাস্টম মডিউলটিতে এটি যুক্ত করতে পারেন

function mymodule_wysiwyg_editor_settings_alter(&$settings, $context) {
    if ($context['profile']->editor == 'ckeditor') {
        $settings['extraAllowedContent'] = array(
            'a[download,type,length,href]',
            'span;ul;li;table;tr;td;style;*[id];*(*);*{*}'
        );
    }
}

ওপি যে সেটিংসের জন্য জিজ্ঞাসা করছে *(*);*{*}সেগুলি উপরের @ টমির উত্তর থেকে from এটি কোনও উপাদানগুলিতে শ্রেণি এবং শৈলীর বৈশিষ্ট্যগুলিকে মঞ্জুরি দেয় বলে মনে হচ্ছে। বাকিগুলি কেবল উদাহরণস্বরূপ এন্ট্রি। অন্য উদাহরণ হিসাবে, এই এন্ট্রিটি মিডিয়া মডিউল দ্বারা প্রয়োজনীয় ট্যাগগুলিকে মঞ্জুরি দেয়।

'img[title,alt,src,data-cke-saved-src](wysiwyg-break,drupal-content);video[width,height,controls,src](*);source[src,type];audio[controls,src](*);img[*](media-element,file-default)',

0

ফিল্টার করা এইচটিএমএল-ফিল্টার তার অনুমোদিত এইচটিএমএল উপাদানগুলিতে নেই এমন উপাদানগুলি থেকে শ্রেণি বিভক্ত করে । অনুচ্ছেদে ট্যাগটি ( <p>) সেখানে ডিফল্টরূপে নেই (যা বিভ্রান্তিকর এবং অপ্রাকৃত হতে পারে), তবে এটি সম্ভবত ক্লাস প্রয়োগ করা হয় এমন ঘন ঘন উপাদান হতে পারে। আপনি এটি সেখানে রাখার পরে, ফিল্টার করা এইচটিএমএল আর এই ট্যাগগুলি থেকে ক্লাসগুলি ছাঁটাবে না। ইমেজ ট্যাগ ( <img>) এর জন্যও যায় ।


তবে, কীভাবে এইচটিএমএল উপাদানগুলির মঞ্জুরিপ্রাপ্ত বিকল্পে শ্রেণি স্থাপন করা যায়। আমার জ্ঞান হিসাবে, আপনি এইচটিএমএল উপাদানকে তালিকায় রাখতে পারেন <<ডিভ>, <স্প্যান> ইত্যাদি So সুতরাং এই ডিভ এবং স্প্যানটি কেটে ফেলা হবে না, তবে সেখানে ক্লাস কিভাবে রাখা যায়, আপনি উদাহরণ প্রদান করতে পারেন?
কোডনেস্ট

সেখানে কোনও ক্লাস করার দরকার নেই। যদি এইচটিএমএল উপাদান তালিকায় থাকে তবে এর সংঘর্ষ (গুলি) অপরিচ্ছন্ন থাকবে এবং এড়াতে হবে না।
cptstarling

আমি কেন বুঝতে পারছি না যে গতকাল আমার পোস্টটি কেন প্রদর্শিত হচ্ছে, আমি বেশ কয়েক মাস আগে এটি জিজ্ঞাসা করেছি, কোনও সমস্যা আছে কি ???????
কোডনেস্ট

অদ্ভুত, কারণ আপনি যে উত্তরটি উত্তর দিয়েছেন তা প্রায় ২ দিনের পুরনো :)
সিপিসার স্টার্লিং

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