জুমলার সীমানা থেকে আমি কীভাবে বুটস্ট্র্যাপটিকে পুরোপুরি সরিয়ে ফেলতে পারি?


14

সম্প্রতি, আমি ডিবাগিংয়ের উদ্দেশ্যে জুমলার সম্মুখ প্রান্ত থেকে বুটস্ট্র্যাপের সমস্ত দৃষ্টান্ত সরিয়ে দেওয়ার চেষ্টা করেছি। আমি জুমলা ৩.৩ এর অপেক্ষাকৃত নতুন ইনস্টলেশন সহ একটি কঙ্কাল টেম্পলেট ব্যবহার করছিলাম। আমি টেমপ্লেট থেকে বুটস্ট্র্যাপের সমস্ত অন্তর্ভুক্তি সরিয়েছি এবং আমি যে সমস্ত প্লাগইন এবং মডিউলগুলি লোড হতে পারে বলে ভেবেছিলাম তা বন্ধ করে দিয়েছি। আমি জুমলা ক্যাশেও সাফ করে দিয়েছি। তা সত্ত্বেও, ফায়ারব্যাগ আমাকে জানিয়েছিল যে জুমলা এখনও /media/jui/js/bootstrap.min.js থেকে বুটস্ট্র্যাপ.মিন.জেডগুলি লোড করার চেষ্টা করছে

আমি অস্থায়ীভাবে বুটস্ট্র্যাপ ফাইলটির নাম পরিবর্তন করে সমস্যার মুখোমুখি হয়েছি, তবে এটি আমার অবাক হয়ে যায়।

  • এটি সমস্ত জুমলা ৩.৩ এর ইনস্টলেশনগুলির সাথে ঘটে বা কেবল আমার?
  • বুটস্ট্র্যাপ যেখান থেকে লোড হচ্ছে তা সনাক্ত করার কোনও উপায় আছে?
  • লোডিং থেকে বুটস্ট্র্যাপ নিষ্ক্রিয় করার কোনও উপায় আছে কি?

উত্তর:


15

এটি সমস্ত জুমলা ৩.৩ এর ইনস্টলেশনগুলির সাথে ঘটে বা কেবল আমার?

সংস্করণে: 3.2-3.7 (আমি পরীক্ষা করেছি))

লোডিং থেকে বুটস্ট্র্যাপ নিষ্ক্রিয় করার কোনও উপায় আছে কি?

হ্যা এখানে. পূর্বেকম্পাইলহিড (ডক্সে আরও তথ্য। ) ব্যবহার করে শিরোনাম তৈরির আগে এটি সরিয়ে ফেলুন ।

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

আমার প্রকল্পে আমি বুটস্ট্র্যাপ ৩.২ ব্যবহার করছি। বুটস্ট্র্যাপ 2 অপসারণের উপায় খুঁজতে আমি সারা দিন কাটিয়েছি।

একমাত্র সমাধান ছিল শিরোনাম তৈরির আগে স্ক্রিপ্ট অপসারণ করা।

আমার সমাধানটি হ'ল একটি প্লাগইন ক্রিট করুন:

class plgSystemYourPlugin extends JPlugin
{
    public function onBeforeCompileHead()
    {
        // Application Object
        $app = JFactory::getApplication();

        // Front only
        if( $app instanceof JApplicationSite )
        {
            $doc            = JFactory::getDocument();
            // Remove default bootstrap
            unset($doc->_scripts[JURI::root(true).'/media/jui/js/bootstrap.min.js']);
        }
    }
}

এটি জুমলায় কাজ করে! 3.2-3.6

(আগ্রহের জন্য) আমার এটিও সরিয়ে ফেলতে হবে:

    unset($doc->_scripts[JURI::root(true).'/media/system/js/frontediting.js']);
    unset($doc->_scripts[JURI::root(true).'/media/system/js/html5fallback.js']);

2
গ্রেট! আপনাকে আমার নিজের তৈরি করতে "মিনিট জ্যাকুয়ারি এবং বুস্ট্র্যাপ" প্লাগইন তৈরি করতে 5 মিনিট সময় নিয়েছে আপনাকে ধন্যবাদ।
আলেকজান্দ্রে পাওলো

16

একটি বিকল্প হ্যাক যা আমি সর্বদা ফেলে দিতে পছন্দ করি, কারণ এতে মূল ফাইলগুলি সম্পাদনা করা জড়িত না হ'ল আপনার টেমপ্লেটে ফাঁকা সিএসএস ফাইল সহ সিএসএস ফাইলকে ওভাররাইড করা। এটি এখনও আপনার সার্ভারে রিসোর্স লোড করার জন্য কল আনবে, তবে আপনার কোনও বুটস্ট্র্যাপ স্টাইলিং লাগবে না।

