আমি কীভাবে নিজের থিমটিতে প্রশাসক থিমটিকে ওভাররাইড করব?


9

আমি আমার নিজস্ব ড্রুপাল 8 থিম তৈরি করেছি:

mytheme.info.yml:

name: My Theme
description: 'Drupal 8 Theme'
type: theme
base theme: bartik
core: '8.x'

mytheme.libraries.yml

global-styling:
  version: 1.x
  css:
    theme:
      css/layout.css: {}
      css/style.css: {}
      css/colors.css: {}
      css/print.css: { media: print }

আমি অ্যাডমিন থিম হিসাবে "সেভেন" ব্যবহার করছি।

আমি যখন কোনও পৃষ্ঠা সম্পাদনা করি (/ নোড / এক্স / সম্পাদনা) সেভেন থিম ব্যবহৃত হয়।

এখন আমাকে কিছু সিএসএস এডিট ফর্ম যুক্ত করতে হবে। কিভাবে আমি এটি করতে পারব? style.css কেবল সামনের পাতায় লোড করা হয়। সম্পাদনা পৃষ্ঠাগুলি সাত টি থিম ব্যবহার করে এবং আমার থিম সিএসএস উপেক্ষা করা হয়।

আমি কীভাবে অ্যাডমিন পৃষ্ঠাগুলিতে কিছু সিএসএস যুক্ত করতে বা ড্রুপাল 8 এ ফর্মগুলি সম্পাদনা করতে পারি?

উত্তর:


17

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

1 আপনার CSS কে CSS / অতিরিক্ত.admin.css এ রাখুন ss

2 XXX.libraries.yml তৈরি করে একটি লাইব্রেরি ঘোষণা করুন

extra.admin:
  css:
    theme:
      css/extra.admin.css: {}

3 লাইব্রেরি লোড করতে একটি হুক তৈরি করুন।

/**
 * Implements hook_page_attachments().
 */
function XXX_page_attachments(array &$attachments) {
  $theme = \Drupal::theme()->getActiveTheme()->getName();
  if ($theme == 'seven') {
    $attachments['#attached']['library'][] = 'XXX/extra.admin';
  }
}

15

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

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


দুঃখিত, আমি বিশ্বাস করতে পারি না এটি সমাধানের কোনও উপায় নেই। আমাকে কেবল কিছু সিএসএস যুক্ত করতে হবে যেমন img {সর্বোচ্চ-প্রস্থ: 100%; উচ্চতা: অটো}। একটি উপায় হতে হবে।
drupalfan

4
না, সেখানে না। থিমগুলি মেশানো নয়। শুধুমাত্র একটি সক্রিয় থিম থাকতে পারে। আপনার যদি এটি করার দরকার হয় তবে একটি মডিউল তৈরি করুন, যা একটি ফর্ম পরিবর্তিত করতে পারে এবং অন্য একটি লাইব্রেরি যুক্ত করতে পারে।
বারদির

3
@ দ্রুপালফান, আমি বুঝতে পারি না কেন আপনি এই সিদ্ধান্তের সমাধান করার কোনও উপায় নেই বলে সিদ্ধান্ত নিয়েছেন। সেখানে হয় উপায়ে (সাত subtheme পদ্ধতি আমি বর্ণনা এবং Berdir এর পদ্ধতি) এবং তারা কি কঠিন না হয়। আপনি যে ধরণের সমাধানের পরামর্শ দিয়েছিলেন তা হ'ল হেয়ারড্রেসারকে আপনার জুতোর রঙ পরিবর্তন করতে বলার মতো। এটা করবেন না।
মার্চভানজেন্ড

2
I do not want to mix themes, I only want to add one simple CSS!এটি দ্রুপালে মিশ্রণ হিসাবে বিবেচিত হয়। আপনার কাছে কেবলমাত্র বিকল্পটি হ'ল হয় সেভেনের একটি সাবটিহিম তৈরি করা বা সেই সাতটি থিম "হ্যাক" করা আছে /core/themes/তবে আপনি যখনই ড্রপাল ৮. আপগ্রেড করবেন প্রতিবার পরিবর্তনগুলি হারাবেন তাই আপনাকে প্রতিবার ওভাররাইড। সিএসএস ফাইল আপলোড করতে হবে মনে রাখতে হবে আপনি ডি 8 আপগ্রেড করুন। অতএব, আপনি সেভেনের একটি সাব থিম তৈরি করা ভাল এবং আপনার প্রশাসক থিম হিসাবে এটি ব্যবহার করুন, কারণ সাব-থাইমটি /themesফোল্ডারে অবস্থিত হবে এবং ভিতরে নয় /core/themes
এসএসইয়েট নেই

