Tabel Class [v3]

Door Joris van Rijn, 14 jaar geleden, 4.013x bekeken

Met deze class (in oop :']) kan je snel en gemakkelijk uitgebreide tabellen maken.
De structuur is als volgt:

  • Tabel » Heeft alle rijen in zich. Bevat de settings en eigenschappen van de tabel. Genereert de tabel; en alternate de rij kleur.
  • Row » Heeft alle cellen in zich die in die row thuis horen. Heeft een ook een variable die zegt of de rij een header is of niet.
  • Cell » Heeft zelf eigenschappen voor de cel (colspan, htmlentities)

Voor uitgebreide uitleg check de tutorial van Blance: http://phphulp.nl/php/tutorials/8/701/1845/

Versies:

Voorbeeld: http://phphulp.freedomdesigns.nl/tabelv3/

Gesponsorde koppelingen

PHP script bestanden

  1. tabel-class-v3

 

Er zijn 14 reacties op 'Tabel class v3'

PHP hulp
PHP hulp
0 seconden vanaf nu
 

Gesponsorde koppelingen
 
0 +1 -0 -1
Misschien is dit een beetje een stomme vraag, maar wat is eigenlijk het voordeel van een tabel class?
Joris van Rijn
Joris van Rijn
14 jaar geleden
 
0 +1 -0 -1
Ik vind het handiger voor als je data uit een database haalt.
Dan heb je gewoon netjes overal php zonder html er door een gehusseld.
Daardoor wordt dat gedeelte van de code overzichtelijk, en kan je het makkelijk aan passen.

Maar dat is mijn mening :']
Toby hinloopen
toby hinloopen
14 jaar geleden
 
0 +1 -0 -1
Leuk OOP voorbeeld. Je had misschien het DOMDocument class kunnen extenden voor compatibility met die class.

http://www.php.net/manual/en/book.dom.php
Jasper hoi
jasper hoi
14 jaar geleden
 
0 +1 -0 -1
Kan je misschien ook een voorbeeld(je) geven hoe je dit kan toepassen als je informatie uit een DB haalt??
Joris van Rijn
Joris van Rijn
14 jaar geleden
 
0 +1 -0 -1
Ga ik vanavond online zetten.
Jasper hoi
jasper hoi
14 jaar geleden
 
0 +1 -0 -1
Heb nog even een vraagje, is er ook een optie dat je even en oneven rijen een andere kleur kan geven??
Joris van Rijn
Joris van Rijn
14 jaar geleden
 
0 +1 -0 -1
Ja:
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
$oTable->setRowClasses('odd','even','derde');


In je css zet je dan 3 classes: odd, even en derde. Die kan je verschillend stylen. Dus met andere achtergrond kleur enzo.
Je kan er uiteraard ook 2 van maken:

Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
$oTable->setRowClasses('odd','even');
Joren de Wit
Joren de Wit
14 jaar geleden
 
Ziet er goed uit. Er zijn een paar dingen die ik anders zou doen:

- De $rowClasses property zou ik verplaatsen naar de Row class. Dit is een eigenschap van de rij, dus zou je daar moeten definiëren. Een Table weet namelijk in principe niets van een Row.

- Aansluitend op het eerste punt, zou ik het weergeven van de objecten ook bij de verschillende objecten zelf leggen. Een Table zou niet moeten weten hoe een Row er in HTML uit ziet, dat weet alleen de Row zelf. Elk object zou dus een eigen display() method moeten hebben en in Table::display() kun je dan vervolgens de display() methods van alle Row objecten aanroepen.

Een voorbeeld hiervan heb ik onlangs aan genoemde handleiding toegevoegd: HTML table class.

@Yearupie: Ik denk dat een van de eenvoudigste concrete voorbeelden is waar je OOP voor kunt gebruiken. Als je dit zou combineren met bijvoorbeeld een template engine, hoef je daar enkel nog $tabel->display() aan te roepen en je tabel wordt getoond. Hoe de tabel er precies uit moet zien heb je daarvoor al gedefinieerd en dat zonder 1 regel HTML te gebruiken.

ps. Ik zie nu dat je $rowClasses anders gebruikt dan ik in eerste instantie dacht. Echter zou ik dan in je Row class een method addClass() opnemen om die extra CSS class toe te voegen. Het weergeven van de rij, zou ik wel als verantwoordelijkheid van de Row class zien.
Joris van Rijn
Joris van Rijn
14 jaar geleden
 
0 +1 -0 -1
Ok, tnx voor de tips.
Ik zal het voor de volgende keer gebruiken, maar er is nu een goede tabel class toegevoegd, door iemand anders; dus ga ik me tijd niet meer er aan besteden.
Thumb nail
Thumb nail
14 jaar geleden
 
0 +1 -0 -1
misschien een idee om ipv
<table><tr><td>iets</td></tr></table>
het zo te doen:
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
<table>
  <tr>
    <td>iets</td>
  </tr>
</table>


dat maakt het een stuk netter (A)
Jasper hoi
jasper hoi
14 jaar geleden
 
0 +1 -0 -1
Kan je best wel simpel zelf doen door dit te gebruiken:
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
$return .= '<tr'.$class.'> \n';

i.p.v.
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
$return .= '<tr'.$class.'>';

door de toevoeging van \n doet php een enter als hij code naar de browser stuurt.
Jelmer -
Jelmer -
14 jaar geleden
 
0 +1 -0 -1
Moet je wel even opletten dat je die \n tussen dubbele quotes zet. Met \t kan je trouwens die inspringingen doen.
Joren de Wit
Joren de Wit
14 jaar geleden
 
En gebruik voor de \n dan liever PHP_EOL, dan weet je zeker dat de linebreak op elk besturingssysteem goed ingevuld wordt.
PHP hulp
PHP hulp
0 seconden vanaf nu
 

Gesponsorde koppelingen
Jasper hoi
jasper hoi
14 jaar geleden
 
0 +1 -0 -1
@Joris
Heb nog geen voorbeeld je gezien???
Iemand misschien enig idee hoe je dat kan toepassen als je de informatie uit een DB haalt?

Om te reageren heb je een account nodig en je moet ingelogd zijn.

Inhoudsopgave

  1. tabel-class-v3

Labels

  • Geen tags toegevoegd.

Navigatie

 
 

Om de gebruiksvriendelijkheid van onze website en diensten te optimaliseren maken wij gebruik van cookies. Deze cookies gebruiken wij voor functionaliteiten, analytische gegevens en marketing doeleinden. U vindt meer informatie in onze privacy statement.