Reacties op het script PageNav Class
|
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 |
|
|
|
Gepost op: 11 juli 2005 - 17:45 |
|
|
|
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):
for($i = 0; $i < $iTotaalPagina; $i++)
{
// is de huidige pagina gelijk aan &i ?
if($i == $iPagina)
{
// ja, de gebruiker zit op pagina $i
// dus maken we hier de $i bold
// de gebruiker zit immers al op deze pagina
$this->sNav .= "<b>".($i+1)."</b> - ";
} else
{
// nee, de gebruiker zit op een andere pagina
// dus we maken er een gewone link van
$this->sNav .= "<A HREF='".$sPagina.$this->sAdd."nav=".$i."'>".($i+1)."</A> - ";
}
}
for($i = 0; $i < $iTotaalPagina; $i++) { // is de huidige pagina gelijk aan &i ? if($i == $iPagina) { // ja, de gebruiker zit op pagina $i // dus maken we hier de $i bold // de gebruiker zit immers al op deze pagina $this->sNav .= "<b>".($i+1)."</b> - "; } else { // nee, de gebruiker zit op een andere pagina // dus we maken er een gewone link van $this->sNav .= "<A HREF='".$sPagina.$this->sAdd."nav=".$i."'>".($i+1)."</A> - "; } }
|
|
|
|
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). |
|
|
|
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:
class nav(...) {
var $sNav; // eventueel met initialisatie
...
}
class nav(...) { var $sNav; // eventueel met initialisatie ... }
* 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. |
|
|
|
Gepost op: 17 juli 2005 - 23:23 |
|
|
|
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?:) |
|
|
|
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;) |
|
|
|
Gepost op: 20 januari 2006 - 15:52 |
|
|
|
Crew algemeen
|
Maakt dat zo heel veel uit dan, voor 1 teken?
En over die stijl van coden, jah, zo code ik nou eenmaal... |
|
|
|
Gepost op: 12 maart 2006 - 21:15 |
|
|
|
Crew algemeen
|
Jij zult verbaasd staan over hoeveel snelheidswinst je kunt hebben over 1 zoon lullig tekentje. |
|
|
|
Gepost op: 12 maart 2006 - 21:17 |
|
|
|
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... |
|
|
|
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. |
|
|
|