login  Naam:   Wachtwoord: 
Registreer je!
Scripts > PHP > Navigatie systemen > PageNav Class


Reacties op het script PageNav Class

Offline  Legolas
Gepost op: 11 juli 2005 - 17:41
Onbekend



Ey,

de manier van scripten vind ik echt heel goed:o ik script nu ook zo:D.

Maar er zit een schoonheidsfoutje in: Je start $i bij 0 dus je begint bij pagina 0, dit moet natuurlijk pagina 1 zijn. toen ik hiermee ging rommelen kreeg ik heel wat geërror:s

Kun jij dit ff oplossen?:D

Offline  Rens
Gepost op: 11 juli 2005 - 17:45
Gouden medaille

Crew algemeen




Word aangepast.
Had het locaal wel al veranderd, ben vergeten om het hier ook te veranderen...

Word aangepast:)

edit; Aangepast.
In de for-loop, de $i = 0; is blijven staan.
Heb bij de output iets veranderd.

Het volgende stukje gaat het om (is aangepast):
  1. for($i = 0; $i < $iTotaalPagina; $i++)
  2. {
  3. // is de huidige pagina gelijk aan &i ?
  4. if($i == $iPagina)
  5. {
  6. // ja, de gebruiker zit op pagina $i
  7. // dus maken we hier de $i bold
  8. // de gebruiker zit immers al op deze pagina
  9. $this->sNav .= "<b>".($i+1)."</b> - ";
  10. } else
  11. {
  12. // nee, de gebruiker zit op een andere pagina
  13. // dus we maken er een gewone link van
  14. $this->sNav .= "<A HREF='".$sPagina.$this->sAdd."nav=".$i."'>".($i+1)."</A> - ";
  15. }
  16. }

Offline  Fenrir
Gepost op: 12 juli 2005 - 15:11
PHP expert



Waarom gebruik je een class?
Citaat:
de manier van scripten vind ik echt heel goed
Bedoel je OOP? Dit is helemaal geen OOP. Het heeft geen zin een class om een functie te zetten als het geen class is, maar een (verzameling van) funcie(s).

Offline  Thomas
Gepost op: 16 juli 2005 - 11:31
Moderator



Enkele opmerkingen:

* navigatie gooit andere onderdelen uit je URL
je kunt dit script dus niet makkelijk integreren in een site met al een soort van pagina-navigatie... Beter is wellicht het overnemen van alle (andere) URL-variabelen met $_GET en deze dan opnemen in je hyperlinks

* In plaats van $this->sNav = ""; variabele-declaraties gebruiken in de class, en niet in een methode (functie) ?
dus:

  1. class nav(...) {
  2. var $sNav; // eventueel met initialisatie
  3. ...
  4. }


* if(($iPagina-1) > -1)
Dit is hetzelfde als if($iPagina > 0)

* if(($iPagina+1) <= $iTotaalPagina)
Dit is hetzelfde als if($iPagina < $iTotaalPagina)
(is ook logisch want je nummert vanaf 0, dus heb je pagina's met nummers die lopen vanaf 0 tot en zonder $iTotaalPagina)

Als je classes gebruikt moeten ze wel een beetje flexibel gebruikt kunnen worden, je moet die dingen in verschillende sites kunnen hergebruiken.

Offline  Rens
Gepost op: 17 juli 2005 - 23:23
Gouden medaille

Crew algemeen




Citaat:
[I][B]FangorN[/B] schreef op 16 Juli 2005 - 11:31[/I]
* if(($iPagina-1) > -1)
Dit is hetzelfde als if($iPagina > 0)

* if(($iPagina+1) <= $iTotaalPagina)
Dit is hetzelfde als if($iPagina < $iTotaalPagina)
(is ook logisch want je nummert vanaf 0, dus heb je pagina's met nummers die lopen vanaf 0 tot en zonder $iTotaalPagina)


over dat eerste deel ben ik het met je eens, maar bij het bovenstaande niet helemaal.

Bij de eerste if word er gekeken, of de nav nog correct is.
Het gaat over een 'vorige' link, en daarvoor moet je kijken (toch?) of de pagina nr. -1 nog hoger is dan -1 (of gelijk aan 0).

if($iPagina > 0) ==> $iPagina bevat het nr. van de pagina waar de gebruiker op dat moment op zit.
Dus er word niet gekeken of de 'vorige'-link correct is.

Bij de 2e if hetzelfde, daar word gekeken of $iPagina (pagina waar de gebruiker op zit) +1 lager of gelijk is aan het totaal aantal pagina's.


Of begrijp ik het nu verkeerd?:)

Offline  Richard
Gepost op: 20 januari 2006 - 15:49
Crew algemeen



regel 16: ereg???? waarom regexes gebruiken als je gewoon strpos kunt gebruiken? (strpos ($sPagina, '?') !== false)...

dat gezegd, vind ik de variabelen stijl (PEAR stijl) erg slecht, vooral voor beginners, die zullen snel problemen krijgen met case-sensitivity;)

Offline  Rens
Gepost op: 20 januari 2006 - 15:52
Gouden medaille

Crew algemeen




Maakt dat zo heel veel uit dan, voor 1 teken?

En over die stijl van coden, jah, zo code ik nou eenmaal...

Offline  Richard
Gepost op: 12 maart 2006 - 21:15
Crew algemeen



Jij zult verbaasd staan over hoeveel snelheidswinst je kunt hebben over 1 zoon lullig tekentje.

Offline  Rens
Gepost op: 12 maart 2006 - 21:17
Gouden medaille

Crew algemeen




Nou, laat me maar eens verbaast staan dan^^
Aangezien het hier maar om 1 check gaat, denk ik niet dat ik verbaast zal staan...

Offline  Wim
Gepost op: 11 juni 2007 - 19:56
Crew algemeen



waarom geef je de queries niet met de classe mee, en laat je deze de queries niet uitvoeren?

Je hebt nog steeds door de 50 lijnen. zoiets als dit zou met 5-10 lijnen code moeten kunnen. bvb:

$pagenav = new pagenav();
$pagenav->useQuery("SELECT count(id) FROM table");
echo $pagenav->returnPages();


Enkel aanvullende informatie, vragen en antwoorden op vragen zijn welkom.
 
© 2002-2024 Sitemasters.be - Regels - Laadtijd: 0.049s