Skip to main content

To get pager on page

Use of pager query :

 Drupal 4.6 - 6 :

 pager_query($query, $limit = 10, $element = 0, $count_query = NULL)

Perform a paged database query. Use this function when doing select queries you wish to be able to page. The pager uses LIMIT-based queries to fetch only the records required to render a certain page. However, it has to learn the total number of records returned by the query to compute the number of pages (the number of records / records per page).

This is done by inserting "COUNT(*)" in the original query. For example, the query "SELECT nid, type FROM node WHERE status = '1' ORDER BY sticky DESC, created DESC" would be rewritten to read "SELECT COUNT(*) FROM node WHERE status = '1' ORDER BY sticky DESC, created DESC". Rewriting the query is accomplished using a regular expression.

 $output1 .= theme('pager',null, $count, 0);
This is used to get the number.
We can use this pager query in "Custom Search" to show the o/p with pagination.
Use pager_query instead of db_query to get pager on the result page.

NOTE : Do not use Group BY clause in the $count_query in pager query.
For more details Click Here

For Example :

function taxonomy_select_nodes($tids = array(), $operator = 'or', $depth = 0, $pager = TRUE, $order = 'n.sticky DESC, n.created DESC') {
  if (count($tids) > 0) {
    // For each term ID, generate an array of descendant term IDs to the right depth.
    $descendant_tids = array();
    if ($depth === 'all') {
      $depth = NULL;
    }
    foreach ($tids as $index => $tid) {
      $term = taxonomy_get_term($tid);
      $tree = taxonomy_get_tree($term->vid, $tid, -1, $depth);
      $descendant_tids[] = array_merge(array($tid), array_map('_taxonomy_get_tid_from_term', $tree));
    }

    if ($operator == 'or') {
      $str_tids = implode(',', call_user_func_array('array_merge', $descendant_tids));
      $sql = 'SELECT DISTINCT(n.nid), n.sticky, n.title, n.created FROM {node} n INNER JOIN {term_node} tn ON n.nid = tn.nid WHERE tn.tid IN ('. $str_tids .') AND n.status = 1 ORDER BY '. $order;
      $sql_count = 'SELECT COUNT(DISTINCT(n.nid)) FROM {node} n INNER JOIN {term_node} tn ON n.nid = tn.nid WHERE tn.tid IN ('. $str_tids .') AND n.status = 1';
    }
    else {
      $joins = '';
      $wheres = '';
      foreach ($descendant_tids as $index => $tids) {
        $joins .= ' INNER JOIN {term_node} tn'. $index .' ON n.nid = tn'. $index .'.nid';
        $wheres .= ' AND tn'. $index .'.tid IN ('. implode(',', $tids) .')';
      }
      $sql = 'SELECT DISTINCT(n.nid), n.sticky, n.title, n.created FROM {node} n '. $joins .' WHERE n.status = 1 '. $wheres .' ORDER BY '. $order;
      $sql_count = 'SELECT COUNT(DISTINCT(n.nid)) FROM {node} n '. $joins .' WHERE n.status = 1 '. $wheres;
    }
    $sql = db_rewrite_sql($sql);
    $sql_count = db_rewrite_sql($sql_count);
    if ($pager) {
      $result = pager_query($sql, variable_get('default_nodes_main', 10), 0, $sql_count);
    }
    else {
      $result = db_query_range($sql, 0, variable_get('feed_default_items', 10));
    }
  }

  return $result;
}

?>

Comments

Popular posts from this blog

Create Hooks in Civicrm in Joomla 1.5

  Create Hooks in Civicrm in Joomla 1.5 Create folder in any directory like /Joomla/media/civicrm_hook . Create file civicrmHooks.php in this directory. Go to Administer CiviCRM > Global Settings > Directories Set the path for custom php here. Use the civicrm hooks with Joomla_civicrm_hookName format. Ex. function Joomla_civicrm_buildForm( ){ // Write your code here. }

Some of the good sentences that one should keep in mind.

Don’t compare yourself with anyone in this world. If you do so, you are insulting yourself.  You are not responsible for what people think about you . But you are responsible for what you give them to think about you. A man is lucky if he is the first love of a woman. A woman is lucky if she is the last love of a man. Write your Sad times in Sand, Write your Good times in Stone. Behind every successful man, there is an untold pain in his heart. Without your involvement you can't succeed. With your involvement you can't fail. Love your job but don't love your Company because you may not know when your company stops loving you. You may get DELAYED to reach your Targets. But every step you take towards your target is EQUAL to Victory. It's better to loose your Ego to the one you Love, than to loose the one you LOVE because of EGO. Don't make promise when you are in JOY . Don't reply when you are SAD. Don't take decisions when you are ANGRY. Think twice, Act w...

Views3 Integration ( Add Db_prefix in settings.php for drupal 7 )

These instructions assume CiviCRM and Drupal are on separate databases located on the same physical host , and that the same database user has access to both the CiviCRM and Drupal databases. Before making any changes, it is  strongly  advised that you make backups of your mysql databases and settings.php file. Make sure you are logged into your Drupal site as the administrator. Visit  http://yourdomain.com/civicrm/admin/setting/uf?reset=1  Replace with the domain of your Drupal site/installation. You should see a page with output that begins with: "$databases['default']['default']['prefix']= array(" Copy everything inside this box, including the trailing ");" Open /sites/default/settings.php for editing from the root directory of the site, typically "public_html" on most servers. ( NOTE: This assumes you have a single site installation. The location of the settings file might be different depending on whether or ...