নোড / সম্পাদনা পৃষ্ঠাগুলিতে wysiwyg api প্লাগইনগুলির জন্য প্রয়োজনীয় অতিরিক্ত জাভাস্ক্রিপ্ট ফাইলগুলি কীভাবে লোড করবেন?


9

আমি ড্রুপাল 7 এর জন্য ডাব্লুওয়াইএসআইওয়াইওয়াইজি এপিআই মডিউল ব্যবহার করে একটি প্লাগইন তৈরি করছি যা সমর্থিত সম্পাদকদের সরঞ্জামদণ্ডে একটি বোতাম যুক্ত করবে।

আমি hook_wysiwyg_plugin()সম্পাদক টুলবারে একটি নতুন বোতাম তৈরি করতে হুক ব্যবহার করছি তবে আমার আরও কয়েকটি জাভাস্ক্রিপ্ট ফাইল লোড করা দরকার। hook_wysiwyg_plugin()হুক আপনি এক জাতীয় এবং CSS ফাইল নির্দিষ্ট করার অনুমোদন দেবে বলে মনে হয়।

প্লাগইন জাভাস্ক্রিপ্টের জন্য প্রয়োজনীয় অতিরিক্ত জাভাস্ক্রিপ্ট ফাইলগুলি কীভাবে লোড করতে পারি?

আমি hook_library()একটি লাইব্রেরি অর্থাৎ জেএস / সিএসএস ফাইল সংজ্ঞায়িত করার জন্য বাস্তবায়ন করেছি তবে আমি নিশ্চিত নই যে আমি কীভাবে এটিকে হুইসওয়াইগ এপিকে আপ করেছি যাতে তারা নোড / সম্পাদনা পর্দার উপর লোড করে?


ভয়েস এখানে আপনার অনুরোধ হিসাবে ভাল drupal.org/node/1039076
giorgio79

উত্তর:


1

এটি আসলে বেশ সহজ, যদিও একই কাজটি করার সাথে আমার অভিজ্ঞতা ড্রুপাল 6 এর মাধ্যমে, সুতরাং আমার কোডের সাথে কিছুটা ছোটখাটো পার্থক্য থাকতে পারে:

function MYMODULE_form_alter(&$form, &$form_state, $form_id) {
  // Only modify node_form's.
  // @TODO - Set a condition for all forms you wish to alter for D7 entities.
  if (isset($form['type']['#value']) && $form_id == "{$form['type']['#value']}_node_form") {
    // We use after build to add JS and CSS to prevent issues caused by form caching.
    $form['#after_build'][] = 'MYMODULE_form_alter_after_build';
  }
}

function MYMODULE_form_alter_after_build($form_element, &$form_state) {
  drupal_add_js(...);
}

আবার, এই কোডটি ডি 6 এর জন্য, তবে মূল নীতিটি এখনও কাজ করা উচিত।

যদিও এটি সরাসরি উইসইভিগ এপিআইয়ের সাথে আবদ্ধ নয়, এটি সম্ভবত সেরা বিকল্প কারণ উইসইভিগ এপিআই কেবলমাত্র প্লাগইন (আইরিক) প্রতি জেএস ফাইলটিতে সমর্থন করে।

আপনার জন্য কয়েকটি বন্য / অনির্ধারিত বিকল্প:

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

  • Http://www.javascriptkit.com/javatutors/loadjavascriptcss.shtml এর অনুরূপ একটি জাভাস্ক্রিপ্ট গতিশীল জাভাস্ক্রিপ্ট লোডিং কৌশল ব্যবহার করুন

আশাকরি এটা সাহায্য করবে.


আমি এখনও চেষ্টা করে দেখিনি তবে মনে হচ্ছে এটি কার্যকর হবে। ধন্যবাদ।
ক্যামসফট

2

সঙ্গে drupal_add_js :

function yourmodule_preprocess_page(&$vars)
{
  $node = $vars['node']; 
  if($node->type == 'yournodetype' AND arg(2) == 'edit')
  {
    drupal_add_js([...]);
  }
}

ডাব্লুওয়াইএসআইওয়াইওয়াইজি এপিআই মডিউলটির সাথে এটি আবদ্ধ হওয়া আমার সত্যই দরকার যাতে অতিরিক্ত ফাইলগুলি কেবল তখন লোড হয় যখন সেই মডিউলটি একটি ডাব্লুওয়াইএসআইডিজি অঞ্চল তৈরি করে। এছাড়াও আমার একটি গ্রন্থাগার হুক_লিবারি () দ্বারা সংজ্ঞায়িত করা দরকার to
ক্যামসোফট

1

তত্ত্ব অনুসারে, আপনাকে কেবল পাঠ্য বিন্যাসের সাথে যুক্ত উইসইভিগ সম্পাদকটির জন্য FAPI উপাদানটিতে সঠিক " #text_format " পরামিতিটি #type textareaব্যবহার করতে হবে, এইভাবে:

function mymodule_menu(){
    return array(
        'mypage' => array(
            'title' => 'A page to test wysiwyg',
            'page callback' => 'drupal_get_form',
            'page arguments' => array('mymodule_page'),
            'access arguments' => array('access content'), 
        )
    );
}

function mymodule_page($form, &$form_state) {
    $element = array(
        '#type' => 'textarea', 
        '#title' => t('Comment'), 
        '#default_value' => 'something',
        '#text_format' => 'full_html',
        '#required' => TRUE,
    );
    $form['mytext'] = $element;
    return $form;
}

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

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