[20863] Delete obsolete
Sigurd Nes <[email protected]>
| Newsgroups | gmane.comp.web.phpgroupware.cvs |
|---|---|
| Message-ID | <[email protected]> |
Revision: 20863
http://svn.sv.gnu.org/viewvc/?view=rev&root=phpgroupware&revision=20863
Author: sigurdne
Date: 2009-11-20 12:34:05 +0000 (Fri, 20 Nov 2009)
Log Message:
-----------
Delete obsolete
Modified Paths:
--------------
people/sigurdne/modules/phpgwapi/trunk/inc/class.db.inc.php
Removed Paths:
-------------
people/sigurdne/modules/phpgwapi/trunk/doc/adodb.diff
people/sigurdne/modules/phpgwapi/trunk/doc/soap/nusoap2phpgwapi
people/sigurdne/modules/phpgwapi/trunk/inc/adodb/drivers/adodb-oci8.old.inc.php
people/sigurdne/modules/phpgwapi/trunk/inc/class.icalendar.inc.php
people/sigurdne/modules/phpgwapi/trunk/inc/class.nusoap_base.inc.php
people/sigurdne/modules/phpgwapi/trunk/inc/class.nusoap_client.inc.php
people/sigurdne/modules/phpgwapi/trunk/inc/class.phpgw_soapval.inc.php
people/sigurdne/modules/phpgwapi/trunk/inc/class.soap_XMLSchema.inc.php
people/sigurdne/modules/phpgwapi/trunk/inc/class.soap_fault.inc.php
people/sigurdne/modules/phpgwapi/trunk/inc/class.soap_parser.inc.php
people/sigurdne/modules/phpgwapi/trunk/inc/class.soap_server.inc.php
people/sigurdne/modules/phpgwapi/trunk/inc/class.soap_transport_http.inc.php
people/sigurdne/modules/phpgwapi/trunk/inc/class.soapclient.inc.php
people/sigurdne/modules/phpgwapi/trunk/inc/class.soapmsg.inc.php
people/sigurdne/modules/phpgwapi/trunk/inc/class.soapval.inc.php
people/sigurdne/modules/phpgwapi/trunk/inc/class.translation_sql.inc.php
people/sigurdne/modules/phpgwapi/trunk/inc/class.wsdl.inc.php
people/sigurdne/modules/phpgwapi/trunk/inc/class.xmlrpc_server.inc.php
people/sigurdne/modules/phpgwapi/trunk/inc/class.xmlrpcmsg.inc.php
people/sigurdne/modules/phpgwapi/trunk/inc/class.xmlrpcresp.inc.php
people/sigurdne/modules/phpgwapi/trunk/inc/class.xmlrpcval.inc.php
people/sigurdne/modules/phpgwapi/trunk/inc/phpmailer/docs/timeoutfix.diff
people/sigurdne/modules/phpgwapi/trunk/inc/xml_functions.inc.php
people/sigurdne/modules/phpgwapi/trunk/inc/xmlrpc.interop.php
people/sigurdne/modules/phpgwapi/trunk/js/yahoo/README
people/sigurdne/modules/phpgwapi/trunk/js/yahoo/README-phpGroupWare.txt
people/sigurdne/modules/phpgwapi/trunk/js/yahoo/animation/README
people/sigurdne/modules/phpgwapi/trunk/js/yahoo/assets/skins/sam/transparent.gif
people/sigurdne/modules/phpgwapi/trunk/js/yahoo/autocomplete/README
people/sigurdne/modules/phpgwapi/trunk/js/yahoo/base/README
people/sigurdne/modules/phpgwapi/trunk/js/yahoo/button/README
people/sigurdne/modules/phpgwapi/trunk/js/yahoo/button/button-beta-debug.js
people/sigurdne/modules/phpgwapi/trunk/js/yahoo/button/button-beta-min.js
people/sigurdne/modules/phpgwapi/trunk/js/yahoo/button/button-beta.js
people/sigurdne/modules/phpgwapi/trunk/js/yahoo/calendar/README
people/sigurdne/modules/phpgwapi/trunk/js/yahoo/charts/README
people/sigurdne/modules/phpgwapi/trunk/js/yahoo/charts/charts-experimental-debug.js
people/sigurdne/modules/phpgwapi/trunk/js/yahoo/charts/charts-experimental-min.js
people/sigurdne/modules/phpgwapi/trunk/js/yahoo/charts/charts-experimental.js
people/sigurdne/modules/phpgwapi/trunk/js/yahoo/charts-experimental.js
people/sigurdne/modules/phpgwapi/trunk/js/yahoo/colorpicker/README
people/sigurdne/modules/phpgwapi/trunk/js/yahoo/colorpicker/colorpicker-beta-debug.js
people/sigurdne/modules/phpgwapi/trunk/js/yahoo/colorpicker/colorpicker-beta-min.js
people/sigurdne/modules/phpgwapi/trunk/js/yahoo/colorpicker/colorpicker-beta.js
people/sigurdne/modules/phpgwapi/trunk/js/yahoo/connection/README
people/sigurdne/modules/phpgwapi/trunk/js/yahoo/container/README
people/sigurdne/modules/phpgwapi/trunk/js/yahoo/cookie/README
people/sigurdne/modules/phpgwapi/trunk/js/yahoo/cookie/cookie-beta-debug.js
people/sigurdne/modules/phpgwapi/trunk/js/yahoo/cookie/cookie-beta-min.js
people/sigurdne/modules/phpgwapi/trunk/js/yahoo/cookie/cookie-beta.js
people/sigurdne/modules/phpgwapi/trunk/js/yahoo/cookie-beta.js
people/sigurdne/modules/phpgwapi/trunk/js/yahoo/datasource/README
people/sigurdne/modules/phpgwapi/trunk/js/yahoo/datasource/datasource-beta-debug.js
people/sigurdne/modules/phpgwapi/trunk/js/yahoo/datasource/datasource-beta-min.js
people/sigurdne/modules/phpgwapi/trunk/js/yahoo/datasource/datasource-beta.js
people/sigurdne/modules/phpgwapi/trunk/js/yahoo/datasource-beta.js
people/sigurdne/modules/phpgwapi/trunk/js/yahoo/datatable/README
people/sigurdne/modules/phpgwapi/trunk/js/yahoo/datatable/datatable-beta-debug.js
people/sigurdne/modules/phpgwapi/trunk/js/yahoo/datatable/datatable-beta-min.js
people/sigurdne/modules/phpgwapi/trunk/js/yahoo/datatable/datatable-beta.js
people/sigurdne/modules/phpgwapi/trunk/js/yahoo/datatable-beta.js
people/sigurdne/modules/phpgwapi/trunk/js/yahoo/dom/README
people/sigurdne/modules/phpgwapi/trunk/js/yahoo/dragdrop/README
people/sigurdne/modules/phpgwapi/trunk/js/yahoo/editor/README
people/sigurdne/modules/phpgwapi/trunk/js/yahoo/editor/editor-beta-debug.js
people/sigurdne/modules/phpgwapi/trunk/js/yahoo/editor/editor-beta-min.js
people/sigurdne/modules/phpgwapi/trunk/js/yahoo/editor/editor-beta.js
people/sigurdne/modules/phpgwapi/trunk/js/yahoo/editor/simpleeditor-beta-debug.js
people/sigurdne/modules/phpgwapi/trunk/js/yahoo/editor/simpleeditor-beta-min.js
people/sigurdne/modules/phpgwapi/trunk/js/yahoo/editor/simpleeditor-beta.js
people/sigurdne/modules/phpgwapi/trunk/js/yahoo/editor-beta.js
people/sigurdne/modules/phpgwapi/trunk/js/yahoo/element/README
people/sigurdne/modules/phpgwapi/trunk/js/yahoo/element/element-beta-debug.js
people/sigurdne/modules/phpgwapi/trunk/js/yahoo/element/element-beta-min.js
people/sigurdne/modules/phpgwapi/trunk/js/yahoo/element/element-beta.js
people/sigurdne/modules/phpgwapi/trunk/js/yahoo/element-beta.js
people/sigurdne/modules/phpgwapi/trunk/js/yahoo/event/README
people/sigurdne/modules/phpgwapi/trunk/js/yahoo/fonts/README
people/sigurdne/modules/phpgwapi/trunk/js/yahoo/get/README
people/sigurdne/modules/phpgwapi/trunk/js/yahoo/grids/README
people/sigurdne/modules/phpgwapi/trunk/js/yahoo/history/README
people/sigurdne/modules/phpgwapi/trunk/js/yahoo/history/history-beta-debug.js
people/sigurdne/modules/phpgwapi/trunk/js/yahoo/history/history-beta-min.js
people/sigurdne/modules/phpgwapi/trunk/js/yahoo/history/history-beta.js
people/sigurdne/modules/phpgwapi/trunk/js/yahoo/imagecropper/README
people/sigurdne/modules/phpgwapi/trunk/js/yahoo/imagecropper/imagecropper-beta-debug.js
people/sigurdne/modules/phpgwapi/trunk/js/yahoo/imagecropper/imagecropper-beta-min.js
people/sigurdne/modules/phpgwapi/trunk/js/yahoo/imagecropper/imagecropper-beta.js
people/sigurdne/modules/phpgwapi/trunk/js/yahoo/imagecropper-beta.js
people/sigurdne/modules/phpgwapi/trunk/js/yahoo/imageloader/README
people/sigurdne/modules/phpgwapi/trunk/js/yahoo/imageloader/imageloader-experimental-debug.js
people/sigurdne/modules/phpgwapi/trunk/js/yahoo/imageloader/imageloader-experimental-min.js
people/sigurdne/modules/phpgwapi/trunk/js/yahoo/imageloader/imageloader-experimental.js
people/sigurdne/modules/phpgwapi/trunk/js/yahoo/json/README
people/sigurdne/modules/phpgwapi/trunk/js/yahoo/layout/README
people/sigurdne/modules/phpgwapi/trunk/js/yahoo/layout/layout-beta-debug.js
people/sigurdne/modules/phpgwapi/trunk/js/yahoo/layout/layout-beta-min.js
people/sigurdne/modules/phpgwapi/trunk/js/yahoo/layout/layout-beta.js
people/sigurdne/modules/phpgwapi/trunk/js/yahoo/layout-beta.js
people/sigurdne/modules/phpgwapi/trunk/js/yahoo/log.js
people/sigurdne/modules/phpgwapi/trunk/js/yahoo/logger/README
people/sigurdne/modules/phpgwapi/trunk/js/yahoo/menu/README
people/sigurdne/modules/phpgwapi/trunk/js/yahoo/profiler/README
people/sigurdne/modules/phpgwapi/trunk/js/yahoo/profiler/profiler-beta-debug.js
people/sigurdne/modules/phpgwapi/trunk/js/yahoo/profiler/profiler-beta-min.js
people/sigurdne/modules/phpgwapi/trunk/js/yahoo/profiler/profiler-beta.js
people/sigurdne/modules/phpgwapi/trunk/js/yahoo/profiler-beta.js
people/sigurdne/modules/phpgwapi/trunk/js/yahoo/profilerviewer/README
people/sigurdne/modules/phpgwapi/trunk/js/yahoo/profilerviewer/profilerviewer-beta-debug.js
people/sigurdne/modules/phpgwapi/trunk/js/yahoo/profilerviewer/profilerviewer-beta-min.js
people/sigurdne/modules/phpgwapi/trunk/js/yahoo/profilerviewer/profilerviewer-beta.js
people/sigurdne/modules/phpgwapi/trunk/js/yahoo/profilerviewer-beta.js
people/sigurdne/modules/phpgwapi/trunk/js/yahoo/reset/README
people/sigurdne/modules/phpgwapi/trunk/js/yahoo/reset-fonts/README
people/sigurdne/modules/phpgwapi/trunk/js/yahoo/reset-fonts-grids/README
people/sigurdne/modules/phpgwapi/trunk/js/yahoo/resize/README
people/sigurdne/modules/phpgwapi/trunk/js/yahoo/resize/resize-beta-debug.js
people/sigurdne/modules/phpgwapi/trunk/js/yahoo/resize/resize-beta-min.js
people/sigurdne/modules/phpgwapi/trunk/js/yahoo/resize/resize-beta.js
people/sigurdne/modules/phpgwapi/trunk/js/yahoo/resize-beta.js
people/sigurdne/modules/phpgwapi/trunk/js/yahoo/selector/README
people/sigurdne/modules/phpgwapi/trunk/js/yahoo/selector/selector-beta-debug.js
people/sigurdne/modules/phpgwapi/trunk/js/yahoo/selector/selector-beta-min.js
people/sigurdne/modules/phpgwapi/trunk/js/yahoo/selector/selector-beta.js
people/sigurdne/modules/phpgwapi/trunk/js/yahoo/selector-beta.js
people/sigurdne/modules/phpgwapi/trunk/js/yahoo/slider/README
people/sigurdne/modules/phpgwapi/trunk/js/yahoo/tabview/README
people/sigurdne/modules/phpgwapi/trunk/js/yahoo/tests/YUI.html
people/sigurdne/modules/phpgwapi/trunk/js/yahoo/tests/animation.html
people/sigurdne/modules/phpgwapi/trunk/js/yahoo/tests/assets/xframe.html
people/sigurdne/modules/phpgwapi/trunk/js/yahoo/tests/autocomplete.html
people/sigurdne/modules/phpgwapi/trunk/js/yahoo/tests/calendar.html
people/sigurdne/modules/phpgwapi/trunk/js/yahoo/tests/colorpicker.html
people/sigurdne/modules/phpgwapi/trunk/js/yahoo/tests/config.html
people/sigurdne/modules/phpgwapi/trunk/js/yahoo/tests/datasource.html
people/sigurdne/modules/phpgwapi/trunk/js/yahoo/tests/datatable.html
people/sigurdne/modules/phpgwapi/trunk/js/yahoo/tests/datemath.html
people/sigurdne/modules/phpgwapi/trunk/js/yahoo/tests/dom.html
people/sigurdne/modules/phpgwapi/trunk/js/yahoo/tests/dragdrop.html
people/sigurdne/modules/phpgwapi/trunk/js/yahoo/tests/editor.html
people/sigurdne/modules/phpgwapi/trunk/js/yahoo/tests/element.html
people/sigurdne/modules/phpgwapi/trunk/js/yahoo/tests/imageloader.html
people/sigurdne/modules/phpgwapi/trunk/js/yahoo/tests/logger.html
people/sigurdne/modules/phpgwapi/trunk/js/yahoo/tests/module.html
people/sigurdne/modules/phpgwapi/trunk/js/yahoo/tests/tabview.html
people/sigurdne/modules/phpgwapi/trunk/js/yahoo/tests/yahoo.html
people/sigurdne/modules/phpgwapi/trunk/js/yahoo/tests/yuiloader.html
people/sigurdne/modules/phpgwapi/trunk/js/yahoo/tests/yuiloader_config.html
people/sigurdne/modules/phpgwapi/trunk/js/yahoo/tests/yuiloader_rollup.html
people/sigurdne/modules/phpgwapi/trunk/js/yahoo/tests/yuitest.html
people/sigurdne/modules/phpgwapi/trunk/js/yahoo/treeview/README
people/sigurdne/modules/phpgwapi/trunk/js/yahoo/uploader/README
people/sigurdne/modules/phpgwapi/trunk/js/yahoo/uploader/uploader-experimental-debug.js
people/sigurdne/modules/phpgwapi/trunk/js/yahoo/uploader/uploader-experimental-min.js
people/sigurdne/modules/phpgwapi/trunk/js/yahoo/uploader/uploader-experimental.js
people/sigurdne/modules/phpgwapi/trunk/js/yahoo/uploader-experimental.js
people/sigurdne/modules/phpgwapi/trunk/js/yahoo/utilities/README
people/sigurdne/modules/phpgwapi/trunk/js/yahoo/yahoo/README
people/sigurdne/modules/phpgwapi/trunk/js/yahoo/yahoo-dom-event/README
people/sigurdne/modules/phpgwapi/trunk/js/yahoo/yui/README
people/sigurdne/modules/phpgwapi/trunk/js/yahoo/yui/build/animation/README
people/sigurdne/modules/phpgwapi/trunk/js/yahoo/yui/build/animation/animation-debug.js
people/sigurdne/modules/phpgwapi/trunk/js/yahoo/yui/build/animation/animation-min.js
people/sigurdne/modules/phpgwapi/trunk/js/yahoo/yui/build/animation/animation.js
people/sigurdne/modules/phpgwapi/trunk/js/yahoo/yui/build/autocomplete/README
people/sigurdne/modules/phpgwapi/trunk/js/yahoo/yui/build/autocomplete/autocomplete-debug.js
people/sigurdne/modules/phpgwapi/trunk/js/yahoo/yui/build/autocomplete/autocomplete-min.js
people/sigurdne/modules/phpgwapi/trunk/js/yahoo/yui/build/autocomplete/autocomplete.js
people/sigurdne/modules/phpgwapi/trunk/js/yahoo/yui/build/calendar/README
people/sigurdne/modules/phpgwapi/trunk/js/yahoo/yui/build/calendar/assets/calendar.css
people/sigurdne/modules/phpgwapi/trunk/js/yahoo/yui/build/calendar/assets/callt.gif
people/sigurdne/modules/phpgwapi/trunk/js/yahoo/yui/build/calendar/assets/calrt.gif
people/sigurdne/modules/phpgwapi/trunk/js/yahoo/yui/build/calendar/assets/calx.gif
people/sigurdne/modules/phpgwapi/trunk/js/yahoo/yui/build/calendar/calendar-debug.js
people/sigurdne/modules/phpgwapi/trunk/js/yahoo/yui/build/calendar/calendar-min.js
people/sigurdne/modules/phpgwapi/trunk/js/yahoo/yui/build/calendar/calendar.js
people/sigurdne/modules/phpgwapi/trunk/js/yahoo/yui/build/connection/README
people/sigurdne/modules/phpgwapi/trunk/js/yahoo/yui/build/connection/connection-debug.js
people/sigurdne/modules/phpgwapi/trunk/js/yahoo/yui/build/connection/connection-min.js
people/sigurdne/modules/phpgwapi/trunk/js/yahoo/yui/build/connection/connection.js
people/sigurdne/modules/phpgwapi/trunk/js/yahoo/yui/build/container/README
people/sigurdne/modules/phpgwapi/trunk/js/yahoo/yui/build/container/assets/alrt16_1.gif
people/sigurdne/modules/phpgwapi/trunk/js/yahoo/yui/build/container/assets/blck16_1.gif
people/sigurdne/modules/phpgwapi/trunk/js/yahoo/yui/build/container/assets/close12_1.gif
people/sigurdne/modules/phpgwapi/trunk/js/yahoo/yui/build/container/assets/container.css
people/sigurdne/modules/phpgwapi/trunk/js/yahoo/yui/build/container/assets/hlp16_1.gif
people/sigurdne/modules/phpgwapi/trunk/js/yahoo/yui/build/container/assets/info16_1.gif
people/sigurdne/modules/phpgwapi/trunk/js/yahoo/yui/build/container/assets/tip16_1.gif
people/sigurdne/modules/phpgwapi/trunk/js/yahoo/yui/build/container/assets/warn16_1.gif
people/sigurdne/modules/phpgwapi/trunk/js/yahoo/yui/build/container/container-debug.js
people/sigurdne/modules/phpgwapi/trunk/js/yahoo/yui/build/container/container-min.js
people/sigurdne/modules/phpgwapi/trunk/js/yahoo/yui/build/container/container.js
people/sigurdne/modules/phpgwapi/trunk/js/yahoo/yui/build/container/container_core-debug.js
people/sigurdne/modules/phpgwapi/trunk/js/yahoo/yui/build/container/container_core-min.js
people/sigurdne/modules/phpgwapi/trunk/js/yahoo/yui/build/container/container_core.js
people/sigurdne/modules/phpgwapi/trunk/js/yahoo/yui/build/dom/README
people/sigurdne/modules/phpgwapi/trunk/js/yahoo/yui/build/dom/dom-debug.js
people/sigurdne/modules/phpgwapi/trunk/js/yahoo/yui/build/dom/dom-min.js
people/sigurdne/modules/phpgwapi/trunk/js/yahoo/yui/build/dom/dom.js
people/sigurdne/modules/phpgwapi/trunk/js/yahoo/yui/build/dragdrop/README
people/sigurdne/modules/phpgwapi/trunk/js/yahoo/yui/build/dragdrop/dragdrop-debug.js
people/sigurdne/modules/phpgwapi/trunk/js/yahoo/yui/build/dragdrop/dragdrop-min.js
people/sigurdne/modules/phpgwapi/trunk/js/yahoo/yui/build/dragdrop/dragdrop.js
people/sigurdne/modules/phpgwapi/trunk/js/yahoo/yui/build/event/README
people/sigurdne/modules/phpgwapi/trunk/js/yahoo/yui/build/event/event-debug.js
people/sigurdne/modules/phpgwapi/trunk/js/yahoo/yui/build/event/event-min.js
people/sigurdne/modules/phpgwapi/trunk/js/yahoo/yui/build/event/event.js
people/sigurdne/modules/phpgwapi/trunk/js/yahoo/yui/build/fonts/README
people/sigurdne/modules/phpgwapi/trunk/js/yahoo/yui/build/fonts/fonts-min.css
people/sigurdne/modules/phpgwapi/trunk/js/yahoo/yui/build/fonts/fonts.css
people/sigurdne/modules/phpgwapi/trunk/js/yahoo/yui/build/grids/README
people/sigurdne/modules/phpgwapi/trunk/js/yahoo/yui/build/grids/grids-min.css
people/sigurdne/modules/phpgwapi/trunk/js/yahoo/yui/build/grids/grids.css
people/sigurdne/modules/phpgwapi/trunk/js/yahoo/yui/build/logger/README
people/sigurdne/modules/phpgwapi/trunk/js/yahoo/yui/build/logger/assets/logger.css
people/sigurdne/modules/phpgwapi/trunk/js/yahoo/yui/build/logger/logger-debug.js
people/sigurdne/modules/phpgwapi/trunk/js/yahoo/yui/build/logger/logger-min.js
people/sigurdne/modules/phpgwapi/trunk/js/yahoo/yui/build/logger/logger.js
people/sigurdne/modules/phpgwapi/trunk/js/yahoo/yui/build/menu/README
people/sigurdne/modules/phpgwapi/trunk/js/yahoo/yui/build/menu/assets/menu.css
people/sigurdne/modules/phpgwapi/trunk/js/yahoo/yui/build/menu/assets/menuarodwn8_dim_1.gif
people/sigurdne/modules/phpgwapi/trunk/js/yahoo/yui/build/menu/assets/menuarodwn8_hov_1.gif
people/sigurdne/modules/phpgwapi/trunk/js/yahoo/yui/build/menu/assets/menuarodwn8_nrm_1.gif
people/sigurdne/modules/phpgwapi/trunk/js/yahoo/yui/build/menu/assets/menuarorght8_dim_1.gif
people/sigurdne/modules/phpgwapi/trunk/js/yahoo/yui/build/menu/assets/menuarorght8_hov_1.gif
people/sigurdne/modules/phpgwapi/trunk/js/yahoo/yui/build/menu/assets/menuarorght8_nrm_1.gif
people/sigurdne/modules/phpgwapi/trunk/js/yahoo/yui/build/menu/assets/menuchk8_dim_1.gif
people/sigurdne/modules/phpgwapi/trunk/js/yahoo/yui/build/menu/assets/menuchk8_hov_1.gif
people/sigurdne/modules/phpgwapi/trunk/js/yahoo/yui/build/menu/assets/menuchk8_nrm_1.gif
people/sigurdne/modules/phpgwapi/trunk/js/yahoo/yui/build/menu/menu-debug.js
people/sigurdne/modules/phpgwapi/trunk/js/yahoo/yui/build/menu/menu-min.js
people/sigurdne/modules/phpgwapi/trunk/js/yahoo/yui/build/menu/menu.js
people/sigurdne/modules/phpgwapi/trunk/js/yahoo/yui/build/reset/README
people/sigurdne/modules/phpgwapi/trunk/js/yahoo/yui/build/reset/reset-min.css
people/sigurdne/modules/phpgwapi/trunk/js/yahoo/yui/build/reset/reset.css
people/sigurdne/modules/phpgwapi/trunk/js/yahoo/yui/build/slider/README
people/sigurdne/modules/phpgwapi/trunk/js/yahoo/yui/build/slider/slider-debug.js
people/sigurdne/modules/phpgwapi/trunk/js/yahoo/yui/build/slider/slider-min.js
people/sigurdne/modules/phpgwapi/trunk/js/yahoo/yui/build/slider/slider.js
people/sigurdne/modules/phpgwapi/trunk/js/yahoo/yui/build/treeview/README
people/sigurdne/modules/phpgwapi/trunk/js/yahoo/yui/build/treeview/assets/lm.gif
people/sigurdne/modules/phpgwapi/trunk/js/yahoo/yui/build/treeview/assets/lmh.gif
people/sigurdne/modules/phpgwapi/trunk/js/yahoo/yui/build/treeview/assets/ln.gif
people/sigurdne/modules/phpgwapi/trunk/js/yahoo/yui/build/treeview/assets/loading.gif
people/sigurdne/modules/phpgwapi/trunk/js/yahoo/yui/build/treeview/assets/lp.gif
people/sigurdne/modules/phpgwapi/trunk/js/yahoo/yui/build/treeview/assets/lph.gif
people/sigurdne/modules/phpgwapi/trunk/js/yahoo/yui/build/treeview/assets/tm.gif
people/sigurdne/modules/phpgwapi/trunk/js/yahoo/yui/build/treeview/assets/tmh.gif
people/sigurdne/modules/phpgwapi/trunk/js/yahoo/yui/build/treeview/assets/tn.gif
people/sigurdne/modules/phpgwapi/trunk/js/yahoo/yui/build/treeview/assets/tp.gif
people/sigurdne/modules/phpgwapi/trunk/js/yahoo/yui/build/treeview/assets/tph.gif
people/sigurdne/modules/phpgwapi/trunk/js/yahoo/yui/build/treeview/assets/tree.css
people/sigurdne/modules/phpgwapi/trunk/js/yahoo/yui/build/treeview/assets/vline.gif
people/sigurdne/modules/phpgwapi/trunk/js/yahoo/yui/build/treeview/treeview-debug.js
people/sigurdne/modules/phpgwapi/trunk/js/yahoo/yui/build/treeview/treeview-min.js
people/sigurdne/modules/phpgwapi/trunk/js/yahoo/yui/build/treeview/treeview.js
people/sigurdne/modules/phpgwapi/trunk/js/yahoo/yui/build/yahoo/README
people/sigurdne/modules/phpgwapi/trunk/js/yahoo/yui/build/yahoo/yahoo-debug.js
people/sigurdne/modules/phpgwapi/trunk/js/yahoo/yui/build/yahoo/yahoo-min.js
people/sigurdne/modules/phpgwapi/trunk/js/yahoo/yui/build/yahoo/yahoo.js
people/sigurdne/modules/phpgwapi/trunk/js/yahoo/yui/docs/animation/YAHOO.util.Anim.html
people/sigurdne/modules/phpgwapi/trunk/js/yahoo/yui/docs/animation/YAHOO.util.Anim.init.html
people/sigurdne/modules/phpgwapi/trunk/js/yahoo/yui/docs/animation/YAHOO.util.AnimMgr.html
people/sigurdne/modules/phpgwapi/trunk/js/yahoo/yui/docs/animation/YAHOO.util.Bezier.html
people/sigurdne/modules/phpgwapi/trunk/js/yahoo/yui/docs/animation/YAHOO.util.ColorAnim.html
people/sigurdne/modules/phpgwapi/trunk/js/yahoo/yui/docs/animation/YAHOO.util.Dom.html
people/sigurdne/modules/phpgwapi/trunk/js/yahoo/yui/docs/animation/YAHOO.util.Easing.html
people/sigurdne/modules/phpgwapi/trunk/js/yahoo/yui/docs/animation/YAHOO.util.Motion.html
people/sigurdne/modules/phpgwapi/trunk/js/yahoo/yui/docs/animation/YAHOO.util.Point.html
people/sigurdne/modules/phpgwapi/trunk/js/yahoo/yui/docs/animation/YAHOO.util.Region.html
people/sigurdne/modules/phpgwapi/trunk/js/yahoo/yui/docs/animation/YAHOO.util.Scroll.html
people/sigurdne/modules/phpgwapi/trunk/js/yahoo/yui/docs/animation/YAHOO.util.html
people/sigurdne/modules/phpgwapi/trunk/js/yahoo/yui/docs/animation/allclasses-frame.html
people/sigurdne/modules/phpgwapi/trunk/js/yahoo/yui/docs/animation/allclasses-noframe.html
people/sigurdne/modules/phpgwapi/trunk/js/yahoo/yui/docs/animation/index-all.html
people/sigurdne/modules/phpgwapi/trunk/js/yahoo/yui/docs/animation/index.html
people/sigurdne/modules/phpgwapi/trunk/js/yahoo/yui/docs/animation/logo.gif
people/sigurdne/modules/phpgwapi/trunk/js/yahoo/yui/docs/animation/overview-Anim.js.html
people/sigurdne/modules/phpgwapi/trunk/js/yahoo/yui/docs/animation/overview-AnimMgr.js.html
people/sigurdne/modules/phpgwapi/trunk/js/yahoo/yui/docs/animation/overview-Bezier.js.html
people/sigurdne/modules/phpgwapi/trunk/js/yahoo/yui/docs/animation/overview-ColorAnim.js.html
people/sigurdne/modules/phpgwapi/trunk/js/yahoo/yui/docs/animation/overview-Dom.js.html
people/sigurdne/modules/phpgwapi/trunk/js/yahoo/yui/docs/animation/overview-Easing.js.html
people/sigurdne/modules/phpgwapi/trunk/js/yahoo/yui/docs/animation/overview-Motion.js.html
people/sigurdne/modules/phpgwapi/trunk/js/yahoo/yui/docs/animation/overview-Region.js.html
people/sigurdne/modules/phpgwapi/trunk/js/yahoo/yui/docs/animation/overview-Scroll.js.html
people/sigurdne/modules/phpgwapi/trunk/js/yahoo/yui/docs/animation/overview-frame.html
people/sigurdne/modules/phpgwapi/trunk/js/yahoo/yui/docs/animation/overview-summary-Anim.js.html
people/sigurdne/modules/phpgwapi/trunk/js/yahoo/yui/docs/animation/overview-summary-AnimMgr.js.html
people/sigurdne/modules/phpgwapi/trunk/js/yahoo/yui/docs/animation/overview-summary-Bezier.js.html
people/sigurdne/modules/phpgwapi/trunk/js/yahoo/yui/docs/animation/overview-summary-ColorAnim.js.html
people/sigurdne/modules/phpgwapi/trunk/js/yahoo/yui/docs/animation/overview-summary-Dom.js.html
people/sigurdne/modules/phpgwapi/trunk/js/yahoo/yui/docs/animation/overview-summary-Easing.js.html
people/sigurdne/modules/phpgwapi/trunk/js/yahoo/yui/docs/animation/overview-summary-Motion.js.html
people/sigurdne/modules/phpgwapi/trunk/js/yahoo/yui/docs/animation/overview-summary-Region.js.html
people/sigurdne/modules/phpgwapi/trunk/js/yahoo/yui/docs/animation/overview-summary-Scroll.js.html
people/sigurdne/modules/phpgwapi/trunk/js/yahoo/yui/docs/animation/overview-summary.html
people/sigurdne/modules/phpgwapi/trunk/js/yahoo/yui/docs/animation/overview-tree.html
people/sigurdne/modules/phpgwapi/trunk/js/yahoo/yui/docs/animation/stylesheet.css
people/sigurdne/modules/phpgwapi/trunk/js/yahoo/yui/docs/assets/dialog_example.gif
people/sigurdne/modules/phpgwapi/trunk/js/yahoo/yui/docs/assets/dpSyntaxHighlighter.css
people/sigurdne/modules/phpgwapi/trunk/js/yahoo/yui/docs/assets/dpSyntaxHighlighter.js
people/sigurdne/modules/phpgwapi/trunk/js/yahoo/yui/docs/assets/examples.css
people/sigurdne/modules/phpgwapi/trunk/js/yahoo/yui/docs/assets/logo.gif
people/sigurdne/modules/phpgwapi/trunk/js/yahoo/yui/docs/assets/menu_example.gif
people/sigurdne/modules/phpgwapi/trunk/js/yahoo/yui/docs/assets/panel_example.gif
people/sigurdne/modules/phpgwapi/trunk/js/yahoo/yui/docs/assets/simpledialog_example.gif
people/sigurdne/modules/phpgwapi/trunk/js/yahoo/yui/docs/assets/tooltip_example.gif
people/sigurdne/modules/phpgwapi/trunk/js/yahoo/yui/docs/assets/yui-0.11-cheatsheets.zip
people/sigurdne/modules/phpgwapi/trunk/js/yahoo/yui/docs/assets/yui-cheat-sheets-0.10.gif
people/sigurdne/modules/phpgwapi/trunk/js/yahoo/yui/docs/assets/yui-utilities-0.10-cheatsheets.zip
people/sigurdne/modules/phpgwapi/trunk/js/yahoo/yui/docs/autocomplete/YAHOO.widget.AutoComplete.html
people/sigurdne/modules/phpgwapi/trunk/js/yahoo/yui/docs/autocomplete/YAHOO.widget.DS_JSArray.html
people/sigurdne/modules/phpgwapi/trunk/js/yahoo/yui/docs/autocomplete/YAHOO.widget.DS_JSFunction.html
people/sigurdne/modules/phpgwapi/trunk/js/yahoo/yui/docs/autocomplete/YAHOO.widget.DS_XHR.html
people/sigurdne/modules/phpgwapi/trunk/js/yahoo/yui/docs/autocomplete/YAHOO.widget.DataSource.html
people/sigurdne/modules/phpgwapi/trunk/js/yahoo/yui/docs/autocomplete/YAHOO.widget.html
people/sigurdne/modules/phpgwapi/trunk/js/yahoo/yui/docs/autocomplete/allclasses-frame.html
people/sigurdne/modules/phpgwapi/trunk/js/yahoo/yui/docs/autocomplete/allclasses-noframe.html
people/sigurdne/modules/phpgwapi/trunk/js/yahoo/yui/docs/autocomplete/index-all.html
people/sigurdne/modules/phpgwapi/trunk/js/yahoo/yui/docs/autocomplete/index.html
people/sigurdne/modules/phpgwapi/trunk/js/yahoo/yui/docs/autocomplete/logo.gif
people/sigurdne/modules/phpgwapi/trunk/js/yahoo/yui/docs/autocomplete/overview-AutoComplete.js.html
people/sigurdne/modules/phpgwapi/trunk/js/yahoo/yui/docs/autocomplete/overview-DataSource.js.html
people/sigurdne/modules/phpgwapi/trunk/js/yahoo/yui/docs/autocomplete/overview-summary-AutoComplete.js.html
people/sigurdne/modules/phpgwapi/trunk/js/yahoo/yui/docs/autocomplete/overview-summary-DataSource.js.html
people/sigurdne/modules/phpgwapi/trunk/js/yahoo/yui/docs/autocomplete/overview-summary.html
people/sigurdne/modules/phpgwapi/trunk/js/yahoo/yui/docs/autocomplete/overview-tree.html
people/sigurdne/modules/phpgwapi/trunk/js/yahoo/yui/docs/autocomplete/stylesheet.css
people/sigurdne/modules/phpgwapi/trunk/js/yahoo/yui/docs/calendar/YAHOO.widget.Calendar.html
people/sigurdne/modules/phpgwapi/trunk/js/yahoo/yui/docs/calendar/YAHOO.widget.Calendar2up.html
people/sigurdne/modules/phpgwapi/trunk/js/yahoo/yui/docs/calendar/YAHOO.widget.Calendar2up_Cal.html
people/sigurdne/modules/phpgwapi/trunk/js/yahoo/yui/docs/calendar/YAHOO.widget.CalendarGroup.html
people/sigurdne/modules/phpgwapi/trunk/js/yahoo/yui/docs/calendar/YAHOO.widget.Calendar_Core.html
people/sigurdne/modules/phpgwapi/trunk/js/yahoo/yui/docs/calendar/YAHOO.widget.DateMath.html
people/sigurdne/modules/phpgwapi/trunk/js/yahoo/yui/docs/calendar/YAHOO.widget.html
people/sigurdne/modules/phpgwapi/trunk/js/yahoo/yui/docs/calendar/allclasses-frame.html
people/sigurdne/modules/phpgwapi/trunk/js/yahoo/yui/docs/calendar/allclasses-noframe.html
people/sigurdne/modules/phpgwapi/trunk/js/yahoo/yui/docs/calendar/index-all.html
people/sigurdne/modules/phpgwapi/trunk/js/yahoo/yui/docs/calendar/index.html
people/sigurdne/modules/phpgwapi/trunk/js/yahoo/yui/docs/calendar/logo.gif
people/sigurdne/modules/phpgwapi/trunk/js/yahoo/yui/docs/calendar/overview-Calendar.js.html
people/sigurdne/modules/phpgwapi/trunk/js/yahoo/yui/docs/calendar/overview-Calendar2up.js.html
people/sigurdne/modules/phpgwapi/trunk/js/yahoo/yui/docs/calendar/overview-CalendarGroup.js.html
people/sigurdne/modules/phpgwapi/trunk/js/yahoo/yui/docs/calendar/overview-Calendar_Core.js.html
people/sigurdne/modules/phpgwapi/trunk/js/yahoo/yui/docs/calendar/overview-DateMath.js.html
people/sigurdne/modules/phpgwapi/trunk/js/yahoo/yui/docs/calendar/overview-frame.html
people/sigurdne/modules/phpgwapi/trunk/js/yahoo/yui/docs/calendar/overview-summary-Calendar.js.html
people/sigurdne/modules/phpgwapi/trunk/js/yahoo/yui/docs/calendar/overview-summary-Calendar2up.js.html
people/sigurdne/modules/phpgwapi/trunk/js/yahoo/yui/docs/calendar/overview-summary-CalendarGroup.js.html
people/sigurdne/modules/phpgwapi/trunk/js/yahoo/yui/docs/calendar/overview-summary-Calendar_Core.js.html
people/sigurdne/modules/phpgwapi/trunk/js/yahoo/yui/docs/calendar/overview-summary-DateMath.js.html
people/sigurdne/modules/phpgwapi/trunk/js/yahoo/yui/docs/calendar/overview-summary.html
people/sigurdne/modules/phpgwapi/trunk/js/yahoo/yui/docs/calendar/overview-tree.html
people/sigurdne/modules/phpgwapi/trunk/js/yahoo/yui/docs/calendar/stylesheet.css
people/sigurdne/modules/phpgwapi/trunk/js/yahoo/yui/docs/connection/YAHOO.util.Connect.html
people/sigurdne/modules/phpgwapi/trunk/js/yahoo/yui/docs/connection/index-all.html
people/sigurdne/modules/phpgwapi/trunk/js/yahoo/yui/docs/connection/index.html
people/sigurdne/modules/phpgwapi/trunk/js/yahoo/yui/docs/connection/logo.gif
people/sigurdne/modules/phpgwapi/trunk/js/yahoo/yui/docs/connection/overview-summary-connection.js.html
people/sigurdne/modules/phpgwapi/trunk/js/yahoo/yui/docs/connection/overview-tree.html
people/sigurdne/modules/phpgwapi/trunk/js/yahoo/yui/docs/connection/stylesheet.css
people/sigurdne/modules/phpgwapi/trunk/js/yahoo/yui/docs/container/YAHOO.util.Config.html
people/sigurdne/modules/phpgwapi/trunk/js/yahoo/yui/docs/container/YAHOO.util.KeyListener.html
people/sigurdne/modules/phpgwapi/trunk/js/yahoo/yui/docs/container/YAHOO.util.html
people/sigurdne/modules/phpgwapi/trunk/js/yahoo/yui/docs/container/YAHOO.widget.ContainerEffect.html
people/sigurdne/modules/phpgwapi/trunk/js/yahoo/yui/docs/container/YAHOO.widget.Dialog.html
people/sigurdne/modules/phpgwapi/trunk/js/yahoo/yui/docs/container/YAHOO.widget.Module.html
people/sigurdne/modules/phpgwapi/trunk/js/yahoo/yui/docs/container/YAHOO.widget.Overlay.html
people/sigurdne/modules/phpgwapi/trunk/js/yahoo/yui/docs/container/YAHOO.widget.OverlayManager.html
people/sigurdne/modules/phpgwapi/trunk/js/yahoo/yui/docs/container/YAHOO.widget.Panel.html
people/sigurdne/modules/phpgwapi/trunk/js/yahoo/yui/docs/container/YAHOO.widget.SimpleDialog.html
people/sigurdne/modules/phpgwapi/trunk/js/yahoo/yui/docs/container/YAHOO.widget.Tooltip.html
people/sigurdne/modules/phpgwapi/trunk/js/yahoo/yui/docs/container/YAHOO.widget.html
people/sigurdne/modules/phpgwapi/trunk/js/yahoo/yui/docs/container/allclasses-frame.html
people/sigurdne/modules/phpgwapi/trunk/js/yahoo/yui/docs/container/allclasses-noframe.html
people/sigurdne/modules/phpgwapi/trunk/js/yahoo/yui/docs/container/index-all.html
people/sigurdne/modules/phpgwapi/trunk/js/yahoo/yui/docs/container/index.html
people/sigurdne/modules/phpgwapi/trunk/js/yahoo/yui/docs/container/logo.gif
people/sigurdne/modules/phpgwapi/trunk/js/yahoo/yui/docs/container/overview-Config.js.html
people/sigurdne/modules/phpgwapi/trunk/js/yahoo/yui/docs/container/overview-ContainerEffect.js.html
people/sigurdne/modules/phpgwapi/trunk/js/yahoo/yui/docs/container/overview-Dialog.js.html
people/sigurdne/modules/phpgwapi/trunk/js/yahoo/yui/docs/container/overview-KeyListener.js.html
people/sigurdne/modules/phpgwapi/trunk/js/yahoo/yui/docs/container/overview-Module.js.html
people/sigurdne/modules/phpgwapi/trunk/js/yahoo/yui/docs/container/overview-Overlay.js.html
people/sigurdne/modules/phpgwapi/trunk/js/yahoo/yui/docs/container/overview-OverlayManager.js.html
people/sigurdne/modules/phpgwapi/trunk/js/yahoo/yui/docs/container/overview-Panel.js.html
people/sigurdne/modules/phpgwapi/trunk/js/yahoo/yui/docs/container/overview-SimpleDialog.js.html
people/sigurdne/modules/phpgwapi/trunk/js/yahoo/yui/docs/container/overview-Tooltip.js.html
people/sigurdne/modules/phpgwapi/trunk/js/yahoo/yui/docs/container/overview-frame.html
people/sigurdne/modules/phpgwapi/trunk/js/yahoo/yui/docs/container/overview-summary-Config.js.html
people/sigurdne/modules/phpgwapi/trunk/js/yahoo/yui/docs/container/overview-summary-ContainerEffect.js.html
people/sigurdne/modules/phpgwapi/trunk/js/yahoo/yui/docs/container/overview-summary-Dialog.js.html
people/sigurdne/modules/phpgwapi/trunk/js/yahoo/yui/docs/container/overview-summary-KeyListener.js.html
people/sigurdne/modules/phpgwapi/trunk/js/yahoo/yui/docs/container/overview-summary-Module.js.html
people/sigurdne/modules/phpgwapi/trunk/js/yahoo/yui/docs/container/overview-summary-Overlay.js.html
people/sigurdne/modules/phpgwapi/trunk/js/yahoo/yui/docs/container/overview-summary-OverlayEffect.js.html
people/sigurdne/modules/phpgwapi/trunk/js/yahoo/yui/docs/container/overview-summary-OverlayManager.js.html
people/sigurdne/modules/phpgwapi/trunk/js/yahoo/yui/docs/container/overview-summary-Panel.js.html
people/sigurdne/modules/phpgwapi/trunk/js/yahoo/yui/docs/container/overview-summary-SimpleDialog.js.html
people/sigurdne/modules/phpgwapi/trunk/js/yahoo/yui/docs/container/overview-summary-Tooltip.js.html
people/sigurdne/modules/phpgwapi/trunk/js/yahoo/yui/docs/container/overview-summary.html
people/sigurdne/modules/phpgwapi/trunk/js/yahoo/yui/docs/container/overview-tree.html
people/sigurdne/modules/phpgwapi/trunk/js/yahoo/yui/docs/container/stylesheet.css
people/sigurdne/modules/phpgwapi/trunk/js/yahoo/yui/docs/dom/YAHOO.util.Dom.html
people/sigurdne/modules/phpgwapi/trunk/js/yahoo/yui/docs/dom/YAHOO.util.Point.html
people/sigurdne/modules/phpgwapi/trunk/js/yahoo/yui/docs/dom/YAHOO.util.Region.html
people/sigurdne/modules/phpgwapi/trunk/js/yahoo/yui/docs/dom/YAHOO.util.html
people/sigurdne/modules/phpgwapi/trunk/js/yahoo/yui/docs/dom/allclasses-frame.html
people/sigurdne/modules/phpgwapi/trunk/js/yahoo/yui/docs/dom/allclasses-noframe.html
people/sigurdne/modules/phpgwapi/trunk/js/yahoo/yui/docs/dom/index-all.html
people/sigurdne/modules/phpgwapi/trunk/js/yahoo/yui/docs/dom/index.html
people/sigurdne/modules/phpgwapi/trunk/js/yahoo/yui/docs/dom/logo.gif
people/sigurdne/modules/phpgwapi/trunk/js/yahoo/yui/docs/dom/overview-Dom.js.html
people/sigurdne/modules/phpgwapi/trunk/js/yahoo/yui/docs/dom/overview-Region.js.html
people/sigurdne/modules/phpgwapi/trunk/js/yahoo/yui/docs/dom/overview-frame.html
people/sigurdne/modules/phpgwapi/trunk/js/yahoo/yui/docs/dom/overview-summary-Dom.js.html
people/sigurdne/modules/phpgwapi/trunk/js/yahoo/yui/docs/dom/overview-summary-Region.js.html
people/sigurdne/modules/phpgwapi/trunk/js/yahoo/yui/docs/dom/overview-summary.html
people/sigurdne/modules/phpgwapi/trunk/js/yahoo/yui/docs/dom/overview-tree.html
people/sigurdne/modules/phpgwapi/trunk/js/yahoo/yui/docs/dom/stylesheet.css
people/sigurdne/modules/phpgwapi/trunk/js/yahoo/yui/docs/dragdrop/YAHOO.util.DD.html
people/sigurdne/modules/phpgwapi/trunk/js/yahoo/yui/docs/dragdrop/YAHOO.util.DDProxy.html
people/sigurdne/modules/phpgwapi/trunk/js/yahoo/yui/docs/dragdrop/YAHOO.util.DDTarget.html
people/sigurdne/modules/phpgwapi/trunk/js/yahoo/yui/docs/dragdrop/YAHOO.util.DragDrop.html
people/sigurdne/modules/phpgwapi/trunk/js/yahoo/yui/docs/dragdrop/YAHOO.util.DragDropMgr.html
people/sigurdne/modules/phpgwapi/trunk/js/yahoo/yui/docs/dragdrop/YAHOO.util.html
people/sigurdne/modules/phpgwapi/trunk/js/yahoo/yui/docs/dragdrop/allclasses-frame.html
people/sigurdne/modules/phpgwapi/trunk/js/yahoo/yui/docs/dragdrop/allclasses-noframe.html
people/sigurdne/modules/phpgwapi/trunk/js/yahoo/yui/docs/dragdrop/index-all.html
people/sigurdne/modules/phpgwapi/trunk/js/yahoo/yui/docs/dragdrop/index.html
people/sigurdne/modules/phpgwapi/trunk/js/yahoo/yui/docs/dragdrop/logo.gif
people/sigurdne/modules/phpgwapi/trunk/js/yahoo/yui/docs/dragdrop/overview-DD.js.html
people/sigurdne/modules/phpgwapi/trunk/js/yahoo/yui/docs/dragdrop/overview-DDProxy.js.html
people/sigurdne/modules/phpgwapi/trunk/js/yahoo/yui/docs/dragdrop/overview-DDTarget.js.html
people/sigurdne/modules/phpgwapi/trunk/js/yahoo/yui/docs/dragdrop/overview-DragDrop.js.html
people/sigurdne/modules/phpgwapi/trunk/js/yahoo/yui/docs/dragdrop/overview-DragDropMgr.js.html
people/sigurdne/modules/phpgwapi/trunk/js/yahoo/yui/docs/dragdrop/overview-summary-DD.js.html
people/sigurdne/modules/phpgwapi/trunk/js/yahoo/yui/docs/dragdrop/overview-summary-DDProxy.js.html
people/sigurdne/modules/phpgwapi/trunk/js/yahoo/yui/docs/dragdrop/overview-summary-DDTarget.js.html
people/sigurdne/modules/phpgwapi/trunk/js/yahoo/yui/docs/dragdrop/overview-summary-DragDrop.js.html
people/sigurdne/modules/phpgwapi/trunk/js/yahoo/yui/docs/dragdrop/overview-summary-DragDropMgr.js.html
people/sigurdne/modules/phpgwapi/trunk/js/yahoo/yui/docs/dragdrop/overview-summary.html
people/sigurdne/modules/phpgwapi/trunk/js/yahoo/yui/docs/dragdrop/overview-tree.html
people/sigurdne/modules/phpgwapi/trunk/js/yahoo/yui/docs/dragdrop/stylesheet.css
people/sigurdne/modules/phpgwapi/trunk/js/yahoo/yui/docs/event/YAHOO.util.CustomEvent.html
people/sigurdne/modules/phpgwapi/trunk/js/yahoo/yui/docs/event/YAHOO.util.Event.html
people/sigurdne/modules/phpgwapi/trunk/js/yahoo/yui/docs/event/YAHOO.util.Subscriber.html
people/sigurdne/modules/phpgwapi/trunk/js/yahoo/yui/docs/event/YAHOO.util.html
people/sigurdne/modules/phpgwapi/trunk/js/yahoo/yui/docs/event/allclasses-frame.html
people/sigurdne/modules/phpgwapi/trunk/js/yahoo/yui/docs/event/allclasses-noframe.html
people/sigurdne/modules/phpgwapi/trunk/js/yahoo/yui/docs/event/index-all.html
people/sigurdne/modules/phpgwapi/trunk/js/yahoo/yui/docs/event/index.html
people/sigurdne/modules/phpgwapi/trunk/js/yahoo/yui/docs/event/logo.gif
people/sigurdne/modules/phpgwapi/trunk/js/yahoo/yui/docs/event/overview-CustomEvent.js.html
people/sigurdne/modules/phpgwapi/trunk/js/yahoo/yui/docs/event/overview-Event.js.html
people/sigurdne/modules/phpgwapi/trunk/js/yahoo/yui/docs/event/overview-summary-CustomEvent.js.html
people/sigurdne/modules/phpgwapi/trunk/js/yahoo/yui/docs/event/overview-summary-Event.js.html
people/sigurdne/modules/phpgwapi/trunk/js/yahoo/yui/docs/event/overview-summary.html
people/sigurdne/modules/phpgwapi/trunk/js/yahoo/yui/docs/event/overview-tree.html
people/sigurdne/modules/phpgwapi/trunk/js/yahoo/yui/docs/event/stylesheet.css
people/sigurdne/modules/phpgwapi/trunk/js/yahoo/yui/docs/logger/YAHOO.widget.LogReader.html
people/sigurdne/modules/phpgwapi/trunk/js/yahoo/yui/docs/logger/YAHOO.widget.LogWriter.html
people/sigurdne/modules/phpgwapi/trunk/js/yahoo/yui/docs/logger/YAHOO.widget.html
people/sigurdne/modules/phpgwapi/trunk/js/yahoo/yui/docs/logger/allclasses-frame.html
people/sigurdne/modules/phpgwapi/trunk/js/yahoo/yui/docs/logger/allclasses-noframe.html
people/sigurdne/modules/phpgwapi/trunk/js/yahoo/yui/docs/logger/index-all.html
people/sigurdne/modules/phpgwapi/trunk/js/yahoo/yui/docs/logger/index.html
people/sigurdne/modules/phpgwapi/trunk/js/yahoo/yui/docs/logger/logo.gif
people/sigurdne/modules/phpgwapi/trunk/js/yahoo/yui/docs/logger/overview-LogReader.js.html
people/sigurdne/modules/phpgwapi/trunk/js/yahoo/yui/docs/logger/overview-LogWriter.js.html
people/sigurdne/modules/phpgwapi/trunk/js/yahoo/yui/docs/logger/overview-Logger.js.html
people/sigurdne/modules/phpgwapi/trunk/js/yahoo/yui/docs/logger/overview-summary-LogReader.js.html
people/sigurdne/modules/phpgwapi/trunk/js/yahoo/yui/docs/logger/overview-summary-LogWriter.js.html
people/sigurdne/modules/phpgwapi/trunk/js/yahoo/yui/docs/logger/overview-summary-Logger.js.html
people/sigurdne/modules/phpgwapi/trunk/js/yahoo/yui/docs/logger/overview-summary.html
people/sigurdne/modules/phpgwapi/trunk/js/yahoo/yui/docs/logger/overview-tree.html
people/sigurdne/modules/phpgwapi/trunk/js/yahoo/yui/docs/logger/stylesheet.css
people/sigurdne/modules/phpgwapi/trunk/js/yahoo/yui/docs/menu/YAHOO.widget.ContextMenu.html
people/sigurdne/modules/phpgwapi/trunk/js/yahoo/yui/docs/menu/YAHOO.widget.ContextMenuItem.html
people/sigurdne/modules/phpgwapi/trunk/js/yahoo/yui/docs/menu/YAHOO.widget.Menu.html
people/sigurdne/modules/phpgwapi/trunk/js/yahoo/yui/docs/menu/YAHOO.widget.MenuBar.html
people/sigurdne/modules/phpgwapi/trunk/js/yahoo/yui/docs/menu/YAHOO.widget.MenuBarItem.html
people/sigurdne/modules/phpgwapi/trunk/js/yahoo/yui/docs/menu/YAHOO.widget.MenuItem.html
people/sigurdne/modules/phpgwapi/trunk/js/yahoo/yui/docs/menu/YAHOO.widget.MenuModule.html
people/sigurdne/modules/phpgwapi/trunk/js/yahoo/yui/docs/menu/YAHOO.widget.MenuModuleItem.html
people/sigurdne/modules/phpgwapi/trunk/js/yahoo/yui/docs/menu/YAHOO.widget.html
people/sigurdne/modules/phpgwapi/trunk/js/yahoo/yui/docs/menu/allclasses-frame.html
people/sigurdne/modules/phpgwapi/trunk/js/yahoo/yui/docs/menu/allclasses-noframe.html
people/sigurdne/modules/phpgwapi/trunk/js/yahoo/yui/docs/menu/index-all.html
people/sigurdne/modules/phpgwapi/trunk/js/yahoo/yui/docs/menu/index.html
people/sigurdne/modules/phpgwapi/trunk/js/yahoo/yui/docs/menu/logo.gif
people/sigurdne/modules/phpgwapi/trunk/js/yahoo/yui/docs/menu/overview-contextmenu.js.html
people/sigurdne/modules/phpgwapi/trunk/js/yahoo/yui/docs/menu/overview-contextmenuitem.js.html
people/sigurdne/modules/phpgwapi/trunk/js/yahoo/yui/docs/menu/overview-menu.js.html
people/sigurdne/modules/phpgwapi/trunk/js/yahoo/yui/docs/menu/overview-menubar.js.html
people/sigurdne/modules/phpgwapi/trunk/js/yahoo/yui/docs/menu/overview-menubaritem.js.html
people/sigurdne/modules/phpgwapi/trunk/js/yahoo/yui/docs/menu/overview-menuitem.js.html
people/sigurdne/modules/phpgwapi/trunk/js/yahoo/yui/docs/menu/overview-menumodule.js.html
people/sigurdne/modules/phpgwapi/trunk/js/yahoo/yui/docs/menu/overview-menumoduleitem.js.html
people/sigurdne/modules/phpgwapi/trunk/js/yahoo/yui/docs/menu/overview-summary-contextmenu.js.html
people/sigurdne/modules/phpgwapi/trunk/js/yahoo/yui/docs/menu/overview-summary-contextmenuitem.js.html
people/sigurdne/modules/phpgwapi/trunk/js/yahoo/yui/docs/menu/overview-summary-menu.js.html
people/sigurdne/modules/phpgwapi/trunk/js/yahoo/yui/docs/menu/overview-summary-menubar.js.html
people/sigurdne/modules/phpgwapi/trunk/js/yahoo/yui/docs/menu/overview-summary-menubaritem.js.html
people/sigurdne/modules/phpgwapi/trunk/js/yahoo/yui/docs/menu/overview-summary-menuitem.js.html
people/sigurdne/modules/phpgwapi/trunk/js/yahoo/yui/docs/menu/overview-summary-menumodule.js.html
people/sigurdne/modules/phpgwapi/trunk/js/yahoo/yui/docs/menu/overview-summary-menumoduleitem.js.html
people/sigurdne/modules/phpgwapi/trunk/js/yahoo/yui/docs/menu/overview-summary.html
people/sigurdne/modules/phpgwapi/trunk/js/yahoo/yui/docs/menu/overview-tree.html
people/sigurdne/modules/phpgwapi/trunk/js/yahoo/yui/docs/menu/stylesheet.css
people/sigurdne/modules/phpgwapi/trunk/js/yahoo/yui/docs/slider/YAHOO.widget.Slider.html
people/sigurdne/modules/phpgwapi/trunk/js/yahoo/yui/docs/slider/YAHOO.widget.SliderThumb.html
people/sigurdne/modules/phpgwapi/trunk/js/yahoo/yui/docs/slider/YAHOO.widget.html
people/sigurdne/modules/phpgwapi/trunk/js/yahoo/yui/docs/slider/allclasses-frame.html
people/sigurdne/modules/phpgwapi/trunk/js/yahoo/yui/docs/slider/allclasses-noframe.html
people/sigurdne/modules/phpgwapi/trunk/js/yahoo/yui/docs/slider/index-all.html
people/sigurdne/modules/phpgwapi/trunk/js/yahoo/yui/docs/slider/index.html
people/sigurdne/modules/phpgwapi/trunk/js/yahoo/yui/docs/slider/logo.gif
people/sigurdne/modules/phpgwapi/trunk/js/yahoo/yui/docs/slider/overview-summary-Slider.js.html
people/sigurdne/modules/phpgwapi/trunk/js/yahoo/yui/docs/slider/overview-summary.html
people/sigurdne/modules/phpgwapi/trunk/js/yahoo/yui/docs/slider/overview-tree.html
people/sigurdne/modules/phpgwapi/trunk/js/yahoo/yui/docs/slider/stylesheet.css
people/sigurdne/modules/phpgwapi/trunk/js/yahoo/yui/docs/treeview/YAHOO.widget.HTMLNode.html
people/sigurdne/modules/phpgwapi/trunk/js/yahoo/yui/docs/treeview/YAHOO.widget.MenuNode.html
people/sigurdne/modules/phpgwapi/trunk/js/yahoo/yui/docs/treeview/YAHOO.widget.Node.html
people/sigurdne/modules/phpgwapi/trunk/js/yahoo/yui/docs/treeview/YAHOO.widget.RootNode.html
people/sigurdne/modules/phpgwapi/trunk/js/yahoo/yui/docs/treeview/YAHOO.widget.TVAnim.html
people/sigurdne/modules/phpgwapi/trunk/js/yahoo/yui/docs/treeview/YAHOO.widget.TVFadeIn.html
people/sigurdne/modules/phpgwapi/trunk/js/yahoo/yui/docs/treeview/YAHOO.widget.TVFadeOut.html
people/sigurdne/modules/phpgwapi/trunk/js/yahoo/yui/docs/treeview/YAHOO.widget.TextNode.html
people/sigurdne/modules/phpgwapi/trunk/js/yahoo/yui/docs/treeview/YAHOO.widget.TreeView.html
people/sigurdne/modules/phpgwapi/trunk/js/yahoo/yui/docs/treeview/YAHOO.widget.html
people/sigurdne/modules/phpgwapi/trunk/js/yahoo/yui/docs/treeview/allclasses-frame.html
people/sigurdne/modules/phpgwapi/trunk/js/yahoo/yui/docs/treeview/allclasses-noframe.html
people/sigurdne/modules/phpgwapi/trunk/js/yahoo/yui/docs/treeview/index-all.html
people/sigurdne/modules/phpgwapi/trunk/js/yahoo/yui/docs/treeview/index.html
people/sigurdne/modules/phpgwapi/trunk/js/yahoo/yui/docs/treeview/logo.gif
people/sigurdne/modules/phpgwapi/trunk/js/yahoo/yui/docs/treeview/overview-HTMLNode.js.html
people/sigurdne/modules/phpgwapi/trunk/js/yahoo/yui/docs/treeview/overview-MenuNode.js.html
people/sigurdne/modules/phpgwapi/trunk/js/yahoo/yui/docs/treeview/overview-Node.js.html
people/sigurdne/modules/phpgwapi/trunk/js/yahoo/yui/docs/treeview/overview-RootNode.js.html
people/sigurdne/modules/phpgwapi/trunk/js/yahoo/yui/docs/treeview/overview-TVAnim.js.html
people/sigurdne/modules/phpgwapi/trunk/js/yahoo/yui/docs/treeview/overview-TVFadeIn.js.html
people/sigurdne/modules/phpgwapi/trunk/js/yahoo/yui/docs/treeview/overview-TVFadeOut.js.html
people/sigurdne/modules/phpgwapi/trunk/js/yahoo/yui/docs/treeview/overview-TextNode.js.html
people/sigurdne/modules/phpgwapi/trunk/js/yahoo/yui/docs/treeview/overview-TreeView.js.html
people/sigurdne/modules/phpgwapi/trunk/js/yahoo/yui/docs/treeview/overview-summary-HTMLNode.js.html
people/sigurdne/modules/phpgwapi/trunk/js/yahoo/yui/docs/treeview/overview-summary-MenuNode.js.html
people/sigurdne/modules/phpgwapi/trunk/js/yahoo/yui/docs/treeview/overview-summary-Node.js.html
people/sigurdne/modules/phpgwapi/trunk/js/yahoo/yui/docs/treeview/overview-summary-RootNode.js.html
people/sigurdne/modules/phpgwapi/trunk/js/yahoo/yui/docs/treeview/overview-summary-TVAnim.js.html
people/sigurdne/modules/phpgwapi/trunk/js/yahoo/yui/docs/treeview/overview-summary-TVFadeIn.js.html
people/sigurdne/modules/phpgwapi/trunk/js/yahoo/yui/docs/treeview/overview-summary-TVFadeOut.js.html
people/sigurdne/modules/phpgwapi/trunk/js/yahoo/yui/docs/treeview/overview-summary-TextNode.js.html
people/sigurdne/modules/phpgwapi/trunk/js/yahoo/yui/docs/treeview/overview-summary-TreeView.js.html
people/sigurdne/modules/phpgwapi/trunk/js/yahoo/yui/docs/treeview/overview-summary.html
people/sigurdne/modules/phpgwapi/trunk/js/yahoo/yui/docs/treeview/overview-tree.html
people/sigurdne/modules/phpgwapi/trunk/js/yahoo/yui/docs/treeview/stylesheet.css
people/sigurdne/modules/phpgwapi/trunk/js/yahoo/yui/docs/yahoo/YAHOO.html
people/sigurdne/modules/phpgwapi/trunk/js/yahoo/yui/docs/yahoo/allclasses-frame.html
people/sigurdne/modules/phpgwapi/trunk/js/yahoo/yui/docs/yahoo/allclasses-noframe.html
people/sigurdne/modules/phpgwapi/trunk/js/yahoo/yui/docs/yahoo/index-all.html
people/sigurdne/modules/phpgwapi/trunk/js/yahoo/yui/docs/yahoo/index.html
people/sigurdne/modules/phpgwapi/trunk/js/yahoo/yui/docs/yahoo/logo.gif
people/sigurdne/modules/phpgwapi/trunk/js/yahoo/yui/docs/yahoo/overview-summary-YAHOO.js.html
people/sigurdne/modules/phpgwapi/trunk/js/yahoo/yui/docs/yahoo/overview-summary.html
people/sigurdne/modules/phpgwapi/trunk/js/yahoo/yui/docs/yahoo/overview-tree.html
people/sigurdne/modules/phpgwapi/trunk/js/yahoo/yui/docs/yahoo/stylesheet.css
people/sigurdne/modules/phpgwapi/trunk/js/yahoo/yui/examples/README
people/sigurdne/modules/phpgwapi/trunk/js/yahoo/yui/examples/animation/anim_basic.html
people/sigurdne/modules/phpgwapi/trunk/js/yahoo/yui/examples/animation/anim_from.html
people/sigurdne/modules/phpgwapi/trunk/js/yahoo/yui/examples/animation/anim_size.html
people/sigurdne/modules/phpgwapi/trunk/js/yahoo/yui/examples/animation/anim_size_plus.html
people/sigurdne/modules/phpgwapi/trunk/js/yahoo/yui/examples/animation/anim_size_plus_alt.html
people/sigurdne/modules/phpgwapi/trunk/js/yahoo/yui/examples/animation/anim_units.html
people/sigurdne/modules/phpgwapi/trunk/js/yahoo/yui/examples/animation/colors.html
people/sigurdne/modules/phpgwapi/trunk/js/yahoo/yui/examples/animation/css/demo.css
people/sigurdne/modules/phpgwapi/trunk/js/yahoo/yui/examples/animation/easing.html
people/sigurdne/modules/phpgwapi/trunk/js/yahoo/yui/examples/animation/fade.html
people/sigurdne/modules/phpgwapi/trunk/js/yahoo/yui/examples/animation/img/logo.gif
people/sigurdne/modules/phpgwapi/trunk/js/yahoo/yui/examples/animation/index.html
people/sigurdne/modules/phpgwapi/trunk/js/yahoo/yui/examples/animation/motion_basic.html
people/sigurdne/modules/phpgwapi/trunk/js/yahoo/yui/examples/animation/motion_by.html
people/sigurdne/modules/phpgwapi/trunk/js/yahoo/yui/examples/animation/motion_control.html
people/sigurdne/modules/phpgwapi/trunk/js/yahoo/yui/examples/animation/motion_controls.html
people/sigurdne/modules/phpgwapi/trunk/js/yahoo/yui/examples/animation/motion_plus.html
people/sigurdne/modules/phpgwapi/trunk/js/yahoo/yui/examples/animation/scroll_by.html
people/sigurdne/modules/phpgwapi/trunk/js/yahoo/yui/examples/animation/scroll_horiz.html
people/sigurdne/modules/phpgwapi/trunk/js/yahoo/yui/examples/animation/scroll_vert.html
people/sigurdne/modules/phpgwapi/trunk/js/yahoo/yui/examples/autocomplete/css/examples.css
people/sigurdne/modules/phpgwapi/trunk/js/yahoo/yui/examples/autocomplete/customize.html
people/sigurdne/modules/phpgwapi/trunk/js/yahoo/yui/examples/autocomplete/flickr_xml.html
people/sigurdne/modules/phpgwapi/trunk/js/yahoo/yui/examples/autocomplete/img/logo.gif
people/sigurdne/modules/phpgwapi/trunk/js/yahoo/yui/examples/autocomplete/index.html
people/sigurdne/modules/phpgwapi/trunk/js/yahoo/yui/examples/autocomplete/js/json.js
people/sigurdne/modules/phpgwapi/trunk/js/yahoo/yui/examples/autocomplete/js/states_jsfunction.js
people/sigurdne/modules/phpgwapi/trunk/js/yahoo/yui/examples/autocomplete/states_jsarray.html
people/sigurdne/modules/phpgwapi/trunk/js/yahoo/yui/examples/autocomplete/states_jsfunction.html
people/sigurdne/modules/phpgwapi/trunk/js/yahoo/yui/examples/autocomplete/ysearch_flat.html
people/sigurdne/modules/phpgwapi/trunk/js/yahoo/yui/examples/autocomplete/ysearch_json.html
people/sigurdne/modules/phpgwapi/trunk/js/yahoo/yui/examples/autocomplete/ysearch_xml.html
people/sigurdne/modules/phpgwapi/trunk/js/yahoo/yui/examples/calendar/css/examples.css
people/sigurdne/modules/phpgwapi/trunk/js/yahoo/yui/examples/calendar/img/logo.gif
people/sigurdne/modules/phpgwapi/trunk/js/yahoo/yui/examples/calendar/img/pdate.gif
people/sigurdne/modules/phpgwapi/trunk/js/yahoo/yui/examples/calendar/index.html
people/sigurdne/modules/phpgwapi/trunk/js/yahoo/yui/examples/connection/abort.html
people/sigurdne/modules/phpgwapi/trunk/js/yahoo/yui/examples/connection/get.html
people/sigurdne/modules/phpgwapi/trunk/js/yahoo/yui/examples/connection/index.html
people/sigurdne/modules/phpgwapi/trunk/js/yahoo/yui/examples/connection/post.html
people/sigurdne/modules/phpgwapi/trunk/js/yahoo/yui/examples/connection/weather.html
people/sigurdne/modules/phpgwapi/trunk/js/yahoo/yui/examples/container/css/example.css
people/sigurdne/modules/phpgwapi/trunk/js/yahoo/yui/examples/container/css/module.css
people/sigurdne/modules/phpgwapi/trunk/js/yahoo/yui/examples/container/css/panel-aqua.css
people/sigurdne/modules/phpgwapi/trunk/js/yahoo/yui/examples/container/css/panel-xp.css
people/sigurdne/modules/phpgwapi/trunk/js/yahoo/yui/examples/container/css/photobox.css
people/sigurdne/modules/phpgwapi/trunk/js/yahoo/yui/examples/container/dialog.html
people/sigurdne/modules/phpgwapi/trunk/js/yahoo/yui/examples/container/img/aqua-bg.gif
people/sigurdne/modules/phpgwapi/trunk/js/yahoo/yui/examples/container/img/aqua-hd-bg.gif
people/sigurdne/modules/phpgwapi/trunk/js/yahoo/yui/examples/container/img/aqua-hd-close-over.gif
people/sigurdne/modules/phpgwapi/trunk/js/yahoo/yui/examples/container/img/aqua-hd-close.gif
people/sigurdne/modules/phpgwapi/trunk/js/yahoo/yui/examples/container/img/aqua-hd-lt.gif
people/sigurdne/modules/phpgwapi/trunk/js/yahoo/yui/examples/container/img/aqua-hd-rt.gif
people/sigurdne/modules/phpgwapi/trunk/js/yahoo/yui/examples/container/img/bg.png
people/sigurdne/modules/phpgwapi/trunk/js/yahoo/yui/examples/container/img/ctx.gif
people/sigurdne/modules/phpgwapi/trunk/js/yahoo/yui/examples/container/img/xp-bl.gif
people/sigurdne/modules/phpgwapi/trunk/js/yahoo/yui/examples/container/img/xp-border-rt.gif
people/sigurdne/modules/phpgwapi/trunk/js/yahoo/yui/examples/container/img/xp-br.gif
people/sigurdne/modules/phpgwapi/trunk/js/yahoo/yui/examples/container/img/xp-brdr-lt.gif
people/sigurdne/modules/phpgwapi/trunk/js/yahoo/yui/examples/container/img/xp-brdr-rt.gif
people/sigurdne/modules/phpgwapi/trunk/js/yahoo/yui/examples/container/img/xp-close.gif
people/sigurdne/modules/phpgwapi/trunk/js/yahoo/yui/examples/container/img/xp-ft.gif
people/sigurdne/modules/phpgwapi/trunk/js/yahoo/yui/examples/container/img/xp-hd.gif
people/sigurdne/modules/phpgwapi/trunk/js/yahoo/yui/examples/container/img/xp-tl.gif
people/sigurdne/modules/phpgwapi/trunk/js/yahoo/yui/examples/container/img/xp-tr.gif
people/sigurdne/modules/phpgwapi/trunk/js/yahoo/yui/examples/container/img/ybox-back.gif
people/sigurdne/modules/phpgwapi/trunk/js/yahoo/yui/examples/container/img/ybox-close.gif
people/sigurdne/modules/phpgwapi/trunk/js/yahoo/yui/examples/container/img/ybox-next.gif
people/sigurdne/modules/phpgwapi/trunk/js/yahoo/yui/examples/container/index.html
people/sigurdne/modules/phpgwapi/trunk/js/yahoo/yui/examples/container/js/PanelEffect.js
people/sigurdne/modules/phpgwapi/trunk/js/yahoo/yui/examples/container/js/PhotoBox.js
people/sigurdne/modules/phpgwapi/trunk/js/yahoo/yui/examples/container/keylistener.html
people/sigurdne/modules/phpgwapi/trunk/js/yahoo/yui/examples/container/module.html
people/sigurdne/modules/phpgwapi/trunk/js/yahoo/yui/examples/container/overlay-manager.html
people/sigurdne/modules/phpgwapi/trunk/js/yahoo/yui/examples/container/overlay.html
people/sigurdne/modules/phpgwapi/trunk/js/yahoo/yui/examples/container/panel-aqua.html
people/sigurdne/modules/phpgwapi/trunk/js/yahoo/yui/examples/container/panel-photo.html
people/sigurdne/modules/phpgwapi/trunk/js/yahoo/yui/examples/container/panel-wait.html
people/sigurdne/modules/phpgwapi/trunk/js/yahoo/yui/examples/container/panel-xp.html
people/sigurdne/modules/phpgwapi/trunk/js/yahoo/yui/examples/container/panel.html
people/sigurdne/modules/phpgwapi/trunk/js/yahoo/yui/examples/container/simpledialog-async.html
people/sigurdne/modules/phpgwapi/trunk/js/yahoo/yui/examples/container/simpledialog.html
people/sigurdne/modules/phpgwapi/trunk/js/yahoo/yui/examples/container/tooltip.html
people/sigurdne/modules/phpgwapi/trunk/js/yahoo/yui/examples/dom/addclass.html
people/sigurdne/modules/phpgwapi/trunk/js/yahoo/yui/examples/dom/css/dom.css
people/sigurdne/modules/phpgwapi/trunk/js/yahoo/yui/examples/dom/getelementsbyclassname.html
people/sigurdne/modules/phpgwapi/trunk/js/yahoo/yui/examples/dom/getstyle.html
people/sigurdne/modules/phpgwapi/trunk/js/yahoo/yui/examples/dom/getxy.html
people/sigurdne/modules/phpgwapi/trunk/js/yahoo/yui/examples/dom/hasclass.html
people/sigurdne/modules/phpgwapi/trunk/js/yahoo/yui/examples/dom/img/logo.gif
people/sigurdne/modules/phpgwapi/trunk/js/yahoo/yui/examples/dom/index.html
people/sigurdne/modules/phpgwapi/trunk/js/yahoo/yui/examples/dom/removeclass.html
people/sigurdne/modules/phpgwapi/trunk/js/yahoo/yui/examples/dom/setstyle.html
people/sigurdne/modules/phpgwapi/trunk/js/yahoo/yui/examples/dom/setxy.html
people/sigurdne/modules/phpgwapi/trunk/js/yahoo/yui/examples/dragdrop/css/ie.css
people/sigurdne/modules/phpgwapi/trunk/js/yahoo/yui/examples/dragdrop/css/screen.css
people/sigurdne/modules/phpgwapi/trunk/js/yahoo/yui/examples/dragdrop/drag.html
people/sigurdne/modules/phpgwapi/trunk/js/yahoo/yui/examples/dragdrop/grid.html
people/sigurdne/modules/phpgwapi/trunk/js/yahoo/yui/examples/dragdrop/img/bullet.gif
people/sigurdne/modules/phpgwapi/trunk/js/yahoo/yui/examples/dragdrop/img/channel.png
people/sigurdne/modules/phpgwapi/trunk/js/yahoo/yui/examples/dragdrop/img/grid.png
people/sigurdne/modules/phpgwapi/trunk/js/yahoo/yui/examples/dragdrop/img/hline.png
people/sigurdne/modules/phpgwapi/trunk/js/yahoo/yui/examples/dragdrop/img/horizBg.png
people/sigurdne/modules/phpgwapi/trunk/js/yahoo/yui/examples/dragdrop/img/horizSlider.png
people/sigurdne/modules/phpgwapi/trunk/js/yahoo/yui/examples/dragdrop/img/horizSlider_on.png
people/sigurdne/modules/phpgwapi/trunk/js/yahoo/yui/examples/dragdrop/img/hue.png
people/sigurdne/modules/phpgwapi/trunk/js/yahoo/yui/examples/dragdrop/img/logo.gif
people/sigurdne/modules/phpgwapi/trunk/js/yahoo/yui/examples/dragdrop/img/lthumb.png
people/sigurdne/modules/phpgwapi/trunk/js/yahoo/yui/examples/dragdrop/img/navHover2.png
people/sigurdne/modules/phpgwapi/trunk/js/yahoo/yui/examples/dragdrop/img/pickerbg.png
people/sigurdne/modules/phpgwapi/trunk/js/yahoo/yui/examples/dragdrop/img/qbottom.png
people/sigurdne/modules/phpgwapi/trunk/js/yahoo/yui/examples/dragdrop/img/qmiddle.png
people/sigurdne/modules/phpgwapi/trunk/js/yahoo/yui/examples/dragdrop/img/qtop.png
people/sigurdne/modules/phpgwapi/trunk/js/yahoo/yui/examples/dragdrop/img/select.gif
people/sigurdne/modules/phpgwapi/trunk/js/yahoo/yui/examples/dragdrop/img/select.png
people/sigurdne/modules/phpgwapi/trunk/js/yahoo/yui/examples/dragdrop/img/sortList.png
people/sigurdne/modules/phpgwapi/trunk/js/yahoo/yui/examples/dragdrop/img/sq1.png
people/sigurdne/modules/phpgwapi/trunk/js/yahoo/yui/examples/dragdrop/img/sq2.png
people/sigurdne/modules/phpgwapi/trunk/js/yahoo/yui/examples/dragdrop/img/sq3.png
people/sigurdne/modules/phpgwapi/trunk/js/yahoo/yui/examples/dragdrop/img/vertBg.png
people/sigurdne/modules/phpgwapi/trunk/js/yahoo/yui/examples/dragdrop/img/vertSlider.png
people/sigurdne/modules/phpgwapi/trunk/js/yahoo/yui/examples/dragdrop/img/vertSlider_on.png
people/sigurdne/modules/phpgwapi/trunk/js/yahoo/yui/examples/dragdrop/img/vline.png
people/sigurdne/modules/phpgwapi/trunk/js/yahoo/yui/examples/dragdrop/index.html
people/sigurdne/modules/phpgwapi/trunk/js/yahoo/yui/examples/dragdrop/interface.html
people/sigurdne/modules/phpgwapi/trunk/js/yahoo/yui/examples/dragdrop/js/DDList.js
people/sigurdne/modules/phpgwapi/trunk/js/yahoo/yui/examples/dragdrop/js/DDMy.js
people/sigurdne/modules/phpgwapi/trunk/js/yahoo/yui/examples/dragdrop/js/DDMy2.js
people/sigurdne/modules/phpgwapi/trunk/js/yahoo/yui/examples/dragdrop/js/DDOnTop.js
people/sigurdne/modules/phpgwapi/trunk/js/yahoo/yui/examples/dragdrop/js/DDPlayer.js
people/sigurdne/modules/phpgwapi/trunk/js/yahoo/yui/examples/dragdrop/js/DDResize.js
people/sigurdne/modules/phpgwapi/trunk/js/yahoo/yui/examples/dragdrop/js/DDResize2.js
people/sigurdne/modules/phpgwapi/trunk/js/yahoo/yui/examples/dragdrop/js/DDSwap.js
people/sigurdne/modules/phpgwapi/trunk/js/yahoo/yui/examples/dragdrop/js/color.js
people/sigurdne/modules/phpgwapi/trunk/js/yahoo/yui/examples/dragdrop/js/key.js
people/sigurdne/modules/phpgwapi/trunk/js/yahoo/yui/examples/dragdrop/js/log.js
people/sigurdne/modules/phpgwapi/trunk/js/yahoo/yui/examples/dragdrop/list.html
people/sigurdne/modules/phpgwapi/trunk/js/yahoo/yui/examples/dragdrop/multihandle.html
people/sigurdne/modules/phpgwapi/trunk/js/yahoo/yui/examples/dragdrop/ontop.html
people/sigurdne/modules/phpgwapi/trunk/js/yahoo/yui/examples/dragdrop/proxy.html
people/sigurdne/modules/phpgwapi/trunk/js/yahoo/yui/examples/dragdrop/resize.html
people/sigurdne/modules/phpgwapi/trunk/js/yahoo/yui/examples/dragdrop/slider.html
people/sigurdne/modules/phpgwapi/trunk/js/yahoo/yui/examples/dragdrop/targetable.html
people/sigurdne/modules/phpgwapi/trunk/js/yahoo/yui/examples/fonts/default.html
people/sigurdne/modules/phpgwapi/trunk/js/yahoo/yui/examples/fonts/fontfamily.html
people/sigurdne/modules/phpgwapi/trunk/js/yahoo/yui/examples/fonts/fontsize.html
people/sigurdne/modules/phpgwapi/trunk/js/yahoo/yui/examples/grids/example_t1.html
people/sigurdne/modules/phpgwapi/trunk/js/yahoo/yui/examples/grids/example_t2-g1.html
people/sigurdne/modules/phpgwapi/trunk/js/yahoo/yui/examples/grids/example_t2-g10.html
people/sigurdne/modules/phpgwapi/trunk/js/yahoo/yui/examples/grids/example_t2-g2.html
people/sigurdne/modules/phpgwapi/trunk/js/yahoo/yui/examples/grids/example_t2-g3.html
people/sigurdne/modules/phpgwapi/trunk/js/yahoo/yui/examples/grids/example_t2-g4.html
people/sigurdne/modules/phpgwapi/trunk/js/yahoo/yui/examples/grids/example_t2-g5.html
people/sigurdne/modules/phpgwapi/trunk/js/yahoo/yui/examples/grids/example_t2-g6.html
people/sigurdne/modules/phpgwapi/trunk/js/yahoo/yui/examples/grids/example_t2-g7.html
people/sigurdne/modules/phpgwapi/trunk/js/yahoo/yui/examples/grids/example_t2-g8.html
people/sigurdne/modules/phpgwapi/trunk/js/yahoo/yui/examples/grids/example_t2-g9.html
people/sigurdne/modules/phpgwapi/trunk/js/yahoo/yui/examples/grids/example_t2.html
people/sigurdne/modules/phpgwapi/trunk/js/yahoo/yui/examples/grids/example_t3.html
people/sigurdne/modules/phpgwapi/trunk/js/yahoo/yui/examples/grids/example_t4.html
people/sigurdne/modules/phpgwapi/trunk/js/yahoo/yui/examples/grids/example_t5.html
people/sigurdne/modules/phpgwapi/trunk/js/yahoo/yui/examples/grids/example_t6.html
people/sigurdne/modules/phpgwapi/trunk/js/yahoo/yui/examples/grids/example_t7.html
people/sigurdne/modules/phpgwapi/trunk/js/yahoo/yui/examples/logger/autocomplete.html
people/sigurdne/modules/phpgwapi/trunk/js/yahoo/yui/examples/logger/css/examples.css
people/sigurdne/modules/phpgwapi/trunk/js/yahoo/yui/examples/logger/img/logo.gif
people/sigurdne/modules/phpgwapi/trunk/js/yahoo/yui/examples/logger/index.html
people/sigurdne/modules/phpgwapi/trunk/js/yahoo/yui/examples/logger/readlogs.html
people/sigurdne/modules/phpgwapi/trunk/js/yahoo/yui/examples/logger/readlogscustom.html
people/sigurdne/modules/phpgwapi/trunk/js/yahoo/yui/examples/logger/writelogs.html
people/sigurdne/modules/phpgwapi/trunk/js/yahoo/yui/examples/menu/applicationmenubar.html
people/sigurdne/modules/phpgwapi/trunk/js/yahoo/yui/examples/menu/contextmenu.html
people/sigurdne/modules/phpgwapi/trunk/js/yahoo/yui/examples/menu/example01.html
people/sigurdne/modules/phpgwapi/trunk/js/yahoo/yui/examples/menu/example02.html
people/sigurdne/modules/phpgwapi/trunk/js/yahoo/yui/examples/menu/example03.html
people/sigurdne/modules/phpgwapi/trunk/js/yahoo/yui/examples/menu/example04.html
people/sigurdne/modules/phpgwapi/trunk/js/yahoo/yui/examples/menu/example05.html
people/sigurdne/modules/phpgwapi/trunk/js/yahoo/yui/examples/menu/example06.html
people/sigurdne/modules/phpgwapi/trunk/js/yahoo/yui/examples/menu/example07.html
people/sigurdne/modules/phpgwapi/trunk/js/yahoo/yui/examples/menu/example08.html
people/sigurdne/modules/phpgwapi/trunk/js/yahoo/yui/examples/menu/example09.html
people/sigurdne/modules/phpgwapi/trunk/js/yahoo/yui/examples/menu/example10.html
people/sigurdne/modules/phpgwapi/trunk/js/yahoo/yui/examples/menu/example11.html
people/sigurdne/modules/phpgwapi/trunk/js/yahoo/yui/examples/menu/example12.html
people/sigurdne/modules/phpgwapi/trunk/js/yahoo/yui/examples/menu/img/dolly.jpg
people/sigurdne/modules/phpgwapi/trunk/js/yahoo/yui/examples/menu/index.html
people/sigurdne/modules/phpgwapi/trunk/js/yahoo/yui/examples/menu/leftnav.html
people/sigurdne/modules/phpgwapi/trunk/js/yahoo/yui/examples/menu/programsmenu.html
people/sigurdne/modules/phpgwapi/trunk/js/yahoo/yui/examples/menu/topnav.html
people/sigurdne/modules/phpgwapi/trunk/js/yahoo/yui/examples/slider/basic.html
people/sigurdne/modules/phpgwapi/trunk/js/yahoo/yui/examples/slider/css/screen.css
people/sigurdne/modules/phpgwapi/trunk/js/yahoo/yui/examples/slider/img/bullet.gif
people/sigurdne/modules/phpgwapi/trunk/js/yahoo/yui/examples/slider/img/greybg.png
people/sigurdne/modules/phpgwapi/trunk/js/yahoo/yui/examples/slider/img/header.gif
people/sigurdne/modules/phpgwapi/trunk/js/yahoo/yui/examples/slider/img/hline.png
people/sigurdne/modules/phpgwapi/trunk/js/yahoo/yui/examples/slider/img/horizBg.png
people/sigurdne/modules/phpgwapi/trunk/js/yahoo/yui/examples/slider/img/horizSlider.png
people/sigurdne/modules/phpgwapi/trunk/js/yahoo/yui/examples/slider/img/horizSlider_on.png
people/sigurdne/modules/phpgwapi/trunk/js/yahoo/yui/examples/slider/img/hue.png
people/sigurdne/modules/phpgwapi/trunk/js/yahoo/yui/examples/slider/img/logo.gif
people/sigurdne/modules/phpgwapi/trunk/js/yahoo/yui/examples/slider/img/lthumb.png
people/sigurdne/modules/phpgwapi/trunk/js/yahoo/yui/examples/slider/img/navHover2.png
people/sigurdne/modules/phpgwapi/trunk/js/yahoo/yui/examples/slider/img/pickerbg.png
people/sigurdne/modules/phpgwapi/trunk/js/yahoo/yui/examples/slider/img/qbottom.png
people/sigurdne/modules/phpgwapi/trunk/js/yahoo/yui/examples/slider/img/qmiddle.png
people/sigurdne/modules/phpgwapi/trunk/js/yahoo/yui/examples/slider/img/qtop.png
people/sigurdne/modules/phpgwapi/trunk/js/yahoo/yui/examples/slider/img/select.gif
people/sigurdne/modules/phpgwapi/trunk/js/yahoo/yui/examples/slider/img/select.png
people/sigurdne/modules/phpgwapi/trunk/js/yahoo/yui/examples/slider/img/vertBg.png
people/sigurdne/modules/phpgwapi/trunk/js/yahoo/yui/examples/slider/img/vertSlider.png
people/sigurdne/modules/phpgwapi/trunk/js/yahoo/yui/examples/slider/img/vertSlider_on.png
people/sigurdne/modules/phpgwapi/trunk/js/yahoo/yui/examples/slider/img/vline.png
people/sigurdne/modules/phpgwapi/trunk/js/yahoo/yui/examples/slider/index.html
people/sigurdne/modules/phpgwapi/trunk/js/yahoo/yui/examples/slider/js/color.js
people/sigurdne/modules/phpgwapi/trunk/js/yahoo/yui/examples/slider/js/key.js
people/sigurdne/modules/phpgwapi/trunk/js/yahoo/yui/examples/slider/js/log.js
people/sigurdne/modules/phpgwapi/trunk/js/yahoo/yui/examples/slider/js/logger.js
people/sigurdne/modules/phpgwapi/trunk/js/yahoo/yui/examples/slider/rgb.html
people/sigurdne/modules/phpgwapi/trunk/js/yahoo/yui/examples/slider/rgb2.html
people/sigurdne/modules/phpgwapi/trunk/js/yahoo/yui/examples/treeview/anim.html
people/sigurdne/modules/phpgwapi/trunk/js/yahoo/yui/examples/treeview/check.html
people/sigurdne/modules/phpgwapi/trunk/js/yahoo/yui/examples/treeview/css/code.css
people/sigurdne/modules/phpgwapi/trunk/js/yahoo/yui/examples/treeview/css/screen.css
people/sigurdne/modules/phpgwapi/trunk/js/yahoo/yui/examples/treeview/default.html
people/sigurdne/modules/phpgwapi/trunk/js/yahoo/yui/examples/treeview/dynamic.html
people/sigurdne/modules/phpgwapi/trunk/js/yahoo/yui/examples/treeview/folders.html
people/sigurdne/modules/phpgwapi/trunk/js/yahoo/yui/examples/treeview/html.html
people/sigurdne/modules/phpgwapi/trunk/js/yahoo/yui/examples/treeview/img/bullet.gif
people/sigurdne/modules/phpgwapi/trunk/js/yahoo/yui/examples/treeview/img/greybg.png
people/sigurdne/modules/phpgwapi/trunk/js/yahoo/yui/examples/treeview/img/header.gif
people/sigurdne/modules/phpgwapi/trunk/js/yahoo/yui/examples/treeview/img/logo.gif
people/sigurdne/modules/phpgwapi/trunk/js/yahoo/yui/examples/treeview/img/navHover2.png
people/sigurdne/modules/phpgwapi/trunk/js/yahoo/yui/examples/treeview/img/qbottom.png
people/sigurdne/modules/phpgwapi/trunk/js/yahoo/yui/examples/treeview/img/qmiddle.png
people/sigurdne/modules/phpgwapi/trunk/js/yahoo/yui/examples/treeview/img/qtop.png
people/sigurdne/modules/phpgwapi/trunk/js/yahoo/yui/examples/treeview/index.html
people/sigurdne/modules/phpgwapi/trunk/js/yahoo/yui/examples/treeview/js/CheckOnClickNode.js
people/sigurdne/modules/phpgwapi/trunk/js/yahoo/yui/examples/treeview/js/TaskNode.js
people/sigurdne/modules/phpgwapi/trunk/js/yahoo/yui/examples/treeview/js/dpSyntaxHighlighter.js
people/sigurdne/modules/phpgwapi/trunk/js/yahoo/yui/examples/treeview/js/json.js
people/sigurdne/modules/phpgwapi/trunk/js/yahoo/yui/examples/treeview/js/key.js
people/sigurdne/modules/phpgwapi/trunk/js/yahoo/yui/examples/treeview/js/log.js
people/sigurdne/modules/phpgwapi/trunk/js/yahoo/yui/examples/treeview/menu.html
people/sigurdne/modules/phpgwapi/trunk/js/yahoo/yui/examples/treeview/multi.html
people/sigurdne/modules/phpgwapi/trunk/js/yahoo/yuiloader/README
people/sigurdne/modules/phpgwapi/trunk/js/yahoo/yuiloader/yuiloader-beta-debug.js
people/sigurdne/modules/phpgwapi/trunk/js/yahoo/yuiloader/yuiloader-beta-min.js
people/sigurdne/modules/phpgwapi/trunk/js/yahoo/yuiloader/yuiloader-beta.js
people/sigurdne/modules/phpgwapi/trunk/js/yahoo/yuiloader-beta.js
people/sigurdne/modules/phpgwapi/trunk/js/yahoo/yuiloader-dom-event/README
people/sigurdne/modules/phpgwapi/trunk/js/yahoo/yuitest/README
people/sigurdne/modules/phpgwapi/trunk/js/yahoo/yuitest/yuitest-beta-debug.js
people/sigurdne/modules/phpgwapi/trunk/js/yahoo/yuitest/yuitest-beta-min.js
people/sigurdne/modules/phpgwapi/trunk/js/yahoo/yuitest/yuitest-beta.js
people/sigurdne/modules/phpgwapi/trunk/templates/desktop/nextmatchs.tpl
people/sigurdne/modules/phpgwapi/trunk/templates/idots/nextmatchs.tpl
people/sigurdne/modules/phpgwapi/trunk/templates/probusiness/nextmatchs.tpl
Deleted: people/sigurdne/modules/phpgwapi/trunk/doc/adodb.diff
===================================================================
--- people/sigurdne/modules/phpgwapi/trunk/doc/adodb.diff 2009-11-20 12:33:35 UTC (rev 20862)
+++ people/sigurdne/modules/phpgwapi/trunk/doc/adodb.diff 2009-11-20 12:34:05 UTC (rev 20863)
@@ -1,8912 +0,0 @@
-diff -aburN --exclude='.svn*' inc/adodb5/adodb-active-record.inc.php inc/adodb/adodb-active-record.inc.php
---- inc/adodb5/adodb-active-record.inc.php 2008-10-29 18:14:48.000000000 +1100
-+++ inc/adodb/adodb-active-record.inc.php 1970-01-01 10:00:00.000000000 +1000
-@@ -1,882 +0,0 @@
--<?php
--/*
--
--@version V5.06 16 Oct 2008 (c) 2000-2008 John Lim (jlim#natsoft.com). All rights reserved.
-- Latest version is available at http://adodb.sourceforge.net
--
-- Released under both BSD license and Lesser GPL library license.
-- Whenever there is any discrepancy between the two licenses,
-- the BSD license will take precedence.
--
-- Active Record implementation. Superset of Zend Framework's.
--
-- Version 0.90
--
-- See http://www-128.ibm.com/developerworks/java/library/j-cb03076/?ca=dgr-lnxw01ActiveRecord
-- for info on Ruby on Rails Active Record implementation
--*/
--
--
--global $_ADODB_ACTIVE_DBS;
--global $ADODB_ACTIVE_CACHESECS; // set to true to enable caching of metadata such as field info
--global $ACTIVE_RECORD_SAFETY; // set to false to disable safety checks
--global $ADODB_ACTIVE_DEFVALS; // use default values of table definition when creating new active record.
--
--// array of ADODB_Active_DB's, indexed by ADODB_Active_Record->_dbat
--$_ADODB_ACTIVE_DBS = array();
--$ACTIVE_RECORD_SAFETY = true;
--$ADODB_ACTIVE_DEFVALS = false;
--
--class ADODB_Active_DB {
-- var $db; // ADOConnection
-- var $tables; // assoc array of ADODB_Active_Table objects, indexed by tablename
--}
--
--class ADODB_Active_Table {
-- var $name; // table name
-- var $flds; // assoc array of adofieldobjs, indexed by fieldname
-- var $keys; // assoc array of primary keys, indexed by fieldname
-- var $_created; // only used when stored as a cached file
-- var $_belongsTo = array();
-- var $_hasMany = array();
--}
--
--// returns index into $_ADODB_ACTIVE_DBS
--function ADODB_SetDatabaseAdapter(&$db)
--{
-- global $_ADODB_ACTIVE_DBS;
--
-- foreach($_ADODB_ACTIVE_DBS as $k => $d) {
-- if (PHP_VERSION >= 5) {
-- if ($d->db === $db) return $k;
-- } else {
-- if ($d->db->_connectionID === $db->_connectionID && $db->database == $d->db->database)
-- return $k;
-- }
-- }
--
-- $obj = new ADODB_Active_DB();
-- $obj->db = $db;
-- $obj->tables = array();
--
-- $_ADODB_ACTIVE_DBS[] = $obj;
--
-- return sizeof($_ADODB_ACTIVE_DBS)-1;
--}
--
--
--class ADODB_Active_Record {
-- static $_changeNames = true; // dynamically pluralize table names
-- static $_foreignSuffix = '_id'; //
-- var $_dbat; // associative index pointing to ADODB_Active_DB eg. $ADODB_Active_DBS[_dbat]
-- var $_table; // tablename, if set in class definition then use it as table name
-- var $_tableat; // associative index pointing to ADODB_Active_Table, eg $ADODB_Active_DBS[_dbat]->tables[$this->_tableat]
-- var $_where; // where clause set in Load()
-- var $_saved = false; // indicates whether data is already inserted.
-- var $_lasterr = false; // last error message
-- var $_original = false; // the original values loaded or inserted, refreshed on update
--
-- var $foreignName; // CFR: class name when in a relationship
--
-- static function UseDefaultValues($bool=null)
-- {
-- global $ADODB_ACTIVE_DEFVALS;
-- if (isset($bool)) $ADODB_ACTIVE_DEFVALS = $bool;
-- return $ADODB_ACTIVE_DEFVALS;
-- }
--
-- // should be static
-- static function SetDatabaseAdapter(&$db)
-- {
-- return ADODB_SetDatabaseAdapter($db);
-- }
--
--
-- public function __set($name, $value)
-- {
-- $name = str_replace(' ', '_', $name);
-- $this->$name = $value;
-- }
--
-- // php5 constructor
-- function __construct($table = false, $pkeyarr=false, $db=false)
-- {
-- global $ADODB_ASSOC_CASE,$_ADODB_ACTIVE_DBS;
--
-- if ($db == false && is_object($pkeyarr)) {
-- $db = $pkeyarr;
-- $pkeyarr = false;
-- }
--
-- if (!$table) {
-- if (!empty($this->_table)) $table = $this->_table;
-- else $table = $this->_pluralize(get_class($this));
-- }
-- $this->foreignName = strtolower(get_class($this)); // CFR: default foreign name
-- if ($db) {
-- $this->_dbat = ADODB_Active_Record::SetDatabaseAdapter($db);
-- } else
-- $this->_dbat = sizeof($_ADODB_ACTIVE_DBS)-1;
--
--
-- if ($this->_dbat < 0) $this->Error("No database connection set; use ADOdb_Active_Record::SetDatabaseAdapter(\$db)",'ADODB_Active_Record::__constructor');
--
-- $this->_table = $table;
-- $this->_tableat = $table; # reserved for setting the assoc value to a non-table name, eg. the sql string in future
--
-- $this->UpdateActiveTable($pkeyarr);
-- }
--
-- function __wakeup()
-- {
-- $class = get_class($this);
-- new $class;
-- }
--
-- function _pluralize($table)
-- {
-- if (!ADODB_Active_Record::$_changeNames) return $table;
--
-- $ut = strtoupper($table);
-- $len = strlen($table);
-- $lastc = $ut[$len-1];
-- $lastc2 = substr($ut,$len-2);
-- switch ($lastc) {
-- case 'S':
-- return $table.'es';
-- case 'Y':
-- return substr($table,0,$len-1).'ies';
-- case 'X':
-- return $table.'es';
-- case 'H':
-- if ($lastc2 == 'CH' || $lastc2 == 'SH')
-- return $table.'es';
-- default:
-- return $table.'s';
-- }
-- }
--
-- // CFR Lamest singular inflector ever - @todo Make it real!
-- // Note: There is an assumption here...and it is that the argument's length >= 4
-- function _singularize($tables)
-- {
--
-- if (!ADODB_Active_Record::$_changeNames) return $table;
--
-- $ut = strtoupper($tables);
-- $len = strlen($tables);
-- if($ut[$len-1] != 'S')
-- return $tables; // I know...forget oxen
-- if($ut[$len-2] != 'E')
-- return substr($tables, 0, $len-1);
-- switch($ut[$len-3])
-- {
-- case 'S':
-- case 'X':
-- return substr($tables, 0, $len-2);
-- case 'I':
-- return substr($tables, 0, $len-3) . 'y';
-- case 'H';
-- if($ut[$len-4] == 'C' || $ut[$len-4] == 'S')
-- return substr($tables, 0, $len-2);
-- default:
-- return substr($tables, 0, $len-1); // ?
-- }
-- }
--
-- function hasMany($foreignRef, $foreignKey = false)
-- {
-- $ar = new ADODB_Active_Record($foreignRef);
-- $ar->foreignName = $foreignRef;
-- $ar->UpdateActiveTable();
-- $ar->foreignKey = ($foreignKey) ? $foreignKey : $foreignRef.ADODB_Active_Record::$_foreignSuffix;
-- $table =& $this->TableInfo();
-- $table->_hasMany[$foreignRef] = $ar;
-- # $this->$foreignRef = $this->_hasMany[$foreignRef]; // WATCHME Removed assignment by ref. to please __get()
-- }
--
-- function belongsTo($foreignRef,$foreignKey=false, $parentKey='')
-- {
-- global $inflector;
--
-- $ar = new ADODB_Active_Record($this->_pluralize($foreignRef));
-- $ar->foreignName = $foreignRef;
-- $ar->parentKey = $parentKey;
-- $ar->UpdateActiveTable();
-- $ar->foreignKey = ($foreignKey) ? $foreignKey : $foreignRef.ADODB_Active_Record::$_foreignSuffix;
--
-- $table =& $this->TableInfo();
-- $table->_belongsTo[$foreignRef] = $ar;
-- # $this->$foreignRef = $this->_belongsTo[$foreignRef];
-- }
--
-- /**
-- * __get Access properties - used for lazy loading
-- *
-- * @param mixed $name
-- * @access protected
-- * @return mixed
-- */
-- function __get($name)
-- {
-- return $this->LoadRelations($name, '', -1, -1);
-- }
--
-- /**
-- * @param string $name
-- * @param string $whereOrderBy : eg. ' AND field1 = value ORDER BY field2'
-- * @param offset
-- * @param limit
-- * @return mixed
-- */
-- function LoadRelations($name, $whereOrderBy='', $offset=-1,$limit=-1)
-- {
-- $extras = array();
-- $table = $this->TableInfo();
-- if ($limit >= 0) $extras['limit'] = $limit;
-- if ($offset >= 0) $extras['offset'] = $offset;
--
-- if (strlen($whereOrderBy))
-- if (!preg_match('/^[ \n\r]*AND/i',$whereOrderBy))
-- if (!preg_match('/^[ \n\r]*ORDER[ \n\r]/i',$whereOrderBy))
-- $whereOrderBy = 'AND '.$whereOrderBy;
--
-- if(!empty($table->_belongsTo[$name]))
-- {
-- $obj = $table->_belongsTo[$name];
-- $columnName = $obj->foreignKey;
-- if(empty($this->$columnName))
-- $this->$name = null;
-- else
-- {
-- if ($obj->parentKey) $key = $obj->parentKey;
-- else $key = reset($table->keys);
--
-- $arrayOfOne = $obj->Find($key.'='.$this->$columnName.' '.$whereOrderBy,false,false,$extras);
-- if ($arrayOfOne) {
-- $this->$name = $arrayOfOne[0];
-- return $arrayOfOne[0];
-- }
-- }
-- }
-- if(!empty($table->_hasMany[$name]))
-- {
-- $obj = $table->_hasMany[$name];
-- $objs = $obj->Find($obj->foreignKey.'='.$this->id. ' '.$whereOrderBy,false,false,$extras);
-- if (!$objs) $objs = array();
-- $this->$name = $objs;
-- return $objs;
-- }
--
-- return array();
-- }
-- //////////////////////////////////
--
-- // update metadata
-- function UpdateActiveTable($pkeys=false,$forceUpdate=false)
-- {
-- global $ADODB_ASSOC_CASE,$_ADODB_ACTIVE_DBS , $ADODB_CACHE_DIR, $ADODB_ACTIVE_CACHESECS;
-- global $ADODB_ACTIVE_DEFVALS;
--
-- $activedb = $_ADODB_ACTIVE_DBS[$this->_dbat];
--
-- $table = $this->_table;
-- $tables = $activedb->tables;
-- $tableat = $this->_tableat;
-- if (!$forceUpdate && !empty($tables[$tableat])) {
--
-- $tobj = $tables[$tableat];
-- foreach($tobj->flds as $name => $fld) {
-- if ($ADODB_ACTIVE_DEFVALS && isset($fld->default_value))
-- $this->$name = $fld->default_value;
-- else
-- $this->$name = null;
-- }
-- return;
-- }
-- $db = $activedb->db;
-- $fname = $ADODB_CACHE_DIR . '/adodb_' . $db->databaseType . '_active_'. $table . '.cache';
-- if (!$forceUpdate && $ADODB_ACTIVE_CACHESECS && $ADODB_CACHE_DIR && file_exists($fname)) {
-- $fp = fopen($fname,'r');
-- @flock($fp, LOCK_SH);
-- $acttab = unserialize(fread($fp,100000));
-- fclose($fp);
-- if ($acttab->_created + $ADODB_ACTIVE_CACHESECS - (abs(rand()) % 16) > time()) {
-- // abs(rand()) randomizes deletion, reducing contention to delete/refresh file
-- // ideally, you should cache at least 32 secs
-- $activedb->tables[$table] = $acttab;
--
-- //if ($db->debug) ADOConnection::outp("Reading cached active record file: $fname");
-- return;
-- } else if ($db->debug) {
-- ADOConnection::outp("Refreshing cached active record file: $fname");
-- }
-- }
-- $activetab = new ADODB_Active_Table();
-- $activetab->name = $table;
--
--
-- $cols = $db->MetaColumns($table);
-- if (!$cols) {
-- $this->Error("Invalid table name: $table",'UpdateActiveTable');
-- return false;
-- }
-- $fld = reset($cols);
-- if (!$pkeys) {
-- if (isset($fld->primary_key)) {
-- $pkeys = array();
-- foreach($cols as $name => $fld) {
-- if (!empty($fld->primary_key)) $pkeys[] = $name;
-- }
-- } else
-- $pkeys = $this->GetPrimaryKeys($db, $table);
-- }
-- if (empty($pkeys)) {
-- $this->Error("No primary key found for table $table",'UpdateActiveTable');
-- return false;
-- }
--
-- $attr = array();
-- $keys = array();
--
-- switch($ADODB_ASSOC_CASE) {
-- case 0:
-- foreach($cols as $name => $fldobj) {
-- $name = strtolower($name);
-- if ($ADODB_ACTIVE_DEFVALS && isset($fldobj->default_value))
-- $this->$name = $fldobj->default_value;
-- else
-- $this->$name = null;
-- $attr[$name] = $fldobj;
-- }
-- foreach($pkeys as $k => $name) {
-- $keys[strtolower($name)] = strtolower($name);
-- }
-- break;
--
-- case 1:
-- foreach($cols as $name => $fldobj) {
-- $name = strtoupper($name);
--
-- if ($ADODB_ACTIVE_DEFVALS && isset($fldobj->default_value))
-- $this->$name = $fldobj->default_value;
-- else
-- $this->$name = null;
-- $attr[$name] = $fldobj;
-- }
--
-- foreach($pkeys as $k => $name) {
-- $keys[strtoupper($name)] = strtoupper($name);
-- }
-- break;
-- default:
-- foreach($cols as $name => $fldobj) {
-- $name = ($fldobj->name);
--
-- if ($ADODB_ACTIVE_DEFVALS && isset($fldobj->default_value))
-- $this->$name = $fldobj->default_value;
-- else
-- $this->$name = null;
-- $attr[$name] = $fldobj;
-- }
-- foreach($pkeys as $k => $name) {
-- $keys[$name] = $cols[$name]->name;
-- }
-- break;
-- }
--
-- $activetab->keys = $keys;
-- $activetab->flds = $attr;
--
-- if ($ADODB_ACTIVE_CACHESECS && $ADODB_CACHE_DIR) {
-- $activetab->_created = time();
-- $s = serialize($activetab);
-- if (!function_exists('adodb_write_file')) include(ADODB_DIR.'/adodb-csvlib.inc.php');
-- adodb_write_file($fname,$s);
-- }
-- if (isset($activedb->tables[$table])) {
-- $oldtab = $activedb->tables[$table];
--
-- if ($oldtab) $activetab->_belongsTo = $oldtab->_belongsTo;
-- if ($oldtab) $activetab->_hasMany = $oldtab->_hasMany;
-- }
-- $activedb->tables[$table] = $activetab;
-- }
--
-- function GetPrimaryKeys(&$db, $table)
-- {
-- return $db->MetaPrimaryKeys($table);
-- }
--
-- // error handler for both PHP4+5.
-- function Error($err,$fn)
-- {
-- global $_ADODB_ACTIVE_DBS;
--
-- $fn = get_class($this).'::'.$fn;
-- $this->_lasterr = $fn.': '.$err;
--
-- if ($this->_dbat < 0) $db = false;
-- else {
-- $activedb = $_ADODB_ACTIVE_DBS[$this->_dbat];
-- $db = $activedb->db;
-- }
--
-- if (function_exists('adodb_throw')) {
-- if (!$db) adodb_throw('ADOdb_Active_Record', $fn, -1, $err, 0, 0, false);
-- else adodb_throw($db->databaseType, $fn, -1, $err, 0, 0, $db);
-- } else
-- if (!$db || $db->debug) ADOConnection::outp($this->_lasterr);
--
-- }
--
-- // return last error message
-- function ErrorMsg()
-- {
-- if (!function_exists('adodb_throw')) {
-- if ($this->_dbat < 0) $db = false;
-- else $db = $this->DB();
--
-- // last error could be database error too
-- if ($db && $db->ErrorMsg()) return $db->ErrorMsg();
-- }
-- return $this->_lasterr;
-- }
--
-- function ErrorNo()
-- {
-- if ($this->_dbat < 0) return -9999; // no database connection...
-- $db = $this->DB();
--
-- return (int) $db->ErrorNo();
-- }
--
--
-- // retrieve ADOConnection from _ADODB_Active_DBs
-- function DB()
-- {
-- global $_ADODB_ACTIVE_DBS;
--
-- if ($this->_dbat < 0) {
-- $false = false;
-- $this->Error("No database connection set: use ADOdb_Active_Record::SetDatabaseAdaptor(\$db)", "DB");
-- return $false;
-- }
-- $activedb = $_ADODB_ACTIVE_DBS[$this->_dbat];
-- $db = $activedb->db;
-- return $db;
-- }
--
-- // retrieve ADODB_Active_Table
-- function &TableInfo()
-- {
-- global $_ADODB_ACTIVE_DBS;
--
-- $activedb = $_ADODB_ACTIVE_DBS[$this->_dbat];
-- $table = $activedb->tables[$this->_tableat];
-- return $table;
-- }
--
--
-- // I have an ON INSERT trigger on a table that sets other columns in the table.
-- // So, I find that for myTable, I want to reload an active record after saving it. -- Malcolm Cook
-- function Reload()
-- {
-- $db =& $this->DB(); if (!$db) return false;
-- $table =& $this->TableInfo();
-- $where = $this->GenWhere($db, $table);
-- return($this->Load($where));
-- }
--
--
-- // set a numeric array (using natural table field ordering) as object properties
-- function Set(&$row)
-- {
-- global $ACTIVE_RECORD_SAFETY;
--
-- $db = $this->DB();
--
-- if (!$row) {
-- $this->_saved = false;
-- return false;
-- }
--
-- $this->_saved = true;
--
-- $table = $this->TableInfo();
-- if ($ACTIVE_RECORD_SAFETY && sizeof($table->flds) != sizeof($row)) {
-- # <AP>
-- $bad_size = TRUE;
-- if (sizeof($row) == 2 * sizeof($table->flds)) {
-- // Only keep string keys
-- $keys = array_filter(array_keys($row), 'is_string');
-- if (sizeof($keys) == sizeof($table->flds))
-- $bad_size = FALSE;
-- }
-- if ($bad_size) {
-- $this->Error("Table structure of $this->_table has changed","Load");
-- return false;
-- }
-- # </AP>
-- }
-- else
-- $keys = array_keys($row);
--
-- # <AP>
-- reset($keys);
-- $this->_original = array();
-- foreach($table->flds as $name=>$fld) {
-- $value = $row[current($keys)];
-- $this->$name = $value;
-- $this->_original[] = $value;
-- next($keys);
-- }
--
-- # </AP>
-- return true;
-- }
--
-- // get last inserted id for INSERT
-- function LastInsertID(&$db,$fieldname)
-- {
-- if ($db->hasInsertID)
-- $val = $db->Insert_ID($this->_table,$fieldname);
-- else
-- $val = false;
--
-- if (is_null($val) || $val === false) {
-- // this might not work reliably in multi-user environment
-- return $db->GetOne("select max(".$fieldname.") from ".$this->_table);
-- }
-- return $val;
-- }
--
-- // quote data in where clause
-- function doquote(&$db, $val,$t)
-- {
-- switch($t) {
-- case 'D':
-- case 'T':
-- if (empty($val)) return 'null';
--
-- case 'B':
-- case 'N':
-- case 'C':
-- case 'X':
-- if (is_null($val)) return 'null';
--
-- if (strncmp($val,"'",1) != 0 && substr($val,strlen($val)-1,1) != "'") {
-- return $db->qstr($val);
-- break;
-- }
-- default:
-- return $val;
-- break;
-- }
-- }
--
-- // generate where clause for an UPDATE/SELECT
-- function GenWhere(&$db, &$table)
-- {
-- $keys = $table->keys;
-- $parr = array();
--
-- foreach($keys as $k) {
-- $f = $table->flds[$k];
-- if ($f) {
-- $parr[] = $k.' = '.$this->doquote($db,$this->$k,$db->MetaType($f->type));
-- }
-- }
-- return implode(' and ', $parr);
-- }
--
--
-- //------------------------------------------------------------ Public functions below
--
-- function Load($where=null,$bindarr=false)
-- {
-- $db = $this->DB(); if (!$db) return false;
-- $this->_where = $where;
--
-- $save = $db->SetFetchMode(ADODB_FETCH_NUM);
-- $qry = "select * from ".$this->_table;
--
-- if($where) {
-- $qry .= ' WHERE '.$where;
-- }
-- $row = $db->GetRow($qry,$bindarr);
--
--
-- $db->SetFetchMode($save);
--
-- return $this->Set($row);
-- }
--
-- // false on error
-- function Save()
-- {
-- if ($this->_saved) $ok = $this->Update();
-- else $ok = $this->Insert();
--
-- return $ok;
-- }
--
-- // false on error
-- function Insert()
-- {
-- $db = $this->DB(); if (!$db) return false;
-- $cnt = 0;
-- $table = $this->TableInfo();
--
-- $valarr = array();
-- $names = array();
-- $valstr = array();
--
-- foreach($table->flds as $name=>$fld) {
-- $val = $this->$name;
-- if(!is_null($val) || !array_key_exists($name, $table->keys)) {
-- $valarr[] = $val;
-- $names[] = $name;
-- $valstr[] = $db->Param($cnt);
-- $cnt += 1;
-- }
-- }
--
-- if (empty($names)){
-- foreach($table->flds as $name=>$fld) {
-- $valarr[] = null;
-- $names[] = $name;
-- $valstr[] = $db->Param($cnt);
-- $cnt += 1;
-- }
-- }
-- $sql = 'INSERT INTO '.$this->_table."(".implode(',',$names).') VALUES ('.implode(',',$valstr).')';
-- $ok = $db->Execute($sql,$valarr);
--
-- if ($ok) {
-- $this->_saved = true;
-- $autoinc = false;
-- foreach($table->keys as $k) {
-- if (is_null($this->$k)) {
-- $autoinc = true;
-- break;
-- }
-- }
-- if ($autoinc && sizeof($table->keys) == 1) {
-- $k = reset($table->keys);
-- $this->$k = $this->LastInsertID($db,$k);
-- }
-- }
--
-- $this->_original = $valarr;
-- return !empty($ok);
-- }
--
-- function Delete()
-- {
-- $db = $this->DB(); if (!$db) return false;
-- $table = $this->TableInfo();
--
-- $where = $this->GenWhere($db,$table);
-- $sql = 'DELETE FROM '.$this->_table.' WHERE '.$where;
-- $ok = $db->Execute($sql);
--
-- return $ok ? true : false;
-- }
--
-- // returns an array of active record objects
-- function Find($whereOrderBy,$bindarr=false,$pkeysArr=false,$extra=array())
-- {
-- $db = $this->DB(); if (!$db || empty($this->_table)) return false;
-- $arr = $db->GetActiveRecordsClass(get_class($this),$this->_table, $whereOrderBy,$bindarr,$pkeysArr,$extra);
-- return $arr;
-- }
--
-- // returns 0 on error, 1 on update, 2 on insert
-- function Replace()
-- {
-- global $ADODB_ASSOC_CASE;
--
-- $db = $this->DB(); if (!$db) return false;
-- $table = $this->TableInfo();
--
-- $pkey = $table->keys;
--
-- foreach($table->flds as $name=>$fld) {
-- $val = $this->$name;
-- /*
-- if (is_null($val)) {
-- if (isset($fld->not_null) && $fld->not_null) {
-- if (isset($fld->default_value) && strlen($fld->default_value)) continue;
-- else {
-- $this->Error("Cannot update null into $name","Replace");
-- return false;
-- }
-- }
-- }*/
-- if (is_null($val) && !empty($fld->auto_increment)) {
-- continue;
-- }
-- $t = $db->MetaType($fld->type);
-- $arr[$name] = $this->doquote($db,$val,$t);
-- $valarr[] = $val;
-- }
--
-- if (!is_array($pkey)) $pkey = array($pkey);
--
--
-- if ($ADODB_ASSOC_CASE == 0)
-- foreach($pkey as $k => $v)
-- $pkey[$k] = strtolower($v);
-- elseif ($ADODB_ASSOC_CASE == 1)
-- foreach($pkey as $k => $v)
-- $pkey[$k] = strtoupper($v);
--
-- $ok = $db->Replace($this->_table,$arr,$pkey);
-- if ($ok) {
-- $this->_saved = true; // 1= update 2=insert
-- if ($ok == 2) {
-- $autoinc = false;
-- foreach($table->keys as $k) {
-- if (is_null($this->$k)) {
-- $autoinc = true;
-- break;
-- }
-- }
-- if ($autoinc && sizeof($table->keys) == 1) {
-- $k = reset($table->keys);
-- $this->$k = $this->LastInsertID($db,$k);
-- }
-- }
--
-- $this->_original = $valarr;
-- }
-- return $ok;
-- }
--
-- // returns 0 on error, 1 on update, -1 if no change in data (no update)
-- function Update()
-- {
-- $db = $this->DB(); if (!$db) return false;
-- $table = $this->TableInfo();
--
-- $where = $this->GenWhere($db, $table);
--
-- if (!$where) {
-- $this->error("Where missing for table $table", "Update");
-- return false;
-- }
-- $valarr = array();
-- $neworig = array();
-- $pairs = array();
-- $i = -1;
-- $cnt = 0;
-- foreach($table->flds as $name=>$fld) {
-- $i += 1;
-- $val = $this->$name;
-- $neworig[] = $val;
--
-- if (isset($table->keys[$name])) {
-- continue;
-- }
--
-- if (is_null($val)) {
-- if (isset($fld->not_null) && $fld->not_null) {
-- if (isset($fld->default_value) && strlen($fld->default_value)) continue;
-- else {
-- $this->Error("Cannot set field $name to NULL","Update");
-- return false;
-- }
-- }
-- }
--
-- if (isset($this->_original[$i]) && $val == $this->_original[$i]) {
-- continue;
-- }
-- $valarr[] = $val;
-- $pairs[] = $name.'='.$db->Param($cnt);
-- $cnt += 1;
-- }
--
--
-- if (!$cnt) return -1;
-- $sql = 'UPDATE '.$this->_table." SET ".implode(",",$pairs)." WHERE ".$where;
-- $ok = $db->Execute($sql,$valarr);
-- if ($ok) {
-- $this->_original = $neworig;
-- return 1;
-- }
-- return 0;
-- }
--
-- function GetAttributeNames()
-- {
-- $table = $this->TableInfo();
-- if (!$table) return false;
-- return array_keys($table->flds);
-- }
--
--};
--
--function adodb_GetActiveRecordsClass(&$db, $class, $table,$whereOrderBy,$bindarr, $primkeyArr,
-- $extra)
--{
--global $_ADODB_ACTIVE_DBS;
--
--
-- $save = $db->SetFetchMode(ADODB_FETCH_NUM);
-- $qry = "select * from ".$table;
--
-- if (!empty($whereOrderBy))
-- $qry .= ' WHERE '.$whereOrderBy;
-- if(isset($extra['limit']))
-- {
-- $rows = false;
-- if(isset($extra['offset'])) {
-- $rs = $db->SelectLimit($qry, $extra['limit'], $extra['offset']);
-- } else {
-- $rs = $db->SelectLimit($qry, $extra['limit']);
-- }
-- if ($rs) {
-- while (!$rs->EOF) {
-- $rows[] = $rs->fields;
-- $rs->MoveNext();
-- }
-- }
-- } else
-- $rows = $db->GetAll($qry,$bindarr);
--
-- $db->SetFetchMode($save);
--
-- $false = false;
--
-- if ($rows === false) {
-- return $false;
-- }
--
--
-- if (!class_exists($class)) {
-- $db->outp_throw("Unknown class $class in GetActiveRecordsClass()",'GetActiveRecordsClass');
-- return $false;
-- }
-- $arr = array();
-- // arrRef will be the structure that knows about our objects.
-- // It is an associative array.
-- // We will, however, return arr, preserving regular 0.. order so that
-- // obj[0] can be used by app developpers.
-- $arrRef = array();
-- $bTos = array(); // Will store belongTo's indices if any
-- foreach($rows as $row) {
--
-- $obj = new $class($table,$primkeyArr,$db);
-- if ($obj->ErrorNo()){
-- $db->_errorMsg = $obj->ErrorMsg();
-- return $false;
-- }
-- $obj->Set($row);
-- $arr[] = $obj;
-- } // foreach($rows as $row)
--
-- return $arr;
--}
--?>
-\ No newline at end of file
-diff -aburN --exclude='.svn*' inc/adodb5/adodb-active-recordx.inc.php inc/adodb/adodb-active-recordx.inc.php
---- inc/adodb5/adodb-active-recordx.inc.php 2008-10-29 18:14:48.000000000 +1100
-+++ inc/adodb/adodb-active-recordx.inc.php 1970-01-01 10:00:00.000000000 +1000
-@@ -1,1413 +0,0 @@
--<?php
--/*
--
--@version V5.06 29 Sept 2008 (c) 2000-2008 John Lim (jlim#natsoft.com). All rights reserved.
-- Latest version is available at http://adodb.sourceforge.net
--
-- Released under both BSD license and Lesser GPL library license.
-- Whenever there is any discrepancy between the two licenses,
-- the BSD license will take precedence.
--
-- Active Record implementation. Superset of Zend Framework's.
--
-- This is "Active Record eXtended" to support JOIN, WORK and LAZY mode by Chris Ravenscroft chris#voilaweb.com
--
-- Version 0.9
--
-- See http://www-128.ibm.com/developerworks/java/library/j-cb03076/?ca=dgr-lnxw01ActiveRecord
-- for info on Ruby on Rails Active Record implementation
--*/
--
--
-- // CFR: Active Records Definitions
--define('ADODB_JOIN_AR', 0x01);
--define('ADODB_WORK_AR', 0x02);
--define('ADODB_LAZY_AR', 0x03);
--
--
--global $_ADODB_ACTIVE_DBS;
--global $ADODB_ACTIVE_CACHESECS; // set to true to enable caching of metadata such as field info
--global $ACTIVE_RECORD_SAFETY; // set to false to disable safety checks
--global $ADODB_ACTIVE_DEFVALS; // use default values of table definition when creating new active record.
--
--// array of ADODB_Active_DB's, indexed by ADODB_Active_Record->_dbat
--$_ADODB_ACTIVE_DBS = array();
--$ACTIVE_RECORD_SAFETY = true; // CFR: disabled while playing with relations
--$ADODB_ACTIVE_DEFVALS = false;
--
--class ADODB_Active_DB {
-- var $db; // ADOConnection
-- var $tables; // assoc array of ADODB_Active_Table objects, indexed by tablename
--}
--
--class ADODB_Active_Table {
-- var $name; // table name
-- var $flds; // assoc array of adofieldobjs, indexed by fieldname
-- var $keys; // assoc array of primary keys, indexed by fieldname
-- var $_created; // only used when stored as a cached file
-- var $_belongsTo = array();
-- var $_hasMany = array();
-- var $_colsCount; // total columns count, including relations
--
-- function updateColsCount()
-- {
-- $this->_colsCount = sizeof($this->flds);
-- foreach($this->_belongsTo as $foreignTable)
-- $this->_colsCount += sizeof($foreignTable->TableInfo()->flds);
-- foreach($this->_hasMany as $foreignTable)
-- $this->_colsCount += sizeof($foreignTable->TableInfo()->flds);
-- }
--}
--
--// returns index into $_ADODB_ACTIVE_DBS
--function ADODB_SetDatabaseAdapter(&$db)
--{
-- global $_ADODB_ACTIVE_DBS;
--
-- foreach($_ADODB_ACTIVE_DBS as $k => $d) {
-- if (PHP_VERSION >= 5) {
-- if ($d->db === $db) return $k;
-- } else {
-- if ($d->db->_connectionID === $db->_connectionID && $db->database == $d->db->database)
-- return $k;
-- }
-- }
--
-- $obj = new ADODB_Active_DB();
-- $obj->db = $db;
-- $obj->tables = array();
--
-- $_ADODB_ACTIVE_DBS[] = $obj;
--
-- return sizeof($_ADODB_ACTIVE_DBS)-1;
--}
--
--
--class ADODB_Active_Record {
-- static $_changeNames = true; // dynamically pluralize table names
-- static $_foreignSuffix = '_id'; //
-- var $_dbat; // associative index pointing to ADODB_Active_DB eg. $ADODB_Active_DBS[_dbat]
-- var $_table; // tablename, if set in class definition then use it as table name
-- var $_sTable; // singularized table name
-- var $_pTable; // pluralized table name
-- var $_tableat; // associative index pointing to ADODB_Active_Table, eg $ADODB_Active_DBS[_dbat]->tables[$this->_tableat]
-- var $_where; // where clause set in Load()
-- var $_saved = false; // indicates whether data is already inserted.
-- var $_lasterr = false; // last error message
-- var $_original = false; // the original values loaded or inserted, refreshed on update
--
-- var $foreignName; // CFR: class name when in a relationship
--
-- static function UseDefaultValues($bool=null)
-- {
-- global $ADODB_ACTIVE_DEFVALS;
-- if (isset($bool)) $ADODB_ACTIVE_DEFVALS = $bool;
-- return $ADODB_ACTIVE_DEFVALS;
-- }
--
-- // should be static
-- static function SetDatabaseAdapter(&$db)
-- {
-- return ADODB_SetDatabaseAdapter($db);
-- }
--
--
-- public function __set($name, $value)
-- {
-- $name = str_replace(' ', '_', $name);
-- $this->$name = $value;
-- }
--
-- // php5 constructor
-- // Note: if $table is defined, then we will use it as our table name
-- // Otherwise we will use our classname...
-- // In our database, table names are pluralized (because there can be
-- // more than one row!)
-- // Similarly, if $table is defined here, it has to be plural form.
-- //
-- // $options is an array that allows us to tweak the constructor's behaviour
-- // if $options['refresh'] is true, we re-scan our metadata information
-- // if $options['new'] is true, we forget all relations
-- function __construct($table = false, $pkeyarr=false, $db=false, $options=array())
-- {
-- global $ADODB_ASSOC_CASE,$_ADODB_ACTIVE_DBS;
--
-- if ($db == false && is_object($pkeyarr)) {
-- $db = $pkeyarr;
-- $pkeyarr = false;
-- }
--
-- if($table)
-- {
-- // table argument exists. It is expected to be
-- // already plural form.
-- $this->_pTable = $table;
-- $this->_sTable = $this->_singularize($this->_pTable);
-- }
-- else
-- {
-- // We will use current classname as table name.
-- // We need to pluralize it for the real table name.
-- $this->_sTable = strtolower(get_class($this));
-- $this->_pTable = $this->_pluralize($this->_sTable);
-- }
-- $this->_table = &$this->_pTable;
--
-- $this->foreignName = $this->_sTable; // CFR: default foreign name (singular)
--
-- if ($db) {
-- $this->_dbat = ADODB_Active_Record::SetDatabaseAdapter($db);
-- } else
-- $this->_dbat = sizeof($_ADODB_ACTIVE_DBS)-1;
--
--
-- if ($this->_dbat < 0) $this->Error("No database connection set; use ADOdb_Active_Record::SetDatabaseAdapter(\$db)",'ADODB_Active_Record::__constructor');
--
-- $this->_tableat = $this->_table; # reserved for setting the assoc value to a non-table name, eg. the sql string in future
--
-- // CFR: Just added this option because UpdateActiveTable() can refresh its information
-- // but there was no way to ask it to do that.
-- $forceUpdate = (isset($options['refresh']) && true === $options['refresh']);
-- $this->UpdateActiveTable($pkeyarr, $forceUpdate);
-- if(isset($options['new']) && true === $options['new'])
-- {
-- $table =& $this->TableInfo();
-- unset($table->_hasMany);
-- unset($table->_belongsTo);
-- $table->_hasMany = array();
-- $table->_belongsTo = array();
-- }
-- }
--
-- function __wakeup()
-- {
-- $class = get_class($this);
-- new $class;
-- }
--
-- // CFR: Constants found in Rails
-- static $IrregularP = array(
-- 'PERSON' => 'people',
-- 'MAN' => 'men',
-- 'WOMAN' => 'women',
-- 'CHILD' => 'children',
-- 'COW' => 'kine',
-- );
--
-- static $IrregularS = array(
-- 'PEOPLE' => 'PERSON',
-- 'MEN' => 'man',
-- 'WOMEN' => 'woman',
-- 'CHILDREN' => 'child',
-- 'KINE' => 'cow',
-- );
--
-- static $WeIsI = array(
-- 'EQUIPMENT' => true,
-- 'INFORMATION' => true,
-- 'RICE' => true,
-- 'MONEY' => true,
-- 'SPECIES' => true,
-- 'SERIES' => true,
-- 'FISH' => true,
-- 'SHEEP' => true,
-- );
--
-- function _pluralize($table)
-- {
-- if (!ADODB_Active_Record::$_changeNames) return $table;
--
-- $ut = strtoupper($table);
-- if(isset(self::$WeIsI[$ut]))
-- {
-- return $table;
-- }
-- if(isset(self::$IrregularP[$ut]))
-- {
-- return self::$IrregularP[$ut];
-- }
-- $len = strlen($table);
-- $lastc = $ut[$len-1];
-- $lastc2 = substr($ut,$len-2);
-- switch ($lastc) {
-- case 'S':
-- return $table.'es';
-- case 'Y':
-- return substr($table,0,$len-1).'ies';
-- case 'X':
-- return $table.'es';
-- case 'H':
-- if ($lastc2 == 'CH' || $lastc2 == 'SH')
-- return $table.'es';
-- default:
-- return $table.'s';
-- }
-- }
--
-- // CFR Lamest singular inflector ever - @todo Make it real!
-- // Note: There is an assumption here...and it is that the argument's length >= 4
-- function _singularize($table)
-- {
--
-- if (!ADODB_Active_Record::$_changeNames) return $table;
--
-- $ut = strtoupper($table);
-- if(isset(self::$WeIsI[$ut]))
-- {
-- return $table;
-- }
-- if(isset(self::$IrregularS[$ut]))
-- {
-- return self::$IrregularS[$ut];
-- }
-- $len = strlen($table);
-- if($ut[$len-1] != 'S')
-- return $table; // I know...forget oxen
-- if($ut[$len-2] != 'E')
-- return substr($table, 0, $len-1);
-- switch($ut[$len-3])
-- {
-- case 'S':
-- case 'X':
-- return substr($table, 0, $len-2);
-- case 'I':
-- return substr($table, 0, $len-3) . 'y';
-- case 'H';
-- if($ut[$len-4] == 'C' || $ut[$len-4] == 'S')
-- return substr($table, 0, $len-2);
-- default:
-- return substr($table, 0, $len-1); // ?
-- }
-- }
--
-- /*
-- * ar->foreignName will contain the name of the tables associated with this table because
-- * these other tables' rows may also be referenced by this table using theirname_id or the provided
-- * foreign keys (this index name is stored in ar->foreignKey)
-- *
-- * this-table.id = other-table-#1.this-table_id
-- * = other-table-#2.this-table_id
-- */
-- function hasMany($foreignRef,$foreignKey=false)
-- {
-- $ar = new ADODB_Active_Record($foreignRef);
-- $ar->foreignName = $foreignRef;
-- $ar->UpdateActiveTable();
-- $ar->foreignKey = ($foreignKey) ? $foreignKey : strtolower(get_class($this)) . self::$_foreignSuffix;
--
-- $table =& $this->TableInfo();
-- if(!isset($table->_hasMany[$foreignRef]))
-- {
-- $table->_hasMany[$foreignRef] = $ar;
-- $table->updateColsCount();
-- }
--# @todo Can I make this guy be lazy?
-- $this->$foreignRef = $table->_hasMany[$foreignRef]; // WATCHME Removed assignment by ref. to please __get()
-- }
--
-- /**
-- * ar->foreignName will contain the name of the tables associated with this table because
-- * this table's rows may also be referenced by those tables using thistable_id or the provided
-- * foreign keys (this index name is stored in ar->foreignKey)
-- *
-- * this-table.other-table_id = other-table.id
-- */
-- function belongsTo($foreignRef,$foreignKey=false)
-- {
-- global $inflector;
--
-- $ar = new ADODB_Active_Record($this->_pluralize($foreignRef));
-- $ar->foreignName = $foreignRef;
-- $ar->UpdateActiveTable();
-- $ar->foreignKey = ($foreignKey) ? $foreignKey : $ar->foreignName . self::$_foreignSuffix;
--
-- $table =& $this->TableInfo();
-- if(!isset($table->_belongsTo[$foreignRef]))
-- {
-- $table->_belongsTo[$foreignRef] = $ar;
-- $table->updateColsCount();
-- }
-- $this->$foreignRef = $table->_belongsTo[$foreignRef];
-- }
--
-- /**
-- * __get Access properties - used for lazy loading
-- *
-- * @param mixed $name
-- * @access protected
-- * @return void
-- */
-- function __get($name)
-- {
-- return $this->LoadRelations($name, '', -1. -1);
-- }
--
-- function LoadRelations($name, $whereOrderBy, $offset=-1, $limit=-1)
-- {
-- $extras = array();
-- if($offset >= 0) $extras['offset'] = $offset;
-- if($limit >= 0) $extras['limit'] = $limit;
-- $table =& $this->TableInfo();
--
-- if (strlen($whereOrderBy))
-- if (!preg_match('/^[ \n\r]*AND/i',$whereOrderBy))
-- if (!preg_match('/^[ \n\r]*ORDER[ \n\r]/i',$whereOrderBy))
-- $whereOrderBy = 'AND '.$whereOrderBy;
--
-- if(!empty($table->_belongsTo[$name]))
-- {
-- $obj = $table->_belongsTo[$name];
-- $columnName = $obj->foreignKey;
-- if(empty($this->$columnName))
-- $this->$name = null;
-- else
-- {
-- if(($k = reset($obj->TableInfo()->keys)))
-- $belongsToId = $k;
-- else
-- $belongsToId = 'id';
--
-- $arrayOfOne =
-- $obj->Find(
-- $belongsToId.'='.$this->$columnName.' '.$whereOrderBy, false, false, $extras);
-- $this->$name = $arrayOfOne[0];
-- }
-- return $this->$name;
-- }
-- if(!empty($table->_hasMany[$name]))
-- {
-- $obj = $table->_hasMany[$name];
-- if(($k = reset($table->keys)))
-- $hasManyId = $k;
-- else
-- $hasManyId = 'id';
--
-- $this->$name =
-- $obj->Find(
-- $obj->foreignKey.'='.$this->$hasManyId.' '.$whereOrderBy, false, false, $extras);
-- return $this->$name;
-- }
-- }
-- //////////////////////////////////
--
-- // update metadata
-- function UpdateActiveTable($pkeys=false,$forceUpdate=false)
-- {
-- global $ADODB_ASSOC_CASE,$_ADODB_ACTIVE_DBS , $ADODB_CACHE_DIR, $ADODB_ACTIVE_CACHESECS;
-- global $ADODB_ACTIVE_DEFVALS;
--
-- $activedb = $_ADODB_ACTIVE_DBS[$this->_dbat];
--
-- $table = $this->_table;
-- $tables = $activedb->tables;
-- $tableat = $this->_tableat;
-- if (!$forceUpdate && !empty($tables[$tableat])) {
--
-- $tobj = $tables[$tableat];
-- foreach($tobj->flds as $name => $fld) {
-- if ($ADODB_ACTIVE_DEFVALS && isset($fld->default_value))
-- $this->$name = $fld->default_value;
-- else
-- $this->$name = null;
-- }
-- return;
-- }
--
-- $db = $activedb->db;
-- $fname = $ADODB_CACHE_DIR . '/adodb_' . $db->databaseType . '_active_'. $table . '.cache';
-- if (!$forceUpdate && $ADODB_ACTIVE_CACHESECS && $ADODB_CACHE_DIR && file_exists($fname)) {
-- $fp = fopen($fname,'r');
-- @flock($fp, LOCK_SH);
-- $acttab = unserialize(fread($fp,100000));
-- fclose($fp);
-- if ($acttab->_created + $ADODB_ACTIVE_CACHESECS - (abs(rand()) % 16) > time()) {
-- // abs(rand()) randomizes deletion, reducing contention to delete/refresh file
-- // ideally, you should cache at least 32 secs
-- $activedb->tables[$table] = $acttab;
--
-- //if ($db->debug) ADOConnection::outp("Reading cached active record file: $fname");
-- return;
-- } else if ($db->debug) {
-- ADOConnection::outp("Refreshing cached active record file: $fname");
-- }
-- }
-- $activetab = new ADODB_Active_Table();
-- $activetab->name = $table;
--
--
-- $cols = $db->MetaColumns($table);
-- if (!$cols) {
-- $this->Error("Invalid table name: $table",'UpdateActiveTable');
-- return false;
-- }
-- $fld = reset($cols);
-- if (!$pkeys) {
-- if (isset($fld->primary_key)) {
-- $pkeys = array();
-- foreach($cols as $name => $fld) {
-- if (!empty($fld->primary_key)) $pkeys[] = $name;
-- }
-- } else
-- $pkeys = $this->GetPrimaryKeys($db, $table);
-- }
-- if (empty($pkeys)) {
-- $this->Error("No primary key found for table $table",'UpdateActiveTable');
-- return false;
-- }
--
-- $attr = array();
-- $keys = array();
--
-- switch($ADODB_ASSOC_CASE) {
-- case 0:
-- foreach($cols as $name => $fldobj) {
-- $name = strtolower($name);
-- if ($ADODB_ACTIVE_DEFVALS && isset($fldobj->default_value))
-- $this->$name = $fldobj->default_value;
-- else
-- $this->$name = null;
-- $attr[$name] = $fldobj;
-- }
-- foreach($pkeys as $k => $name) {
-- $keys[strtolower($name)] = strtolower($name);
-- }
-- break;
--
-- case 1:
-- foreach($cols as $name => $fldobj) {
-- $name = strtoupper($name);
--
-- if ($ADODB_ACTIVE_DEFVALS && isset($fldobj->default_value))
-- $this->$name = $fldobj->default_value;
-- else
-- $this->$name = null;
-- $attr[$name] = $fldobj;
-- }
--
-- foreach($pkeys as $k => $name) {
-- $keys[strtoupper($name)] = strtoupper($name);
-- }
-- break;
-- default:
-- foreach($cols as $name => $fldobj) {
-- $name = ($fldobj->name);
--
-- if ($ADODB_ACTIVE_DEFVALS && isset($fldobj->default_value))
-- $this->$name = $fldobj->default_value;
-- else
-- $this->$name = null;
-- $attr[$name] = $fldobj;
-- }
-- foreach($pkeys as $k => $name) {
-- $keys[$name] = $cols[$name]->name;
-- }
-- break;
-- }
--
-- $activetab->keys = $keys;
-- $activetab->flds = $attr;
-- $activetab->updateColsCount();
--
-- if ($ADODB_ACTIVE_CACHESECS && $ADODB_CACHE_DIR) {
-- $activetab->_created = time();
-- $s = serialize($activetab);
-- if (!function_exists('adodb_write_file')) include(ADODB_DIR.'/adodb-csvlib.inc.php');
-- adodb_write_file($fname,$s);
-- }
-- if (isset($activedb->tables[$table])) {
-- $oldtab = $activedb->tables[$table];
--
-- if ($oldtab) $activetab->_belongsTo = $oldtab->_belongsTo;
-- if ($oldtab) $activetab->_hasMany = $oldtab->_hasMany;
-- }
-- $activedb->tables[$table] = $activetab;
-- }
--
-- function GetPrimaryKeys(&$db, $table)
-- {
-- return $db->MetaPrimaryKeys($table);
-- }
--
-- // error handler for both PHP4+5.
-- function Error($err,$fn)
-- {
-- global $_ADODB_ACTIVE_DBS;
--
-- $fn = get_class($this).'::'.$fn;
-- $this->_lasterr = $fn.': '.$err;
--
-- if ($this->_dbat < 0) $db = false;
-- else {
-- $activedb = $_ADODB_ACTIVE_DBS[$this->_dbat];
-- $db = $activedb->db;
-- }
--
-- if (function_exists('adodb_throw')) {
-- if (!$db) adodb_throw('ADOdb_Active_Record', $fn, -1, $err, 0, 0, false);
-- else adodb_throw($db->databaseType, $fn, -1, $err, 0, 0, $db);
-- } else
-- if (!$db || $db->debug) ADOConnection::outp($this->_lasterr);
--
-- }
--
-- // return last error message
-- function ErrorMsg()
-- {
-- if (!function_exists('adodb_throw')) {
-- if ($this->_dbat < 0) $db = false;
-- else $db = $this->DB();
--
-- // last error could be database error too
-- if ($db && $db->ErrorMsg()) return $db->ErrorMsg();
-- }
-- return $this->_lasterr;
-- }
--
-- function ErrorNo()
-- {
-- if ($this->_dbat < 0) return -9999; // no database connection...
-- $db = $this->DB();
--
-- return (int) $db->ErrorNo();
-- }
--
--
-- // retrieve ADOConnection from _ADODB_Active_DBs
-- function DB()
-- {
-- global $_ADODB_ACTIVE_DBS;
--
-- if ($this->_dbat < 0) {
-- $false = false;
-- $this->Error("No database connection set: use ADOdb_Active_Record::SetDatabaseAdaptor(\$db)", "DB");
-- return $false;
-- }
-- $activedb = $_ADODB_ACTIVE_DBS[$this->_dbat];
-- $db = $activedb->db;
-- return $db;
-- }
--
-- // retrieve ADODB_Active_Table
-- function &TableInfo()
-- {
-- global $_ADODB_ACTIVE_DBS;
--
-- $activedb = $_ADODB_ACTIVE_DBS[$this->_dbat];
-- $table = $activedb->tables[$this->_tableat];
-- return $table;
-- }
--
--
-- // I have an ON INSERT trigger on a table that sets other columns in the table.
-- // So, I find that for myTable, I want to reload an active record after saving it. -- Malcolm Cook
-- function Reload()
-- {
-- $db =& $this->DB(); if (!$db) return false;
-- $table =& $this->TableInfo();
-- $where = $this->GenWhere($db, $table);
-- return($this->Load($where));
-- }
--
--
-- // set a numeric array (using natural table field ordering) as object properties
-- function Set(&$row)
-- {
-- global $ACTIVE_RECORD_SAFETY;
--
-- $db = $this->DB();
--
-- if (!$row) {
-- $this->_saved = false;
-- return false;
-- }
--
-- $this->_saved = true;
--
-- $table = $this->TableInfo();
-- $sizeofFlds = sizeof($table->flds);
-- $sizeofRow = sizeof($row);
-- if ($ACTIVE_RECORD_SAFETY && $table->_colsCount != $sizeofRow && $sizeofFlds != $sizeofRow) {
-- # <AP>
-- $bad_size = TRUE;
-- if($sizeofRow == 2 * $table->_colsCount || $sizeofRow == 2 * $sizeofFlds) {
-- // Only keep string keys
-- $keys = array_filter(array_keys($row), 'is_string');
-- if (sizeof($keys) == sizeof($table->flds))
-- $bad_size = FALSE;
-- }
-- if ($bad_size) {
-- $this->Error("Table structure of $this->_table has changed","Load");
-- return false;
-- }
-- # </AP>
-- }
-- else
-- $keys = array_keys($row);
-- # <AP>
-- reset($keys);
-- $this->_original = array();
-- foreach($table->flds as $name=>$fld)
-- {
-- $value = $row[current($keys)];
-- $this->$name = $value;
-- $this->_original[] = $value;
-- if(!next($keys)) break;
-- }
-- $table =& $this->TableInfo();
-- foreach($table->_belongsTo as $foreignTable)
-- {
-- $ft = $foreignTable->TableInfo();
-- $propertyName = $ft->name;
-- foreach($ft->flds as $name=>$fld)
-- {
-- $value = $row[current($keys)];
-- $foreignTable->$name = $value;
-- $foreignTable->_original[] = $value;
-- if(!next($keys)) break;
-- }
-- }
-- foreach($table->_hasMany as $foreignTable)
-- {
-- $ft = $foreignTable->TableInfo();
-- foreach($ft->flds as $name=>$fld)
-- {
-- $value = $row[current($keys)];
-- $foreignTable->$name = $value;
-- $foreignTable->_original[] = $value;
-- if(!next($keys)) break;
-- }
-- }
-- # </AP>
-- return true;
-- }
--
-- // get last inserted id for INSERT
-- function LastInsertID(&$db,$fieldname)
-- {
-- if ($db->hasInsertID)
-- $val = $db->Insert_ID($this->_table,$fieldname);
-- else
-- $val = false;
--
-- if (is_null($val) || $val === false) {
-- // this might not work reliably in multi-user environment
-- return $db->GetOne("select max(".$fieldname.") from ".$this->_table);
-- }
-- return $val;
-- }
--
-- // quote data in where clause
-- function doquote(&$db, $val,$t)
-- {
-- switch($t) {
-- case 'D':
-- case 'T':
-- if (empty($val)) return 'null';
--
-- case 'C':
-- case 'X':
-- if (is_null($val)) return 'null';
--
-- if (strncmp($val,"'",1) != 0 && substr($val,strlen($val)-1,1) != "'") {
-- return $db->qstr($val);
-- break;
-- }
-- default:
-- return $val;
-- break;
-- }
-- }
--
-- // generate where clause for an UPDATE/SELECT
-- function GenWhere(&$db, &$table)
-- {
-- $keys = $table->keys;
-- $parr = array();
--
-- foreach($keys as $k) {
-- $f = $table->flds[$k];
-- if ($f) {
-- $parr[] = $k.' = '.$this->doquote($db,$this->$k,$db->MetaType($f->type));
-- }
-- }
-- return implode(' and ', $parr);
-- }
--
--
-- //------------------------------------------------------------ Public functions below
--
-- function Load($where=null,$bindarr=false)
-- {
-- $db = $this->DB(); if (!$db) return false;
-- $this->_where = $where;
--
-- $save = $db->SetFetchMode(ADODB_FETCH_NUM);
-- $qry = "select * from ".$this->_table;
-- $table =& $this->TableInfo();
--
-- if(($k = reset($table->keys)))
-- $hasManyId = $k;
-- else
-- $hasManyId = 'id';
--
-- foreach($table->_belongsTo as $foreignTable)
-- {
-- if(($k = reset($foreignTable->TableInfo()->keys)))
-- {
-- $belongsToId = $k;
-- }
-- else
-- {
-- $belongsToId = 'id';
-- }
-- $qry .= ' LEFT JOIN '.$foreignTable->_table.' ON '.
-- $this->_table.'.'.$foreignTable->foreignKey.'='.
-- $foreignTable->_table.'.'.$belongsToId;
-- }
-- foreach($table->_hasMany as $foreignTable)
-- {
-- $qry .= ' LEFT JOIN '.$foreignTable->_table.' ON '.
-- $this->_table.'.'.$hasManyId.'='.
-- $foreignTable->_table.'.'.$foreignTable->foreignKey;
-- }
-- if($where)
-- $qry .= ' WHERE '.$where;
--
-- // Simple case: no relations. Load row and return.
-- if((count($table->_hasMany) + count($table->_belongsTo)) < 1)
-- {
-- $row = $db->GetRow($qry,$bindarr);
-- if(!$row)
-- return false;
-- $db->SetFetchMode($save);
-- return $this->Set($row);
-- }
--
-- // More complex case when relations have to be collated
-- $rows = $db->GetAll($qry,$bindarr);
-- if(!$rows)
-- return false;
-- $db->SetFetchMode($save);
-- if(count($rows) < 1)
-- return false;
-- $class = get_class($this);
-- $isFirstRow = true;
--
-- if(($k = reset($this->TableInfo()->keys)))
-- $myId = $k;
-- else
-- $myId = 'id';
-- $index = 0; $found = false;
-- /** @todo Improve by storing once and for all in table metadata */
-- /** @todo Also re-use info for hasManyId */
-- foreach($this->TableInfo()->flds as $fld)
-- {
-- if($fld->name == $myId)
-- {
-- $found = true;
-- break;
-- }
-- $index++;
-- }
-- if(!$found)
-- $this->outp_throw("Unable to locate key $myId for $class in Load()",'Load');
--
-- foreach($rows as $row)
-- {
-- $rowId = intval($row[$index]);
-- if($rowId > 0)
-- {
-- if($isFirstRow)
-- {
-- $isFirstRow = false;
-- if(!$this->Set($row))
-- return false;
-- }
-- $obj = new $class($table,false,$db);
-- $obj->Set($row);
-- // TODO Copy/paste code below: bad!
-- if(count($table->_hasMany) > 0)
-- {
-- foreach($table->_hasMany as $foreignTable)
-- {
-- $foreignName = $foreignTable->foreignName;
-- if(!empty($obj->$foreignName))
-- {
-- if(!is_array($this->$foreignName))
-- {
-- $foreignObj = $this->$foreignName;
-- $this->$foreignName = array(clone($foreignObj));
-- }
-- else
-- {
-- $foreignObj = $obj->$foreignName;
-- array_push($this->$foreignName, clone($foreignObj));
-- }
-- }
-- }
-- }
-- if(count($table->_belongsTo) > 0)
-- {
-- foreach($table->_belongsTo as $foreignTable)
-- {
-- $foreignName = $foreignTable->foreignName;
-- if(!empty($obj->$foreignName))
-- {
-- if(!is_array($this->$foreignName))
-- {
-- $foreignObj = $this->$foreignName;
-- $this->$foreignName = array(clone($foreignObj));
-- }
-- else
-- {
-- $foreignObj = $obj->$foreignName;
-- array_push($this->$foreignName, clone($foreignObj));
-- }
-- }
-- }
-- }
-- }
-- }
-- return true;
-- }
--
-- // false on error
-- function Save()
-- {
-- if ($this->_saved) $ok = $this->Update();
-- else $ok = $this->Insert();
--
-- return $ok;
-- }
--
-- // CFR: Sometimes we may wish to consider that an object is not to be replaced but inserted.
-- // Sample use case: an 'undo' command object (after a delete())
-- function Dirty()
-- {
-- $this->_saved = false;
-- }
--
-- // false on error
-- function Insert()
-- {
-- $db = $this->DB(); if (!$db) return false;
-- $cnt = 0;
-- $table = $this->TableInfo();
--
-- $valarr = array();
-- $names = array();
-- $valstr = array();
--
-- foreach($table->flds as $name=>$fld) {
-- $val = $this->$name;
-- if(!is_null($val) || !array_key_exists($name, $table->keys)) {
-- $valarr[] = $val;
-- $names[] = $name;
-- $valstr[] = $db->Param($cnt);
-- $cnt += 1;
-- }
-- }
--
-- if (empty($names)){
-- foreach($table->flds as $name=>$fld) {
-- $valarr[] = null;
-- $names[] = $name;
-- $valstr[] = $db->Param($cnt);
-- $cnt += 1;
-- }
-- }
-- $sql = 'INSERT INTO '.$this->_table."(".implode(',',$names).') VALUES ('.implode(',',$valstr).')';
-- $ok = $db->Execute($sql,$valarr);
--
-- if ($ok) {
-- $this->_saved = true;
-- $autoinc = false;
-- foreach($table->keys as $k) {
-- if (is_null($this->$k)) {
-- $autoinc = true;
-- break;
-- }
-- }
-- if ($autoinc && sizeof($table->keys) == 1) {
-- $k = reset($table->keys);
-- $this->$k = $this->LastInsertID($db,$k);
-- }
-- }
--
-- $this->_original = $valarr;
-- return !empty($ok);
-- }
--
-- function Delete()
-- {
-- $db = $this->DB(); if (!$db) return false;
-- $table = $this->TableInfo();
--
-- $where = $this->GenWhere($db,$table);
-- $sql = 'DELETE FROM '.$this->_table.' WHERE '.$where;
-- $ok = $db->Execute($sql);
--
-- return $ok ? true : false;
-- }
--
-- // returns an array of active record objects
-- function Find($whereOrderBy,$bindarr=false,$pkeysArr=false,$extra=array())
-- {
-- $db = $this->DB(); if (!$db || empty($this->_table)) return false;
-- $table =& $this->TableInfo();
-- $arr = $db->GetActiveRecordsClass(get_class($this),$this, $whereOrderBy,$bindarr,$pkeysArr,$extra,
-- array('foreignName'=>$this->foreignName, 'belongsTo'=>$table->_belongsTo, 'hasMany'=>$table->_hasMany));
-- return $arr;
-- }
--
-- // CFR: In introduced this method to ensure that inner workings are not disturbed by
-- // subclasses...for instance when GetActiveRecordsClass invokes Find()
-- // Why am I not invoking parent::Find?
-- // Shockingly because I want to preserve PHP4 compatibility.
-- function packageFind($whereOrderBy,$bindarr=false,$pkeysArr=false,$extra=array())
-- {
-- $db = $this->DB(); if (!$db || empty($this->_table)) return false;
-- $table =& $this->TableInfo();
-- $arr = $db->GetActiveRecordsClass(get_class($this),$this, $whereOrderBy,$bindarr,$pkeysArr,$extra,
-- array('foreignName'=>$this->foreignName, 'belongsTo'=>$table->_belongsTo, 'hasMany'=>$table->_hasMany));
-- return $arr;
-- }
--
-- // returns 0 on error, 1 on update, 2 on insert
-- function Replace()
-- {
-- global $ADODB_ASSOC_CASE;
--
-- $db = $this->DB(); if (!$db) return false;
-- $table = $this->TableInfo();
--
-- $pkey = $table->keys;
--
-- foreach($table->flds as $name=>$fld) {
-- $val = $this->$name;
-- /*
-- if (is_null($val)) {
-- if (isset($fld->not_null) && $fld->not_null) {
-- if (isset($fld->default_value) && strlen($fld->default_value)) continue;
-- else {
-- $this->Error("Cannot update null into $name","Replace");
-- return false;
-- }
-- }
-- }*/
-- if (is_null($val) && !empty($fld->auto_increment)) {
-- continue;
-- }
-- $t = $db->MetaType($fld->type);
-- $arr[$name] = $this->doquote($db,$val,$t);
-- $valarr[] = $val;
-- }
--
-- if (!is_array($pkey)) $pkey = array($pkey);
--
--
-- if ($ADODB_ASSOC_CASE == 0)
-- foreach($pkey as $k => $v)
-- $pkey[$k] = strtolower($v);
-- elseif ($ADODB_ASSOC_CASE == 1)
-- foreach($pkey as $k => $v)
-- $pkey[$k] = strtoupper($v);
--
-- $ok = $db->Replace($this->_table,$arr,$pkey);
-- if ($ok) {
-- $this->_saved = true; // 1= update 2=insert
-- if ($ok == 2) {
-- $autoinc = false;
-- foreach($table->keys as $k) {
-- if (is_null($this->$k)) {
-- $autoinc = true;
-- break;
-- }
-- }
-- if ($autoinc && sizeof($table->keys) == 1) {
-- $k = reset($table->keys);
-- $this->$k = $this->LastInsertID($db,$k);
-- }
-- }
--
-- $this->_original = $valarr;
-- }
-- return $ok;
-- }
--
-- // returns 0 on error, 1 on update, -1 if no change in data (no update)
-- function Update()
-- {
-- $db = $this->DB(); if (!$db) return false;
-- $table = $this->TableInfo();
--
-- $where = $this->GenWhere($db, $table);
--
-- if (!$where) {
-- $this->error("Where missing for table $table", "Update");
-- return false;
-- }
-- $valarr = array();
-- $neworig = array();
-- $pairs = array();
-- $i = -1;
-- $cnt = 0;
-- foreach($table->flds as $name=>$fld) {
-- $i += 1;
-- $val = $this->$name;
-- $neworig[] = $val;
--
-- if (isset($table->keys[$name])) {
-- continue;
-- }
--
-- if (is_null($val)) {
-- if (isset($fld->not_null) && $fld->not_null) {
-- if (isset($fld->default_value) && strlen($fld->default_value)) continue;
-- else {
-- $this->Error("Cannot set field $name to NULL","Update");
-- return false;
-- }
-- }
-- }
--
-- if (isset($this->_original[$i]) && $val == $this->_original[$i]) {
-- continue;
-- }
-- $valarr[] = $val;
-- $pairs[] = $name.'='.$db->Param($cnt);
-- $cnt += 1;
-- }
--
--
-- if (!$cnt) return -1;
-- $sql = 'UPDATE '.$this->_table." SET ".implode(",",$pairs)." WHERE ".$where;
-- $ok = $db->Execute($sql,$valarr);
-- if ($ok) {
-- $this->_original = $neworig;
-- return 1;
-- }
-- return 0;
-- }
--
-- function GetAttributeNames()
-- {
-- $table = $this->TableInfo();
-- if (!$table) return false;
-- return array_keys($table->flds);
-- }
--
--};
--
--function adodb_GetActiveRecordsClass(&$db, $class, $tableObj,$whereOrderBy,$bindarr, $primkeyArr,
-- $extra, $relations)
--{
-- global $_ADODB_ACTIVE_DBS;
--
-- if (empty($extra['loading'])) $extra['loading'] = ADODB_LAZY_AR;
--
-- $save = $db->SetFetchMode(ADODB_FETCH_NUM);
-- $table = &$tableObj->_table;
-- $tableInfo =& $tableObj->TableInfo();
-- if(($k = reset($tableInfo->keys)))
-- $myId = $k;
-- else
-- $myId = 'id';
-- $index = 0; $found = false;
-- /** @todo Improve by storing once and for all in table metadata */
-- /** @todo Also re-use info for hasManyId */
-- foreach($tableInfo->flds as $fld)
-- {
-- if($fld->name == $myId)
-- {
-- $found = true;
-- break;
-- }
-- $index++;
-- }
-- if(!$found)
-- $db->outp_throw("Unable to locate key $myId for $class in GetActiveRecordsClass()",'GetActiveRecordsClass');
--
-- $qry = "select * from ".$table;
-- if(ADODB_JOIN_AR == $extra['loading'])
-- {
-- if(!empty($relations['belongsTo']))
-- {
-- foreach($relations['belongsTo'] as $foreignTable)
-- {
-- if(($k = reset($foreignTable->TableInfo()->keys)))
-- {
-- $belongsToId = $k;
-- }
-- else
-- {
-- $belongsToId = 'id';
-- }
--
-- $qry .= ' LEFT JOIN '.$foreignTable->_table.' ON '.
-- $table.'.'.$foreignTable->foreignKey.'='.
-- $foreignTable->_table.'.'.$belongsToId;
-- }
-- }
-- if(!empty($relations['hasMany']))
-- {
-- if(empty($relations['foreignName']))
-- $db->outp_throw("Missing foreignName is relation specification in GetActiveRecordsClass()",'GetActiveRecordsClass');
-- if(($k = reset($tableInfo->keys)))
-- $hasManyId = $k;
-- else
-- $hasManyId = 'id';
--
-- foreach($relations['hasMany'] as $foreignTable)
-- {
-- $qry .= ' LEFT JOIN '.$foreignTable->_table.' ON '.
-- $table.'.'.$hasManyId.'='.
-- $foreignTable->_table.'.'.$foreignTable->foreignKey;
-- }
-- }
-- }
-- if (!empty($whereOrderBy))
-- $qry .= ' WHERE '.$whereOrderBy;
-- if(isset($extra['limit']))
-- {
-- $rows = false;
-- if(isset($extra['offset'])) {
-- $rs = $db->SelectLimit($qry, $extra['limit'], $extra['offset']);
-- } else {
-- $rs = $db->SelectLimit($qry, $extra['limit']);
-- }
-- if ($rs) {
-- while (!$rs->EOF) {
-- $rows[] = $rs->fields;
-- $rs->MoveNext();
-- }
-- }
-- } else
-- $rows = $db->GetAll($qry,$bindarr);
--
-- $db->SetFetchMode($save);
--
-- $false = false;
--
-- if ($rows === false) {
-- return $false;
-- }
--
--
-- if (!isset($_ADODB_ACTIVE_DBS)) {
-- include(ADODB_DIR.'/adodb-active-record.inc.php');
-- }
-- if (!class_exists($class)) {
-- $db->outp_throw("Unknown class $class in GetActiveRecordsClass()",'GetActiveRecordsClass');
-- return $false;
-- }
-- $uniqArr = array(); // CFR Keep track of records for relations
-- $arr = array();
-- // arrRef will be the structure that knows about our objects.
-- // It is an associative array.
-- // We will, however, return arr, preserving regular 0.. order so that
-- // obj[0] can be used by app developpers.
-- $arrRef = array();
-- $bTos = array(); // Will store belongTo's indices if any
-- foreach($rows as $row) {
--
-- $obj = new $class($table,$primkeyArr,$db);
-- if ($obj->ErrorNo()){
-- $db->_errorMsg = $obj->ErrorMsg();
-- return $false;
-- }
-- $obj->Set($row);
-- // CFR: FIXME: Insane assumption here:
-- // If the first column returned is an integer, then it's a 'id' field
-- // And to make things a bit worse, I use intval() rather than is_int() because, in fact,
-- // $row[0] is not an integer.
-- //
-- // So, what does this whole block do?
-- // When relationships are found, we perform JOINs. This is fast. But not accurate:
-- // instead of returning n objects with their n' associated cousins,
-- // we get n*n' objects. This code fixes this.
-- // Note: to-many relationships mess around with the 'limit' parameter
-- $rowId = intval($row[$index]);
--
-- if(ADODB_WORK_AR == $extra['loading'])
-- {
-- $arrRef[$rowId] = $obj;
-- $arr[] = &$arrRef[$rowId];
-- if(!isset($indices))
-- $indices = $rowId;
-- else
-- $indices .= ','.$rowId;
-- if(!empty($relations['belongsTo']))
-- {
-- foreach($relations['belongsTo'] as $foreignTable)
-- {
-- $foreignTableRef = $foreignTable->foreignKey;
-- // First array: list of foreign ids we are looking for
-- if(empty($bTos[$foreignTableRef]))
-- $bTos[$foreignTableRef] = array();
-- // Second array: list of ids found
-- if(empty($obj->$foreignTableRef))
-- continue;
-- if(empty($bTos[$foreignTableRef][$obj->$foreignTableRef]))
-- $bTos[$foreignTableRef][$obj->$foreignTableRef] = array();
-- $bTos[$foreignTableRef][$obj->$foreignTableRef][] = $obj;
-- }
-- }
-- continue;
-- }
--
-- if($rowId>0)
-- {
-- if(ADODB_JOIN_AR == $extra['loading'])
-- {
-- $isNewObj = !isset($uniqArr['_'.$row[0]]);
-- if($isNewObj)
-- $uniqArr['_'.$row[0]] = $obj;
--
-- // TODO Copy/paste code below: bad!
-- if(!empty($relations['hasMany']))
-- {
-- foreach($relations['hasMany'] as $foreignTable)
-- {
-- $foreignName = $foreignTable->foreignName;
-- if(!empty($obj->$foreignName))
-- {
-- $masterObj = &$uniqArr['_'.$row[0]];
-- // Assumption: this property exists in every object since they are instances of the same class
-- if(!is_array($masterObj->$foreignName))
-- {
-- // Pluck!
-- $foreignObj = $masterObj->$foreignName;
-- $masterObj->$foreignName = array(clone($foreignObj));
-- }
-- else
-- {
-- // Pluck pluck!
-- $foreignObj = $obj->$foreignName;
-- array_push($masterObj->$foreignName, clone($foreignObj));
-- }
-- }
-- }
-- }
-- if(!empty($relations['belongsTo']))
-- {
-- foreach($relations['belongsTo'] as $foreignTable)
-- {
-- $foreignName = $foreignTable->foreignName;
-- if(!empty($obj->$foreignName))
-- {
-- $masterObj = &$uniqArr['_'.$row[0]];
-- // Assumption: this property exists in every object since they are instances of the same class
-- if(!is_array($masterObj->$foreignName))
-- {
-- // Pluck!
-- $foreignObj = $masterObj->$foreignName;
-- $masterObj->$foreignName = array(clone($foreignObj));
-- }
-- else
-- {
-- // Pluck pluck!
-- $foreignObj = $obj->$foreignName;
-- array_push($masterObj->$foreignName, clone($foreignObj));
-- }
-- }
-- }
-- }
-- if(!$isNewObj)
-- unset($obj); // We do not need this object itself anymore and do not want it re-added to the main array
-- }
-- else if(ADODB_LAZY_AR == $extra['loading'])
-- {
-- // Lazy loading: we need to give AdoDb a hint that we have not really loaded
-- // anything, all the while keeping enough information on what we wish to load.
-- // Let's do this by keeping the relevant info in our relationship arrays
-- // but get rid of the actual properties.
-- // We will then use PHP's __get to load these properties on-demand.
-- if(!empty($relations['hasMany']))
-- {
-- foreach($relations['hasMany'] as $foreignTable)
-- {
-- $foreignName = $foreignTable->foreignName;
-- if(!empty($obj->$foreignName))
-- {
-- unset($obj->$foreignName);
-- }
-- }
-- }
-- if(!empty($relations['belongsTo']))
-- {
-- foreach($relations['belongsTo'] as $foreignTable)
-- {
-- $foreignName = $foreignTable->foreignName;
-- if(!empty($obj->$foreignName))
-- {
-- unset($obj->$foreignName);
-- }
-- }
-- }
-- }
-- }
--
-- if(isset($obj))
-- $arr[] = $obj;
-- }
--
-- if(ADODB_WORK_AR == $extra['loading'])
-- {
-- // The best of both worlds?
-- // Here, the number of queries is constant: 1 + n*relationship.
-- // The second query will allow us to perform a good join
-- // while preserving LIMIT etc.
-- if(!empty($relations['hasMany']))
-- {
-- foreach($relations['hasMany'] as $foreignTable)
-- {
-- $foreignName = $foreignTable->foreignName;
-- $className = ucfirst($foreignTable->_singularize($foreignName));
-- $obj = new $className();
-- $dbClassRef = $foreignTable->foreignKey;
-- $objs = $obj->packageFind($dbClassRef.' IN ('.$indices.')');
-- foreach($objs as $obj)
-- {
-- if(!is_array($arrRef[$obj->$dbClassRef]->$foreignName))
-- $arrRef[$obj->$dbClassRef]->$foreignName = array();
-- array_push($arrRef[$obj->$dbClassRef]->$foreignName, $obj);
-- }
-- }
--
-- }
-- if(!empty($relations['belongsTo']))
-- {
-- foreach($relations['belongsTo'] as $foreignTable)
-- {
-- $foreignTableRef = $foreignTable->foreignKey;
-- if(empty($bTos[$foreignTableRef]))
-- continue;
-- if(($k = reset($foreignTable->TableInfo()->keys)))
-- {
-- $belongsToId = $k;
-- }
-- else
-- {
-- $belongsToId = 'id';
-- }
-- $origObjsArr = $bTos[$foreignTableRef];
-- $bTosString = implode(',', array_keys($bTos[$foreignTableRef]));
-- $foreignName = $foreignTable->foreignName;
-- $className = ucfirst($foreignTable->_singularize($foreignName));
-- $obj = new $className();
-- $objs = $obj->packageFind($belongsToId.' IN ('.$bTosString.')');
-- foreach($objs as $obj)
-- {
-- foreach($origObjsArr[$obj->$belongsToId] as $idx=>$origObj)
-- {
-- $origObj->$foreignName = $obj;
-- }
-- }
-- }
-- }
-- }
--
-- return $arr;
--}
--?>
-diff -aburN --exclude='.svn*' inc/adodb5/adodb-errorpear.inc.php inc/adodb/adodb-errorpear.inc.php
---- inc/adodb5/adodb-errorpear.inc.php 2008-10-16 19:17:32.000000000 +1100
-+++ inc/adodb/adodb-errorpear.inc.php 1970-01-01 10:00:00.000000000 +1000
-@@ -1,88 +0,0 @@
--<?php
--/**
-- * @version V5.06 16 Oct 2008 (c) 2000-2008 John Lim (jlim#natsoft.com). All rights reserved.
-- * Released under both BSD license and Lesser GPL library license.
-- Whenever there is any discrepancy between the two licenses,
-- the BSD license will take precedence.
-- *
-- * Set tabs to 4 for best viewing.
-- *
-- * Latest version is available at http://php.weblogs.com
-- *
--*/
--include_once('PEAR.php');
--
--if (!defined('ADODB_ERROR_HANDLER')) define('ADODB_ERROR_HANDLER','ADODB_Error_PEAR');
--
--/*
--* Enabled the following if you want to terminate scripts when an error occurs
--*/
--//PEAR::setErrorHandling (PEAR_ERROR_DIE);
--
--/*
--* Name of the PEAR_Error derived class to call.
--*/
--if (!defined('ADODB_PEAR_ERROR_CLASS')) define('ADODB_PEAR_ERROR_CLASS','PEAR_Error');
--
--/*
--* Store the last PEAR_Error object here
--*/
--global $ADODB_Last_PEAR_Error; $ADODB_Last_PEAR_Error = false;
--
-- /**
--* Error Handler with PEAR support. This will be called with the following params
--*
--* @param $dbms the RDBMS you are connecting to
--* @param $fn the name of the calling function (in uppercase)
--* @param $errno the native error number from the database
--* @param $errmsg the native error msg from the database
--* @param $p1 $fn specific parameter - see below
--* @param $P2 $fn specific parameter - see below
-- */
--function ADODB_Error_PEAR($dbms, $fn, $errno, $errmsg, $p1=false, $p2=false)
--{
--global $ADODB_Last_PEAR_Error;
--
-- if (error_reporting() == 0) return; // obey @ protocol
-- switch($fn) {
-- case 'EXECUTE':
-- $sql = $p1;
-- $inputparams = $p2;
--
-- $s = "$dbms error: [$errno: $errmsg] in $fn(\"$sql\")";
-- break;
--
-- case 'PCONNECT':
-- case 'CONNECT':
-- $host = $p1;
-- $database = $p2;
--
-- $s = "$dbms error: [$errno: $errmsg] in $fn('$host', ?, ?, '$database')";
-- break;
--
-- default:
-- $s = "$dbms error: [$errno: $errmsg] in $fn($p1, $p2)";
-- break;
-- }
--
-- $class = ADODB_PEAR_ERROR_CLASS;
-- $ADODB_Last_PEAR_Error = new $class($s, $errno,
-- $GLOBALS['_PEAR_default_error_mode'],
-- $GLOBALS['_PEAR_default_error_options'],
-- $errmsg);
--
-- //print "<p>!$s</p>";
--}
--
--/**
--* Returns last PEAR_Error object. This error might be for an error that
--* occured several sql statements ago.
--*/
--function ADODB_PEAR_Error()
--{
--global $ADODB_Last_PEAR_Error;
--
-- return $ADODB_Last_PEAR_Error;
--}
--
--?>
-\ No newline at end of file
-diff -aburN --exclude='.svn*' inc/adodb5/adodb-pager.inc.php inc/adodb/adodb-pager.inc.php
---- inc/adodb5/adodb-pager.inc.php 2008-10-16 19:17:32.000000000 +1100
-+++ inc/adodb/adodb-pager.inc.php 1970-01-01 10:00:00.000000000 +1000
-@@ -1,290 +0,0 @@
--<?php
--
--/*
-- V5.06 16 Oct 2008 (c) 2000-2008 John Lim (jlim#natsoft.com). All rights reserved.
-- Released under both BSD license and Lesser GPL library license.
-- Whenever there is any discrepancy between the two licenses,
-- the BSD license will take precedence.
-- Set tabs to 4 for best viewing.
--
-- This class provides recordset pagination with
-- First/Prev/Next/Last links.
--
-- Feel free to modify this class for your own use as
-- it is very basic. To learn how to use it, see the
-- example in adodb/tests/testpaging.php.
--
-- "Pablo Costa" <[email protected]> implemented Render_PageLinks().
--
-- Please note, this class is entirely unsupported,
-- and no free support requests except for bug reports
-- will be entertained by the author.
--
--*/
--class ADODB_Pager {
-- var $id; // unique id for pager (defaults to 'adodb')
-- var $db; // ADODB connection object
-- var $sql; // sql used
-- var $rs; // recordset generated
-- var $curr_page; // current page number before Render() called, calculated in constructor
-- var $rows; // number of rows per page
-- var $linksPerPage=10; // number of links per page in navigation bar
-- var $showPageLinks;
--
-- var $gridAttributes = 'width=100% border=1 bgcolor=white';
--
-- // Localize text strings here
-- var $first = '<code>|<</code>';
-- var $prev = '<code><<</code>';
-- var $next = '<code>>></code>';
-- var $last = '<code>>|</code>';
-- var $moreLinks = '...';
-- var $startLinks = '...';
-- var $gridHeader = false;
-- var $htmlSpecialChars = true;
-- var $page = 'Page';
-- var $linkSelectedColor = 'red';
-- var $cache = 0; #secs to cache with CachePageExecute()
--
-- //----------------------------------------------
-- // constructor
-- //
-- // $db adodb connection object
-- // $sql sql statement
-- // $id optional id to identify which pager,
-- // if you have multiple on 1 page.
-- // $id should be only be [a-z0-9]*
-- //
-- function ADODB_Pager(&$db,$sql,$id = 'adodb', $showPageLinks = false)
-- {
-- global $PHP_SELF;
--
-- $curr_page = $id.'_curr_page';
-- if (empty($PHP_SELF)) $PHP_SELF = htmlspecialchars($_SERVER['PHP_SELF']); // htmlspecialchars() to prevent XSS attacks
--
-- $this->sql = $sql;
-- $this->id = $id;
-- $this->db = $db;
-- $this->showPageLinks = $showPageLinks;
--
-- $next_page = $id.'_next_page';
--
-- if (isset($_GET[$next_page])) {
-- $_SESSION[$curr_page] = (integer) $_GET[$next_page];
-- }
-- if (empty($_SESSION[$curr_page])) $_SESSION[$curr_page] = 1; ## at first page
--
-- $this->curr_page = $_SESSION[$curr_page];
--
-- }
--
-- //---------------------------
-- // Display link to first page
-- function Render_First($anchor=true)
-- {
-- global $PHP_SELF;
-- if ($anchor) {
-- ?>
-- <a href="<?php echo $PHP_SELF,'?',$this->id;?>_next_page=1"><?php echo $this->first;?></a>
-- <?php
-- } else {
-- print "$this->first ";
-- }
-- }
--
-- //--------------------------
-- // Display link to next page
-- function render_next($anchor=true)
-- {
-- global $PHP_SELF;
--
-- if ($anchor) {
-- ?>
-- <a href="<?php echo $PHP_SELF,'?',$this->id,'_next_page=',$this->rs->AbsolutePage() + 1 ?>"><?php echo $this->next;?></a>
-- <?php
-- } else {
-- print "$this->next ";
-- }
-- }
--
-- //------------------
-- // Link to last page
-- //
-- // for better performance with large recordsets, you can set
-- // $this->db->pageExecuteCountRows = false, which disables
-- // last page counting.
-- function render_last($anchor=true)
-- {
-- global $PHP_SELF;
--
-- if (!$this->db->pageExecuteCountRows) return;
--
-- if ($anchor) {
-- ?>
-- <a href="<?php echo $PHP_SELF,'?',$this->id,'_next_page=',$this->rs->LastPageNo() ?>"><?php echo $this->last;?></a>
-- <?php
-- } else {
-- print "$this->last ";
-- }
-- }
--
-- //---------------------------------------------------
-- // original code by "Pablo Costa" <[email protected]>
-- function render_pagelinks()
-- {
-- global $PHP_SELF;
-- $pages = $this->rs->LastPageNo();
-- $linksperpage = $this->linksPerPage ? $this->linksPerPage : $pages;
-- for($i=1; $i <= $pages; $i+=$linksperpage)
-- {
-- if($this->rs->AbsolutePage() >= $i)
-- {
-- $start = $i;
-- }
-- }
-- $numbers = '';
-- $end = $start+$linksperpage-1;
-- $link = $this->id . "_next_page";
-- if($end > $pages) $end = $pages;
--
--
-- if ($this->startLinks && $start > 1) {
-- $pos = $start - 1;
-- $numbers .= "<a href=$PHP_SELF?$link=$pos>$this->startLinks</a> ";
-- }
--
-- for($i=$start; $i <= $end; $i++) {
-- if ($this->rs->AbsolutePage() == $i)
-- $numbers .= "<font color=$this->linkSelectedColor><b>$i</b></font> ";
-- else
-- $numbers .= "<a href=$PHP_SELF?$link=$i>$i</a> ";
--
-- }
-- if ($this->moreLinks && $end < $pages)
-- $numbers .= "<a href=$PHP_SELF?$link=$i>$this->moreLinks</a> ";
-- print $numbers . ' ';
-- }
-- // Link to previous page
-- function render_prev($anchor=true)
-- {
-- global $PHP_SELF;
-- if ($anchor) {
-- ?>
-- <a href="<?php echo $PHP_SELF,'?',$this->id,'_next_page=',$this->rs->AbsolutePage() - 1 ?>"><?php echo $this->prev;?></a>
-- <?php
-- } else {
-- print "$this->prev ";
-- }
-- }
--
-- //--------------------------------------------------------
-- // Simply rendering of grid. You should override this for
-- // better control over the format of the grid
-- //
-- // We use output buffering to keep code clean and readable.
-- function RenderGrid()
-- {
-- global $gSQLBlockRows; // used by rs2html to indicate how many rows to display
-- include_once(ADODB_DIR.'/tohtml.inc.php');
-- ob_start();
-- $gSQLBlockRows = $this->rows;
-- rs2html($this->rs,$this->gridAttributes,$this->gridHeader,$this->htmlSpecialChars);
-- $s = ob_get_contents();
-- ob_end_clean();
-- return $s;
-- }
--
-- //-------------------------------------------------------
-- // Navigation bar
-- //
-- // we use output buffering to keep the code easy to read.
-- function RenderNav()
-- {
-- ob_start();
-- if (!$this->rs->AtFirstPage()) {
-- $this->Render_First();
-- $this->Render_Prev();
-- } else {
-- $this->Render_First(false);
-- $this->Render_Prev(false);
-- }
-- if ($this->showPageLinks){
-- $this->Render_PageLinks();
-- }
-- if (!$this->rs->AtLastPage()) {
-- $this->Render_Next();
-- $this->Render_Last();
-- } else {
-- $this->Render_Next(false);
-- $this->Render_Last(false);
-- }
-- $s = ob_get_contents();
-- ob_end_clean();
-- return $s;
-- }
--
-- //-------------------
-- // This is the footer
-- function RenderPageCount()
-- {
-- if (!$this->db->pageExecuteCountRows) return '';
-- $lastPage = $this->rs->LastPageNo();
-- if ($lastPage == -1) $lastPage = 1; // check for empty rs.
-- if ($this->curr_page > $lastPage) $this->curr_page = 1;
-- return "<font size=-1>$this->page ".$this->curr_page."/".$lastPage."</font>";
-- }
--
-- //-----------------------------------
-- // Call this class to draw everything.
-- function Render($rows=10)
-- {
-- global $ADODB_COUNTRECS;
--
-- $this->rows = $rows;
--
-- if ($this->db->dataProvider == 'informix') $this->db->cursorType = IFX_SCROLL;
--
-- $savec = $ADODB_COUNTRECS;
-- if ($this->db->pageExecuteCountRows) $ADODB_COUNTRECS = true;
-- if ($this->cache)
-- $rs = $this->db->CachePageExecute($this->cache,$this->sql,$rows,$this->curr_page);
-- else
-- $rs = $this->db->PageExecute($this->sql,$rows,$this->curr_page);
-- $ADODB_COUNTRECS = $savec;
--
-- $this->rs = $rs;
-- if (!$rs) {
-- print "<h3>Query failed: $this->sql</h3>";
-- return;
-- }
--
-- if (!$rs->EOF && (!$rs->AtFirstPage() || !$rs->AtLastPage()))
-- $header = $this->RenderNav();
-- else
-- $header = " ";
--
-- $grid = $this->RenderGrid();
-- $footer = $this->RenderPageCount();
--
-- $this->RenderLayout($header,$grid,$footer);
--
-- $rs->Close();
-- $this->rs = false;
-- }
--
-- //------------------------------------------------------
-- // override this to control overall layout and formating
-- function RenderLayout($header,$grid,$footer,$attributes='border=1 bgcolor=beige')
-- {
-- echo "<table ".$attributes."><tr><td>",
-- $header,
-- "</td></tr><tr><td>",
-- $grid,
-- "</td></tr><tr><td>",
-- $footer,
-- "</td></tr></table>";
-- }
--}
--
--
--?>
-\ No newline at end of file
-diff -aburN --exclude='.svn*' inc/adodb5/adodb-pear.inc.php inc/adodb/adodb-pear.inc.php
---- inc/adodb5/adodb-pear.inc.php 2008-10-16 19:17:32.000000000 +1100
-+++ inc/adodb/adodb-pear.inc.php 1970-01-01 10:00:00.000000000 +1000
-@@ -1,374 +0,0 @@
--<?php
--/**
-- * @version V5.06 16 Oct 2008 (c) 2000-2008 John Lim (jlim#natsoft.com). All rights reserved.
-- * Released under both BSD license and Lesser GPL library license.
-- * Whenever there is any discrepancy between the two licenses,
-- * the BSD license will take precedence.
-- *
-- * Set tabs to 4 for best viewing.
-- *
-- * PEAR DB Emulation Layer for ADODB.
-- *
-- * The following code is modelled on PEAR DB code by Stig Bakken <[email protected]> |
-- * and Tomas V.V.Cox <[email protected]>. Portions (c)1997-2002 The PHP Group.
-- */
--
-- /*
-- We support:
--
-- DB_Common
-- ---------
-- query - returns PEAR_Error on error
-- limitQuery - return PEAR_Error on error
-- prepare - does not return PEAR_Error on error
-- execute - does not return PEAR_Error on error
-- setFetchMode - supports ASSOC and ORDERED
-- errorNative
-- quote
-- nextID
-- disconnect
--
-- getOne
-- getAssoc
-- getRow
-- getCol
-- getAll
--
-- DB_Result
-- ---------
-- numRows - returns -1 if not supported
-- numCols
-- fetchInto - does not support passing of fetchmode
-- fetchRows - does not support passing of fetchmode
-- free
-- */
--
--define('ADODB_PEAR',dirname(__FILE__));
--include_once "PEAR.php";
--include_once ADODB_PEAR."/adodb-errorpear.inc.php";
--include_once ADODB_PEAR."/adodb.inc.php";
--
--if (!defined('DB_OK')) {
--define("DB_OK", 1);
--define("DB_ERROR",-1);
--
--// autoExecute constants
--define('DB_AUTOQUERY_INSERT', 1);
--define('DB_AUTOQUERY_UPDATE', 2);
--
--/**
-- * This is a special constant that tells DB the user hasn't specified
-- * any particular get mode, so the default should be used.
-- */
--
--define('DB_FETCHMODE_DEFAULT', 0);
--
--/**
-- * Column data indexed by numbers, ordered from 0 and up
-- */
--
--define('DB_FETCHMODE_ORDERED', 1);
--
--/**
-- * Column data indexed by column names
-- */
--
--define('DB_FETCHMODE_ASSOC', 2);
--
--/* for compatibility */
--
--define('DB_GETMODE_ORDERED', DB_FETCHMODE_ORDERED);
--define('DB_GETMODE_ASSOC', DB_FETCHMODE_ASSOC);
--
--/**
-- * these are constants for the tableInfo-function
-- * they are bitwised or'ed. so if there are more constants to be defined
-- * in the future, adjust DB_TABLEINFO_FULL accordingly
-- */
--
--define('DB_TABLEINFO_ORDER', 1);
--define('DB_TABLEINFO_ORDERTABLE', 2);
--define('DB_TABLEINFO_FULL', 3);
--}
--
--/**
-- * The main "DB" class is simply a container class with some static
-- * methods for creating DB objects as well as some utility functions
-- * common to all parts of DB.
-- *
-- */
--
--class DB
--{
-- /**
-- * Create a new DB object for the specified database type
-- *
-- * @param $type string database type, for example "mysql"
-- *
-- * @return object a newly created DB object, or a DB error code on
-- * error
-- */
--
-- function factory($type)
-- {
-- include_once(ADODB_DIR."/drivers/adodb-$type.inc.php");
-- $obj = NewADOConnection($type);
-- if (!is_object($obj)) $obj = new PEAR_Error('Unknown Database Driver: '.$dsninfo['phptype'],-1);
-- return $obj;
-- }
--
-- /**
-- * Create a new DB object and connect to the specified database
-- *
-- * @param $dsn mixed "data source name", see the DB::parseDSN
-- * method for a description of the dsn format. Can also be
-- * specified as an array of the format returned by DB::parseDSN.
-- *
-- * @param $options mixed if boolean (or scalar), tells whether
-- * this connection should be persistent (for backends that support
-- * this). This parameter can also be an array of options, see
-- * DB_common::setOption for more information on connection
-- * options.
-- *
-- * @return object a newly created DB connection object, or a DB
-- * error object on error
-- *
-- * @see DB::parseDSN
-- * @see DB::isError
-- */
-- function connect($dsn, $options = false)
-- {
-- if (is_array($dsn)) {
-- $dsninfo = $dsn;
-- } else {
-- $dsninfo = DB::parseDSN($dsn);
-- }
-- switch ($dsninfo["phptype"]) {
-- case 'pgsql': $type = 'postgres7'; break;
-- case 'ifx': $type = 'informix9'; break;
-- default: $type = $dsninfo["phptype"]; break;
-- }
--
-- if (is_array($options) && isset($options["debug"]) &&
-- $options["debug"] >= 2) {
-- // expose php errors with sufficient debug level
-- @include_once("adodb-$type.inc.php");
-- } else {
-- @include_once("adodb-$type.inc.php");
-- }
--
-- @$obj = NewADOConnection($type);
-- if (!is_object($obj)) {
-- $obj = new PEAR_Error('Unknown Database Driver: '.$dsninfo['phptype'],-1);
-- return $obj;
-- }
-- if (is_array($options)) {
-- foreach($options as $k => $v) {
-- switch(strtolower($k)) {
-- case 'persist':
-- case 'persistent': $persist = $v; break;
-- #ibase
-- case 'dialect': $obj->dialect = $v; break;
-- case 'charset': $obj->charset = $v; break;
-- case 'buffers': $obj->buffers = $v; break;
-- #ado
-- case 'charpage': $obj->charPage = $v; break;
-- #mysql
-- case 'clientflags': $obj->clientFlags = $v; break;
-- }
-- }
-- } else {
-- $persist = false;
-- }
--
-- if (isset($dsninfo['socket'])) $dsninfo['hostspec'] .= ':'.$dsninfo['socket'];
-- else if (isset($dsninfo['port'])) $dsninfo['hostspec'] .= ':'.$dsninfo['port'];
--
-- if($persist) $ok = $obj->PConnect($dsninfo['hostspec'], $dsninfo['username'],$dsninfo['password'],$dsninfo['database']);
-- else $ok = $obj->Connect($dsninfo['hostspec'], $dsninfo['username'],$dsninfo['password'],$dsninfo['database']);
--
-- if (!$ok) $obj = ADODB_PEAR_Error();
-- return $obj;
-- }
--
-- /**
-- * Return the DB API version
-- *
-- * @return int the DB API version number
-- */
-- function apiVersion()
-- {
-- return 2;
-- }
--
-- /**
-- * Tell whether a result code from a DB method is an error
-- *
-- * @param $value int result code
-- *
-- * @return bool whether $value is an error
-- */
-- function isError($value)
-- {
-- if (!is_object($value)) return false;
-- $class = strtolower(get_class($value));
-- return $class == 'pear_error' || is_subclass_of($value, 'pear_error') ||
-- $class == 'db_error' || is_subclass_of($value, 'db_error');
-- }
--
--
-- /**
-- * Tell whether a result code from a DB method is a warning.
-- * Warnings differ from errors in that they are generated by DB,
-- * and are not fatal.
-- *
-- * @param $value mixed result value
-- *
-- * @return bool whether $value is a warning
-- */
-- function isWarning($value)
-- {
-- return false;
-- /*
-- return is_object($value) &&
-- (get_class( $value ) == "db_warning" ||
-- is_subclass_of($value, "db_warning"));*/
-- }
--
-- /**
-- * Parse a data source name
-- *
-- * @param $dsn string Data Source Name to be parsed
-- *
-- * @return array an associative array with the following keys:
-- *
-- * phptype: Database backend used in PHP (mysql, odbc etc.)
-- * dbsyntax: Database used with regards to SQL syntax etc.
-- * protocol: Communication protocol to use (tcp, unix etc.)
-- * hostspec: Host specification (hostname[:port])
-- * database: Database to use on the DBMS server
-- * username: User name for login
-- * password: Password for login
-- *
-- * The format of the supplied DSN is in its fullest form:
-- *
-- * phptype(dbsyntax)://username:password@protocol+hostspec/database
-- *
-- * Most variations are allowed:
-- *
-- * phptype://username:password@protocol+hostspec:110//usr/db_file.db
-- * phptype://username:password@hostspec/database_name
-- * phptype://username:password@hostspec
-- * phptype://username@hostspec
-- * phptype://hostspec/database
-- * phptype://hostspec
-- * phptype(dbsyntax)
-- * phptype
-- *
-- * @author Tomas V.V.Cox <[email protected]>
-- */
-- function parseDSN($dsn)
-- {
-- if (is_array($dsn)) {
-- return $dsn;
-- }
--
-- $parsed = array(
-- 'phptype' => false,
-- 'dbsyntax' => false,
-- 'protocol' => false,
-- 'hostspec' => false,
-- 'database' => false,
-- 'username' => false,
-- 'password' => false
-- );
--
-- // Find phptype and dbsyntax
-- if (($pos = strpos($dsn, '://')) !== false) {
-- $str = substr($dsn, 0, $pos);
-- $dsn = substr($dsn, $pos + 3);
-- } else {
-- $str = $dsn;
-- $dsn = NULL;
-- }
--
-- // Get phptype and dbsyntax
-- // $str => phptype(dbsyntax)
-- if (preg_match('|^(.+?)\((.*?)\)$|', $str, $arr)) {
-- $parsed['phptype'] = $arr[1];
-- $parsed['dbsyntax'] = (empty($arr[2])) ? $arr[1] : $arr[2];
-- } else {
-- $parsed['phptype'] = $str;
-- $parsed['dbsyntax'] = $str;
-- }
--
-- if (empty($dsn)) {
-- return $parsed;
-- }
--
-- // Get (if found): username and password
-- // $dsn => username:password@protocol+hostspec/database
-- if (($at = strpos($dsn,'@')) !== false) {
-- $str = substr($dsn, 0, $at);
-- $dsn = substr($dsn, $at + 1);
-- if (($pos = strpos($str, ':')) !== false) {
-- $parsed['username'] = urldecode(substr($str, 0, $pos));
-- $parsed['password'] = urldecode(substr($str, $pos + 1));
-- } else {
-- $parsed['username'] = urldecode($str);
-- }
-- }
--
-- // Find protocol and hostspec
-- // $dsn => protocol+hostspec/database
-- if (($pos=strpos($dsn, '/')) !== false) {
-- $str = substr($dsn, 0, $pos);
-- $dsn = substr($dsn, $pos + 1);
-- } else {
-- $str = $dsn;
-- $dsn = NULL;
-- }
--
-- // Get protocol + hostspec
-- // $str => protocol+hostspec
-- if (($pos=strpos($str, '+')) !== false) {
-- $parsed['protocol'] = substr($str, 0, $pos);
-- $parsed['hostspec'] = urldecode(substr($str, $pos + 1));
-- } else {
-- $parsed['hostspec'] = urldecode($str);
-- }
--
-- // Get dabase if any
-- // $dsn => database
-- if (!empty($dsn)) {
-- $parsed['database'] = $dsn;
-- }
--
-- return $parsed;
-- }
--
-- /**
-- * Load a PHP database extension if it is not loaded already.
-- *
-- * @access public
-- *
-- * @param $name the base name of the extension (without the .so or
-- * .dll suffix)
-- *
-- * @return bool true if the extension was already or successfully
-- * loaded, false if it could not be loaded
-- */
-- function assertExtension($name)
-- {
-- if (!extension_loaded($name)) {
-- $dlext = (strncmp(PHP_OS,'WIN',3) === 0) ? '.dll' : '.so';
-- @dl($name . $dlext);
-- }
-- if (!extension_loaded($name)) {
-- return false;
-- }
-- return true;
-- }
--}
--
--?>
-\ No newline at end of file
-diff -aburN --exclude='.svn*' inc/adodb5/adodb-php4.inc.php inc/adodb/adodb-php4.inc.php
---- inc/adodb5/adodb-php4.inc.php 2008-10-16 19:17:32.000000000 +1100
-+++ inc/adodb/adodb-php4.inc.php 1970-01-01 10:00:00.000000000 +1000
-@@ -1,16 +0,0 @@
--<?php
--
--/*
-- V5.06 16 Oct 2008 (c) 2000-2008 John Lim (jlim#natsoft.com). All rights reserved.
-- Released under both BSD license and Lesser GPL library license.
-- Whenever there is any discrepancy between the two licenses,
-- the BSD license will take precedence.
--
-- Set tabs to 4.
--*/
--
--
--class ADODB_BASE_RS {
--}
--
--?>
-\ No newline at end of file
-diff -aburN --exclude='.svn*' inc/adodb5/contrib/toxmlrpc.inc.php inc/adodb/contrib/toxmlrpc.inc.php
---- inc/adodb5/contrib/toxmlrpc.inc.php 2007-02-05 15:09:12.000000000 +1100
-+++ inc/adodb/contrib/toxmlrpc.inc.php 1970-01-01 10:00:00.000000000 +1000
-@@ -1,183 +0,0 @@
--<?php
-- /**
-- * Helper functions to convert between ADODB recordset objects and XMLRPC values.
-- * Uses John Lim's AdoDB and Edd Dumbill's phpxmlrpc libs
-- *
-- * @author Daniele Baroncelli
-- * @author Gaetano Giunta
-- * @copyright (c) 2003-2004 Giunta/Baroncelli. All rights reserved.
-- *
-- * @todo some more error checking here and there
-- * @todo document the xmlrpc-struct used to encode recordset info
-- * @todo verify if using xmlrpc_encode($rs->GetArray()) would work with:
-- * - ADODB_FETCH_BOTH
-- * - null values
-- */
--
-- /**
-- * Include the main libraries
-- */
-- require_once('xmlrpc.inc');
-- if (!defined('ADODB_DIR')) require_once('adodb.inc.php');
--
-- /**
-- * Builds an xmlrpc struct value out of an AdoDB recordset
-- */
-- function rs2xmlrpcval(&$adodbrs) {
--
-- $header = rs2xmlrpcval_header($adodbrs);
-- $body = rs2xmlrpcval_body($adodbrs);
--
-- // put it all together and build final xmlrpc struct
-- $xmlrpcrs = new xmlrpcval ( array(
-- "header" => $header,
-- "body" => $body,
-- ), "struct");
--
-- return $xmlrpcrs;
--
-- }
--
-- /**
-- * Builds an xmlrpc struct value describing an AdoDB recordset
-- */
-- function rs2xmlrpcval_header($adodbrs)
-- {
-- $numfields = $adodbrs->FieldCount();
-- $numrecords = $adodbrs->RecordCount();
--
-- // build structure holding recordset information
-- $fieldstruct = array();
-- for ($i = 0; $i < $numfields; $i++) {
-- $fld = $adodbrs->FetchField($i);
-- $fieldarray = array();
-- if (isset($fld->name))
-- $fieldarray["name"] = new xmlrpcval ($fld->name);
-- if (isset($fld->type))
-- $fieldarray["type"] = new xmlrpcval ($fld->type);
-- if (isset($fld->max_length))
-- $fieldarray["max_length"] = new xmlrpcval ($fld->max_length, "int");
-- if (isset($fld->not_null))
-- $fieldarray["not_null"] = new xmlrpcval ($fld->not_null, "boolean");
-- if (isset($fld->has_default))
-- $fieldarray["has_default"] = new xmlrpcval ($fld->has_default, "boolean");
-- if (isset($fld->default_value))
-- $fieldarray["default_value"] = new xmlrpcval ($fld->default_value);
-- $fieldstruct[$i] = new xmlrpcval ($fieldarray, "struct");
-- }
-- $fieldcount = new xmlrpcval ($numfields, "int");
-- $recordcount = new xmlrpcval ($numrecords, "int");
-- $sql = new xmlrpcval ($adodbrs->sql);
-- $fieldinfo = new xmlrpcval ($fieldstruct, "array");
--
-- $header = new xmlrpcval ( array(
-- "fieldcount" => $fieldcount,
-- "recordcount" => $recordcount,
-- "sql" => $sql,
-- "fieldinfo" => $fieldinfo
-- ), "struct");
--
-- return $header;
-- }
--
-- /**
-- * Builds an xmlrpc struct value out of an AdoDB recordset
-- * (data values only, no data definition)
-- */
-- function rs2xmlrpcval_body($adodbrs)
-- {
-- $numfields = $adodbrs->FieldCount();
--
-- // build structure containing recordset data
-- $adodbrs->MoveFirst();
-- $rows = array();
-- while (!$adodbrs->EOF) {
-- $columns = array();
-- // This should work on all cases of fetch mode: assoc, num, both or default
-- if ($adodbrs->fetchMode == 'ADODB_FETCH_BOTH' || count($adodbrs->fields) == 2 * $adodbrs->FieldCount())
-- for ($i = 0; $i < $numfields; $i++)
-- if ($adodbrs->fields[$i] === null)
-- $columns[$i] = new xmlrpcval ('');
-- else
-- $columns[$i] = xmlrpc_encode ($adodbrs->fields[$i]);
-- else
-- foreach ($adodbrs->fields as $val)
-- if ($val === null)
-- $columns[] = new xmlrpcval ('');
-- else
-- $columns[] = xmlrpc_encode ($val);
--
-- $rows[] = new xmlrpcval ($columns, "array");
--
-- $adodbrs->MoveNext();
-- }
-- $body = new xmlrpcval ($rows, "array");
--
-- return $body;
-- }
--
-- /**
-- * Returns an xmlrpc struct value as string out of an AdoDB recordset
-- */
-- function rs2xmlrpcstring (&$adodbrs) {
-- $xmlrpc = rs2xmlrpcval ($adodbrs);
-- if ($xmlrpc)
-- return $xmlrpc->serialize();
-- else
-- return null;
-- }
--
-- /**
-- * Given a well-formed xmlrpc struct object returns an AdoDB object
-- *
-- * @todo add some error checking on the input value
-- */
-- function xmlrpcval2rs (&$xmlrpcval) {
--
-- $fields_array = array();
-- $data_array = array();
--
-- // rebuild column information
-- $header = $xmlrpcval->structmem('header');
--
-- $numfields = $header->structmem('fieldcount');
-- $numfields = $numfields->scalarval();
-- $numrecords = $header->structmem('recordcount');
-- $numrecords = $numrecords->scalarval();
-- $sqlstring = $header->structmem('sql');
-- $sqlstring = $sqlstring->scalarval();
--
-- $fieldinfo = $header->structmem('fieldinfo');
-- for ($i = 0; $i < $numfields; $i++) {
-- $temp = $fieldinfo->arraymem($i);
-- $fld = new ADOFieldObject();
-- while (list($key,$value) = $temp->structeach()) {
-- if ($key == "name") $fld->name = $value->scalarval();
-- if ($key == "type") $fld->type = $value->scalarval();
-- if ($key == "max_length") $fld->max_length = $value->scalarval();
-- if ($key == "not_null") $fld->not_null = $value->scalarval();
-- if ($key == "has_default") $fld->has_default = $value->scalarval();
-- if ($key == "default_value") $fld->default_value = $value->scalarval();
-- } // while
-- $fields_array[] = $fld;
-- } // for
--
-- // fetch recordset information into php array
-- $body = $xmlrpcval->structmem('body');
-- for ($i = 0; $i < $numrecords; $i++) {
-- $data_array[$i]= array();
-- $xmlrpcrs_row = $body->arraymem($i);
-- for ($j = 0; $j < $numfields; $j++) {
-- $temp = $xmlrpcrs_row->arraymem($j);
-- $data_array[$i][$j] = $temp->scalarval();
-- } // for j
-- } // for i
--
-- // finally build in-memory recordset object and return it
-- $rs = new ADORecordSet_array();
-- $rs->InitArrayFields($data_array,$fields_array);
-- return $rs;
--
-- }
--
--?>
-\ No newline at end of file
-diff -aburN --exclude='.svn*' inc/adodb5/cute_icons_for_site/adodb2.gif inc/adodb/cute_icons_for_site/adodb2.gif
---- inc/adodb5/cute_icons_for_site/adodb2.gif 2007-02-05 15:09:12.000000000 +1100
-+++ inc/adodb/cute_icons_for_site/adodb2.gif 1970-01-01 10:00:00.000000000 +1000
-@@ -1,7 +0,0 @@
--GIF89af