changes that will be made once php supports it:
===============================================================================
1. custom superglobals: $APP will be defined as superglobal.
what to do with pseudostatic things like $HtmlUtil, $Bs_String etc?
2. exception handling (php5): try/catch/finally will be used.
3. make use of __FUNCTION__ and __CLASS__ after some time. needs php 4.3
version 4.5
1. Bs_Form: a container can now have a template assigned directly via a string var.
before, only file-based templates were possible.
Bs_FormContainer: added var templateString.
Bs_FormTemplateParser: added loadTemplateFromString().
2003-08-10 --andrej
2. Bs_FormFieldRadioJs: fixed a typo that rendered the (rarely used) elementList
param in getField() useless. Anyway, it's still a problem to render the
different options of a radio-js field to different locations. need to work
on the generated javascript code. 2003-08-10 --andrej
3. Bs_FormFieldSelect.class.js: setTo() now has a 2nd param 'type' to specify
if the comparison should be done on the 'value' or 'text'.
added method setText() to set a new caption for an existing entry.
added method removeElement(). 2003-08-12 --andrej
4. added application IndexedListManager. 2003-08-12 --andrej
5. Bs_Tree: implemented a cheap version of lookAhead (preload down). works
well. even with large trees that have 1000 nodes. added example 12 to
show it. by default a lookAhead of 2 (not -1 which means unlimited)
is used. 2003-08-12 --andrej
6. Bs_Dropdown.class.js: added the rememberNewInCookie option, and example 4
that shows its use. 2003-08-14 --andrej
7. added bs_addIncludePath to Bs_Misc.lib.js. 2003-08-15 --andrej
8. Bs_FormFieldSelect now supports to use the FlipFlop js component.
2003-08-18 --andrej
9. Bs_FlipFlop: fixed a bug that made a dblclick on the 'selected' field not
update the hidden field (hidden, in form submitted value). 2003-08-18 --andrej
10. Bs_Logger: fixed a bug in setDir(). it checked the old dir if it's
writeable instead of the new given one. 2003-08-18 --andrej
11. Bs_Form fields now support field names like 'bs_todo[dataHash][frameName]'.
these produce arrays in the form post, and are now read in correctly after
the post. 2003-08-18 --andrej
12. Bs_FileManager: fixed 2 warnings. 2003-08-20 --andrej
13. added js component Bs_DataGrid (very basic). 2003-08-20 --andrej
14. added core/text/Bs_Ocr.class.php (very basic). 2003-08-20 --andrej
15. Bs_DataGrid: extended. lots of work still to do. 2003-08-24 --andrej
16. Bs_Radio: added the vars imgType, pixelate, invertActive, iconType. added
exaple 6 that shows these features. changed captionAsAltText to
captionAsTitleText and kept it backward compatible. reimplemented useMouseover.
implemented the attachEvent methods, example 1 now shows this.
2003-08-25 --andrej
17. Bs_FormItAble now also supports the mode 'view', and not only 'add',
'edit' and 'delete'. 2003-08-25 --andrej
18. This change affects quite a few things. Fact: strip_tags() from php converts
'bolditalic' to 'bolditalic' and not 'bold italic'. it merges the
words. Bs_HtmlInfo uses that php function in htmlToText(), which is used in
the Bs_FileConverter, which is used for pretty much any file conversion
(word, excel, pdf, html, finally to plain text). so it affected the index
server as well. this is now changed, in that '<' is simply converted to
'< ' before doing strip_tags(). cheap, but ok here. 2003-08-28 --andrej
19. renamed Bs_Url->getUrlJunk() to getUrlChunk(). :-) kept it backward compatible.
2003-08-29 --andrej
20. Bs_FormItAble: does not set submitted form values to the object we're handling
in cases of 'view' and 'delete', since it makes no sense. 2003-08-29 --andrej
21. Bs_Form: does not validate user input in case of 'view' and 'delete' since
it makes no sense. 2003-08-29 --andrej
22. Bs_TextUtil->parseSearchQuery() now supports the 'fuzzy' operator. example:
+~"Bill Gates" and ~Microsoft
might also find something that includes "Bills gate" and "Micro$oft.
2003-09-02 --andrej
23. IndexServer, namely Bs_Is_Indexer: implemented the fuzzy search logic on a
per-phrase basis. the new feature in Bs_TextUtil->parseSearchQuery() now
allows it to do fuzzy searches on parts of the query, instead of all/nothing.
2003-09-02 --andrej
24. Bs_FlipFlop now supports to disable the field using setDisabled(). see
the new example 4.
http://www.blueshoes.org/_bsJavascript/components/flipflop/examples/example4.html
2003-09-02 --andrej
25. Bs_DatePicker: added a reset function and the possibility to set
an "" (empty) date. 2003-08-28 --sam
26. Bs_FileSystem->makeValidFileName() added, with ecg tests. 2003-09-04 --andrej
27. Bs_String->clean() has a new 3rd param $allowThese. 2003-09-04 --andrej
28. Bs_Editor javascript component: when the unlink (opposite of createlink)
was unset (to hide it), quite some cpu was wasted. (an exception got
thrown, invisible for the user, but required cpu, in cycels). fixed.
2003-09-04 --andrej
29. bs_undoMagicQuotes() now also works on $_REQUEST. before, only get, post and
cookies were done. 2003-09-08 --andrej
30. bs_undoMagicQuotes() is now executed on every page request. it is directly built
into blueshoes.ini.php. 2003-09-08 --andrej
31. IndexServer: implemented the collocations feature. this allows us to
recommend related words to the user. added the lyrics example to test and show it.
example: someone is searching for "morissette". now we know which words occure the
most together with morissette, so we can recommend them. the #1 is alanis.
this helps the user to better find what he's looking for, especially when there
are many results found. 2003-09-08 --andrej
32. Bs_Db: getNumRecords() is now optimized in that no data is fetched from the
db. the query is modified on the fly to a "select count(*)" query. debedoo
certainly likes this. 2003-09-08 --andrej
33. Bs_Editor js component: now the style of the editor window can be customized
using the vars editorCssString and editorCssFile. want smaller fonts? or
load your custom css settings for header tags? there you go. 2003-09-09 --andrej
34. Bs_DataGrid: added more css class names, see the example. the sorting
column can be visualized, see the example. lots of work still to do.
2003-09-10 --andrej
35. Bs_XmlParser.class.js: optimization that also affects jsrs. speeds up parsing
a large xml string by many times. the problem was: in javascript, if you do:
var string = "fffffffffffffffffffffffffffffff";
for (var i=0; ieditability, which belongs to the same family, stays in the
field class, that makes sense if you think about it. 2003-09-25 --andrej
42. Bs_Editor: made the toolbar buttons "compatible" to use with multiple instances
on one page. didn't fully work in 'toolbar' mode before.
added the 'x' to close the toolbar. an image would be nicer.
2003-10-15 --andrej
43. Bs_TabSet.class.js from (javascript\components\): The function switchTo() also accepts
the tab's-caption name as parameter (used to only accept the tab-index).
Also added an onTabSelect(myTabEventHandler) function and an example to show the use.
2003-10-17 --sam
44. Bs_ResizeGrip.class.js from (javascript\components\): Was not usable with Mozilla. Now
it works (more or less), but is still a little clumsy.
2003-10-17 --sam
45. Bs_Browscap:
modified the value of browserLanguages.
referrer: is now passed along even if runTest() is used. so it's not lost.
userType: if there is no KB installed, the most important spiders like googlebot are
still detected.
connectionType: now works.
cookiesSession and cookiesPermanent: set to null if unknown, not false.
same with javaScript and javaScriptEnabled.
added a howto and 3 examples for this class.
2003-10-18 --andrej
46. Bs_ColorPicker: made it mozilla-compatible (without the picker itself, that is omitted
in mozilla). 2003-10-18 --andrej
47. Corrected bug reported by fklee at isuisse dot com: commented out empty .
It randomly caused an empty line in the tree in ie.
2003-10-18 --sam
48. Bs_SimpleSession.class.php has now it's own default data and is not depending on data
set in $GLOBAL['APP']['sess']. Also added some examples.
2003-10-19 --sam
49. Bs_Db: added getAssoc3(). 2003-10-21 --andrej
50. Bs_FormItAble: Fixed a bug that overwrote valueDefault in mode "add" which should not
have happened. thanks to Thomas A. Johnson from mailroute.net for the notice.
2003-10-23 --andrej
51. Bs_TreeElement: the var 'icon' can now include a path. added example 15 that shows it.
added the events 'onBeforeOpen', 'onAfterOpen', 'onBeforeClose' and 'onAfterClose'.
extended example 6 to show it. 2003-10-27 --andrej
52. Bs_Slider: small change in internal _roundToGrid() method for better number
rounding. especially useful when using fractions. added the green slider to example 1.
2003-10-27 --andrej
53. Bs_Tree: optimized the lookAhead feature (a lot). the tree can now be used with an
unlimited amount of nodes (theoretically). the node objects are not all instanciated
when initiating the tree with the data anymore. before, only the rendering of hidden
nodes had been postponed to the moment when the nodes were used.
unfortunately when the checkbox system is used with the walking-down feature
(checkboxSystemWalkTree >= 2) then this optimization is disabled. (think about it)
2003-10-29 --andrej
54. Bs_SpreadSheet: implemented the paste-functionality for mozilla using a workaround
(because moz lacks access to the clipboard). also removed the description line of
the toolbar, i don't think it's useful here, it only wastes space. added the
field/value line below the toolbar. it displays the cell name (for example C4) and
the value of that cell. especially useful when not all content is displayed in the
cell because the value is too long. 2003-11-04 --andrej
55. Bs_Form->includeOnceToHtml(): i am not sure how this happened, but the function
used the keys of the given $includeOnce vector as value (instead of using the
values). this resulted in returning garbage like:
it's fixed now. in case someone is relying on that wrong implementation from
before: if the key is a string and the value is not, the key is used.
2003-11-05 --andrej
56. Bs_FileConverter: wvWare needs a capital W, at least on linux. fixed.
2003-11-05 --andrej
57. onomastics: made an editor for the relations using jsrs. 2003-11-08 --andrej
58. Bs_TextType: now supports the lineSpacing param. 2003-11-12 --andrej
59. Bs_FileUtil->decodeFilename() and encodeFilename(): now handles all chars.
is used by Bs_TextType. 2003-11-12 --andrej
60. Bs_TextType: images where the width/height was autocalcualted had a +20 in width
and +10 in height to make sure it's engouh. the +20 is not needed anymore, the
+10 is but only for multiline images. the return value of php's ImageFtBbox() is
still undocumented, and i guess the behavior of the function will change in the
future.
sometimes the images don't have enough width, and a bit is cut off. will have to
work on that.
apache sends a 'forbidden' for url's equal or longer than 230 chars, but only
if the directory to the url exists and the file does not. this can be handled
by linking a 403 to the 404.php file too.
2003-11-18 --andrej
61. Bs_HtmlNavigation: changes i have to document, everything is backward compatible,
added __CAPTION_UPPER__ and __CAPTION_LOWER__ (caption in uppercase, ...)
2003-11-18 --andrej
62. Bs_HtmlInfo: fetchLinks() uses the alt tag of images if the link has an image only.
it now also works if the link looks like
... the
tags are now treated like spaces. if there is no alt tag but a title tag,
that one will be used.
getTagParam() now does not care about the case anymore.
added fetchImageTexts().
2003-11-19 --andrej
63. Bs_Tree: getElementByCaptionPath() did not work with the new lookAhead feature.
it now does. 2003-11-19 --andrej
60. Bs_TextType: added new feature: you can now have the width/height autocalculated
and then extended by some pixels, by specifying imgWidth = "+20". same for
imgHeight. 2003-11-21 --andrej
61. Bs_Slider: Slider was broken by change Nr.52. Added a change that works
2003-11-26 --sam
62. Bs_Slider: The Events attachOnSlideEnd() and attachOnSlideStart() should work now.
Also removed some deprecated code. 2003-11-26 --sam
63. Bs_HtmlTag: added getTokens(). 2003-11-26 --andrej
64. Bs_Editor: added example 5 and 6. 2003-11-28 --andrej
65. Bs_Editor: when the editor was used as toolbar, and it was closed while being in
html (not wysiwyg) mode, the last changes were lost, and getValue() returned
the text-version of the value (not the html value). fixed. 2003-12-02 --andrej
66. Bs_FormFieldFile: fixed a bug that prevented file type checks (eg .gif) to work.
thanks to Peter Lindstrom. 2003-12-14 --andrej
67. Bs_FormItAble: extended the 'dataPrefix' feature. 2003-12-14 --andrej
68. Bs_FormFieldTextarea: implemented the bgColorWarning feature (from the
Bs_LimitedTextarea javascript component). 2003-12-22 --andrej
69. Bs_TreeElement: the element now receives the colored background (default is yellow)
also if the caption is a link, and has no js event attached. it used to be like
that in a previous version. 2003-12-23 --andrej
70. Bs_FileCache: there was a rare case where fetch() did not return the cache even
when it was available. it did not cause problems; the only thing was that the
cache was not used. fixed.
setVerboseCacheNames(): only the first 60 chars of the origin file
are used now, no longer 100. 2003-12-27 --andrej
71. Bs_HnXmlHandler (the xml handler for Bs_HtmlNavigation) now uses a cache for the
parsed xml files. this increases the speed *a lot*. there is an origin check;
when the origin xml file changes, the cache is dropped and regenerated. no
need to do anything. 2003-12-27 --andrej
version 4.4
===============================================================================
1. Bs_Form: added new specialfield Bs_FormFieldFileBrowser. 2003-04-28 --andrej
2. added Array.prototype.deleteItemHash() in Bs_Array.class.js to be able to
remove elements from hashes, not only vectors. 2003-04-29 --andrej
3. updated the Bs_Tree (js tree) to support drag&drop. experimental. added
example 9 for it. 2003-04-29 --andrej
4. added 4 new functions in Bs_Array.class.js: moveUp, moveDown, moveToTop, moveToBottom.
2003-05-01 --andrej
5. js toolbar now supports groups. and thus toggle-style buttons. 2003-05-02 --andrej
6. many features for the filebrowser application. preview of files, for example.
2003-05-02 --andrej
7. filemanager: fixed a js problem with sorting of files. added a gif for sorting
up and down. 2003-05-03 --andrej
8. js tree: for some reason the code for the autocollapse feature was commented out.
dunno why. but i've reactivated it. everything seems to work fine. 2003-05-05 --andrej
9. js tree: added the openPath() feature. for this some changes in open() were needed.
the new example 10 shows how it works. 2003-05-05 --andrej
10. Bs_Dir: added the functions cp() and cpDir() to copy dirs recursively, by keeping
the chmod. 2003-05-05 --andrej
11. Bs_FileSystem: added getWithoutFileExtension(). 2003-05-06 --andrej
12. Bs_Dir: added rm(), which is different to emptyDir(). 2003-05-06 --andrej
13. js dropdown component: onChange now fires also when text has been typed and the
text field lost the focus. thanks to Winnie Chou for reporting the problem.
added example3.html to show the component in a form. 2003-05-12 --andrej
14. Bs_Cug now creates a Bs_SimpleSession and not a Bs_SessionFile anymore if there
isn't a global session instance already available. Bs_SessionFile is deprecated
anyway. i don't expect this to cause problems in existing code. but then i'm
not that sure. anyway, it can be worked around it by making sure the session
exists before using Bs_Cug. 2003-05-13 --andrej
15. spreadsheet editor now uses our js buttonbar and button classes instead of domapi.
the context menu still uses domapi. 2003-05-15 --andrej
16. added Bs_CsvUtil->guessSeparator() with ecg test. 2003-05-15 --andrej
17. Bs_Dropdown.class.js: better switching from text field to select field and back.
no listens onkeydown (enter, escape, F2). 2003-05-15 --andrej
18. wysiwyg editor: now supports different levels of pasting. allow formatting (html)
in pasted content? see Bs_Wysiwyg.class.js._fireEditareaOnPaste().
example1.html shows it in instance 2. 2003-05-16 --andrej
19. Bs_HtmlUtil.lib.js: added bs_stripTags() (dirty version). 2003-05-16 --andrej
20. Bs_HtmlUtil->arrayToJsArray() can now deal with empty or non-array input.
2003-05-17 --andrej
21. Bs_Button.class.js now shows buttons inactive if set to status 0 using ms filters,
thus ie only at the moment. looks really good. a mozilla workaround will follow
somewhen. 2003-05-16 --andrej
22. Bs_HtmlTableWindrose and Bs_TableStyler are updated to support meta information
about styles. the meta information is:
The first row is a title row
The last row is a title row
The first column is a title column
The last column is a title column
with this information we can present the best table styles from the available ones
to a user for his specfic table. also there is the key 'tableTag', it's a hint
that's not used from Bs_HtmlTable but can used from other scripts. 2003-05-21 --andrej
23. Bs_HtmlTable: added 3rd param 'tableTag' to renderTable(). 2003-05-21 --andrej
24. added Bs_HtmlTableWindrose->readByString(). 2003-05-21 --andrej
25. Bs_SimpleObjPersister: fixed typo 'ignoreData' and 'ignorData' are now valid
attributs 2003-05-23 --sam
26. Bs_SimpleObjPersister: Bug correction : Adding a new field to the hint hash
and reading the object (without writing any data) would leave the table
unchanged (thus the new field was not added). Instead 'unknow field' warnings
were thrown. This is corrected. 2003-05-23 --sam
27. Bs_SimpleObjPersister: Bug correction : related to the bug above an
other bug was corrected too. When adding a new hint field and following load it
happend that the new field would receive the field-neighbors value.
This is corrected. 2003-05-24 --sam
28. Bs_Form: better support for multilevel forms. misc stuff. 2003-05-23 --andrej
29. Bs_FormFieldCheckbox->getFieldText() now uses the label tag instead of javascript
to allow clicking the text instead of the checkbox. the radio field did this
already before. the getFieldCaption() still uses the js way.
it matters with onClick: onclick only fires when you click the checkbox directly,
or you click the text between the label tags. a js event that changes the checkbox
value won't fire the onclick event, it won't even fire the onchange event in ie6! :/
2003-05-23 --andrej
30. filemanager: added new features: create folder, delete folders recursively (not
only files), made it compatible to use without register_globals, create text files.
cut/copy/paste files around with a virtual clipboard. 2003-05-25 --andrej
31. Bs_File->_write() returned FALSE instead of TRUE if you wrote an empty string to a
file, and it succeeded. this was the case because fwrite() returns the number of
bytes written, and not bool. thus 0 bytes was interpreted as false. fixed.
2003-05-25 --andrej
32. added Bs_File->move(), it is like PHP's rename() but can overwrite existing
destinations. 2003-05-25 --andrej
33. Bs_TextType can not print text strings with an angle (rotation). 2003-05-26 --andrej
34. Bs_ButtonBar.class.js and Bs_Button.class.js: added the "multiple choice" feature,
the visible caption, and the option to draw the toolbar vertically. added examples 4-6.
2003-05-28 --andrej
35. Added Bs_CsvUtil.class.js, it is a translation of the php class. not everything done
yet, but usable. 2003-05-28 --andrej
36. Added Bs_String.lib.js, it has the bs_trim(), bs_ltrim() and bs_rtrim() functions.
i am sure that it will grow. 2003-05-28 --andrej
37. Bs_SpreadSheet: pasting is now possible, just hit ctrl-v on your cell. even areas
from excel can be pasted, multiple cols/rows are detected and pasted correctly.
addRow() and addCol() can now be called without param to have a new one at the
end. it now uses Bs_CsvUtil.class.js, which uses Bs_String.lib.js.
need to recode the redraw() logic, it's no good that after every small change
redraw() is called. also the col width should not be lost. 2003-05-28 --andrej
38. index server: Bs_Is_Searcher returned results that matched -words when the
exclude word (-word) was at the last position, and there was no 'may' word
(only must words "+word"). fixed.
removed a 'var not set' warning that appeard when using phrase search. does not
change anything, just no warning anymore.
Bs_Is_Searcher->hintString ("did you mean: xy") is set to empty if no similar
words found.
2003-05-31 --andrej
39. Bs_FormItAble not only listens on the $overwriteFormProps param in
doItYourself(). 2003-06-02 --andrej
40. Bs_FormFieldRadio now handles '0' values correctly (usual problem with empty().)
doItYourself(). 2003-06-02 --andrej
41. Bs_HtmlNavigation: fixed a side-effect of a new feature in _locateCurrentPage().
42. Removed all deprecated bigbrother methodes from Bs_Object like bbXfoo().
Also removed any use of it in BS. 2003-06-02 --sam
43. Wenn using PHP 4.3 and up all calls to Bs_Error::setError can be simplified
The last 3 parameters can safely be omited.
Old: Bs_Error::setError('test_1', 'FATAL', __LINE__, 'function name', __FILE__);
NEW: Bs_Error::setError('test_1', 'FATAL'); 2003-06-07 --sam
44. Bs_Debedoo: updated the howto and example, and fixed a notice that showed up
when set to. 2003-06-09 --andrej
45. updated most howtos to use the new style. some content editing here and there.
2003-06-09 --andrej
46. added bs_isEmpty() into Bs_Misc.lib.js. added other prototype-things to better
support mozilla. compatibility ... :/ 2003-06-14 --andrej
47. added new javascript component: tabset. with example. a web page for it will
follow. 2003-06-17 --andrej
48. added new javascript component: numberfield. with example. a web page for it
will follow. 2003-06-18 --andrej
49. added new js file: core/gfx/Bs_ColorUtil.lib.js 2003-06-19 --andrej
50. Bs_Button: dragging of the button icons is not possible anymore. newbies
sometimes don't click 'properly', and drag the button. 2003-06-20 --andrej
51. Corrected a few bugs and added some features in component Bs_Slider.class.js:
bug 1) Clicking on the slider-handle (without moving it) passed an unrounded
value (e.g. 3.234043) to attached functions waiting for an event.
bug 1.1) Correcting above bug showed that returned value was also small.
bug 2) If no fieldName was set, it had the value of 'undefined' instead of a
unique name. Now it's set to the instance name of the component
followed by the string '_value'.
bug 3) Rendering was wrong if the range was above 0 and the default was given
E.g. range 10-20 default 11 would render totally wrong.
new 1) Replaced the dirty global functions with clean methods calls.
new 2) You may pass the instance name directly in the constructor.
E.g. mySlider = new Bs_Slider('mySlider');
2003-06-21 --sam
52. lang/Bs_Misc.lib.js: added queryStringToHash() 2003-06-21 --andrej
53. html/Bs_HtmlUtil.lib.js: added the functions: bs_parseSimpleTagProps(),
findWrappingElement(), expandSelectionToSimpleTag(). 2003-06-22 --andrej
54. Bs_NumberField: added mouse wheel support. (note: only ie6 supports the
onmousewheel event). 2003-06-23 --andrej
55. added new javascript component: resizegrip. with example. a web page
will follow. 2003-06-23 --andrej
56. Bs_Misc.lib.js: added 2nd param 'stopIfAbsolute' to getAbsolutePos().
2003-06-24 --andrej
57. added new javascript component: LimitedTextarea. with example.
2003-06-25 --andrej
58. added web pages for all the new javascript components, see
http://work.www.blueshoes.org/en/javascript/
also added a 'misc' page. 2003-06-25 --andrej
59. Bs_DatePicker now uses the Bs_NumberField for the year field. 2003-06-26 --andrej
60. added new javascript component: Bs_FlipFlop. with example. see
http://www.blueshoes.org/en/javascript/flipflop/ 2003-06-29 --andrej
61. Bs_Checkbox: added convertField() and the var imgStyle. added example 2 for it:
http://www.blueshoes.org/_bsJavascript/components/checkbox/examples/example2.html
a value change (eg a click) now updates the icon itself, and does not require
a rerendering of the full checkbox element. 2003-06-30 --andrej
62. Bs_Dropdown: added convertField() to start with an existing text field,
added example 2, fixed the autoAdd feature (in javascript, a class can never
have a var and a method with the same name. one overwrites the other.)
added the maxLength feature. added setSize() and documented the options to
define the width of the fields.
nicer rendering of the text field with the arrow button, it now nearly looks
like a real dropdown. the button looks like it's inside the text field because
of the border handling.
added var fieldName, _updateHiddenField() etc to support an auto-updated
hidden form field.
2003-07-01 --andrej
63. Bs_Button.class.js: added setTitle(), deactivated the ondrag code which was there
for better mouse handling - it has issues. better off without. 2003-07-02 --andrej
64. Bs_DatePicker: added convertField() to start with an existing text field and
added example 3 to show this. using a Bs_Button instead of +/- chars to toggle
the calendar layer now.
When there was no default date, and the picker was opened, it showed the current
day of the LAST month. the idea was to use the current date. fixed. if you know
about javascript's date handling, you know how that happened. 2003-07-02 --andrej
65. Bs_NumberField: added "drawButtonsInside" and "zeroFill" feature, added
example 2 to show it. 2003-07-02 --andrej
66. Bs_LimitedTextarea: added the setBgColorWarning() feature. the new example 2
shows its use. 2003-07-02 --andrej
67. Bs_Slider: added example4_smiley.html.
added method setValue() and deprecated onChangeByApi(), it is the same but
a better name. added the 4th param 'cssStyle' in setArrowIconLeft() and
setArrowIconRight(). 2003-07-03 --andrej
68. Bs_TreeElement: The tree allowed to visually select any element, even if it had
no onclick event attached. the mouse over the element showed the hand instead
of the cursor, and it was clickable. and it got the yellow background and the
focus after a click. now it only allows this if there is some sort of
onClick/onClickCaption attached. i don't think it will cause any harm, but then
i'm not 100% sure either.
The changes were around the lines 564 and 1279. 2003-07-03 --andrej
69. Bs_Radio: implemented the allowNoSelection feature. 2003-07-03 --andrej
70. Bs_Slider: added setDisabled() to disable/re-enalbe the slider. added
example 3 for it. 2003-07-06 --andrej
71. Bs_NumberField: added window resize handling and added a 1second interval to
check the buttons position. added example 3 that shows it. 2003-07-18 --andrej
72. Bs_SpreadSheet now works in mozilla 1.4. 2003-07-30 --andrej
73. Bs_Tree: extendend example 10 to show how different icons can be used for the
same tree.
added Bs_Tree.elementCloseWalkDown() and Bs_Tree.elementCloseWalkUp().
added example 11 that shows how the tree status (checkbox values, open nodes)
can be fetched and how these settings can be applied to the tree again.
2003-07-30 --andrej
74. Bs_Browscap.class.php: better opera handling. does not execute unsupported
ie code anymore. opera likes to identify itself as ie so it is not blocked
out of websites.
2003-07-31 --andrej
75. Bs_LimitedTextarea is now mozilla and opera compatible. 2003-07-31 --andrej
76. Bs_TitleToTooltip: mozilla and opera compatible. 2003-08-01 --andrej
version 4.3
===============================================================================
1. the javascript tree can now be closed and reopened in mozilla aswell. mozilla
does not support style="display:" it only supports style="display:block". 2002/11/12 --andrej
2. the javascript slider now updates the text value in mozilla aswell. this did not work
before because mozilla only supports innerHTML not innerText (yet?). also the colorbar
feature works now. the problem was caused by a mozilla js bug. 2002/11/12 --andrej
3. the javascript Bs_FormFieldSelect.class.js can now sortByText(). with example html file. 2002/11/13 --andrej
4. added $APP['path']['toolbox'] as path in the blueshoes.ini.php 2002/11/14 --andrej
5. Country.sql from the kb has been changed (the english and german spellings of cote d'ivoire:
old: INSERT INTO BsKb.Country VALUES(NULL, 'ci', 'Elfenbeinküste; Cote d\'Ivoire', 'Côte d\'Ivoire', 'Côte d\'Ivoire');
new: INSERT INTO BsKb.Country VALUES(NULL, 'ci', 'Cote d\'Ivoire', 'Elfenbeinküste', 'Côte d\'Ivoire');
--andrej
6. added new sql file to the kb: CountryCapital.sql (with php source file for import into the kb) --andrej
7. updated the list of freemail providers (web.de, yahoo.some) --andrej
8. updated the BsKb.Country table. added the BsKbCountrySononym table. --andrej
9. updated bsSessionBrowscap() in Bs_Misc.lib.php, it won't forget posted data even after a redirect. 2002/11/19 --andrej
10. New basic error handling concept was implemented with Class Bs_Error.class.php. Bs_Error.class.php is a so called
"BS Language Component" (= *not* inherited by Bs_Object). For comfort some short hand function have been defined that
base on this class: E.g. The global function bs_setError($msg, $msgType, $_line_, $_func_, $_file_). (sam)
11. Bs_Object change. Including Bs_Error.class.php into Bs_Object and added new methodes (that use Bs_Error) in Bs_Object:
setError(), getLastError(), getLastErrors(), getErrors() (sam)
12. New basic debugging concept was implemented with Class Bs_XRay.class.php. Bs_XRay.class.php is a so called
"BS Language Component" (= *not* inherited by Bs_Object). For comfort some short hand function have been defined that
base on this class: E.g. The global function XR_dump($foo, $_line_, $_func_, $_file_).
Bs_XRay.class.php is the *first* class that is included by default (in blueshoes.ini.php) (sam)
(again, reported twice...)
New basic Logging concept was implemented with Class Bs_Logger.class.php. Bs_Logger.class.php is a so called
"BS Language Component" (= *not* inherited by Bs_Object). For comfort some short hand function have been defined that
base on this class: E.g. The global function bs_logIt($msg, $msgType, $_line_, $_func_, $_file_).
14. added core/html/Bs_HtmlEntities.class.php 2002/11/19 --andrej
15. Bs_Array: re-added randVal(), updated hashKeysToLower() and hashKeysToUpper()
to use array_change_key_case() if possible and return a new empty array
if no array was passed as param. 2002/11/19 --sam/andrej
16. fixed a bug in core/gfx/Bs_ColorCodes->rgbToHex(). 2002/11/20 --andrej
17. added createDifferentColors() to core/gfx/Bs_ColorCodes. 2002/11/20 --andrej
18. fixed a bug in Bs_Form that occured with php 4.2.2 but not 4.2.3, together with ie6 and some
circumstances, not with mozilla/netscape. ask for details. 2002/11/15 --andrej
19. updated Bs_ColorCodes->createDifferentColors() to use predefined colors (by default). 2002/11/26 --andrej
20. changed Bs_SessionFile and Bs_Browscap to not create 2 sessions when using the redirection. 2002/11/27 --andrej
21. updated instanthelp to use innerHTML instead of innerText cause mozilla still does not support it.
todo: convert nl to br etc. 2002/12/02/ --andrej
22. fixed a bug in the javascript slider that occured when typing in values and the minVal was not 0. 2002/12/09 --andrej
23. fixed the tree so that it does not wrap anymore. was fixed in 4.2.5 --andrej
24. added the toolbar control. ~2002/12/09 --andrej
25. fixed css support for mozilla in the toolbar control.
thanks to "Flying" (flying at dom dot natm dot ru) for information and the fixed code. 2002/12/12 --andrej
26. added sams Bs_HtmlTableParser.class.php to core/html/table. it has been in the toolbox before. also
updated the toolbox (and the website). 2002/12/12 --andrej
27. Updated BS-framework to use the global function isEx() instead of $this->isException() 2002/12/11/ --sam
28. Added new class Bs_SimpleObjPersister.class.php to core/storage/objectpersister.
I think it's the bettre implementation of Bs_ObjPersister and may replace it. 2002/12/12 --sam
29. updated the Bs_HtmlTable class to use for empty cells. 2002/12/14 --andrej
30. fixed the Bs_HtmlTableStyle class when used with arrays and "firstcell" style settings
(instead of xml). also added an example. 2002/12/14 --andrej
31. updated the FileManager to use our Bs_Toolbar instead of domapi. 2002/12/15 --andrej
32. added an example to the FileManager. 2002/12/15 --andrej
33. added bs_lazyLoadClass() and bs_lazyLoadPackage() to core/lang/Bs_Misc.lib.php, have a look.
2002/12/16 --andrej
34. added studlyCapsToSeparated() to Bs_String. 2002/12/16 --andrej
35. Bs_Form: added the Bs_Form->user and Bs_FormField->accessRights functionality. 2002/12/17 --andrej
36. now document everything using 2002-12-17 instead of 2002/12/17. this is sam's wish for xmas. 2002-12-17 --andrej
37. Bs_Form: added for templates. added Bs_FormField->hideCaption.
added Bs_FormFieldCheckbox->textStyles. fixed some bugs, misc changes. 2002-12-19 --andrej
38. added Bs_Array->arrayToText(). 2002-12-22 --andrej
39. added bs_undoMagicQuotes() # Check if magic-quotes are on, and if so strip all slashes from
$_POST, $_GET and $_COOKIE and set magic-quotes flag to off. --sam
40. bs_recursiveStripSlashes # Strips all slashes from an string or array/hash recursively --sam
41. added Bs_Array->arrayMergeRecursive() because the php function array_merge_recursive() fucks up
hashes with numeric keys. 2002-12-27 --andrej
42. added Bs_HtmlUtil->arrayToHiddenFormFields() with ecg. 2002-12-28 --andrej
43. we are now using tabs instead of spaces. files will have mixed 2-spaces and tabs until sam cleans
this using our code-stripper and a regexp. in the end only tabs will be used. currently you need to
set your editors tab width to 2, otherwise the files look crappy. 2002-12-31 --andrej
44. added new Bs_FormFieldSlider class, the implementation of the javascript slider as form field.
2002-12-31 --andrej
45. javascript slider: added examples 3 (for non-framework users) and 4 (with the smiley). 2002-12-31 --andrej
46. javascrpit slider: added/updated the class documentation for many class vars. 2002-12-31 --andrej
47. updated Bs_HtmlUtil->arrayToJsArray() to accept vectors and treat them differently. added ecg
tests. 2003-01-01 --andrej
48. added new class: Bs_FormIniHandler to make ini files directly usable with web forms. 2003-01-01 --andrej
49. added Bs_Array->copyValuesToKeys(). 2003-01-02 --andrej
50. Bs_Form: added example 'renderMyself.php' to show how one can use selfmade form fields. 2003-01-02 --andrej
51. added new class Bs_HnXmlHandler.class.php to deal with xml style and data files for the
Bs_HtmlNavigation.class.php. 2003-01-02 --andrej
52. fixed Bs_HtmlUtil->filterForJavaScript() to convert int 0 to '0' instead of ''.
the problem was that php interprets (0 == '') as true. we need ===. 2003-01-03 --andrej
53. updated Bs_TextType->save() to auto-create a path if it does not exist. 2003-01-04 --andrej
54. javascript tree: fixed a bug in Bs_TreeElement.initByArray() with the 'isChecked' default value.
conversion to int is needed, otherwise the value '0' is interpreted wrong. 2003-01-05 --andrej
55. javascript tree: added new radio button feature and example 8 to show it. 2003-01-05 --andrej
56. fixed a possible bug in the global function getTmp(). if the temp dir could not be determined the
function tried to create /tmp. but even if it succeeded the function returned FALSE instead of /tmp/.
2003-01-08 --andrej
57. Bs_Form now has full support for file uploads using the Bs_FormFieldFile class. this has not really been
implemented before. there are quite some special cases for it. have a look at the class doc. 2003-01-08 --andrej
58. Bs_CugDb now has the 'isUserError' field in the log db table to make a difference of user errors like
wrong password and system/account errors like 'account expired'. on system/account errors we don't double
the login timeout. the user-supplied data was ok. 2003-01-10 --andrej
59. added new class html/Bs_HtmlInfo to fetch information about an html page. 2003-01-11 --andrej
60. fixed a bug in Bs_Url->parseUrlExtended() that occured when there was no path part in the url. 2003-01-12 --andrej
61. Extended Bs_HtmlNavigation.class.php in that you may pass your own unique key for every navigation entry
and only if no key is given then the url is taken (instead of only using the url as key). 2003-01-14 --sam
62. Added the new placeholder __KEY__ in Bs_HtmlNavigation.class.php and user-placeholders. User-placeholders
all start with '__USER_' e.g. '__USER_foo'. 2003-01-14 --sam
63. added new Bs_Odbc class for db access. untested. 2003-01-16 --andrej
64. added Bs_Url->realUrl(). it works like php's realpath(). ecg tests added aswell. 2003-01-18 --andrej
65. updated phpunit to work with php4.3 (a method was defined twice). 2003-01-19 --andrej
66. extended Bs_Url->parseUrlExtended() to return 'extension' aswell, if present. that is the file
extension, for example 'php' for http://www.blueshoes.org/foo.php. updated the ecg. 2003-01-19 --andrej
67. added file/converter/Bs_FileConverterPdf.class.php 2003-01-19 --andrej
68. added 'cpdf', a set of php classes to generate pdf files. it's to pdf what jpgraph is to charts.
2003-01-20 --andrej
69. fixed a possible bug in the Bs_Smtp class that made the body appear in the header when using
some sort of mailserver. 2003-01-22 --andrej
70. added param $makeVarGlobal in Bs_HtmlUtil->arrayToJsArray(). 2003-01-23 --andrej
71. Bs_FormContainer: added new option $pseudoIfNada. the container becomes a pseudoContainer if
there is nothing to show. active by default. 2003-01-23 --andrej
72. Bs_FormFieldRadio: implemented modes 'read', 'readonly' and 'show'. using images. 2003-01-23 --andrej
73. javascript Bs_Slider and Bs_FormFieldSlider have the new options moveX and moveY for easy and
fast positioning (correction of positioning) by pixels. 2003-01-23 --andrej
74. $_SERVER['DOCUMENT_ROOT'] was not alway ending with a slash '/' because some ppl just dont
add the slash at the end of the htdoc dir-path (what we think is a bad habbit). fixed by sam.
75. Bs_Form: added new special field: Bs_FormFieldDatePicker.class.php. with example. 2003-02-03 --andrej
76. added new Bs_DatePicker javascript component. with example. 2003-02-03 --andrej
77. finally implemented the hidden field of the Bs_Slider (javascript component and Bs_Form field) properly.
before it had a bad field name. sam hacked it to get it to work in the meantime. 2003-02-03 --andrej
78. Bs_SimpleSession: added the feture to destroy session data by passing the session ID (SID).
Bs_SimpleSession::destroySID($sid, $destroySessName).
79. Js Wysiwyg editor: added new 'custom 1' tab for full customization. buttons can be added, whatever.
2003-02-06 --andrej
80. Js Toolbar: buttonbar help bar can now have the ? icon. 2003-02-06 --andrej
81. Onomastics plugin: added the option to define your own communicator (serverside php script). 2003-02-07 --andrej
82. Bs_UnitConverter->bitsAndBytes(): added 4th param $round to round the returned value with a default
of 2 (digits). 2003-02-08 --andrej
83. Bs_Form: added new onEnter option: "js:doThis" (read doc for var Bs_Form->onEnter). 2003-02-10 --andrej
84. updated Bs_DatePicker, added many new features. added 2nd example. 2003-02-11 --andrej
85. lots of work on the indexserver plugin, new application based on it named websearchengine. 2003-02-11 --andrej
86. Wrote a new Javascript XML-Parser (Bs_XmlParser.class.js) and a WDDX-de/serializer(Bs_Wddx.class.js).
JS-RS should now be able to transfer *all* data transparently (and mutch faster :). Data is now passed using
http-post by default (instead of http-get; http-get still has a problem) 2003-02-11 --sam
87. added 2 new Bs_Form examples using the wysiwyg widget. 2003-02-11 --andrej
88. Bs_InstantHelp (tooltip): it now renders to left/right bottom/top, wherever there is enough room.
2003-02-11 --andrej
89. Bs_FormFiled has now a server side syntax check for URL and a rudimentary IP 2003-02-14 --sam
90. Bs_Form: moved vars caption, hideCaption from Bs_FormField to Bs_FormElement, that's where they
really belong to. that means all non-field elements now can have a caption aswell, but don't
use it by default. backward compatibility is given.
91. Bs_FormFieldFile: with var $showCurrentFile one can now specify if and how a currently stored file
should be made visible in the form. 2003-02-18 --andrej
92. Bs_CugDb: new methods killOldSessions() and getOldSids() to prevent account-sharing. 2003-02-18 --andrej
93. javascript tree: new method Bs_Tree->elementOpenWalkUp(). 2003-02-20 --andrej
94. added new class: core/gfx/chart/Bs_IntervalChart. 2003-02-20 --andrej
95. extended the Bs_Browscap class to detect pdf/svg/windows media and a few others on ie (win) and
on mozilla. flash has already been detected. 2003-02-20 --andrej
96. added new experimentary class core/text/Bs_DailyText. 2003-02-20 --andrej
97. added new method Bs_Array->reindex(). it takes an array and creates a new index, starting
at pos 0 (vector). does php really not have such a function? did not find one. 2003-02-20 --andrej
98. added new "example" (or web frontend) for the Bs_Stripper class, available at
/_bsCore/util/examples/Bs_Stripper.php. 2003-02-23 --andrej
99. Bs_TreeElement.class.js: added new var dataContainer. 2003-02-23 --andrej
100. Bs_Form: lots of new examples. some minor changes. 2003-03-02 --andrej
101. Bs_Tree: new methods getActiveElement() and setActiveElement(). 2003-03-03 --andrej
102. bsSessionBrowscap(): when the browscap kicks in, post data is persisted in a temp file.
when browscap redirected the temp file is read and $_POST is made available again. this
is how it was. now $_REQUEST is available too. 2003-03-03 --andrej (and sam)
103. Bs_Form: fixed support for Bs_FormField->mustOneOf. it was broken. 2003-03-03 --andrej
104. Plugin InstantHelp: made the ToolTip work in Mozilla (1.3b), and made it respect scrollTop and
scrollLeft. 2003-03-05 --andrej
105. Bs_Form: added new classes Bs_FormFieldCheckboxJs and Bs_FormFieldRadioJs. these are bs_form
implementation of the javascript components. 2003-03-06 --andrej
106. Added new icons for javascript components Bs_Radio and Bs_Checkbox (mainly disabled icons). 2003-03-06 --andrej
107. 2 new global bs-fuctions (def. in Bs_Misc): bs_storeVar($aPhpVar, $file)/bs_loadVar(&$aPhpVar, $file)
These 2 functions are very useful for saving(/reading) PHP vars in an *easy-to-read format* to disk. 2003-03-06 --sam
108. Updated Bs_Misc.lib.js to emulate the IE-DOM functions innerText(), insertAdjacentElement() insertAdjacentHTML()and
insertAdjacentText() in Mozilla1.2+/Gecko/NS6+ 2003-03-19 --sam
109. updated Bs_IniHandler to allow [] chars in the value. 2003-03-22 --andrej
version 4.2 2002/11/06
===============================================================================
a lot of these are structural changes.
1. javascript directory moved completely out of core, one up. (andrej)
2. moved plugin directory out of core, one up. (andrej)
3. smartshop is now an application, not a plugin anymore. (andrej)
4. moved the cms dir out of the core, it is not an application for itself. (andrej)
5. the deprecated core/lang/bs_map.class.php has been removed. such a hash-map is not needed [anymore] in php. (andrej)
6. all directories are now written in lowercase. class files are still the exceptions, starting with an uppercase letter. other files use “studly caps”. (andrej)
7. imagearchive is now an app, not a plugin anymore. (andrej)
8. updated the coding guidelines.
9. splitted jsrs into client and server part, so the server is now a plugin, and the client is in javascripts plugin directory. (andrej)
10. cleaned up everything in javascript. for the new rules see the coding guidelines. (andrej)
11. updated md5.js to avoid possible conflicts because of poor naming in the global scope, and renamed it to md5.lib.js.
12. renamed Bs_Slider.class.js, Bs_Array.lib.js, Bs_Misc.lib.js Bs_Soundex.class.js, Bs_Number.lib.js, these are the new names. (andrej)
13. moved the wddx js libs into the util folder and renamed them. they don’t belong to jsrs. (andrej)
14. Bs_TemplateParser now extends the Bs_XmlParser and not the deprecated Bs_HtmlParser anymore. moved the templateparser into the html/form directory, renamed it to formtemplateparser, it’s only used there. the old cmt directory has been removed. (andrej)
15. Bs_Misc.inc.php is now Bs_Misc.lib.php.
16. moved the Bs_LanguageHandler from util to text.
17. the js stopwatch is now Bs_StopWatch.class.js, updated the file name, class name and the example. the example is now in a subdir.
18. javascript jumpToFirstError() is now bsFormJumpToFirstError(), same with bsFormToggleCheckbox() and bsFormToggleContainer() (used from bs_form).
19. javascript: form/utit.js and formUtil.js merged, now called form/Bs_FormUtil.lib.js
20. oodb and objectpersister moved into subdirs, those are packages.
21. moved the 3 table classes into core/html/table, they deserve their own package.
22. the javascript select fields are now in it’s own class, Bs_FormFieldSelect.class.php.
23. the 3 cug classes are now in the subdir core/auth/cug.
24. howtos, examples and manuals are now directly where they belong, in subdirs named “howtos”, “manuals” and “examples”. so they’re on the same level as “ecg” directories.
25. moved the fileconverter classes from /core/util/ to /core/file/converter/.
26. moved debedoo from /core/storage/debedoo/ to /applications/debedoo/
27. moved core/phpunit/ to core/lang/phpunit/
28. added the new php-doc lines @since and @status, examples:
@since bs4.1
@since php4.3
@since bs4.1, php4.3
@status stable|experimental
you may want to check the codingGuidelines.txt for all @vars.
29. New include philosophy for require_once($APP['path']...
All path parts are small letters and the subpath is part of the 'right side'
E.g.
OLD: require_once($APP['path']['core/Html'] . 'foo.class.php');
NEW : require_once($APP['path']['core'] . 'html/foo.class.php');
30. extended the javascript tree control when working with the checkbox system. (a few special cases)
31. added the javascript dropdown control
32. added the javascript radio control
33. In Bs_IniHandler.class.php corrected quote-handling. Added file write function. (sam)
34. updated the slider to work with mozilla (tested 1.0 and 1.2beta).
35. updated the wysiwyg editor and the spreadsheet editor for bs4.2, and made them much more usable using a class.
36. added the filebrowser "application" to the codebase. it's not mentioned on the website yet. i am not sure
if it will remain there. so far it's used for the wysiwyg editor as image selector.
37. In Bs_Dir. function getFileList() 3x faster.
Corrected a potential bug (file with name 'false').
Added bettre comment. Added fuctionality: new ['returnType'] = 'cascade2 (sam)
38. In Bs_FileSystem added getRealPathSplit() and realPathSplit(). Both accept a path and retun a hash that
with canonicalized real pathname split in ['pathRoot'] <- Things like '/', 'c:/', 'http://', 'ftp://'
['pathCore'] <- e.g. 'path/to/a/subdir/' and ['file'] <- if a file was in the path find it here
39. Changes in Bs_Array.class.php:
- Removed obsolet functions and code.
- Simplified getPos()
- hashKeysToLower() and hashKeysToUpper() us PHP-function if version is >=4.2
- New Set-function intersect(), diff(), complement(). (PHP-function are similar but are not censequent with hash-arrays)