regionhalland/region-halland-plugin-array-pagination

Specialfunktion för att skapa pagination i en array

v1.4.0 2020-07-14 14:10 UTC

This package is auto-updated.

Last update: 2024-04-14 22:17:22 UTC


README

Hur man använder Region Hallands plugin "RhArrayPagination"

Nedan följer instruktioner hur du kan använda pluginet "RhArrayPagination".

Användningsområde

Denna plugin gör att man kan paginera en array. Funktionen håller koll på var i arrayen man är och vilka poster man ska visa

Licensmodell

Denna plugin använder licensmodell GPL-3.0. Du kan läsa mer om denna licensmodell via den medföljande filen:

LICENSE (https://regionhalland.visualstudio.com/public.RhWpPlugIns/_git/RhArrayPagination?path=%2FLICENSE&version=GBmaster)

Installation och aktivering

A) Hämta pluginen via Git eller läs in det med Composer
B) Installera Region Hallands plugin i Wordpress plugin folder
C) Aktivera pluginet inifrån Wordpress admin

Hämta hem pluginet via Git

git clone https://regionhalland.visualstudio.com/public.RhWpPlugIns/_git/RhArrayPagination

Läs in pluginen via composer

Dessa två delar behöver du lägga in i din composer-fil

Repositories = var pluginen är lagrad, i detta fall på github

"repositories": [
  {
    "type": "vcs",
    "url": "https://regionhalland.visualstudio.com/public.RhWpPlugIns/_git/RhArrayPagination"
  }
],

Require = anger vilken version av pluginen du vill använda, i detta fall version 1.0.0

OBS! Justera så att du hämtar aktuell version.

"require": {
  "regionhalland/region-halland-array-pagination": "1.0.0"
},

Hämta ut paginerings-arrayen och placera den i variabeln $myPagination

  • Först hämtar man en valfri array
  • Därefter anropar man funktionen "get_region_halland_array_pagination()"
  • Man anger tre värden, varav endast det först är obligatoriskt
  • Antal poster i arrayen, dvs detta kan anges som "count(ARRAY)"
  • Hur många poster som ska visas per sida, anges ingenting är default värde 5
  • Vilket namn querystringen har, default är "sida"
@php($myPagination = get_region_halland_array_pagination(count($myPages),5,'sida'))

Exempel på hur paginerings-arrayen kan se ut

  • I denna array finns alla uppgifter man behöver för att paginera
array (size=13)
  'size' => int 5
  'current_page' => int 5
  'antal_items' => int 43
  'total_pages' => int 9
  'start_item' => int 20
  'end_item' => int 25
  'first_page' => int 1
  'prev_page' => int 4
  'next_page' => int 6
  'last_page' => int 9
  'start_number' => int 2
  'end_number' => int 8
  'start_end' => 
    array (size=7)
      0 => 
        array (size=1)
          'number' => int 2
      1 => 
        array (size=1)
          'number' => int 3
      2 => 
        array (size=1)
          'number' => int 4
      3 => 
        array (size=1)
          'number' => int 5
      4 => 
        array (size=1)
          'number' => int 6
      5 => 
        array (size=1)
          'number' => int 7
      6 => 
        array (size=1)
          'number' => int 8

Loopa igenom poster i intervallet

  • Om man inte vill hämta arrayen varje gång kan man mellanlagra den i en session
  • Notera att man inte stegar igenom arrayen som man gör annars
  • Istället stegar man igenom "arrayens index" och anropar värden genom index-numret
@if(function_exists('get_region_halland_page_children'))
  @php($myPages = get_region_halland_page_children())
    @if(isset($myPages))
      @php($myPagination = get_region_halland_array_pagination(count($myPages),5,'sida'))
        @php($i = $myPagination['start_item'])
        <?php while ($i < $myPagination['end_item']) { ?>
          {{ $myPages[$i]['title'] }}<br>
          {{ $myPages[$i]['content'] }}<br>
        <?php $i++; } ?>
    @endif
@endif

Visa hur många poster det finns och på vilken sida man är

Det finns {{ $myPagination['antal_items'] }} sidor
Du är på sida {{ $myPagination['current_page'] }} av {{ $myPagination['total_pages'] }}	

Visa sid-navigering

<span><a href="./?sida={{ $myPagination['first_page'] }}"><<</a></span>
<span><a href="./?sida={{ $myPagination['prev_page'] }}"><</a></span>
  @foreach ($myPagination['start_end'] as $start_end)
    <span>
      @if($myPagination['current_page'] == $start_end['number'])
	    <strong>
	      <a href="./?sida={{ $start_end['number'] }}">{!! $start_end['number'] !!}</a>
	    </strong>
	  @else
	    <a href="./?sida={{ $start_end['number'] }}">{!! $start_end['number'] !!}</a>
	  @endif
	</span>
  @endforeach
<span><a href="./?sida={{ $myPagination['next_page'] }}">></a></span>
<span><a href="./?sida={{ $myPagination['last_page'] }}">>></a></span>

Versionhistorik

1.4.0

  • Lagt till pipeline för publicering via Packagist
  • Justerat composer-namn

1.3.0

  • Bifogat fil med licensmodell

1.2.0

  • Uppdaterat readme med uppdaterade länkar

1.1.0

  • Lagt till information om licensmodell

1.0.1

  • Korrigerat antal poster för sista sidan i "end_item"

1.0.0

  • Första version