কিছু পূর্বশর্ত রয়েছে এবং আপনার ভিউ টেম্পলেটটিতে আপনাকে কিছু পরিবর্তন করতে হবে। তবে আপনাকে এই বৈশিষ্ট্যটি নিজেই বিকাশ করতে হবে না।
পূর্বশর্ত
- আপনার ডাটাবেস সারণিতে আপনার কলামের আইএনটি টাইপের ক্রম দরকার
- আপনার তালিকা ভিউ ইতিমধ্যে বাছাইযোগ্য হওয়া উচিত (টেবিল কলাম শিরোনাম ক্লিক করে)
পরিবর্তন
আপনার টেবিলের সারিগুলিকে টেনে আনুন এবং ছাড়িয়ে দেওয়ার জন্য এটি সর্বাধিক গুরুত্বপূর্ণ অংশ:
JHtml::_('sortablelist.sortable', 'itemList', 'adminForm', strtolower($listDirn), $saveOrderingUrl);
আপনার টেবিলটি ডাটাবেস টেবিল কলাম ক্রম অনুসারে বাছাই করা থাকলে কেবল সক্রিয় করা উচিত (যেমন উপরের লাইনটি কার্যকর করুন) । আপনার টেবিলটি কোন কলাম অনুসারে বাছাই করা হয়েছে এবং কোন দিকে (এএসসি বা ডিইএসসি) তা সন্ধান করতে হবে। আপনার ডিফল্ট.এফপি এর শুরুতে এটি করুন:
$listOrder = $this->escape($this->state->get('list.ordering'));
$listDirn = $this->escape($this->state->get('list.direction'));
আপনার টেবিলটি কলাম অর্ডার দিয়ে অর্ডার করা হয়েছে কিনা তা পরীক্ষা করুন
$saveOrder = $listOrder == 'a.ordering';
আপনার টেবিল সারিগুলিকে টেনে আনুন এবং সাজানোর ব্যবস্থা করুন যদি $ saveOrder সত্য হয়। টাস্কে আইটেম = আইটেমগুলিতে আপনার উপাদানটির নাম এবং "আইটেমগুলি" দিয়ে com_example প্রতিস্থাপন করুন ave
if ($saveOrder)
{
$saveOrderingUrl = 'index.php?option=com_example&task=items.saveOrderAjax&tmpl=component';
JHtml::_('sortablelist.sortable', 'itemList', 'adminForm', strtolower($listDirn), $saveOrderingUrl);
}
আপনি যখনই কোনও আইটেম ফেলেছেন তখন $ saveOrderingUrl এজেএক্সের মাধ্যমে কল করা হবে। যদি আপনার নিয়ামক সঠিক জুমলা এমভিসি ক্লাস (জেসিট্রোলারএডমিন) প্রসারিত করে থাকেন তবে এই পদ্ধতিটি আপনার জন্য স্বয়ংক্রিয়ভাবে উপলব্ধ। আইটেমলিস্টটি আপনার এইচটিএমএল টেবিলের আইডি এবং অ্যাডমিনফর্মটি আপনার এইচটিএমএল ফর্মের নাম (বা আইডি, নিশ্চিত নয়):
<form action="<?php echo JRoute::_('index.php?option=com_example&view=items'); ?>" method="post" name="adminForm" id="adminForm">
...
<table class="table table-striped" id="itemList">
...
</table>
...
</form>
আপনার HTML টেবিলটিতে আপনার একটি নতুন কলামের প্রয়োজন হবে column আপনার স্ক্রিনশটে এটি কলামটি খুব বামে। সারণী কলামের শিরোনামটি দেখতে এমন দেখাচ্ছে:
<th width="1%" class="nowrap center hidden-phone">
<?php echo JHtml::_('searchtools.sort', '', 'a.ordering', $listDirn, $listOrder, null, 'asc', 'JGRID_HEADING_ORDERING', 'icon-menu-2'); ?>
</th>
আপনার টেবিলের বডির জন্য আপনার সম্ভবত সমস্ত তালিকা আইটেমের মধ্য দিয়ে একটি ফোরচ লুপ রয়েছে। আপনার এইচটিএমএল টেবিলের প্রতিটি সারিতে প্রথম কক্ষটি সেই টেনে আনার আইকন হবে। যদি আপনার কাছে টানা এবং ড্রপ অক্ষম করা থাকে (কারণ আপনার টেবিলটি অর্ডার দিয়ে অর্ডার করা হয়নি ) আপনার আইকনটি নিষ্ক্রিয় করে একটি সরঞ্জামদণ্ড তৈরি করা উচিত:
<tbody>
<?php foreach ($this->items as $i => $item) :
$ordering = ($listOrder == 'ordering');
?>
<tr class="row<?php echo $i % 2; ?>">
<td class="order nowrap center hidden-phone">
<?php
$iconClass = '';
if (!$saveOrder) {
$iconClass = ' inactive tip-top hasTooltip" title="' . JHtml::tooltipText('JORDERINGDISABLED');
}
?>
<span class="sortable-handler <?php echo $iconClass ?>">
<span class="icon-menu"></span>
</span>
<?php if ($saveOrder) : ?>
<input type="text" style="display:none" name="order[]" size="5" value="<?php echo $item->ordering; ?>" class="width-20 text-area-order " />
<?php endif; ?>
</td>
...
</tbody>