এখানে একটি খালি ফাইল যুক্ত করুন: templates/YOUR_TEMPLATE/css/jui/bootstrap.min.cssএবং templates/YOUR_TEMPLATE/js/jui/bootstrap.min.js

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


কখনই সেভাবে ভাবিনি, দুর্দান্ত !!!
মোহাম্মদ আবদুল মুজিব

7

কেবল একটি ধারণা (পরীক্ষিত নয়) তবে বুটস্ট্রাপ আনসেট করা একটি ছোট প্লাগইন কীভাবে তৈরি করবেন?

এটার মতো কিছু:

public function onAfterRender() {
    //get the array containing all the script declarations
     $document = JFactory::getDocument(); 
     $headData = $document->getHeadData();
     $scripts = $headData['scripts'];

     //remove script
     unset($scripts['/media/jui/js/bootstrap.min.js']);
     $headData['scripts'] = $scripts;
     $document->setHeadData($headData);
}

4

আপনি যদি নিজের প্লাগইন তৈরির দিকে না তাকিয়ে থাকেন তবে একটি সহজ সমাধান চেষ্টা করার চেষ্টা করা হবে:

টেমপ্লেটে আনসেট করুন

//JS
unset($doc->_scripts[$this->baseurl.'/media/jui/js/bootstrap.min.js']);
// CSS    
unset($doc->_stylesheets[$this->baseurl.'/media/jui/js/bootstrap.css']);

তবে - কিছু এক্সটেনশানগুলি এখনও সরিয়ে ফেললেও জেএস বা সিএসএস stillোকায়। আমি সবচেয়ে নির্ভরযোগ্য উপায় আবিষ্কার করেছি এর সাথে:

জেসিসি - জেএস সিএসএস নিয়ন্ত্রণ প্লাগইন

http://extensions.joomla.org/extensions/extension/core-enhancements/performance/js-css-control

তবে - আপনার টেমপ্লেটে এখনও জেএস ইনলাইনটি এখনও sertedোকানো থাকবে o সুতরাং - কখনও কখনও আপনাকে ইনলাইন জেএসের জন্য প্রিগ_রেপ্লেস করতে হবে।


4

এটি এমন একটি জিনিস যা আমাকে জুমলা ৩.x এর শুরু থেকেই বাগিয়ে রেখেছে এবং এখনও অবধি, বুটস্ট্র্যাপ ফাইলগুলি লোড হওয়া থেকে রোধ করার জন্য ব্যবহারকারীকে বিকল্প দেওয়ার জন্য কিছুই করা হয়নি।

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

এটি মুছে ফেলার একমাত্র উপায় (যা আমি জানি) নিম্নলিখিত ফাইলটিতে মূল হ্যাকের মাধ্যমে: ( প্রস্তাবিত নয় )

লাইব্রেরি \ CMS \ এইচটিএমএল \ bootstrap.php

আমি অন্য যেভাবে ভাবতে পারি তা হ'ল প্রতিটি মডিউল, উপাদান এবং প্লাগইনগুলির জন্য একটি টেমপ্লেট ওভাররাইড তৈরি করা যা বুটস্ট্র্যাপ লাইব্রেরিকে কল করে এবং এটি সরিয়ে দেয়।

কোনও পদ্ধতিই দুর্দান্ত নয় তবে জুমলা ৩.x বুটস্ট্র্যাপে নির্মিত হয়েছিল তাই এটির সাথে আমাদের বাঁচতে হবে


1
ধন্যবাদ লডার। দেখে মনে হচ্ছে কিছুটা সংক্ষিপ্ত দৃষ্টিতে তাদের কাছে অফ বোতাম নেই। আশা রাখি, তারা জুমলা 3.4 থেকে :) যোগ করা হবে
TryHarder

আপনার মূল ফাইল থাকা উচিত নয়। সময়কাল। মূল ফাইল হ্যাকিং ছাড়াই বুটস্ট্র্যাপের সমস্ত চিহ্ন সরিয়ে নেওয়ার প্রচুর অন্যান্য উপায় রয়েছে এবং সেগুলি সব থেকে ভাল। এগুলির সমস্ত একটি জুমলা আপডেটেও বেঁচে থাকবে, যা হ্যাকড কোর ফাইলগুলি সম্পর্কে বলা যায় না।
শেঠ ওয়ারবার্টটন

