Gyroscope 19.8 comes with the following changes:
flashsticker
This new function in viewport.js displays a master message overlay that cannot be missed. In addition to the "msg" parameter, this function takes in an optional parameter that dismisses the overlay in seconds. Without the secondary argument, the overlay stays indefinitely until the user clicks on the sticker banner.
marktabsaved
The makesavebar function, defined in forminput.php, comes with a customizable message, which is used for ALL the "greenbar" messages within the tab. Now, the JavaScript function marktabsaved accepts an optional value that overrides the message per invocation.
sql_copy_from_query
The sql_copy_from_query function conveniently clones database entries into either the same table or any other table. Two new parameters were added to this function. One specifies a list of data table fields that need to be negated. Another is a key-value style "reset".
Consider a "reversal" operation on a financial ledger where no entries can be updated or deleted:
id | net | tax | type |
123 | 600 | 78 | 1 |
$query="select * from payments where id=123";
$new_id=sql_copy_from_query($query,$db,
array('id'), //skip the "id" field for auto_increment
array('net','tax'), //negate the numeric fields
array('type'=>2), //set the new entry to Type 2
);
numfile stream mode
libnumfile stores numerically named files in chunked subfolders. Instead of storing files 1.jpg, 2.jpg, .., 20000.jpg in the same folder, 12345.jpg would be placed under /1/123/ using default settings. The numfile_get_contents function transparently retrieves the content of the file by calling file_get_contents.
If a large file needs to be downloaded, file_get_contents is inefficient as it stores the contents of the file in memory before serving the file to the browser. numfile_stream_contents uses readfile instead to stream the file content without creating a copy.
mce keyboard forwarding
Gyroscope hotkeys were previously silenced by its bundled TinyMCE editor. All the hotkeys are now forwarded. For example:
Ctrl+S | Save the current tab |
Ctrl+,+. | Toggle tab fullscreen |
Ctrl+Shift+R | Reload the current tab |
Ctrl+Shift+4 | Close the current tab |
Shift+F+7 | Version Info; Summon the 7th Fleet |