সি কেইডিটর স্বয়ংক্রিয়ভাবে ডিভ থেকে ক্লাস ফেলা করে


140

আমি আমার ওয়েবসাইটে সেকিডিটরটিকে ব্যাক এন্ড সম্পাদক হিসাবে ব্যবহার করছি । এটি আমাকে মোড় ঘুরিয়ে দিচ্ছে যদিও মনে হয় যে কোডটি কীভাবে ফিট হয় এটি পরিবর্তন করতে চাইছে যখনই আমি উত্স বোতাম টিপুন। উদাহরণস্বরূপ যদি আমি উত্সটি হিট করি এবং একটি তৈরি করি <div>...

<div class="myclass">some content</div>

এটি তখন কোনও আপাত কারণে ক্লাসটি থেকে পৃথক করে না <div>, সুতরাং যখন আমি আবার উত্সকে আঘাত করি তখন তা পরিবর্তিত হয়ে যায় ...

<div>some content</div>

আমি মনে করি এই বিরক্তিকর আচরণটি বন্ধ করে দেওয়া যেতে পারে config.jsতবে এটি বন্ধ করার জন্য আমি খনন করে ডকুমেন্টেশনে কিছু খুঁজে পাচ্ছি না।


8
আমি অনেকগুলি খননের পরে সমাধানটি পেয়েছি, যদি আপনি কনফিগারেশন.জেজে যান এবং CKEDITOR.config.allowedContent = সত্য সেট করেন; এটি সম্পাদককে তখন জিনিসগুলির সাথে ঘোরাঘুরি বন্ধ করে দেয়।
আইইন সিম্পসন

উত্তর:


284

সামগ্রী ফিল্টারিং অক্ষম করা হচ্ছে

সবচেয়ে সহজ সমাধানটি config.js এ গিয়ে সেটিংস করছে:

config.allowedContent = true;

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

সামগ্রী ফিল্টারিং কনফিগার করা হচ্ছে

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

উদাহরণস্বরূপ, আপনি সমস্ত ডিভি ক্লাস গ্রহণ করতে ডিফল্ট সি কেইডিটর কনফিগারেশনটি প্রসারিত করতে পারেন:

config.extraAllowedContent = 'div(*)';

বা কিছু বুটস্ট্র্যাপ স্টাফ:

config.extraAllowedContent = 'div(col-md-*,container-fluid,row)';

অথবা আপনি listsচ্ছিক dirবৈশিষ্ট্য dtএবং ddউপাদানগুলির সাথে বিবরণ তালিকার অনুমতি দিতে পারেন :

config.extraAllowedContent = 'dl; dt dd[dir]';

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


3
এটি বৈশিষ্ট্যটি অক্ষম করবে। অক্ষম করার চেয়ে কনফিগার করা ভাল।
ওলেক

1
@ লাইন সিম্পসন: আপনার এখনও উত্তর হিসাবে এই প্রশ্নটি সেট করতে হবে। সমাধানটি সন্ধানের জন্য THX বিটিডব্লিউ: ডি
জ্যাকব ভ্যান লিনজেন

1
কখনও কখনও এই সমাধান কাজ করে, কখনও কখনও এটি না। শৈলীর বৈশিষ্ট্যটি মুছে ফেলা হয়, কেবল কখনও কখনও, বাকী থাকে।
মেশিন্যাডিক্ট

2
আমি কেনটিকো নামক কিছু সাথে কাজ করছি যা এই সম্পাদকটি ব্যবহার করে। আমি "CKEDITOR.config.allowedContent = true" লাইন যুক্ত করেছি; আমার কনফিগারেশনগুলিতে, তবে এটি এখনও আমার এইচটিএমএলটির পুনরায় ফর্ম্যাট করছে, যা আমার বুটস্ট্র্যাপ কোডটি ভেঙে দেয়, কারও কোনও ধারণা আছে?
টম বোয়েন

1
নিখুঁত সমাধানের জন্য ধন্যবাদ। আমার জন্য একটি দিন রক্ষাকারী
সুনি

61

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

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

config.allowedContent = true;

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

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

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
এই Ta superberb হয়
Rippo


আপনার উত্তরের জন্য 10 তারা
ব্রিজেশ মাভানী

