In master config if there is no site config for this page, bail out.
In the other config pages the strict declare header was missing.
Progress bar inits the progress array with all set to null to avoid
calls on not set index
Basic: recusrive array search has correct parameter declarations &
checks for null/empty/not string
IO: all unset are removed and null or init to array is used to reset
Update for other include pages with some missing default data
- The translation file reader did an isset on a set variable insetad of
checking if the variable is zero and so never started the translation
system
- The DB IO connection not set was wrongly set. If the connection failed
it is not TRUE and else FALSE. There is a new internal method
getConnectionStatus to query this status it returns TRUE/FALSE depending
if the connection failed
- Update the l10n test page with proper translation tests
- init OK
- show current lang/file
- translation test
- switch language test
DB\IO dbReturn method has a third parameter to set read only assoc and
not number data from the query
Install basic composer for trying out psalm
setting phpan/phpstan for basic static checking and do basic clean up on
all of the files
Because .inc style is deprecated and also dangerious as often not setup
correctly on the server all .inc files have been renamed to .php files.
All internall calls have been udpated.
language class needs to have l var set as public
db\io convert encoding function needs to work with false method
parameters as the return can be false and needs a clean pass through in
this case
The base class has now set/get class variable check handlers.
Default they are off and setting undefined variables in a class works as
before.
The flag can be set to throw an error on an unset var but let var still
be set or also surpress setting and unset var.
This can be controlled via setting for the last parameter in class init
or the global var $CLASS_VARIABLE_ERROR_MODE or in the config file the
constant CLASS_VARIABLE_ERROR_MODE (constant > global). Note that if a
global or constant is set the class constructor setting will be
overridden.
Backend/IO/Basic/Login classes are set to be type safe as much as possible if
called from a strict defined php script.
Added random key generator function to the basic class and removed the
random key definitons from the Backend class.
- randomKeyGen
- initRandomKeyLength
Updated the basic bytes to string and string to bytes functions.
Added hrRunningTime method to use the hrtime for precise running time
calculations. Default returns running time in ms. Can be set via
parameter to ns (lowest), ys, ms, s.
The old runningTime method is still there, but it is recommended to use the
hrRunningTime method instead
Removed Error Handling method in Basic, as there is no need for it
there. The is a master one in lib Folder Error.Handling.inc if needed.
Currently Generate/ArrayIO are not 100% type safe [because they are only
used in the edit_base anyway]
- reference save was not 100% correct with isset/empty checks
- more missing fixes in admin_*inc files for non edit_* pages
- non edit page menu build fix
- fix non set smart core vars
- add update SQL for fixing missing cuid in edit_* tables
- ALL classes are E_NOTICE safe as far as possible.
There might be some minor things left over which will be cleaned up in
further testing
- Added declare(strict_types=1); on all pages for trying to make all
calls strict
- Added page_content sub content to edit_page, with this some inner page
content with ACL can be set, eg for use with Ajax/JS calls with backend.
Also alias can be set so the control ajax pages can back reference to
the master page content setting. Currently only one back reference is
allowed
- Note that the PAGES array has no numeric indexes, but uses the cuid as
index
* ACR list has new list at level 10 for listing but not reading/opening
* JS update for the html options create
if select multi allow selected as array for highlight
* Basic Class
- array merge recursive implementation
proper implementation that proper merges nested arrays. With key is
always string override
- array flat per key
For multi arrays flatten down a key -> value entry to set the value to
the level up in the leaf
eg:
foo -> bar -> KEY: value
and you go by KEY as search it will change to
foo -> bar: value
in admin set paths, only call smarty sets if smarty object is initalized
Add better JS html options creation with multi block allow. Old call is
still there as wrapper to new call html_options_block
missing variable init in Class Basic
- Class Basic convert string to bytes fix
- admin edit_* pages do not need JS except pop call, moved that into the
template and do not load any other JS anymore
- changed the EDIT_STYLESHEET/JAVACSRIPT names to ADMIN_ to give them
the proper name that they are admin based functions
- paths are in an extra config file
- plan on moving edit_* css rules into a special CSS file just for this
- Bug in date/time check in Basic class. Time check was invalid
- Add calcDaysInterval to get days between two dates plus weeki days
and weekend days
- Add flatpickr to replace datepickr and move datepickr init function
into separate file (from edit.*.js)
- edit order template indent fix
- Form/Generate init had wrong check on array for load list query
- ACL for group level was still using old session name
edit_order.php is merged into includes/edit_base and changed to symlink
In the CoreLibs
Output/Form/Generate
- switch all " to ' in strings
- add not set init config_array parts if loaded with no
includes/table_arrays/ file
DB/Extended/ArrayIO
- switch all " to ' in strings
ACL/Login
- swich all missing " strings to '
- not TEMPLATE part is deprecated (but leave load in)
the old "www/layout/<admin/frontend>/<template name>/..." layout is
deprecated.
new layout:
www/layout/<admin|frontend>/<cache/css/images/javascript>/
The layout/<admin/frontend> is symlinked to www/<admin|frontend>/layout
templates and lang are moved to includes
www/includes/template/<admin/frontend>
www/includes/lang/<admin/frontend>
and no longer symlinked to any public facing folders
The language po files have already been moved to
4dev/lang/<admin|frontend>/
- Update JS files and remove some not needed code
- Bug fix in Form where the sub element list was not correctly processed
because the DB insert vars got reset on each loop run
- Add return success/failure variable to the ln10 reload
- fceil: hack for float numbers that not properly round up
- floorp: roundown(number, precision): eg 48756, -2 => 48700
- initNumeric: set variable to 0 if not numeric
- Login ads auto return error for AJAX based calls (so the script
doesn't loop hang)
- Basic gets remove line break call
- DB gets minor updates with arrays set and fixes in old internal method calls
First step to clean up all files that are not mandatory for outside
access
* move all header/footer/smarty/set_paths/config files (inc) into
includes/ folder
* generate basic config.php that JUST loads the config.inc file (search)
* config.inc file has sub sections for db access arrays and host
configs, so config.inc is more static
* Also move edit base and template arrays to the include folder
* move the language po files to the 4dev folder as they do not need to
sit outside
* remove not maintained "files.php"
TODO:
split out templates and language files into external layout group
perhaps drop the whole sub template include path thing as this is
actually never really used and more annoying to maintain
eg: layout/frontend/default/ -> layout/frontend
eg: layout/fronend/default/template -> includes/frontend/template
Also check splitting out the NOT define parts of the config.inc file
G_TITLE, EDIT_STYLESHEET, EDIT_JAVASCRIPT, STYLESHEET, JAVASCRIPT
to default define?
DB IO
- Update/Select/Insert checks are sane now and not reverse
- UPDATE can now use RETURNING
- meta table check in postgresql is supressing warning for not existing
table and just returns false
JS (edit)
- update for the html element creation functions
Basic:
- SITE LANG settings added to change default lang based on vhost
- log file id is now set more lienient via globals and not with a global
constant
DB Tables/Functions:
- fix wrong general function and set uid function was missing