table class

Door Roland van Wanrooy, 21 jaar geleden, 3.555x bekeken

Ik was op zoek naar een class, waarmee je snel tabellen kunt maken, maar ik vond niets naar mijn zin. Dus ik heb zelf maar wat geschreven in PHP.
Het is een begin en de bedoeling is om de class, waar mogelijk, nog uit te breiden.
Allereerst post ik het graag hier, vanwege het goede commentaar en de tips die worden gegeven.
Ik vind het wel veel code. Extended classes maken zit er waarschijnlijk niet in, omdat: table != row != cell; wat moet een row/cell met cellspacing bijvoorbeeld...
Voorts moet er nog wat gestoeid worden met <tbody> etc. Hopelijk zijn er tips, die me verder helpen.

De comments in de code zijn in het Engels, omdat ik - wanneer deze class met goed fatsoen de deur uit kan - deze ook wil posten op andere public domain plekken.
Het is een eerste probeersel, hè... dus graag jullie commentaar.

Voorbeeld: http://www.wanrooy.be/test/tableclass.php

Gesponsorde koppelingen

PHP script bestanden

  1. table-class

 

Er zijn 7 reacties op 'Table class'

PHP hulp
PHP hulp
0 seconden vanaf nu
 

Gesponsorde koppelingen
Rudie dirkx
rudie dirkx
21 jaar geleden
 
0 +1 -0 -1
Maareh... Is dit nou makkelijk om een tabel te maken??? Best veel code voor zo'n makkelijke tabel :)
Ook wel jammer dat je niet cellpading="0" in kan stellen...
Het is vast een leuke class, maar ik zie het voordeel niet echt.
Wie kan me overtuigen?

Edit:
Maar wat me nog meer pijn doet is dat je het als PHP 5 class aanduidt en dan protected en var gebruikt...
Roland van Wanrooy
Roland van Wanrooy
21 jaar geleden
 
0 +1 -0 -1
Quote:
Best veel code voor zo'n makkelijke tabel :)
Ja, dat zei ik al. Heb je misschien ideeën om de code te verkorten?
Quote:
jammer dat je niet cellpading="0" in kan stellen
Die kun je wél instellen. Als je naar de functie Table() kijkt, dan zie je 3 parameters; de laatste is $iCellPad. Standaard is dat dus al 0 (nul), want de define DEFAULT_CELLPAD is 0.
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
<?php
// de laatste parameter is hier dus overbodig...
$oTbl =& new Table(100, 'center', 0);
?>

Dat van die protected en var snap ik nog niet helemaal... wat ik heb bedoeld is dat een protected class variable niet zichtbaar is buiten de class, en een var wel.
Bedankt voor je commentaar.
Jelmer -
Jelmer -
21 jaar geleden
 
0 +1 -0 -1
'var' is in php5 vervangen door 'public'. Net zoals de constructor, die is niet meer 'public function ClassName', maar 'public function __construct' geworden.

Variabelen zoals '$this->outputString', waarom maak je die globaal binnen de klasse waneer deze alleen binnen de functie wordt gebruikt. $outputString zou voldoende zijn.

Verder hoeft =& niet meer in PHP5, gewoon = is al voldoende tegenwoordig om een reverence te maken in het geval van objecten.

En wat je eventueel nog zou kunnen doen: de constanten binnen de klasse zetten:
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
7
8
9
<?php
class Table {
   const DEFAULT_TABLE_ALIGN = 'center';
  
   // rest hier enzo
}

$iets = new Table(100, Table::DEFAULT_TABLE_ALIGN, 0);
?>


Maar dit is allemaal mierenneuken. De klasse ziet er technisch goed uit, al ben ik het met cervetti eens dat op een of andere manier de code er niet veel gebruiksvriendelijker op wordt, terwijl dat toch meestal het doel is van dit soort tijdsbesteding...
Roland van Wanrooy
Roland van Wanrooy
21 jaar geleden
 
0 +1 -0 -1
@Jelmer: Yessss! Daar heb ik wat aan :) Ik ga de code wijzigen.
En cervetti heeft zeker gelijk; misschien is het gewoon een useless class. Mijn idee is om dit in een while loop te gebruiken voor tabellen, want in dat geval is het wel overzichtelijk in je code. Maar als je ff snel een tabelletje in elkaar wil flanzen dan is dit wel een kind met een waterhoofd :)
We zullen zien wat er mee gebeurt.
Bo az
Bo az
21 jaar geleden
 
0 +1 -0 -1
Het leuke hieraan is eigenlijk dat je een klasse table, row en cel gemaakt hebt. Dus al is je class misschien useless, kan het nog handig zijn om OOP te snappen, of misschien voor anderen om OOP te leren.

Dan moet je eigenlijk wel de punten aanpakken die Jelmer noemt en dan vooral kijken naar welke variabelen global zijn en welken local, anders is het geen goed voorbeeld.
Jan geen
Jan geen
21 jaar geleden
 
0 +1 -0 -1
Als je een simpele tabel wil, moet je zoiets doen:

$oCel1 =& new Cell(50, 'right', 'bottom');
$oCel1->content = 'dit is een test';
$oCel1->height = '300';
$oCel1->nowrap = true;

$oRow1 =& new Row();
$oRow1->style='background-color:#FFFF00;';
$oRow1->add($oCel1);

terwijl dit normaal is:

<tr bgcolor="$FFFF00">
<td height="300" nowrap="true">dit is een test</td>
</tr>

Dat is best wat meer code... zou je niet beter een class table kunnen maken die in een array de rijen en kolommen bij houd?
$tabel = new Table();
$tabel->tr(hier wat vars);
$tabel->td(ook wat vars);

maar een idee weet niet of je er wat mee kan.
PHP hulp
PHP hulp
0 seconden vanaf nu
 

Gesponsorde koppelingen
Roland van Wanrooy
Roland van Wanrooy
21 jaar geleden
 
0 +1 -0 -1
@Boaz: Ik ga zeker met Jelmers aanwijzingen aan de slag.
@Rik: goed idee! Ik ga kijken hoe ik dit kan vereenvooudigen.
Het is inderdaad voor mij een OOP-oefening :)
Ik hoop nog op een reaktie van Jan.

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

Inhoudsopgave

  1. table-class

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.