আপনার প্রচেষ্টার জন্য কুডোস!
মিশেল

15

সম্পাদনা করুন : এই উত্তরটি তাদের জন্য যারা ড্রপালে ckeditor মডিউল ব্যবহার করেন।

আমি এমন একটি সমাধান পেয়েছি যার জন্য সেকিডিটর জেএস ফাইল সংশোধন করার দরকার নেই।

এই উত্তরটি এখান থেকে অনুলিপি করা হয়েছে । সমস্ত ক্রেডিট আসল লেখকের উচিত।

"অ্যাডমিন >> কনফিগারেশন >> সি কেইডিটার" এ যান; প্রোফাইলের অধীনে, আপনার প্রোফাইল চয়ন করুন (যেমন সম্পূর্ণ)।

সেই প্রোফাইলটি সম্পাদনা করুন এবং "উন্নত বিকল্প >> কাস্টম জাভাস্ক্রিপ্ট কনফিগারেশন" অ্যাড করুন config.allowedContent = true;

এখানে চিত্র বর্ণনা লিখুন

"পারফরম্যান্স ট্যাব" এর নীচে ক্যাশে ফ্লাশ করতে ভুলবেন না।


4
এই উত্তরটি কেবলমাত্র ড্রুপালের জন্য ... তবে যাইহোক ধন্যবাদ, কারণ আমি কেবল একটি ড্রুপাল সমাধান খুঁজছিলাম।
লার্জ

1
@ লার্স আকর্ষণীয় আমি মনে করতে পারি না কেন আমি ভেবেছিলাম এই প্রশ্নটি ড্রুপালের সাথে সম্পর্কিত, তবে মনে হয় এটি ড্রুপাল ছেলেদের সহায়তা করেছে।
sepehr

14

CKEditor v4.1, যেহেতু আপনি CKEditor এর config.js এ এটি করতে পারেন:

CKEDITOR.editorConfig = function( config ) {
  config.extraAllowedContent = '*[id](*)';  // remove '[id]', if you don't want IDs for HTML tags
}

মঞ্জুরিপ্রাপ্ত সামগ্রী বিধিগুলির বিশদ সিনট্যাক্সের জন্য আপনি অফিসিয়াল ডকুমেন্টেশনগুলিকে উল্লেখ করতে পারেন


আপনার উপরে একটি বাক্য গঠন ত্রুটি রয়েছে। বিশেষত শৈলীর বৈশিষ্ট্যগুলি
পেরেন

হাই কমেলকেভ, আমার উত্তর ক্লাসের জন্য , প্রশ্ন অনুসারে শৈলীর জন্য নয় । মূলত, আমি এটিই ব্যবহার করছি এবং আমি মনে করি এটির কোনও ত্রুটি রয়েছে।
মার্টি ZHANG

উত্তরের জন্য ধন্যবাদ, আপনি *[id](*)কৌতুকটি করেছেন, আমি *[id,class]আগে চেষ্টা করেছি , কিন্তু এটি শ্রেণীর বৈশিষ্ট্যটিকে কোনওভাবেই অনুমতি দেয় না। CKeditor ডক্সটি কিছুটা গোলকধাঁধার মতো।
GDmac

1
+1 সামগ্রীর নিয়মগুলি বোঝা সম্ভবত সমস্ত ফিল্টারিং অক্ষম করার চেয়ে ভাল সমাধান, যেমন অন্যান্য উত্তরগুলির অনেকের পরামর্শ suggest
মাইকেল মার্টিন-স্মুকার

10

আপনি যদি ckeditor 4.x ব্যবহার করেন তবে আপনি চেষ্টা করতে পারেন

config.allowedContent = true;

আপনি যদি ckeditor 3.x ব্যবহার করছেন তবে আপনার এই সমস্যাটি হতে পারে ।

config.js এ নিম্নলিখিত লাইনটি লাগানোর চেষ্টা করুন

config.ignoreEmptyParagraph = false;

config.ignoreEmptyParagraph=false;আমি চেষ্টা করেছি এমন সমস্ত উত্তরগুলির মধ্যে একমাত্র সমাধান যা আমার পক্ষে কাজ করেছিল। ধন্যবাদ.
স্টিফান

