উপাদান অংশে মডিউলটি কীভাবে প্রদর্শিত হবে


13

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

আমি এটি সমাধান করার উপায়টি হল একটি নতুন নিবন্ধ তৈরি করা, এবং কেবল {loadposition mymodule}নিবন্ধের সামগ্রীতে যুক্ত করা। তারপরে আমি নিবন্ধটির জন্য একটি একক আর্টিকেল মেনু আইটেম তৈরি করব। এটি একটি একক মডিউলের জন্য ঠিক আছে, তবে আমার যদি 20 টি বিভিন্ন মডিউল থাকে যা আমি এইভাবে প্রদর্শন করতে চাই? আমাকে 20 টি মডিউল, 20 (প্রায় খালি) নিবন্ধ এবং 20 টি মেনু আইটেম তৈরি করতে হবে।

কোনও টেমপ্লেটের উপাদান অংশে কোনও মডিউল (এবং কিছুই নয়) প্রদর্শন করার অন্যান্য উপায় আছে? ট্রিকস? হ্যাক? ধারনা?


আপনি এটি জুমলা দরকারী হতে পারে! 3 আপনার জন্য একটি মডিউল তৈরি করে এমন সম্পাদক বোতামটি ব্যবহার করতে। এটি এটিকে দ্রুত এবং কম ত্রুটিযুক্ত করে তুলবে।
ইয়োন

উত্তর:


10

আমি উপাদানটির সাথে একই স্থানে একটি মডিউল অবস্থান তৈরি করে এবং এই অবস্থানে কোনও মডিউল উপস্থিত রয়েছে কিনা তা পরীক্ষা করে এটি সম্পাদন করেছি, অন্যথায় উপাদানটির জন্য যান:

কোড নমুনা:

<main id="content" role="main" class="main">
 <?php 
 if ($this->countModules('myposition')) 
   { ?>
     <jdoc:include type="modules" name="myposition" style="xhtml" />
 <?php } 
  else 
  { ?>
     <jdoc:include type="component" /> 
  <?php } ?>
</main>

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

একটি ছোট দিকে নোট:

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


1
এটিই আদর্শ সমাধান। অনেক বাণিজ্যিক টেম্পলেটগুলির অ্যাডমিন সাইড কনফিগারেশনে একটি প্যারামিটার টগল থাকে তবে আপনি যদি সেই বাণিজ্যিক টেম্পলেটগুলির মধ্যে একটি ব্যবহার না করেন ... তবে এটি সর্বাধিক দক্ষ এবং মার্জিত উত্তর।
টনি মেরি

1
আমি এই ধারণাটি পছন্দ করি, এটি সহজ এবং কার্যকর এবং বিদ্যমান টেম্পলেটগুলিতে প্রয়োগ করা সহজ। চমৎকার।
johanpw

9

প্রদত্ত উত্তরগুলি এখানে বাড়ানোর জন্য:

আপনার উপাদান দৃশ্যে একটি মডুলের অবস্থান অন্তর্ভুক্ত করতে এবং সেখানে মডিউলগুলি লোড করতে, আপনাকে কেবল যুক্ত করতে হবে

echo JHtml::_('content.prepare', '{loadposition yourmodulposition}');

ভিউ ফাইল।

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

$outputModules = '<strong>Some Html</strong>'
                 .'{loadposition yourmodulposition1}'
                 .'{loadposition yourmodulposition2}';


echo JHtml::_('content.prepare', $outputModules);

(আমি জানি এটি লেখকদের প্রশ্নের সরাসরি উত্তর নয়))


2

এখানে একটি সহজ এবং কার্যক্ষম সমাধান is আমি jdoc দিয়ে চেষ্টা করেছি: অন্তর্ভুক্ত কিন্তু এটি কার্যকর হয়নি।

    $ দস্তাবেজ = জেফ্যাক্টরি :: getDocament ();
    nd রেন্ডারার = $ ডকুমেন্ট-> লোডরেন্ডারার ('মডিউল');
    $ অবস্থান = 'কাস্টমপজিশননেম';
    $ অপশন = অ্যারে ('স্টাইল' => 'কাঁচা');
    প্রতিধ্বনি $ উপস্থাপক-> রেন্ডার ($ অবস্থান, $ বিকল্পগুলি, নাল); 

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

ব্যাকডে একটি নতুন মডিউল তৈরি করুন এবং এর অবস্থান নির্ধারণ করুন (কাস্টমপজিশন নামটি বলুন) এবং এটি প্রকাশ করুন। অগ্রভাগে, উপরের কোডটি যুক্ত করুন এবং এটি কোনও সমস্যা ছাড়াই কাজ করবে।
ব্যবহারকারী 2589739

0

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


0

প্রথমে, আপনার প্রশ্ন অনুসারে আপনি ইতিমধ্যে 20 টি মডিউল এবং 20 টি মেনু আইটেম তৈরি করছেন, সুতরাং আপনার কেবলমাত্র অতিরিক্ত জিনিসটি হ'ল প্রতিটি মডিউলের জন্য একটি লাইন সামগ্রী আইটেম তৈরি করা। যদি এটি সত্যিই এত বেশি সাহসী হয় তবে @FFrewin এর ধারণাটি নিয়ে এগিয়ে যান ahead এটি কিছুটা হ্যাকি, তবে এটি কার্যকর হবে।

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



0

এটা চেষ্টা কর

jimport('joomla.application.module.helper');
    // this is where you want to load your module position
    $modules = JModuleHelper::getModules('header'); 
    foreach($modules as $module)
    {
    echo JModuleHelper::renderModule($module);
    }

রেফ: /programming/12225538/how-we-inc شمول-a-joomla-module-in-a-component-view-in- joomla


0

ফাঁকা নিবন্ধ তৈরি করুন।

আপনার তৈরি নিবন্ধটি নির্বাচন করে মেনু আইটেম তৈরি করুন।

অব্যবহৃত অবস্থায় মডিউল তৈরি করুন, কেবল নির্বাচিত পৃষ্ঠাগুলিতে মেনু অ্যাসাইনমেন্ট সেট করুন, উপর থেকে কেবল মেনু আইটেমটি নির্বাচন করুন।

যেহেতু এটি শীর্ষে ছিল তবে আমি আমার উত্তর সরবরাহ করব, আমি এটি করি।

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