আপনি কীভাবে কোনও কাস্টম টেবিলের ডেটা সহ পেজারের সাথে বাছাইযোগ্য টেবিল তৈরি করতে পারেন?


19

ড্রুপাল 6 এর জন্য আপনি এরকম কিছু করতে পারেন:

$header = array(
  array('data' => t('Order id'), 'field' => 'order_id'),
  ...
  array('data' => t('Transaction time'), 'field' => 'payment_time', 'sort' => 'desc'),
);
$sql = "...";
$sql .= tablesort_sql($header);
$limit = 25;
$result = pager_query($sql, $limit);
...

আমি একবার দেখেছিলাম এবং ড্রুপাল 7 এবং উভয়ের জন্য pager_queryএবং tablesort_sqlএখন চলে গেছে। মনে হচ্ছে পরিবর্তে PagerDefaultক্লাসটি ডিবিটিএনজি ব্যবহার করে পেজার ক্যোয়ারী তৈরি করতে ব্যবহার করা যেতে পারে। ড্রুপাল 6-এ করা হয়েছে এমন প্রশ্নের সাথে সন্ধানযোগ্য টেবিল সংযুক্ত করার জন্য আমি কোনও সাধারণ API তে কোনও চিহ্ন খুঁজে পাইনি।

সুতরাং আপনি কীভাবে একটি কাস্টম টেবিল থেকে পেজার টানতে ডেটারের সাথে বাছাইযোগ্য টেবিল তৈরি করবেন?

উত্তর:


8

আপনি তথাকথিত প্রসারক ব্যবহার করুন। আপনার ক্ষেত্রে, কোডটি নীচের মত হবে।

$header = array(
  array('data' => t('Order id'), 'field' => 'order_id'),
  // ...
  array('data' => t('Transaction time'), 'field' => 'payment_time', 'sort' => 'desc'),
);

// Initialize $query with db_select().
$query = db_select('your table name');

// Add the fields you need to query.
// ... 

// Add the table sort extender.
$query = $query->extend('TableSort')->orderByHeader($header);

// Add the pager.
$query = $query->extend('PagerDefault')->limit(25);
$result = $query->execute();

কীভাবে দেখুন : মডিউলটিকে ডিবিটিএনজি , ডায়নামিক ক্যোয়ারী: টেবিল বাছাই এবং প্রসারকগুলিতে রূপান্তর করুন


আপনার আউটপুট: // নির্মাণ সারণীতে প্রকৃত পেজার যুক্ত করতে ভুলবেন না। $ আউটপুট = থিম ('টেবিল', অ্যারে ('শিরোনাম' => $ শিরোনাম, 'সারি' => ows সারি, 'খালি' => টি ('স্ট্রিং উপলভ্য নয়।'))); // পেজার যুক্ত করুন। $ আউটপুট। = থিম ('পেজার');
kbrinner

6

TableSortএবং PagerDefaultপ্রসারকগুলি ব্যবহার করুন ।

$query = db_select('node', 'n');
$query->fields('n', array('nid', 'title', 'status'));

$table_sort = $query->extend('TableSort') // Add table sort extender.
  ->orderByHeader($header); // Add order by headers.

$pager = $table_sort->extend('PagerDefault')
  ->limit(5); // 5 rows per page.

$result = $pager->execute();

2

ডেটাবেলস মডিউলটি ব্যবহার করুন ।

ডেটাবেবলস মডিউলটি jQuery প্লাগইন ডেটাবেলগুলিকে দ্রুপালের সাথে একটি ভিউ শৈলী এবং একটি কলযোগ্য থিম ফাংশন হিসাবে সংহত করে। ডেটা টেবিলগুলি আপনাকে টেবিলগুলিতে গতিশীল বৈশিষ্ট্যগুলি যুক্ত করতে দেয়, সহ:

  • পরিবর্তনশীল দৈর্ঘ্যের পৃষ্ঠাবদ্ধতা
  • অন ​​ফ্লাইট ফিল্টারিং
  • তথ্য প্রকার সনাক্তকরণের সাথে বাছাই করা হচ্ছে
  • কলাম প্রস্থের স্মার্ট হ্যান্ডলিং
  • সিএসএস দ্বারা থিমযোগ্য
  • এবং আরও অনেক কিছু ...

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

0

আপনি ঠিক আপনার কোডে একই ড্রুপাল 6 টেবিলসোর্ট_সকিউএল অন্তর্ভুক্ত করতে পারেন এবং এটি দুর্দান্ত কাজ করে।

পেজারের জন্য:

$count = <Total No. of Table rows>

$sql = "...";
$sql .= tablesort_sql($header);
$limit = 25; //Pager limit

$results = db_query( $sql );
$rows = array();
//Loop through the result.
while ( $row = $results->fetchAssoc() ) {
$rows = <Get your array values for Table row>
}
$current_page = pager_default_initialize($count, $limit);
$chunks = array_chunk($rows,$limit, TRUE);
$output = theme( 'table', array( 'header' => $headers, 'rows' => $chunks[$current_page] ) );
$output .= theme( 'pager', array('quantity',$count ) );
print $output;
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.