phphtmllib-devel Mailing List for phpHtmlLib (Page 165)
Status: Beta
Brought to you by:
hemna
You can subscribe to this list here.
2002 |
Jan
|
Feb
|
Mar
|
Apr
|
May
|
Jun
(33) |
Jul
(2) |
Aug
(3) |
Sep
|
Oct
(2) |
Nov
(1) |
Dec
|
---|---|---|---|---|---|---|---|---|---|---|---|---|
2003 |
Jan
|
Feb
|
Mar
(4) |
Apr
|
May
(3) |
Jun
(1) |
Jul
(10) |
Aug
(5) |
Sep
|
Oct
|
Nov
(2) |
Dec
(5) |
2004 |
Jan
(1) |
Feb
(8) |
Mar
(139) |
Apr
(65) |
May
(32) |
Jun
(55) |
Jul
(21) |
Aug
(60) |
Sep
(43) |
Oct
(1) |
Nov
(18) |
Dec
(34) |
2005 |
Jan
(25) |
Feb
(2) |
Mar
(49) |
Apr
(13) |
May
(40) |
Jun
(22) |
Jul
(21) |
Aug
(59) |
Sep
(178) |
Oct
(54) |
Nov
(3) |
Dec
(49) |
2006 |
Jan
(21) |
Feb
(1) |
Mar
(5) |
Apr
(29) |
May
(86) |
Jun
(79) |
Jul
(52) |
Aug
(127) |
Sep
(187) |
Oct
(90) |
Nov
(61) |
Dec
(48) |
2007 |
Jan
(79) |
Feb
(136) |
Mar
(58) |
Apr
(139) |
May
(293) |
Jun
(112) |
Jul
(138) |
Aug
(112) |
Sep
(148) |
Oct
(76) |
Nov
(29) |
Dec
(66) |
2008 |
Jan
(45) |
Feb
(60) |
Mar
(119) |
Apr
(169) |
May
(172) |
Jun
(136) |
Jul
(107) |
Aug
(114) |
Sep
(104) |
Oct
(26) |
Nov
(50) |
Dec
(48) |
2009 |
Jan
(9) |
Feb
(35) |
Mar
(22) |
Apr
(43) |
May
(83) |
Jun
(68) |
Jul
(58) |
Aug
(21) |
Sep
(23) |
Oct
(62) |
Nov
(36) |
Dec
(26) |
2010 |
Jan
(16) |
Feb
(83) |
Mar
(73) |
Apr
(51) |
May
(76) |
Jun
(96) |
Jul
(70) |
Aug
(33) |
Sep
(10) |
Oct
(1) |
Nov
(2) |
Dec
|
2011 |
Jan
(4) |
Feb
(1) |
Mar
|
Apr
(1) |
May
|
Jun
(1) |
Jul
|
Aug
|
Sep
(2) |
Oct
|
Nov
|
Dec
|
2012 |
Jan
|
Feb
(1) |
Mar
(12) |
Apr
|
May
(1) |
Jun
(2) |
Jul
|
Aug
(3) |
Sep
(3) |
Oct
|
Nov
|
Dec
|
2013 |
Jan
|
Feb
(3) |
Mar
|
Apr
(1) |
May
|
Jun
(1) |
Jul
(1) |
Aug
|
Sep
(5) |
Oct
(1) |
Nov
|
Dec
(1) |
2014 |
Jan
(2) |
Feb
(1) |
Mar
|
Apr
(2) |
May
(1) |
Jun
|
Jul
(1) |
Aug
(2) |
Sep
(2) |
Oct
(2) |
Nov
(3) |
Dec
|
2015 |
Jan
(1) |
Feb
(1) |
Mar
(2) |
Apr
(1) |
May
(2) |
Jun
(2) |
Jul
|
Aug
(1) |
Sep
(1) |
Oct
|
Nov
|
Dec
|
2016 |
Jan
|
Feb
|
Mar
|
Apr
|
May
(1) |
Jun
|
Jul
(1) |
Aug
(1) |
Sep
|
Oct
(1) |
Nov
|
Dec
|
2017 |
Jan
|
Feb
|
Mar
(1) |
Apr
|
May
|
Jun
|
Jul
(1) |
Aug
|
Sep
|
Oct
|
Nov
|
Dec
|
From: Mark L. <no...@nu...> - 2003-07-07 14:08:42
|
Hi, I haven't seen much activity on this list, so I hope you are all still around :-) The following code is giving me problems: class NewTheme { var $page, $content; function NewTheme () { $this->$page =& new HTMLPageClass($title, XHTML_TRANSITIONAL); print get_class($this->$page) . "<br>"; $this->$content =& new DIVtag; print get_class($this->$page) . "<br>"; } } The output of this is: htmlpageclass divtag when I would have expected it to be htmlpageclass htmlpageclass Specifically, it appears that creating a new DIVtag object is overwriting the value of the $page variable. I have read a lot of comments about classes and object in php in general, but I can't determine if this is a generic problem or not. Any clues on how to work around this behaviour? Cheers, Mark. -- Mark Lawrence |
From: Rachel <ra...@pu...> - 2003-06-03 18:28:11
|
Dear Sir or Madam, I have the pleasure to know your esteemed Corp. We are a manufacturer of garments and bags in Quanzhou, China. I think we can cooperate and supply you with garments and bags as you need. The following is some introductions about our company. Set up: 1988 Type: manufacturer & exporter Product: knitted garments and bags Employees: 1300 persons ( garments factory: 500 bags factory: 800) Product data: product (main items) capacity(/year) brief 2,000,000dzs baby body 1,800,000dzs boxer short 200,000dzs pajama 50,000dzs soft bag 1,500,000pcs hard bag 500,000pcs Mimn order: 300dzs for garments 500pcs for bags Payment: irrevocable L/C at sight Our garment factory mainly specialize in Lady's and men's underwear, children's wear, baby's wear, pajama, boxer shorts, T-shirt, etc. The materials we often use are cotton, T/C, Polyester, Polyamide, Elasthan, and Polyamide. Our products are design with PAD system, produced with advanced equipment, processed in highly quality control system with seasoned workmanship and high efficiency. Our main market is Europe, Australia, Japan. We also accept the orders designed and required by costumers. Our bag factory was founded in 1988, too. We produce all kinds of bags, including suitcase, backpack, travel bag, shoulder bag, sport bag, trolley, camera bag, tote bag, school bag, computer case, luggage,waist bag, notecase, etc. And the goods have met a great favor in the Europe countries, Australia and America because of their good quality, beautiful design and competitive price. Thank you very much. Hope you will give us an opportunity to do business together and we will try our level best to fulfill your present requirement. Should you therefore need any more details for your clarification, pls do not hesitate to contact us. And you are welcome to visit our factories. With best regards Rachel Wang Mob:0086-13960286700 Jason Chen Mob:0086-13959893400 Vicki Wang Mob:0086-13960228599 ----------------------------------------------------------------------------- SENWER GARMENTS CO., LTD. ADD: Room F202, Fugui Renjia Building, Liuguan Road, Quanzhou, Fujian, China. Tel: 0086-595-2506700 Fax: 0086-595-2563400 P.C.:362000 E-mail: ra...@pu... ----------------------------------------------------------------------------- |
From: Walt B. <wab...@3g...> - 2003-05-25 21:52:27
|
Thanks Alan, I believe this has already been fixed in CVS. Walt On Sat, 2003-05-24 at 10:45, Alan Garcia wrote: > Found a small bug in StandardFormContent::form(). > > on line: $this->_infotable = new InfoTable($title, $this->_form_width);... > "$this->_form_width" must be replaced by "$this->_width". > > Cheers, > > Alan.- > > > > > ------------------------------------------------------- > This SF.net email is sponsored by: ObjectStore. > If flattening out C++ or Java code to make your application fit in a > relational database is painful, don't do it! Check out ObjectStore. > Now part of Progress Software. http://www.objectstore.net/sourceforge > _______________________________________________ > Phphtmllib-devel mailing list > Php...@li... > https://lists.sourceforge.net/lists/listinfo/phphtmllib-devel |
From: Alan G. <ag...@e-...> - 2003-05-24 18:07:59
|
Found a small bug in StandardFormContent::form(). on line: $this->_infotable = new InfoTable($title, $this->_form_width);... "$this->_form_width" must be replaced by "$this->_width". Cheers, Alan.- |
From: Rachel <se...@pu...> - 2003-05-19 16:14:26
|
Dear Sir, I have the pleasure to know your esteemed corp. We are a manufacturer & exporter of garments and bags in Quanzhou, China. I think we can cooperate and supply you with garments as you need. The following is some introductions about our company. Set up: 1988 Type: manufacturer & exporter Product: knitted garments and bags Employees: 1300 persons ( garments factory: 500 bags factory: 800) Product data: product (main items) capacity(/year) brief 2,000,000dzs baby body 1,800,000dzs boxer short 200,000dzs pajama 50,000dzs soft bag 1,500,000pcs hard bag 500,000pcs Mimn order: 300dzs for garments Payment: irrevocable L/C at sight Bank: BANK OF CHINA Our garment factory mainly specialize in Lady's and men's underwear, children's wear, baby's wear, pajama, boxer shorts, T-shirt, etc. The materials we often use are cotton, T/C, Polyester, Polyamide, Elasthan, and Polyamide. Our products are design with PAD system, produced with advanced equipment, processed in highly quality control system with seasoned workmanship and high efficiency. Our main market is Europe, Australia, Japan and America. We also accept the orders designed and required by costumers. You can see some pictures of our samples through our web http://www.senwer.com. (For more pictures in your interesting, pls kindly contact us directly). Our bag factory was founded in 1988, too. We produce all kinds of bags, including suitcase, backpack, travel bag, shoulder bag, sport bag, trolley, camera bag, tote bag, school bag, computer case, luggage,waist bag, notecase, etc. And the goods have met a great favor in the Europe countries, Australia and America because of their good quality, beautiful design and competitive price. Thank you very much. Hope you will give us an opportunity to do business together and we will try our level best to fulfill your present requirement. Should you therefore need any more details for your clarification, pls do not hesitate to contact us. And you are welcome to visit our factories. With best regards Rachel Wang Mob:0086-13960286700 E-mail:ra...@se... Jason Chen Mob:0086-13959893400 E-mail: jas...@se... Vicki Wang Mob:0086-13960228599 E-mail: vi...@se... ----------------------------------------------------------------------------- SENWER GARMENTS CO., LTD. ADD: Room F202, Fugui Renjia Building, Liuguan Road, Quanzhou, Fujian, China. Tel: 0086-595-2506700 Fax: 0086-595-2563400 P.C.:362000 Http://www.senwer.com E-mail: se...@pu... ----------------------------------------------------------------------------- |
From: <ha...@ya...> - 2003-03-28 12:37:39
|
<html> <head> <meta http-equiv="Content-Language" content="zh-tw"> <meta name="GENERATOR" content="Microsoft FrontPage 5.0"> <meta name="ProgId" content="FrontPage.Editor.Document"> <meta http-equiv="Content-Type" content="text/html; charset=big5"> <title>§Úª¾¹D§A«Ü§V¤O</title> <meta name="Microsoft Theme" content="china 011, default"> </head> <body background="di1.gif" bgcolor="#FFFFFF" text="#000000" link="#0000FF" vlink="#FF9933" alink="#FF3300"> <!--mstheme--><font face="·s²Ó©úÅé"> <p>§Úª¾¹D§A«Ü§V¤O...¦ý</p> <p>§A§V¤O ¦ÑÁ󪺨®¶V´«¶V¤j¥x</p> <p>§A¶V§V¤O ¦ÑÁ󪺧O¹Ö¶V¨Ó¶V¤j´É</p> <p>«Ü¦h¤H¥Õ¤Ñ³Q¦ÑÁó½| ±ß¤W¦^®a½|¦ÑÁó</p> <p>»°§Ö¶i¨Ó³o¸Ì®ð¦º§A¦ÑÁó</p> <p>¡@</p> <p> <a href="http://home.kimo.com.tw/zxc14281/index2.htm"> <font face="serif" size="6"><b>«ö§Ú</b></font></a></p> <!--mstheme--></font> </body> </html> |
From: winston r. <win...@al...> - 2003-03-13 12:06:04
|
SGksDQoNCkkndmUgdGVzdGVkIHRoaXMgd2l0aCB0aGUgZm9sbG93aW5nIHNuaXBldCBvZiBj b2RlDQoNCmFuZCBpdCBnaXZlcyB0aGUgc2FtZSBlcnJvci4gSSBhbHdheXMgdXNlIHRoZQ0K DQpzZXRfdGFnX2F0dHJpYnV0ZXMgZnVuY3Rpb24gdG8gc2V0IHRoZSBzZWxlY3Rib3ggdG8g YmUgbXVsdGlwbGUsDQoNCml0J3MganVzdCBJIHdhcyBwbGF5aW5nIHdpdGggdGhlIGNvZGUg dGhhdCBJIHNlbnQgeWVzdGVyZGF5Lg0KDQo8Pw0KIyBpbmNsdWRlIHRoZSBnbG9iYWwgZGVm aW5pdGlvbnMNCmluY2x1ZGVfb25jZSgiaW5jbHVkZXMucGhwIik7DQoNCiMgQ3JlYXRlIGEg bmV3IHBhZ2UNCiRwYWdlID0gbmV3IEhUTUxQYWdlY2xhc3MoIlRFU1QiKTsNCg0KJGFycmF5 MSA9IGFycmF5KCJzcGlyaXQiID0+ICIwMiIsICJjZWx0ZWwiID0+ICIwNCIsICJlaXJjZWxs IiA9PiAiMDUiKTsNCg0KJGFycmF5MiA9IGFycmF5KCJzcGlyaXQiID0+ICIwMiIsICJjZWx0 ZWwiID0+ICIwNCIsICJlaXJjZWxsIiA9PiAiMDUiLCAidGVsaWEiID0+ICIwNyIpOw0KDQoj IENyZWF0ZSBhIGZvcm0uDQokZm9ybV9hdHRyaWJ1dGVzID0gYXJyYXkoICJuYW1lIiAgICAg ICAgPT4gImFkZCIsDQogICAgICAgICAgICAgICAgICAgICAgICAgICJtZXRob2QiICAgICAg PT4gIlBPU1QiLA0KICAgICAgICAgICAgICAgICAgICAgICAgICAiYWN0aW9uIiAgICAgID0+ ICJtb2RpZnlFbmdpbmUucGhwIiApOw0KDQojIEFzc2lnbiB0aGUgZm9ybSB0aGUgYXR0cmli dXRlcw0KJGZvcm0gPSBuZXcgRk9STXRhZyggJGZvcm1fYXR0cmlidXRlcyApOw0KDQokc2Vs ZWN0ID0gZm9ybV9zZWxlY3QoInByb2R1Y3RzW10iLCRhcnJheTIsJGFycmF5MSk7DQokc2Vs ZWN0LT5zZXRfdGFnX2F0dHJpYnV0ZXMoYXJyYXkoIm11bHRpcGxlIiA9PiAidHJ1ZSIsInNp emUiID0+ICIxNSIpKTsNCg0KJGZvcm0tPnB1c2goJHNlbGVjdCk7DQoNCiRwYWdlLT5wdXNo KCRmb3JtKTsNCg0KICAgcHJpbnQgJHBhZ2UtPnJlbmRlcigpOw0KPz4NCg0KSGVyZXMgdGhl IEhUTUwgaXQgY3JlYXRlcyAtIE5vdGUgaXQgc2VsZWN0cyB0aGUgcHJvcGVyIG9wdGlvbnMN Cg0KYnV0IGVhY2ggdmFsdWUgaXMgbm93IDUgKHRoZSBsYXN0IGVsZW1lbnQgaW4gdGhlIGFy cmF5MSkNCg0KPCFET0NUWVBFIGh0bWwgUFVCTElDICItLy9XM0MvL0RURCBIVE1MIDQuMDEg VHJhbnNpdGlvbmFsLy9FTiI+DQo8SFRNTD4NCg0KDQogIDxIRUFEPg0KICAgIDxNRVRBIGh0 dHAtZXF1aXY9IkNvbnRlbnQtVHlwZSIgY29udGVudD0idGV4dC9odG1sOyBjaGFyc2V0PWlz by04ODU5LTEiPg0KICAgIDxUSVRMRT4NCiAgICAgIE1vZGlmeSBBbm90aGVyIEVuZ2luZQ0K ICAgIDwvVElUTEU+DQogIDwvSEVBRD4NCg0KDQogIDxCT0RZPg0KDQoNCiAgICA8Rk9STSBu YW1lPSJhZGQiIG1ldGhvZD0iUE9TVCIgYWN0aW9uPSJtb2RpZnlFbmdpbmUucGhwP2VuZ2lu ZT0iPg0KICAgICAgPFNFTEVDVCBuYW1lPSJwcm9kdWN0c1tdIiBtdWx0aXBsZT0idHJ1ZSIg c2l6ZT0iMTUiPg0KICAgICAgICA8T1BUSU9OIHZhbHVlPSIwNSIgU0VMRUNURUQ+DQogICAg ICAgICAgc3Bpcml0DQogICAgICAgIDwvT1BUSU9OPg0KICAgICAgICA8T1BUSU9OIHZhbHVl PSIwNSIgU0VMRUNURUQ+DQogICAgICAgICAgY2VsdGVsDQogICAgICAgIDwvT1BUSU9OPg0K ICAgICAgICA8T1BUSU9OIHZhbHVlPSIwNSIgU0VMRUNURUQ+DQogICAgICAgICAgZWlyY2Vs bA0KICAgICAgICA8L09QVElPTj4NCiAgICAgICAgPE9QVElPTiB2YWx1ZT0iMDUiID4NCiAg ICAgICAgICB0ZWxpYQ0KICAgICAgICA8L09QVElPTj4NCiAgICAgIDwvU0VMRUNUPg0KICAg IDwvRk9STT4NCg0KDQogIDwvQk9EWT4NCg0KDQo8L0hUTUw+DQoNCg0KDQoNCg0KUmVnYXJk cywNCldpbnN0b24NCg== |
From: Walt B. <wab...@3g...> - 2003-03-12 17:54:44
|
Hi winston,=20 can you send me a the code that hows the error that you have? I haven't seen this problem with doing multiple selects before. Also I noticed the 4th param to the form_select() call, you are passing a string "true", which is incorrect. it should be a boolean, which is TRUE or FALSE Walt On Wed, 2003-03-12 at 06:50, winston ralph wrote: > Hi, > I have a problem with the multiple select box. I think it's a bug, but > maybe I'm doing something wrong. >=20 > I have a select box like: > <SELECT name=3D"products[]" multiple=3D"true" size=3D"15"> > <OPTION value=3D"22" SELECTED> > product1 > </OPTION> > <OPTION value=3D"02" SELECTED> > product2 > </OPTION> > <OPTION value=3D"05" SELECTED> > product3 > </OPTION> > <OPTION value=3D"04" SELECTED> > product4 > </OPTION> > <OPTION value=3D"10" SELECTED> > product5 > </OPTION> > </SELECT> >=20 > And using phphtmllib, I call it as so: > $select =3D form_select("products[]", $ProductList, $engineProductList, > "true"); >=20 > When it draws the select box all its values are the last value > in the $engineProductList array. >=20 >=20 > Heres what I think the select function should be. NOTE: $value is used > twice and gets overwritten so i've used $value2 >=20 > function form_select($name, $options=3Darray(), $selected=3D"") { >=20 > $select =3D new SELECTtag( array("name" =3D> $name) ); >=20 > while( list($label, $value) =3D each($options) ) { > $selected_value =3D ""; > if(is_array($selected)){ >=20 > # Note the use of $value2 so it doesn't overwrite $value above > foreach($selected as $key =3D> $value2){ > if ($label =3D=3D $key) { > $selected_value =3D "SELECTED"; > } > } > reset($selected); > } else { > if ($label =3D=3D $selected) { > $selected_value =3D "SELECTED"; > } > } > $attributes =3D array( "value" =3D> $value, $selected_value ); > $option =3D new OPTIONtag( $attributes ); > $option->push( $label ); > $select->push( $option ); > } > return $select; > } >=20 > Hope I've made myself clear. Any questions, pop me a line. >=20 > Regards, > Winston >=20 > -- > Winston Ralph -- Systems Developer >=20 >=20 > N=18=C2=ACHY=C3=9E=C2=B5=C3=A9=C2=9A=C2=8AX=C2=AC=C2=B2=C2=9A'=C2=B2=C2= =8A=C3=9Eu=C2=BC=C2=82=C2=AF*m (Z=C2=96W=C2=A7=C2=81=C3=A8=C2=AC=C2=9E=C2= =8C(=C2=A5=C3=A9=C3=86z=C3=97+i=C3=89"=C2=9E=06=C2=A7v=C2=B7 =C2=8A=C3=8B= ^=C2=AE=17=C2=ABy=C3=BA+=C2=B2=C2=89=C2=9E=C2=9A)=C3=9Dn=C2=88 =C2=96)=C3= =A0~=C3=A9=C3=9A=C2=9D=C3=9Bay=C3=88Z=C2=9D=C3=87=C2=A8=7F=08=C2=A7=C2=9E= )=C3=A0jp)=C2=A6W=C2=A2>=C2=87a=C2=B6=C3=9A=7F=C3=BD=C2=A7l=C2=B2=C2=8B=C2= =ABq=C3=A7=C3=A8=C2=AE=07=C2=A7z=C3=9F=C3=9C=C2=82&=C3=A2=C2=9F=C3=BA=C3=9E= v*=C3=9Er=C3=9Ae=C2=B6=16=C2=B0=C3=93M=C3=B5zs=C3=A1=C2=A6=1Bf=C2=96X=C2=9B= u=C3=AB=C3=9E=C2=96f=C2=A2=C2=96)=C3=A0=C2=96+->=1Aa=C2=B6ie=C2=89=C2=B7^= =C2=BD=C3=A9e=C2=8A=C3=8Bl=C2=B2=C2=8B=C2=ABq=C3=A7=C3=A8=C2=AE=07=C2=A7z= =C3=98m=C2=B6=C2=9B?=C3=BEX=C2=AC=C2=B6=C3=8B(=C2=BA=C2=B7=1E~=C2=8A=C3=A0= zw=C2=AD=C3=BEX=C2=AC=C2=B6=C3=8F=C3=A5=C2=8A=C3=8Bb=C2=9D=C3=BA?=C2=A6=1A= a=C2=B6ie=C2=89=C2=B7^ |
From: winston r. <win...@al...> - 2003-03-12 14:46:17
|
SGksDQpJIGhhdmUgYSBwcm9ibGVtIHdpdGggdGhlIG11bHRpcGxlIHNlbGVjdCBib3guIEkg dGhpbmsgaXQncyBhIGJ1ZywgYnV0DQptYXliZSBJJ20gZG9pbmcgc29tZXRoaW5nIHdyb25n Lg0KDQpJIGhhdmUgYSBzZWxlY3QgYm94IGxpa2U6DQo8U0VMRUNUIG5hbWU9InByb2R1Y3Rz W10iIG11bHRpcGxlPSJ0cnVlIiBzaXplPSIxNSI+DQogICAgICAgICAgICAgIDxPUFRJT04g dmFsdWU9IjIyIiBTRUxFQ1RFRD4NCiAgICAgICAgICAgICAgICBwcm9kdWN0MQ0KICAgICAg ICAgICAgICA8L09QVElPTj4NCiAgICAgICAgICAgICAgPE9QVElPTiB2YWx1ZT0iMDIiIFNF TEVDVEVEPg0KICAgICAgICAgICAgICAgIHByb2R1Y3QyDQogICAgICAgICAgICAgIDwvT1BU SU9OPg0KICAgICAgICAgICAgICA8T1BUSU9OIHZhbHVlPSIwNSIgU0VMRUNURUQ+DQogICAg ICAgICAgICAgICAgcHJvZHVjdDMNCiAgICAgICAgICAgICAgPC9PUFRJT04+DQogICAgICAg ICAgICAgIDxPUFRJT04gdmFsdWU9IjA0IiBTRUxFQ1RFRD4NCiAgICAgICAgICAgICAgICBw cm9kdWN0NA0KICAgICAgICAgICAgICA8L09QVElPTj4NCiAgICAgICAgICAgICAgPE9QVElP TiB2YWx1ZT0iMTAiIFNFTEVDVEVEPg0KICAgICAgICAgICAgICAgIHByb2R1Y3Q1DQogICAg ICAgICAgICAgIDwvT1BUSU9OPg0KPC9TRUxFQ1Q+DQoNCkFuZCB1c2luZyBwaHBodG1sbGli LCBJIGNhbGwgaXQgYXMgc286DQokc2VsZWN0ID0gZm9ybV9zZWxlY3QoInByb2R1Y3RzW10i LCAkUHJvZHVjdExpc3QsICRlbmdpbmVQcm9kdWN0TGlzdCwNCiJ0cnVlIik7DQoNCldoZW4g aXQgZHJhd3MgdGhlIHNlbGVjdCBib3ggYWxsIGl0cyB2YWx1ZXMgYXJlIHRoZSBsYXN0IHZh bHVlDQppbiB0aGUgJGVuZ2luZVByb2R1Y3RMaXN0IGFycmF5Lg0KDQoNCkhlcmVzIHdoYXQg SSB0aGluayB0aGUgc2VsZWN0IGZ1bmN0aW9uIHNob3VsZCBiZS4gTk9URTogJHZhbHVlIGlz IHVzZWQNCnR3aWNlIGFuZCBnZXRzIG92ZXJ3cml0dGVuIHNvIGkndmUgdXNlZCAkdmFsdWUy DQoNCmZ1bmN0aW9uIGZvcm1fc2VsZWN0KCRuYW1lLCAkb3B0aW9ucz1hcnJheSgpLCAkc2Vs ZWN0ZWQ9IiIpIHsNCg0KICAgICRzZWxlY3QgPSBuZXcgU0VMRUNUdGFnKCBhcnJheSgibmFt ZSIgPT4gJG5hbWUpICk7DQoNCiAgICB3aGlsZSggbGlzdCgkbGFiZWwsICR2YWx1ZSkgPSBl YWNoKCRvcHRpb25zKSApIHsNCiAgICAgICAgJHNlbGVjdGVkX3ZhbHVlID0gIiI7DQogICAg ICAgIGlmKGlzX2FycmF5KCRzZWxlY3RlZCkpew0KDQojIE5vdGUgdGhlIHVzZSBvZiAkdmFs dWUyIHNvIGl0IGRvZXNuJ3Qgb3ZlcndyaXRlICR2YWx1ZSBhYm92ZQ0KICAgICAgICAgICAg Zm9yZWFjaCgkc2VsZWN0ZWQgYXMgJGtleSA9PiAkdmFsdWUyKXsNCiAgICAgICAgICAgICAg ICBpZiAoJGxhYmVsID09ICRrZXkpIHsNCiAgICAgICAgICAgICAgICAgICAgJHNlbGVjdGVk X3ZhbHVlID0gIlNFTEVDVEVEIjsNCiAgICAgICAgICAgICAgICB9DQogICAgICAgICAgICB9 DQogICAgICAgICAgICByZXNldCgkc2VsZWN0ZWQpOw0KICAgICAgICB9IGVsc2Ugew0KICAg ICAgICAgICAgaWYgKCRsYWJlbCA9PSAkc2VsZWN0ZWQpIHsNCiAgICAgICAgICAgICAgICAk c2VsZWN0ZWRfdmFsdWUgPSAiU0VMRUNURUQiOw0KICAgICAgICAgICAgfQ0KICAgICAgICB9 DQogICAgICAgICRhdHRyaWJ1dGVzID0gYXJyYXkoICJ2YWx1ZSIgPT4gJHZhbHVlLCAkc2Vs ZWN0ZWRfdmFsdWUgKTsNCiAgICAgICAgJG9wdGlvbiA9IG5ldyBPUFRJT050YWcoICRhdHRy aWJ1dGVzICk7DQogICAgICAgICRvcHRpb24tPnB1c2goICRsYWJlbCApOw0KICAgICAgICAk c2VsZWN0LT5wdXNoKCAkb3B0aW9uICk7DQogICAgfQ0KICAgIHJldHVybiAkc2VsZWN0Ow0K fQ0KDQpIb3BlIEkndmUgbWFkZSBteXNlbGYgY2xlYXIuIEFueSBxdWVzdGlvbnMsIHBvcCBt ZSBhIGxpbmUuDQoNClJlZ2FyZHMsDQpXaW5zdG9uDQoNCi0tDQpXaW5zdG9uIFJhbHBoIC0t IFN5c3RlbXMgRGV2ZWxvcGVyDQoNCg0K |
From: Walter A. B. I. <wb...@qu...> - 2002-11-12 22:00:18
|
phpHtmllib 2.1.0 has officially been released. New Features * Added support for building SVG (Scalable Vector Graphics) images. This includes ALL W3C SVG 1.0 Recommendation tags. * Added support for building all WML tags to be used to build WAP pages * Added CSVFILEDataListSource object to be used to allow the DataList widget to get it's data from a CSV (Comma Seperated Values) formated file on disk * Added form_active_radio(), and form_active_checkbox() - ties together the text label with the form field * added xml_doctype() * added HTMLPageClass::build_doctype() - so you can override the attributes for the page's DOCTYPE tag * Added lots of new features to the XMLDocumentClass * added XMLSTYLESHEETtag New Widgets * SVGDocumentClass object for building complete SVG documents * Added WMLDocumentClass to build WAP/WML pages for WAP browsers * Added the new ActiveTab Widget - displays tabs w/ content without having to do page turns for each tab. Bug Fixes * fixed a problem with the DefaultGUIDataList object comparingthe old style tag name of TD. all tags are now lowercase * changed the use of id to class to prevent W3C validation errors when using a widget multiple times on a page. * Did some major code cleanup in the _render_tag_* functions between the XMLTagClass and the HTMLTagClass classes. Just had some legacy code living in the HTMLTagClass methods that was now living in the XMLTagClass methods * Did some minor tweaks here and there in the base classes for performance improvements thanks to the adp profiler tool http://pear.php.net/package-info.php?pacid=118 -- Walter A. Boring IV <wb...@qu...> |
From: Walter A. B. I. <wb...@qu...> - 2002-10-16 22:50:06
|
Howdy folks, I know this list has been dead dead dead even after the RC1 announcement, but I thought I'd let everyone know 2.0.0 has been officially released. I have added a new very powerful widget called DataList which can display, search, sort, and page lists of data from ANY source (MySQL, Oracle, xml, tab delimited file, whereever). The GUI layout of the DataList is also abstracted so it can look any way you like. It comes with a default look and feel, and also a child class for handling data sources from a SQL db. I'll eventually have examples up of how to get the data from xml, and flat files. The architecture of the widget set can get data from anywhere. Enjoy Walt http://phphtmllib.newsblob.com |
From: Walter A. B. I. <wab...@bu...> - 2002-10-02 23:36:08
|
Howdy Folks, I have just posted the submission on freshmeat.net that 2.0.0-RC1 has been "released" to the wild. If you still use the libs and would like to help test, then please pull down the 2.0.0 Release Candidate 1 from http://phphtmllib.newsblob.com I have updated/moved the home for the libs on my own hosted box. There are some new examples, and a tutorial on how to use/build a widget. Enjoy Walt |
From: winston r. <win...@al...> - 2002-08-02 10:41:59
|
Pg0KPiAgICAgJHNlbGVjdC0+c2V0X3RhZ19hdHRyaWJ1dGUoImZvbyIsICJiYXIiKTsgb3IN Cj4gICAgICRzZWxlY3QtPnNldF90YWdfYXR0cmlidXRlcyhhcnJheSgiZm9vIj0+ImJhciIs ICJibGFoIj0+ImZsb29wIikpOw0KPg0KPiAgICAgSSB3b3VsZCBwcmVmZXIgdGhpcywgYmVj YXVzZSBpdCBrZWVwcyB0aGUgYXBpIHRvIHRoZSBmb3JtXyoNCj4gZnVuY3Rpb25zIHNpbWls YXIuICBJZiB5b3Ugd2FudCB0byBqdXN0IHBhc3MgYW4gYXJyYXkgb2YgYXR0cmlidXRlcywN Cj4gdGhlbiB1c2UgdGhlIFNFTEVDVHRhZyBvYmplY3QuICBBbGwgb2YgdGhlIHdyYXBwZXIv aGVscGVyIGZ1bmN0aW9ucyBhcmUNCj4ganVzdCB0aGF0Li4uaGVscGVycyBmb3IgdGhlIG1v c3QgY29tbW9uIGF0dHJpYnV0ZXMgdXNlZC4NCg0KU2VlbXMgZ29vZCB0byBtZS4gSSdsbCB1 c2UgdGhpcyBtZXRob2QuIFRoYW5rcw0KDQo+IEFsbCB0aGF0IGJlaW5nIHNhaWQuLi4ud2hh dCBhcmUgdGhlIG90aGVyIGF0dHJpYnV0ZXMgdGhhdCB5b3UgdGhpbmsgYXJlDQo+IG1pc3Np bmcgdG8gZm9ybV9zZWxlY3QoKSA/DQo+DQoNCmRpc2FibGVkIGF0dHJpYnV0ZS4gQWxzbyBw YXNzaW5nIGphdmFzY3JpcHQgY2FsbHMuIE5vdyBtYXliZQ0KdGhlcmUgaXMgYSBuZWF0IHdh eSB0byBkbyB0aGlzIGFuZCBJJ3ZlIG92ZXJsb29rZWQgaXQuDQoNCj4NCj4gMi4wIGlzIExH UEwgOikNCg0KTmljZQ0KDQpUaGFua3MgZm9yIHRoZSByZXBvbnNlLg0KV2luc3Rvbg0K |
From: Walter A. B. I. <wab...@bu...> - 2002-08-01 16:56:59
|
On Thu, 2002-08-01 at 03:05, winston ralph wrote: > > > > Anyways, in reference to your question, it seems all you really want > > is the ability to specify the size. I can add that as another param. > > right now the 2.0 (dev) interface looks like > > function form_select($name, $options=array(), $selected="", > > $multiple_flag=FALSE) > > > > I will add size before the $multiple_flag param if no one objects. > > > > Would it not be a better idea to have an attributes array? There > are more attributes other than size that a select box can take. ---what the wrapper functions are trying to do is provide a standard api for the most common types of attributes used for a tag. With that being said, not all wrapper functions provide all possibilities for all attributes for a particular tag. Now with respect to form_select() the majority of the time folks don't use a multiple select, nor do they modify the size, hence the limited params. The upside is, that you can add any attributes you want in several ways. 1) build the tag manually using the new SELECTtag( $attributes ); you can put anything u want in the attributes array there. This sux, because its a "manual" process to build the select and all of it's attributes. 2) call form_select() with the current set of params. Then on the return of that call, add the missing attributes u want $select = form_Select("states", $state_options, $selected_items, $size, TRUE); $select->set_tag_attribute("foo", "bar"); or $select->set_tag_attributes(array("foo"=>"bar", "blah"=>"floop")); I would prefer this, because it keeps the api to the form_* functions similar. If you want to just pass an array of attributes, then use the SELECTtag object. All of the wrapper/helper functions are just that...helpers for the most common attributes used. If you wanted max flexibility to all the helper functions then they would all take an array as the first param, but this would make for hard to read code. The great thing about not using an array for attributes, is it makes the call readable, and consistent accross applications/pages. All that being said....what are the other attributes that you think are missing to form_select() ? > Then at least the function call doesn't get unwieldy. > Also the form_select method can only take 1 selected option. --not true. form_select can take an array for the selected items. (2.0) > This is insufficient if you have selected multiple options from > a multiple select box. > Regards, > Winston > > P.s thought my last mail didn't get through and the list was > finished. Good to see its still going strong, and look forward to > 2.0 (can you make it LGPL?) 2.0 is LGPL :) my $0.02 Walt |
From: winston r. <win...@al...> - 2002-08-01 13:24:11
|
DQoNCj4gQW55d2F5cywgaW4gcmVmZXJlbmNlIHRvIHlvdXIgcXVlc3Rpb24sIGl0IHNlZW1z IGFsbCB5b3UgcmVhbGx5IHdhbnQNCj4gaXMgdGhlIGFiaWxpdHkgdG8gc3BlY2lmeSB0aGUg c2l6ZS4gIEkgY2FuIGFkZCB0aGF0IGFzIGFub3RoZXIgcGFyYW0uDQo+IHJpZ2h0IG5vdyB0 aGUgMi4wIChkZXYpIGludGVyZmFjZSBsb29rcyBsaWtlDQo+IGZ1bmN0aW9uIGZvcm1fc2Vs ZWN0KCRuYW1lLCAkb3B0aW9ucz1hcnJheSgpLCAkc2VsZWN0ZWQ9IiIsDQo+ICRtdWx0aXBs ZV9mbGFnPUZBTFNFKQ0KPg0KPiBJIHdpbGwgYWRkIHNpemUgYmVmb3JlIHRoZSAkbXVsdGlw bGVfZmxhZyBwYXJhbSBpZiBubyBvbmUgb2JqZWN0cy4NCj4NCg0KV291bGQgaXQgbm90IGJl IGEgYmV0dGVyIGlkZWEgdG8gaGF2ZSBhbiBhdHRyaWJ1dGVzIGFycmF5PyBUaGVyZQ0KYXJl IG1vcmUgYXR0cmlidXRlcyBvdGhlciB0aGFuIHNpemUgdGhhdCBhIHNlbGVjdCBib3ggY2Fu IHRha2UuDQpUaGVuIGF0IGxlYXN0IHRoZSBmdW5jdGlvbiBjYWxsIGRvZXNuJ3QgZ2V0IHVu d2llbGR5Lg0KQWxzbyB0aGUgZm9ybV9zZWxlY3QgbWV0aG9kIGNhbiBvbmx5IHRha2UgMSBz ZWxlY3RlZCBvcHRpb24uDQpUaGlzIGlzIGluc3VmZmljaWVudCBpZiB5b3UgaGF2ZSBzZWxl Y3RlZCBtdWx0aXBsZSBvcHRpb25zIGZyb20NCmEgbXVsdGlwbGUgc2VsZWN0IGJveC4NClJl Z2FyZHMsDQpXaW5zdG9uDQoNClAucyB0aG91Z2h0IG15IGxhc3QgbWFpbCBkaWRuJ3QgZ2V0 IHRocm91Z2ggYW5kIHRoZSBsaXN0IHdhcw0KZmluaXNoZWQuIEdvb2QgdG8gc2VlIGl0cyBz dGlsbCBnb2luZyBzdHJvbmcsIGFuZCBsb29rIGZvcndhcmQgdG8NCjIuMCAoY2FuIHlvdSBt YWtlIGl0IExHUEw/KQ0K |
From: Walter A. B. I. <wab...@bu...> - 2002-07-31 06:08:45
|
Hey the list is still alive :) thanks for the email Winston. I've actually been working hard on the 2.0 version of the libs the last few days. I've been doing a lot of work on the widgets, and have added a new CSSBuilder widget that lets you build css on the fly. Anyways, in reference to your question, it seems all you really want is the ability to specify the size. I can add that as another param. right now the 2.0 (dev) interface looks like function form_select($name, $options=array(), $selected="", $multiple_flag=FALSE) I will add size before the $multiple_flag param if no one objects. Walt p.s. u can check out the latest version of the libs from cvs if you like the 2.0 api is not 100% compatible w/ 1.x There have been a LOT of updates, changes. On Tue, 2002-07-30 at 08:38, winston ralph wrote: > Hi, > > This kind of came up before. I found that I > > couldn't create a multiple select box. This has > > been rectified as you pointed out by passing the following: > > form_select($name, $options=array(), $selected="", > "TRUE"); > > This works fine if you only want to draw a multiple > > select box, but what happens if you want to change the > > multiple select boxes size. > > This is how I would propose to do this: > > 1: Change the form_select function like so: > > # attribs is an associative array > > function form_select($attribs, $options=array(), $selected="") { > > $select = new SELECTtag($attribs); > > while( list($label, $value) = each($options) ) { > $selected_value = ""; > if ($label == $selected) { > $selected_value = "SELECTED"; > } > $attributes = array( "value" => $value, $selected_value ); > $option = new OPTIONtag( $attributes ); > $option->push( $label ); > $select->push( $option ); > } > return $select; > } > > 2: The call would be as follows: > > $attribs = array("name"=>"test", "size"=>"10", "multiple"=>"true"); > > form_select($attribs, $options); > > Maybe you have spotted this already and changed it in the current > > version. All the best. > > Winston |
From: winston r. <win...@al...> - 2002-07-31 05:03:02
|
SGksDQoNClRoaXMga2luZCBvZiBjYW1lIHVwIGJlZm9yZS4gSSBmb3VuZCB0aGF0IEkNCg0K Y291bGRuJ3QgY3JlYXRlIGEgbXVsdGlwbGUgc2VsZWN0IGJveC4gVGhpcyBoYXMNCg0KYmVl biByZWN0aWZpZWQgYXMgeW91IHBvaW50ZWQgb3V0IGJ5IHBhc3NpbmcgdGhlIGZvbGxvd2lu ZzoNCg0KZm9ybV9zZWxlY3QoJG5hbWUsICRvcHRpb25zPWFycmF5KCksICRzZWxlY3RlZD0i IiwNCiAgICAgICAgICAgIlRSVUUiKTsNCg0KVGhpcyB3b3JrcyBmaW5lIGlmIHlvdSBvbmx5 IHdhbnQgdG8gZHJhdyBhIG11bHRpcGxlDQoNCnNlbGVjdCBib3gsIGJ1dCB3aGF0IGhhcHBl bnMgaWYgeW91IHdhbnQgdG8gY2hhbmdlIHRoZQ0KDQptdWx0aXBsZSBzZWxlY3QgYm94ZXMg c2l6ZS4NCg0KVGhpcyBpcyBob3cgSSB3b3VsZCBwcm9wb3NlIHRvIGRvIHRoaXM6DQoNCjE6 IENoYW5nZSB0aGUgZm9ybV9zZWxlY3QgZnVuY3Rpb24gbGlrZSBzbzoNCg0KIyBhdHRyaWJz IGlzIGFuIGFzc29jaWF0aXZlIGFycmF5DQoNCmZ1bmN0aW9uIGZvcm1fc2VsZWN0KCRhdHRy aWJzLCAkb3B0aW9ucz1hcnJheSgpLCAkc2VsZWN0ZWQ9IiIpIHsNCg0KICAgICRzZWxlY3Qg PSBuZXcgU0VMRUNUdGFnKCRhdHRyaWJzKTsNCg0KICAgIHdoaWxlKCBsaXN0KCRsYWJlbCwg JHZhbHVlKSA9IGVhY2goJG9wdGlvbnMpICkgew0KICAgICAgICAkc2VsZWN0ZWRfdmFsdWUg PSAiIjsNCiAgICAgICAgaWYgKCRsYWJlbCA9PSAkc2VsZWN0ZWQpIHsNCiAgICAgICAgICAg ICRzZWxlY3RlZF92YWx1ZSA9ICJTRUxFQ1RFRCI7DQogICAgICAgIH0NCiAgICAgICAgJGF0 dHJpYnV0ZXMgPSBhcnJheSggInZhbHVlIiA9PiAkdmFsdWUsICRzZWxlY3RlZF92YWx1ZSAp Ow0KICAgICAgICAkb3B0aW9uID0gbmV3IE9QVElPTnRhZyggJGF0dHJpYnV0ZXMgKTsNCiAg ICAgICAgJG9wdGlvbi0+cHVzaCggJGxhYmVsICk7DQogICAgICAgICRzZWxlY3QtPnB1c2go ICRvcHRpb24gKTsNCiAgICB9DQogICAgcmV0dXJuICRzZWxlY3Q7DQp9DQoNCjI6IFRoZSBj YWxsIHdvdWxkIGJlIGFzIGZvbGxvd3M6DQoNCiRhdHRyaWJzID0gYXJyYXkoIm5hbWUiPT4i dGVzdCIsICJzaXplIj0+IjEwIiwgIm11bHRpcGxlIj0+InRydWUiKTsNCg0KZm9ybV9zZWxl Y3QoJGF0dHJpYnMsICRvcHRpb25zKTsNCg0KTWF5YmUgeW91IGhhdmUgc3BvdHRlZCB0aGlz IGFscmVhZHkgYW5kIGNoYW5nZWQgaXQgaW4gdGhlIGN1cnJlbnQNCg0KdmVyc2lvbi4gQWxs IHRoZSBiZXN0Lg0KDQpXaW5zdG9uDQoNCg0K |
From: David M. <da...@re...> - 2002-06-14 23:09:13
|
Hi Walt, Thanks for not taking my critique harshly. As it happens, I've taken some of the concept of phpHtmlLib and written my own thingy, which I've called 'tagwriter'. Basically, what I've done is to create a single main class called 'tagwriter', and a bunch of global functions for each of the tag types. In order to gain some power of abstraction, I've created a mechanism of 'parametric substitution', whereby I can insert, at any point in the HTML tree, a named parameter. This parameter gets filled with another HTML tree upon invocation of a method called 'insert'. Example code: <?php include_once("tagwriter.inc"); // instandiate a tagwriter object $page = new tagwriter; // write some stuff to it, including a 'tagmarker' called 'redtext' // that we'll fill in later. Tag markers here are a bit like arguments // in C #define macros $page->put (HTML(HEAD(TITLE("This Page")), BODY(P(targs("align", "center", "style","font-size:24pt"), "Body Text"), P(targs("style", "color:red"), tagmarker("redtext"))))); // now insert a value into the 'redtext' marker // note - the inserted value can be large, even an html tree // with megabytes of tags $page->insert("redtext", "This line should appear as red text"); // Now render and display the page echo $page->raw(); ?> end example. The basic trip is, that all of the global tag generation functions accept any number of arguments, and render the HTML on the fly. Indenting is disabled by default, since the simplistic indenting code I'm using has a tendency to stuff up <TEXTAREA> tags. I've attached the 'tagwriter.inc' file, plus: test3.php - demonstrates stylesheet generation test4.php - demonstrates a mindlessly easy use of frames, allowing a single PHP file to generate all the frames for a single page. (hopefully your mailing list server permits attachments). For me, this scheme is proving far easier to write with. By keeping the global functions' names as short as possible, and not prefixing them with 'html_', I avoid ending up with code that indents right off the edge of the screen. With this 'tagwriter' scheme, I was able to re-write my php/postgres web application into something that for me is very readable. Note - the 'tagwriter.inc' is not exactly complete - very lacking in comments, argument validation etc, but it's working sufficiently well to demonstrate the concepts. The one feature I got excited about was the 'parametric substitution' thing. This provides the ability to accumulate a library of HTML code tree fragments, boilerplates, and to 'include_once()' them as desired. I'm in no way interested in any kind of 'php html library war' - just in personally having an easy time with php programming, and perhaps supporting others to have the same. So please feel welcome to rip off anything in tagwriter that you may like. I'll only say that I've issued tagwriter here under GPL. I don't even know if I'll end up publishing it. Cheers David On Sat, 2002-06-15 at 05:36, Walter A. Boring IV wrote: > First things first, > Thanks for the Critique. It's always healthy for any project to get > some devil's advocate/crituquing, and I appriciate it. Thanks. no > really. :) > That being said and out of the way, when I wrote the libs, I was doing > just for a fun project to do and with no real "lets convert the entire > php engineering population to the libs" kind of thought process. I > personally find the libs very usefull for many reasons, so I choose to > use em. If they aren't for you, then thats kewl to. > > > Hi all, > > > > I fear that I might come across as putting down phpHtmlLib, so please > > try and trust that that is not my intention. > > > > I love the concept of phpHtmlLib, that of abstracting the generation of > > HTML code. > > > > But after working with it for 2 days, I've gone back to printing out raw > > html for now. > > > > In using phpHtmlLib, I've found that the abstractions can be more fiddly > > to drive than raw html generation itself. > > > > At first, I felt really enthusiastic, and started converting a web-based > > project management application over to phpHtmlLib. > > > > My app generates some intricate HTML - tables nested 3 deep, rows and > > columns full of links which vary according to php script invocation > > flags and database content. More, link and non-link column styles - > > colours, italics, bold etc - also vary according to script arguments and > > database content. > > > > I gave up trying to convert the app. Instead, I started writing a > > completely new script, borrowing slightly from the logic of the raw one. > > > > But on writing the phpHtmlLib code, I found myself having to create tons > > of temporary variables to keep track of things. > ---with 2.0.0 and the html_* wrappers, this should help some, as well as > the new constructor args. > > > > It all started to feel like programming in assembler. The abstraction > > mechanisms of phpHtmlLib came at a price - a whole lot of concrete > > tracking of details, and a whole lot of 'noise' in the script, which > > completely destroyed its readibility. The code ended up far more > > concrete than before. > > > > [It's a shame we don't have 3D displays. Then, logic indenting could go > > left-right, and tag indenting could go front-back. Or perhaps someone > > with too much time on their hands could write a LISP major mode script > > for phpHtmlLib to represent different levels of tags as different > > colours'] > > > > But seriously, it would be unfair for me to just rant on without > > offering some kind of ideas for how this could be fixed. Well, here > > goes... > > > > 1) Create a 'cursor' object, so that every time a tag object gets > > created, the cursor gets set to that object. Then, one could do > > something like 'add("A line of text")', and know the text will be > > written to the right place, without having to keep track of what the > > current tag is. > ---you can do this with references, but it creates very difficult to > read/manage code. The nice thing about the libs is that its just an > object tree. So anyone that knows OOP can use them out of the box, with > a little learning curve. > > > 2) Complementary to (1) - a function allowing an arbitrary 'pop' back to > > any level of the stack. For example, if one is currently writing an <a> > > within a <div> within a <td> within a <tr> within a <table> within a > > <td> within a <tr>, one could pop the 'cursor' back to the outer level > > '<tr>' tag. > ---use references if you have to do this. Most of the time I don't have > to worry about "popping" back out to an outer level. If you organize > code with lots of functions/objects then this really doesn't happen that > often. In my case, I usually write a widgets which are logical html > "objects" and I just stuff data into them. I don't care how they are > structured. its just data. > > > 3) Make reference the standard default type of 'push'. For situations > > where someone really wants to do the 'copying'-style push, provide a tag > > object copying function (or method) which completely copies a tag object > > and all its children. With methods such as 'push_row()', the lack of a > > reference push is a big drawback. > ---I am playing with making push handle references. The problem with it > is, that since push can accept n # of arguments, I have to use the > func_* functions, which do not do references. Hence the push_reference > (and now add_reference replacement of push_reference), that only takes 1 > parameter. This is just a limitation in the php language that I can't > get around for the moment. > > > 4) Allow for easy creation of template classes. > > For example, it would be lovely to have a class which writes 10-point > > bold green centred links within a table column, without having to create > > n levels of tags each time. > ---anyone can do this. They are called functions, or objects :) The > libs are not intended to cover every web engineer's style of output > html, but to provide a standard Object API for building/rendering html > as close as the w3c spec as possible. > If you want specific styled/colored objects, tags, you should write > your own wrapper functions/objects. I do this on many of my > applications I used the libs with. Take for example, I have a span with > a specific css class that I use everywhere. So I just create a specific > local (to the app) library wrapper. Something like, > > function span_font10( ) { > $args = func_get_args(); > $span = new SPANtag( array("class" => "font10") ); > push_args( $span, $args ); > return $span; > } > > Does this mean that the phphtmllibs should include this? I don't think > so. > > > My $0.02 > Walt > |
From: Walter A. B. I. <wab...@bu...> - 2002-06-14 17:36:46
|
First things first, Thanks for the Critique. It's always healthy for any project to get some devil's advocate/crituquing, and I appriciate it. Thanks. no really. :) That being said and out of the way, when I wrote the libs, I was doing just for a fun project to do and with no real "lets convert the entire php engineering population to the libs" kind of thought process. I personally find the libs very usefull for many reasons, so I choose to use em. If they aren't for you, then thats kewl to. > Hi all, > > I fear that I might come across as putting down phpHtmlLib, so please > try and trust that that is not my intention. > > I love the concept of phpHtmlLib, that of abstracting the generation of > HTML code. > > But after working with it for 2 days, I've gone back to printing out raw > html for now. > > In using phpHtmlLib, I've found that the abstractions can be more fiddly > to drive than raw html generation itself. > > At first, I felt really enthusiastic, and started converting a web-based > project management application over to phpHtmlLib. > > My app generates some intricate HTML - tables nested 3 deep, rows and > columns full of links which vary according to php script invocation > flags and database content. More, link and non-link column styles - > colours, italics, bold etc - also vary according to script arguments and > database content. > > I gave up trying to convert the app. Instead, I started writing a > completely new script, borrowing slightly from the logic of the raw one. > > But on writing the phpHtmlLib code, I found myself having to create tons > of temporary variables to keep track of things. ---with 2.0.0 and the html_* wrappers, this should help some, as well as the new constructor args. > It all started to feel like programming in assembler. The abstraction > mechanisms of phpHtmlLib came at a price - a whole lot of concrete > tracking of details, and a whole lot of 'noise' in the script, which > completely destroyed its readibility. The code ended up far more > concrete than before. > > [It's a shame we don't have 3D displays. Then, logic indenting could go > left-right, and tag indenting could go front-back. Or perhaps someone > with too much time on their hands could write a LISP major mode script > for phpHtmlLib to represent different levels of tags as different > colours'] > > But seriously, it would be unfair for me to just rant on without > offering some kind of ideas for how this could be fixed. Well, here > goes... > > 1) Create a 'cursor' object, so that every time a tag object gets > created, the cursor gets set to that object. Then, one could do > something like 'add("A line of text")', and know the text will be > written to the right place, without having to keep track of what the > current tag is. ---you can do this with references, but it creates very difficult to read/manage code. The nice thing about the libs is that its just an object tree. So anyone that knows OOP can use them out of the box, with a little learning curve. > 2) Complementary to (1) - a function allowing an arbitrary 'pop' back to > any level of the stack. For example, if one is currently writing an <a> > within a <div> within a <td> within a <tr> within a <table> within a > <td> within a <tr>, one could pop the 'cursor' back to the outer level > '<tr>' tag. ---use references if you have to do this. Most of the time I don't have to worry about "popping" back out to an outer level. If you organize code with lots of functions/objects then this really doesn't happen that often. In my case, I usually write a widgets which are logical html "objects" and I just stuff data into them. I don't care how they are structured. its just data. > 3) Make reference the standard default type of 'push'. For situations > where someone really wants to do the 'copying'-style push, provide a tag > object copying function (or method) which completely copies a tag object > and all its children. With methods such as 'push_row()', the lack of a > reference push is a big drawback. ---I am playing with making push handle references. The problem with it is, that since push can accept n # of arguments, I have to use the func_* functions, which do not do references. Hence the push_reference (and now add_reference replacement of push_reference), that only takes 1 parameter. This is just a limitation in the php language that I can't get around for the moment. > 4) Allow for easy creation of template classes. > For example, it would be lovely to have a class which writes 10-point > bold green centred links within a table column, without having to create > n levels of tags each time. ---anyone can do this. They are called functions, or objects :) The libs are not intended to cover every web engineer's style of output html, but to provide a standard Object API for building/rendering html as close as the w3c spec as possible. If you want specific styled/colored objects, tags, you should write your own wrapper functions/objects. I do this on many of my applications I used the libs with. Take for example, I have a span with a specific css class that I use everywhere. So I just create a specific local (to the app) library wrapper. Something like, function span_font10( ) { $args = func_get_args(); $span = new SPANtag( array("class" => "font10") ); push_args( $span, $args ); return $span; } Does this mean that the phphtmllibs should include this? I don't think so. My $0.02 Walt |
From: Walter A. B. I. <wb...@qu...> - 2002-06-13 16:43:01
|
Howdy folks, The folks at Sourceforge have imported my cvs repository for the phphtmllib tree. Previously, I had my own cvs repos at home where I did all the work, but now its publicly available for read access. Anyone that is interested, please pull down the latest code from cvs. It is the development version of 2.0.0. The API is still in flux, so use at your own risk at this point. It would be nice to have some other eyes looking at it. You can check out the tree with instructions at : http://sourceforge.net/cvs/?group_id=32790 Or you can just browse the tree at : http://cvs.sourceforge.net/cgi-bin/viewcvs.cgi/phphtmllib/ happy cvs co Walt |
From: Walter A. B. I. <wab...@bu...> - 2002-06-11 05:21:20
|
On Mon, 2002-06-10 at 20:36, Tim Moloney wrote: > Walter A. Boring IV wrote: > > > How often do folks really use colspan on a td? what % of all TDtags > > that you create need colspan attribute? In my case its less then 10% of > > all the TDtags I create manually. > > grep'ing through my code shows about 14% of my TDs use colspan. > Not nearly an much as I thought. > ---thats pretty much my % usage of colspan on TD's as well. If nothing else one could always write a local lib wrapper for a tdtag w/ colspan. I am thinking that the API's should reflect as much of the W3C spec as possible. I've started to switch to using style="width:100px" instead of width="100" on my td tags. It seems to work well in both IE and moz/ns Now that mozilla 1.0 is out, I have personally dropped the idea of coding for Netscape 4.x as the minimum. This really opens a whole new world of css and style usage. I've been playing around with a lot of css features recently, and Mozilla seems to have a much better/closer implementation of the standard then IE does. Walt |
From: Tim M. <mo...@mr...> - 2002-06-11 03:37:34
|
Walter A. Boring IV wrote: > How often do folks really use colspan on a td? what % of all TDtags > that you create need colspan attribute? In my case its less then 10% of > all the TDtags I create manually. grep'ing through my code shows about 14% of my TDs use colspan. Not nearly an much as I thought. -- Tim Moloney ManTech Real-time Systems Laboratory 2015 Cattlemen Road \ / Sarasota, FL 34232 .________\(O)/________. (941) 377-6775 x208 ' ' O(.)O ' ' |
From: Walter A. B. I. <wb...@qu...> - 2002-06-10 20:59:32
|
Howdy folks, I have submitted my cvs repository to the folks at sourceforge to import it into the project. With any luck, it should be in today or tomorrow. When its up, you'll all have read access to check out the current version. Walt |
From: Walter A. B. I. <wab...@bu...> - 2002-06-10 03:00:40
|
On Fri, 2002-06-07 at 13:56, Tim Moloney wrote: > Walter A. Boring IV wrote: > > > Howdy, > > I'm working on adding lots more html_* helper functions with various > > "standard" params for each specific tag to be built. One of the changes > > I am making to html_td() is to add specific commonly used params. > > Currently html_td() only accepts content. This kinda sux. > > So I have come up with > > html_td($class, $align, $width), > > params 4 through n are content. > > > > I thought about adding colspan as the 4th param, but in my experience, > > its not used as often as the other 3. > > I would like to see the colspan parameter, personally. ---ok I dropped the width parameter. I think folks should use the style attribute of the tag, since the W3C says the width attribute for a TDtag is depricated. This doesn't mean u can't do it, its just not a default param for the wrapper function html_td(). If you have to do width="50", then u still can after you have created the object. How often do folks really use colspan on a td? what % of all TDtags that you create need colspan attribute? In my case its less then 10% of all the TDtags I create manually. > As I said before, if your going to change the API, now's the time. > Just make sure that any API changes are well documented in the > Changlog/Readme file. -- I have updated the Changelog to reflect the major/minor changes that have happened since 1.1.0. With any luck I'll have cvs access to the libs this comming week via sourceforge. I am pretty sure that I have all the missing html_* helper functions added. Some of them have special attributes for the most commonly used features of the tags. Take html_fieldset() for example. the first param of that function accepts, text, or a LEGENDtag object. Since the first tag of a <fieldset> tag can be a <legend> tag. If you guys haven't used <fieldset><legend>foo</legend></fieldset> before, its really kewl. Give it a try. Unfortunatly IE 5.5 doesn't render a background color on the legend properly, but it does look killer in Moz. Walt |
From: Tim M. <mo...@mr...> - 2002-06-07 20:57:13
|
Walter A. Boring IV wrote: > Howdy, > I'm working on adding lots more html_* helper functions with various > "standard" params for each specific tag to be built. One of the changes > I am making to html_td() is to add specific commonly used params. > Currently html_td() only accepts content. This kinda sux. > So I have come up with > html_td($class, $align, $width), > params 4 through n are content. > > I thought about adding colspan as the 4th param, but in my experience, > its not used as often as the other 3. I would like to see the colspan parameter, personally. > Also, according to the w3c spec > width is depricated. You should use a style="width:100px" to set the > width of the td...but, how many ppl know to do that? My guess is not > many. So this leads me to a gray area between the w3c, which I would > like to conform to, and normal implementation of html. Browsers still > to this day are not very compliant in their implementation of the spec, > so its hard to try and enforce an api to the libs that require > conformance. Do most broswers support width in the <style> tag? If so, I'd go with the w3c and not have the width parameter. I've learned to use more <style> tags since you flag the other deprecated items I used to use (<center>, <font>, etc.). > So, for the time being I'm trying to take each tag as a case by case > basis for conformance vs. implementation. Hence my addition of the > width param to html_td(). > > Also, note, this change to html_td() will break 1.1.x of the libs. > folks will have to change their use of html_td(). As I said before, if your going to change the API, now's the time. Just make sure that any API changes are well documented in the Changlog/Readme file. -- Tim Moloney ManTech Real-time Systems Laboratory 2015 Cattlemen Road \ / Sarasota, FL 34232 .________\(O)/________. (941) 377-6775 x208 ' ' O(.)O ' ' |