9

একে সেকিডিটারে এসিএফ (অটোমেটিক কনটেন্ট ফিল্টার) বলা হয় t এটি পাঠ্য সামগ্রীতে আমরা কী ব্যবহার করছি তা সমস্ত অনার্য ট্যাগের সরিয়ে ফেলুন your

config.allowedContent = true;

6

দয়া করে অফিসিয়াল অ্যাডভান্সড কনটেন্ট ফিল্টার গাইড এবং প্লাগইন সংহতকরণ টিউটোরিয়ালটি দেখুন

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


4

আপনি যদি CKEditor লাইব্রেরির সাথে "WYSIWYG" নামে ড্রুপাল এবং মডিউলটি ব্যবহার করেন, তবে নিম্নলিখিত কাজের সমাধানটি সমাধান হতে পারে। আমার জন্য এটি কবজির মতো কাজ করে। আমি ড্রপাল 7.33 তে সি কেইডিটার 4.4.5 এবং ডাব্লুওয়াইএসআইওয়াইওয়াইজি 2.2 ব্যবহার করি। আমি এই কার্যনির্বাহীটি এখানে পেয়েছি: https://www.drupal.org/node/1956778

এটি এখানে: আমি একটি কাস্টম মডিউল তৈরি করে নীচের কোডটি ".মডিউল" ফাইলটিতে রেখেছি:

<?php
/**
 * Implements hook_wysiwyg_editor_settings_alter().
 */
function MYMODULE_wysiwyg_editor_settings_alter(&$settings, $context) {
  if ($context['profile']->editor == 'ckeditor') {
    $settings['allowedContent'] = TRUE;
  }
}
?>

আমি আশা করি এটি অন্যান্য দ্রুপাল ব্যবহারকারীদের সহায়তা করবে।



3

নীচে CKEDITOR 4.x এর সম্পূর্ণ উদাহরণ রয়েছে :

এইচটিএমএল

<textarea name="post_content" id="post_content" class="form-control"></textarea>

লিপি

CKEDITOR.replace('post_content', {
   allowedContent:true,
});

উপরের কোডটি সম্পাদককে সমস্ত ট্যাগের অনুমতি দেবে।

আরও বিশদের জন্য: সিকে এডিটর মঞ্জুরিপ্রাপ্ত সামগ্রী বিধিগুলি


0

আমি দেখতে পেয়েছি যে ফিল্টারড এইচটিএমএল (টেক্সট ফর্ম্যাট ড্রপডাউন বাক্সে সম্পাদকের নীচে) এর পরিবর্তে সম্পূর্ণ এইচটিএমএল ব্যবহার করতে স্যুইচ করা আমার জন্য এই সমস্যাটি স্থির করেছে। অন্যথায় শৈলী অদৃশ্য হয়ে যাবে।


0

আমি এই কনফিগারেশনটি যুক্ত করতে চাই allow ckeditor.config.js ফাইলটি config.js নয়, config.js আমার পক্ষে কিছুই করেনি তবে এটি ckeditor.config.js এর শীর্ষ অঞ্চলে যুক্ত করে আমার ডিভি ক্লাস যুক্ত করেছে


0

ড্রুপাল ব্যবহার করা হলে আর একটি বিকল্প হ'ল আপনি ব্যবহার করতে চান এমন CSS স্টাইল যুক্ত করা। এইভাবে এটি স্টাইল বা শ্রেণীর নামটি ছড়িয়ে দেয় না।

সুতরাং ড্রপাল in-তে সিএসএস ট্যাবের অধীনে আমার ক্ষেত্রে কেবল এমন কিছু যুক্ত করুন

ফেইসবুক = span.icon-facebook2

ফন্ট-শৈলীর বোতাম সক্ষম হয়েছে কিনা তাও পরীক্ষা করে দেখুন


0

আমি ক্রিকেটেড 4.7.1 এর সাথে ক্রোমে একই সমস্যার মুখোমুখি। সিকিডেটর ইনস্টেন্সে কেবল পেস্টফিল্টারটি অক্ষম করুন রেডি করুন property

 CKEDITOR.on('instanceReady', function (ev) {
        ev.editor.pasteFilter.disabled = true;
    });
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.