@ সেথ, হ্যাঁ এখন অন্য উপায় আছে। এই উত্তরটি 9 মাস আগে লেখা হয়েছিল এবং সেই সময় আমি অন্য কোনও উপায় জানতাম না
লড্ডার

@ ভ্যালেনটিন দেশপা, আমার পক্ষে এই উত্তরটি মুছতে পারছেন না কেন?
লড্ডার

@oooooo - আমি এখানে উত্তর হিসাবে "গ্রহণযোগ্য" পতাকাটি সরানোর অনুরোধ করেছি কারণ এটি এখানে সমাধান নয়। যদি তারা এটি করতে অক্ষম হন, তবে আপনি দয়া করে অন্যের উত্তরকে "স্বীকৃত" হিসাবে চিহ্নিত করতে আপত্তি করবেন?
লড্ডার

3

দুটি উপায় আছে:

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

    1. এটি করতে পারে এমন অসংখ্য সিস্টেমে প্লাগইন ব্যবহার করুন। ব্যক্তিগতভাবে, আমি এটির একটি https://github.com/phproberto/plg_sys_mootable এর পরামর্শ দিই কেননা এটি কখন এবং কোথায় ফাইলগুলি অপসারণ করতে হবে তার উপর সম্পূর্ণ নিয়ন্ত্রণ দেয় যাতে এটি উদাহরণস্বরূপ সম্মুখ-প্রান্ত সম্পাদনা না ভাঙতে সেট করা যেতে পারে (যা আপনি যদি অপসারণ করেন তবে সবকিছু স্বাভাবিকভাবে ভেঙে যাবে)।

অপশন 2-এর সহজে ব্যবহারের সুবিধা রয়েছে তবে আপনার সাইটটি টুকরো টুকরো টুকরো টুকরো টুকরো টুকরো টুকরো টুকরো টুকরো টুকরো টুকরো টুকরো টুকরো টুকরো টুকরো টুকরো টুকরো সঙ্গে বাস করতে হবে। বিকল্প 1টিতে আরও কিছুটা কাজ লাগে তবে এর অর্থ আপনি বুটস্ট্র্যাপের প্রতিটি চিহ্ন সরিয়ে ফেলতে পারেন ; সর্বদা আমার পছন্দসই বিকল্প। উদাহরণস্বরূপ কোডের জন্য http://joomlafચર . com/ দেখুন ।


2

জুমলা বুটস্ট্র্যাপ সিএসএস স্বয়ংক্রিয়ভাবে লোড করে না, তবে এটি জেএস লোড করে। যদি আপনার টেম্পলেটটি জুমলা হেড লোড করতে মানক পদ্ধতি ব্যবহার করে:

<jdoc:include type="head" />

এটি এই ক্রমে মটুলগুলি, জ্যাকেয়ারি এবং বুটস্ট্র্যাপ ফাইলগুলি লোড করবে:

<script src="/media/system/js/mootools-core.js" type="text/javascript"></script>
<script src="/media/system/js/core.js" type="text/javascript"></script>
<script src="/media/system/js/caption.js" type="text/javascript"></script>
<script src="/media/system/js/mootools-more.js" type="text/javascript"></script>
<script src="/media/jui/js/jquery.min.js" type="text/javascript"></script>
<script src="/media/jui/js/jquery-noconflict.js" type="text/javascript"></script>
<script src="/media/jui/js/bootstrap.min.js" type="text/javascript"></script>

এটি সিএসএস ফাইল লোড করে না। আপনি এটি আপনার টেম্পলেট ফাইল থেকে লাইনটি সরিয়ে পরীক্ষা করতে পারেন, তারপরে কোন প্রধান ফাইলগুলি অনুপস্থিত রয়েছে তা পরীক্ষা করে।

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

যেহেতু ফ্রন্টএন্ড এবং ব্যাকএন্ডে আলাদা আলাদা টেম্পলেট রয়েছে, তাই বুটস্ট্র্যাপের জন্য লোড বা অক্ষম করা যেতে পারে অন্যটির জন্য নয়। আপনি যদি ফ্রন্টএন্ড থেকে বুটস্ট্র্যাপটি অক্ষম করতে চান এবং ব্যাকএন্ডটি না থাকে তবে কোনও নির্ভরতা নেই।

