Uploaded image for project: 'Moodle'
  1. Moodle
  2. MDL-30316

Pagination bar does not display all options when maxdisplay is lower than 18

    XMLWordPrintable

Details

    • MOODLE_21_STABLE
    • MOODLE_23_STABLE, MOODLE_24_STABLE
    • wip-MDL-30316-master
    • Hide

      file lib/outputcomponents.php
      Class paging_bar
      function: prepare(renderer_base $output, moodle_page $page, $target)
      line: 2038

      Before:

      ...
                  if ($this->page > 15) {
                      $startpage = $this->page - 10;

      After:

      ...
                  if ($this->page > round($this->maxdisplay/3*2)) {
                      $startpage = $this->page - round($this->maxdisplay/3);

      Show
      file lib/outputcomponents.php Class paging_bar function: prepare(renderer_base $output, moodle_page $page, $target) line: 2038 Before: ... if ($this->page > 15) { $startpage = $this->page - 10; After: ... if ($this->page > round($this->maxdisplay/3*2)) { $startpage = $this->page - round($this->maxdisplay/3);
    • Hide
      1. set public $maxdisplay = 18; in lib/outputcomponents.php to 5
      2. Create database activity.
      3. Add more than 5 entries
      4. Go to View single option
      5. Click on page 5 and try to access the rest of the entries without changing manually the url.

      p.s. it can be tested with any other interface with pagination that has more than 5 entries.

      Show
      set public $maxdisplay = 18; in lib/outputcomponents.php to 5 Create database activity. Add more than 5 entries Go to View single option Click on page 5 and try to access the rest of the entries without changing manually the url. p.s. it can be tested with any other interface with pagination that has more than 5 entries.

    Description

      I changed the maxdisplay to 5 because the section I have to show the pagination is not big enough but I found a problem. The values to calculate which pages to display are hardcoded instead of being relative, for example:

      When viewing an interface with pagination, it only shows the first 5 pages and the user can't access the rest.
      I created a database activity with more than 5 entries and when I click on "View single" and navigate to page number 5, I can't access the rest unless I change the URL manually but then I wouldn't see the current page.

      I think this is something very specific, but I think the suggested solution can help everyone in a similar situation.

      Attachments

        Issue Links

          Activity

            People

              phalacee Jason Fowler
              mmorelos Martha
              Adrian Greeve Adrian Greeve
              Dan Poltawski Dan Poltawski
              Andrew Davis Andrew Davis
              David Woloszyn, Huong Nguyen, Jake Dallimore, Meirza, Michael Hawkins, Raquel Ortega, Safat Shahin, Stevani Andolo, Huong Nguyen, Bas Brands, Mathew May, Amaia Anabitarte, Carlos Escobedo, Laurent David, Mikel Martín Corrales, Sabina Abellan, Sara Arjona (@sarjona)
              Votes:
              0 Vote for this issue
              Watchers:
              6 Start watching this issue

              Dates

                Created:
                Updated:
                Resolved:
                11/Mar/13