login  Naam:   Wachtwoord: 
Registreer je!
 Scripts:

Scripts > PHP > Navigatie systemen > verschillende soorten navigatie in een

verschillende soorten navigatie in een

Auteur: Grayen - 09 juli 2006 - 12:55 - Gekeurd door: Maarten - Hits: 6239 - Aantal punten: (0 stemmen)



Uitleg:
Alles word uitgelegd bovenaan het script zelf.

Updates:
- Ik heb weer veel bijgeleerd over php dus heb ik een vernieuwd navigatie script gemaakt, nu werkt alles perfect en heb ik keuze uit 4 verschillende navigaties gemaakt, het oude script wat een grote rommel, deze is stukke beter .

Code:
  1. <?php
  2. /*
  3.  
  4. Copyright?
  5.  
  6. Je mag doen met dit script wat je wilt, behalve "Gemaakt door grayen" weghalen.
  7.  
  8. Wat kan dit script?
  9.  
  10. Dit is een navigatie script dat voor zowel mysql_querys en arrays worden gebruikt.
  11. Bij dit script kan je zelf kiezen wat voor een soort navigatie je wilt
  12. (misschien leuk als je een profielen systeem hebt, zodat mensen dat zelf kunnen kiezen).
  13.  
  14. Hoe te gebruiken?
  15.  
  16. $iExact_totaal: Het aantal items, met behulp van bijv mysql_num_rows of count.
  17.  
  18. $iNav: Welk navigatie je wilt gebruiken, de mogelijkheden zijn:
  19.  
  20. 1 = alleen volgende, vorige, eerste, laatste.
  21. Eerste - Vorige - Midden stuk - Volgende - Laatste
  22.  
  23. 2 = een dropdown menu.
  24. << < [1] > >>
  25.   |2|
  26.   |3|
  27.  
  28. 2 of hoger = menu voor veel pagina's.
  29. Eerste - Vorige - [1-4] - 5 - 6 - 7 - 8 - [9 - 12] - Volgende - Laatste
  30.  
  31. $iMax_items: Hoeveel items er per pagina moeten worden weergegeven.
  32. $sLink: De url hierin moet je ergens [nav] plaatsen en dat is alles,
  33. dus als we bij item nr 5 zijn dan kan het bijv dit zijn:
  34.  
  35. index.php?pagina=foto&id=[nav] = index.php?pagina=foto&id=5
  36.  
  37. index.php?nav=[nav] = index.php?nav=5
  38.  
  39. $iQuery: Of het een mysql_query of een array is, dit moet omdat mysql_querys met LIMIT werken
  40.  
  41. 0 = array
  42.  
  43. 1 = query
  44.  
  45. $iHuidig: Bij welke navigatie pagina we nu zijn. Altijd $_GET['gekozen tekst voor [nav]'],
  46. dus bijvoorbeeld bij:
  47.  
  48. index.php?pagina=foto&id=[nav] = $_GET['id']
  49.  
  50. index.php?nav=[nav] = $_GET['nav']
  51.  
  52. Voorbeeld:
  53.  
  54. $iExact_totaal = mysql_num_rows(mysql_query("SELECT * FROM tabel_naam"));
  55. $iNav = 2;
  56. $iMax_items = 10;
  57. $sLink = "index.php?pagina=forum/topic&nav=[nav]";
  58. $iQuery = 1;
  59. $iHuidig = $_GET['nav'];
  60. $aNavigatie = navigatie($iExact_totaal, $iNav, $iMax_items, $sLink, $iQuery, $iHuidig);
  61.  
  62. if(isset($aNavigatie)){
  63.   $qtopic = mysql_query("SELECT * FROM tabel_naam LIMIT ".$aNavigatie['begin'].", ".$aNavigatie['eind']) or die('Error on line '.__LINE__.' : ' . mysql_error());
  64. }
  65. if(isset($qtopic)){
  66.   while($topic = mysql_fetch_assoc($qtopic)) {
  67.   wat je wilt doen met de gekozen items...
  68. }
  69.  
  70. if(isset($aNavigatie['navigatie'])){
  71.   echo $aNavigatie['navigatie'];
  72. }
  73.  
  74. Gemaakt door Grayen
  75. */
  76.  
  77. function navigatie ($iExactTotaal, $iNav, $iMaxItems, $sLink, $iQuery, $iHuidig){
  78. /* Hoofdconfiguratie */
  79. $iLinksRechts = 4;
  80. $iPerKeer = 4;
  81.  
  82. /* Basis variablen berekenen */
  83. if($iHuidig < $iMaxItems){
  84. $iHuidig = $iMaxItems;
  85. }
  86. elseif($iHuidig > $iExactTotaal){
  87. $iHuidig = $iExactTotaal;
  88. }
  89. $iHuidig = ceil($iHuidig / $iMaxItems);
  90. $iMax = ceil($iExactTotaal / $iMaxItems);
  91. $aLink = explode('[nav]', $sLink);
  92. $sNav = '';
  93.  
  94. /* Navigatie: Eerste - Vorige - Midden stuk - Volgende - Laatste */
  95. if($iNav == 1){
  96. $sNav .= ($iHuidig > 1 ? '<a href="'.$aLink[0].'0'.$aLink[1].'">Eerste</a> - ' : 'Eerste - ');
  97. $sNav .= ($iHuidig > 1 ? '<a href="'.$aLink[0].(($iHuidig - 1) * $iMaxItems).$aLink[1].'">Vorige</a> - ' : 'Vorige - ');
  98. $sNav .= '[midden]';
  99. $sNav .= ($iHuidig < $iMax ? '<a href="'.$aLink[0].(($iHuidig + 1) * $iMaxItems).$aLink[1].'">Volgende</a> - ' : 'Volgende - ');
  100. $sNav .= ($iHuidig < $iMax ? '<a href="'.$aLink[0].($iMax * $iMaxItems).$aLink[1].'">Laatste</a>' : 'Laatste');
  101. $aNav = explode('[midden]', $sNav);
  102. $aReturn['vorige'] = $aNav[0];
  103. $aReturn['volgende'] = $aNav[1];
  104. $aReturn['navigatie'] = $aNav[0].$aNav[1];
  105. }
  106.  
  107. /* Navigatie: Dropdown */
  108. if($iNav == 2){
  109. $sNav .= ($iHuidig > 1 ? '<a href="'.$aLink[0].'0'.$aLink[1].'">Eerste</a> - ' : 'Eerste - ');
  110. $sNav .= ($iHuidig > 1 ? '<a href="'.$aLink[0].(($iHuidig - 1) * $iMaxItems).$aLink[1].'">Vorige</a> - ' : 'Vorige - ');
  111. $sNav .= '<form method="post" action="" style="margin: 0; padding: 0; display: inline;"><select onchange="window.location=\''.$aLink[0].'\' + this.value + \''.$aLink[1].'\'">';
  112. for($i = 1; $i <= $iMax; $i ++){
  113. $sNav .= '<option'.($i == $iHuidig ? ' selected="selected"' : '').' value="'.($i * $iMaxItems).'">'.$i.'</option>';
  114. }
  115. $sNav .= '</select></form> - ';
  116. $sNav .= ($iHuidig < $iMax ? '<a href="'.$aLink[0].(($iHuidig + 1) * $iMaxItems).$aLink[1].'">Volgende</a> - ' : 'Volgende - ');
  117. $sNav .= ($iHuidig < $iMax ? '<a href="'.$aLink[0].($iMax * $iMaxItems).$aLink[1].'">Laatste</a>' : 'Laatste');
  118. }
  119.  
  120. /* Navigatie: Eerste - Vorige - 2 - 3 - 4 - 5 - Deze pagina - 7 - 8 - 9 - 10 - Volgende - Laatste */
  121. if($iNav == 3){
  122. $iLinks = $iHuidig - $iLinksRechts;
  123. if($iLinks < 1){
  124. $sNav .= ($iHuidig > 1 ? '<a href="'.$aLink[0].'0'.$aLink[1].'">Eerste</a> - ' : 'Eerste - ');
  125. $sNav .= ($iHuidig > 1 ? '<a href="'.$aLink[0].(($iHuidig - 1) * $iMaxItems).$aLink[1].'">Vorige</a> - ' : 'Vorige - ');
  126. for($i = 1; $i < $iHuidig; $i++){
  127. $sNav .= '<a href="'.$aLink[0].($i * $iMaxItems).$aLink[1].'">'.$i.'</a> - ';
  128. }
  129. }
  130. else {
  131. $sNav .= ($iHuidig > 1 ? '<a href="'.$aLink[0].'0'.$aLink[1].'">Eerste</a> - ' : 'Eerste - ');
  132. $sNav .= ($iHuidig > 1 ? '<a href="'.$aLink[0].(($iHuidig - 1) * $iMaxItems).$aLink[1].'">Vorige</a> - ' : 'Vorige - ');
  133. for($i = $iLinks; $i < $iHuidig; $i++){
  134. $sNav .= '<a href="'.$aLink[0].($i * $iMaxItems).$aLink[1].'">'.$i.'</a> - ';
  135. }
  136. }
  137. $sNav .= '<strong>'.$iHuidig.'</strong> - ';
  138. $iRechts = $iHuidig + $iLinksRechts;
  139. if($iRechts > $iMax){
  140. for($i = $iHuidig + 1; $i <= $iMax; $i++){
  141. $sNav .= '<a href="'.$aLink[0].($i * $iMaxItems).$aLink[1].'">'.$i.'</a> - ';
  142. }
  143. $sNav .= ($iHuidig < $iMax ? '<a href="'.$aLink[0].(($iHuidig + 1) * $iMaxItems).$aLink[1].'">Volgende</a> - ' : 'Volgende - ');
  144. $sNav .= ($iHuidig < $iMax ? '<a href="'.$aLink[0].($iMax * $iMaxItems).$aLink[1].'">Laatste</a>' : 'Laatste');
  145. }
  146. else {
  147. for($i = $iHuidig + 1; $i <= $iRechts; $i++){
  148. $sNav .= '<a href="'.$aLink[0].($i * $iMaxItems).$aLink[1].'">'.$i.'</a> - ';
  149. }
  150. $sNav .= ($iHuidig < $iMax ? '<a href="'.$aLink[0].(($iHuidig + 1) * $iMaxItems).$aLink[1].'">Volgende</a> - ' : 'Volgende - ');
  151. $sNav .= ($iHuidig < $iMax ? '<a href="'.$aLink[0].($iMax * $iMaxItems).$aLink[1].'">Laatste</a>' : 'Laatste');
  152. }
  153. }
  154.  
  155. /* Navigatie: Eerste - Vorige - [1-4] - 5 - 6 - 7 - 8 - [9 - 12] - Volgende - Laatste */
  156. if($iNav == 4){
  157. $iOffset = ceil($iHuidig / $iPerKeer);
  158. $iOffsetMax = ceil($iMax / $iPerKeer);
  159. $iBegin = $iOffset * $iPerKeer - $iPerKeer + 1;
  160. $iEind = $iOffset * $iPerKeer;
  161. if($iEind > $iMax){
  162. $iEind = $iMax;
  163. }
  164. $sNav .= ($iHuidig > 1 ? '<a href="'.$aLink[0].'0'.$aLink[1].'">Eerste</a> - ' : 'Eerste - ');
  165. $sNav .= ($iHuidig > 1 ? '<a href="'.$aLink[0].(($iHuidig - 1) * $iMaxItems).$aLink[1].'">Vorige</a> - ' : 'Vorige - ');
  166. if($iOffset > 1){
  167. $iVorige = ($iOffset - 1) * $iPerKeer - $iPerKeer + 1;
  168. $sNav .= '<a href="'.$aLink[0].($iVorige * $iMaxItems).$aLink[1].'">['.$iVorige.' - '.(($iOffset - 1) * $iPerKeer).']</a> - ';
  169. }
  170. for($i = $iBegin; $i <= $iEind; $i++){
  171. $sNav .= ($i == $iHuidig ? '<strong>'.$i.'</strong> - ' : '<a href="'.$aLink[0].($i * $iMaxItems).$aLink[1].'">'.$i.'</a> - ');
  172. }
  173. if($iOffset < $iOffsetMax){
  174. $iVolgende = ($iOffset + 1) * $iPerKeer - $iPerKeer + 1;
  175. $sNav .= '<a href="'.$aLink[0].($iVolgende * $iMaxItems).$aLink[1].'">['.$iVolgende.' - '.(($iOffset + 1) * $iPerKeer).']</a> - ';
  176. }
  177. $sNav .= ($iHuidig < $iMax ? '<a href="'.$aLink[0].(($iHuidig + 1) * $iMaxItems).$aLink[1].'">Volgende</a> - ' : 'Volgende - ');
  178. $sNav .= ($iHuidig < $iMax ? '<a href="'.$aLink[0].($iMax * $iMaxItems).$aLink[1].'">Laatste</a>' : 'Laatste');
  179. }
  180.  
  181. /* Navigatie afronden */
  182. $aReturn['begin'] = $iHuidig * $iMaxItems - $iMaxItems;
  183. $iEind = $iHuidig * $iMaxItems;
  184. if($iNav != 1){
  185. $aReturn['navigatie'] = $sNav;
  186. }
  187. if($iQuery == 1){
  188. $aReturn['eind'] = $iMaxItems;
  189. }
  190. else {
  191. if($iExactTotaal < $iEind){
  192. $aReturn['eind'] = $iExactTotaal;
  193. }
  194. else {
  195. $aReturn['eind'] = $iEind;
  196. }
  197. }
  198. return($aReturn);
  199. }
  200. ?>
Download code! Download code (.txt)

 Stemmen
Niet ingelogd.

 Reacties
Post een reactie
Lees de reacties (8)
© 2002-2024 Sitemasters.be - Regels - Laadtijd: 0.038s