আমার পছন্দ বুটস্ট্র্যাপ 3, তাই বিভিন্ন বিভিন্ন কাস্টম টেম্পলেটগুলিতে আমি জুমলা হেড লাইনের পরে এবং আমার টেম্পলেট হেড ট্যাগগুলির মধ্যে আমার টেম্পলেট হেডে বুটস্ট্র্যাপ 3 সিএসএস ডাউনলোড এবং অন্তর্ভুক্ত করেছি:

$document = JFactory::getDocument();
$document->setMetaData( 'viewport', 'width=device-width, initial-scale=1, minimum-scale=1' );
$document->addStyleSheet($this->baseurl.'/templates/'.$this->template.'/css/bootstrap.min.css');

ওয়ার্প frame এর মতো ফ্রেমওয়ার্কগুলির জন্য পদ্ধতিটি কিছুটা আলাদা you আপনি যদি পছন্দ করেন তবে বুটস্ট্র্যাপ সিডিএন ইউআরএল থেকে সরাসরি লোড করতে পারেন।

সুতরাং জুমলা আপনাকে অন্তত সিএসএসের জন্য বুটস্ট্র্যাপ বা বুটস্ট্র্যাপের কোনও সংস্করণ ব্যবহার করতে বাধ্য করে না। আপনি চাইলে অন্যান্য প্রতিক্রিয়াশীল ফ্রেমওয়ার্ক ব্যবহার করতে পারেন। এটি সমস্ত টেমপ্লেটে সম্পন্ন হয়েছে। হ্যাকস বা প্লাগইনগুলির প্রয়োজন নেই।


1

জুমলা ৩.৩ (এর চেয়ে কম) বুটস্ট্র্যাপ ২.৩ নয় বুটস্ট্র্যাপ ৩. এক্স এর উপর ভিত্তি করে

আমি বুটস্ট্র্যাপের নতুন প্রকাশে স্থানান্তরিত করতে চেয়েছিলাম, এবং আমার ধারণার উপর ভিত্তি করে অনেকগুলি অবস্থান ছিল যা অবশ্যই অবশ্যই পরিবর্তন করতে হয়েছিল। আমি এটা করেছি কিন্তু খুব ইদানীং।

কোডের অনেকগুলি পজিশনে আমাকে বুটস্ট্র্যাপ যেমন নীচের কোডটি অক্ষম করতে হয়েছিল:

// জাভাস্ক্রিপ্ট ফ্রেমওয়ার্ক জেএইচটিএমএল যুক্ত করুন :: _ ('বুটস্ট্র্যাপ.ফ্রেমওয়ার্ক');

এবং এটি করতে একটি নতুন সম্পূর্ণ জুমলা টেম্পলেট তৈরি করেছে; তবে আপনি যদি অন্য ইউআই কাঠামোয় স্থানান্তরিত করতে চান তবে আমার মনে হয়, আপনারও এই প্রক্রিয়াটি চালিয়ে যেতে হবে এবং কমপক্ষে আপনার কাছে 30 টিরও বেশি উপাদান, মডিউল, প্লাগইনস এবং কিছু জুমলা লিগ্যাসি কোড রয়েছে যা আপনাকে আবার বিকাশ করতে হবে। এটি সহজ তবে অনেক সময় প্রয়োজন।

নতুন উপলব্ধি 02 জুলাই 2015: জুমলার "আনসেট" পদ্ধতির উপর ভিত্তি করে আমাদের কিছু বন্ধু এই ফোরামে উল্লেখ করেছেন যে আমি বুটস্ট্র্যাপ এবং মটুলগুলি বা অন্য কোনও জাভাস্ক্রিপ্ট লাইব্রেরি বা সিএসএস ফাইলের পূর্ববর্তী সংস্করণটিকে সম্পূর্ণভাবে অক্ষম করতে পারি। আমি খারাপ সমাধানের কথা বলার আগে আমি দুঃখিত। বুটস্ট্র্যাপ নিষ্ক্রিয় করার জন্য আরও তথ্য পেতে আপনি এই পোস্টটি পড়তে পারেন


আমার স্নাতকের. বুটস্ট্র্যাপ 3 একটি ভুল। আমি এখন এটি সম্পাদনা করব।
ট্রাইহার্ডার

-2

অথবা আপনি ইয়ুথেম থেকে কোনও টেম্পলেট ব্যবহার করতে পারেন, এটি ডিফল্ট হিসাবে সেট করুন, তারপরে সেই টেম্পলেট কনফিগারেশনে "বুটস্ট্র্যাপ লোড করবেন না" নির্বাচন করুন।


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