1
@ জৌম আপনি যা বর্ণনা করেন তা সম্পূর্ণ আলাদা। ওপিতে একটি থিমকে অন্য থিমকে প্রভাবিত করার বিষয়ে জিজ্ঞাসা করা হয়েছিল। এটি দায়িত্ব মেশানো হয়, বিশেষত যেহেতু দুটি থিম কখনও একই পৃষ্ঠায় সক্রিয় হতে পারে না। একটি মডিউল দিয়ে কিছু সিএসএস শিপিং পুরোপুরি স্বাভাবিক আইএমও - এটি কেবল আপনার হালকা ওজন কমিয়ে রাখুন, ওভারডেবলযোগ্য এবং আপনার মডিউল যা কিছু করে তা দৃ strictly়তার সাথে নিবদ্ধ করে।
মার্চভ্যানেজেন্ড

5

আপনি যে মডিউলটির সন্ধান করছেন তাকে এখন সম্পদ ইনজেক্টর বলা হয় । এটির সাহায্যে আপনি @ ওয়াটওয়াট উল্লিখিত হিসাবে ইউআই এর মাধ্যমে সিএসএস যুক্ত করতে সক্ষম হবেন।


4

আপনি যদি সেভেনের জন্য একটি সাব-থিম তৈরি করেন এবং এটি আপনার অ্যাডমিন থিম হিসাবে ব্যবহার করেন তবে আপনি মূল থিমের সাথে গোলযোগ না করে বা থিমের দায়িত্বকে বিভ্রান্ত না করেই আপনার নিজের সিএসএস ওভাররাইডগুলি সাত_সুবথিম.ইন.ফিল.আইএমএল ফাইলে যুক্ত করতে পারেন। সাব-থাইমে কেবল তথ্য.আইএমএল ফাইল এবং সিএসএস থাকা দরকার এবং এটি সমস্ত কিছুর উত্তরাধিকারী হবে।

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


সঠিক উত্তর। এই এটা করতে হয়।
কেভিন

3

সিএসএস ইনজেক্টর মডিউল ইনস্টল করুন (বর্তমানে কেবলমাত্র ড্রুপাল 8 এর জন্য একটি কার্যক্ষম বিকাশ সংস্করণ রয়েছে)।

তারপরে সিএসএস ইনজেক্টর ( / অ্যাডমিন / কনফিগারেশন / ডেভেলপমেন্ট / সিএসএস-ইনজেক্টর ) প্রশাসনের পৃষ্ঠায় যান । একটি নতুন সিএসএস বিধি তৈরি করুন। উদাহরণস্বরূপ, কোনও ক্ষেত্রের পটভূমির রঙ পরিবর্তন করতে:

.node-form .field--name-title input {
    background-color: red;
}

এই বিধিটি সেভেন থিমে (বা কোনও প্রশাসক থিম ব্যবহৃত হতে পারে) প্রয়োগ করতে চয়ন করুন ।

সংরক্ষণ করুন এবং উপভোগ করুন!


>> আমি কীভাবে অ্যাডমিন পৃষ্ঠাগুলিতে কিছু সিএসএস যুক্ত করতে বা ড্রুপাল 8 এ ফর্মগুলি সম্পাদনা করতে পারি?
দ্রুপালফান

আমি আমার উত্তর আপডেট করেছি, আমার ভুলের জন্য দুঃখিত (আমি অন্য একটি বিষয়ের জবাব দিয়েছি!)
হোয়াটওয়্যাট

1

যে কোনও অ্যাডমিন থিমের সাথে কাজ করতে আমি অ্যাডামস উত্তরটি ব্যবহার করেছি এবং হুকটি পরিবর্তিত করেছি।

$config = \Drupal::config('system.theme');

$theme = \Drupal::theme()->getActiveTheme()->getName();

if ($theme == $config->get('admin')) {

  $attachments['#attached']['library'][] = 'XXXX/extra.admin';

}

1

সিএসএসকে কল করে কোনও ব্লক তৈরি করে এটিকে আপনার প্রশাসক পৃষ্ঠাগুলির শিরোনামে sertোকানো হবে না কেন?

@ ইমপোর্ট ইউআরএল ("/ থিমস / এক্সওয়াইজেড / সিএসএস / অ্যাডমিন_ওভারাইডস সিএসএস")


1

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

1 আপনার CSS কে CSS / অতিরিক্ত.admin.css এ রাখুন ss

2 XXX.libraries.yml তৈরি করে একটি লাইব্রেরি ঘোষণা করুন

extra.admin:
  css:
  theme:
  css/extra.admin.css: {}

3 লাইব্রেরি লোড করতে একটি হুক তৈরি করুন।

/ **
* হুক_পেজ_এটাচমেন্টগুলি কার্যকর করে ()।
* /

function XXX_page_attachments(array &$attachments) {
  $config = \Drupal::config('system.theme');
  $theme = \Drupal::theme()->getActiveTheme()->getName();
    if ($theme == $config->get('admin')) {
       $attachments['#attached']['library'][] = 'XXXX/extra.admin';
    }
 }

0

আমি সামনের এবং পিছনের অফিস উভয়ের জন্য পৃথক শিশু থিম তৈরি করব


তবে এটি কিছুটা ঝাঁকুনি: skyriter.com/2018/04/07/…
চোখের আশ্চর্য

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