Contribute

The source code is free !

All the source code is free and open. It is BSD licenced.

Repository SVN

The SVN repository is available https://svn.fournier38.fr/websvn/, with the changelog Changelog

Bugs

DomFramework can have bugs. The TODO list contains the actual backlog, and the next iterations

TODO List
=========

Version 0.47: due date unknown

  FEATURES ADDED:
  * config: allow the DocComment to start with star

  CORRECTED BUGS:

  DEPRECATED FEATURE:

Later:
  - Continue the documentation
  - Exception: add a logging method to all the exception raised by Domframework
    (example in dblayer, all the throw must be logged in english and not
    translated by gettext)

  - dblayeroo: add multiple INSERT simultaneously
  - dbalyeroo: manage the COUNT(*) in displayAdd
  - dblayeroo: Add "ON DUPLICATE KEY UPDATE" with multiple fields modified
  - dblayeroo: Allow the primary key to be on multiple fields

  - getopts : allow to concat the simple opts : -nv => -n -v

  - graph: use opacity to area color
    see https://s3-eu-west-1.amazonaws.com/mdw-images/large/2-angles-de-vue.png
  - graph: allow colors to be bi-gradient
  - graph: add bars graph
  - graph: add area graph
  - graph: add documentation !
  - graph: can't start if the
    /usr/share/fonts/truetype/liberation/LiberationSans-Bold.ttf doesn't exists
    on the sytem
  - graph: PHP Warning:  Cannot modify header information - headers already sent
    by (output started at graph.php:364) in graph.php on line 372 (see the doc
    page, which generate the warning)

  - mail: Test with https://www.mail-tester.com/ et
    docker run -d -p 1025:1025 -p 1080:1080 --name mailcatcher zolweb/docker-mailcatcher

  - shibboleth: add disconnect
  - ipaddresses: compactIP => return inet_ntop (inet_pton ($ip));
  - Update authsql to use userssql (remove unnecessary methods like password
    modification)
  - Create users with dbjson file storage
  - dbjson: add support _unset on array
  - dbjson: add support _push on array

  - file: realpath don't return an absolute path if using realpath ("subdir");
  - file:  Limit the directories to a list of path (path1:path2) and reject if
    the result is not starting by one of the paths
  - form: allow 'file' type to upload
  - form add the HTML5 field types: datetime, datetime-local, date, month,
    time, week, number, email, url, search, tel, and color
  - form: allow different css themes (add to Bootstrap, w3css)
  - form: add form->convert($values) methods to allow modifications like
    trimming, htmlencode, date conversion...
  - form: Allow to update the CSRF token regullary without reloading all the
    page
  - unittest: add a (more) unittest on route:redirect (ex.: outside the
    site=>exception): Problem -> php_sapi_name === cli when using phpunit
  - module: Limit the answers of module Lists to the modules allowed to the
    authenticated user
  - ratelimit: add the SQL storage
  - ratelimit: add the memcached storage

  - roleuser: allow to manage a role associated to a user. The data can be
    stored in an array (from configuration by example) or in database or both
    simultaneously

  - mail: Manage the multiple times for enveloppe hops
  - mail: Add crypted/uncrypted mails
  - mail: Add the possibility to read/create mailer-daemon error mails

  - routeSQL: Allow sorting the columns
  - routeSQL: Allow to update by PATCH in REST
  - routeSQL: Allow to udate one field in REST POST whith
    http://xx/table/{id}/field URL
  - routeSQL: check if the module work when NOT using the mod_rewrite mode
    (in particular the links)
  - routeSQL: check if the cookie is correct when NOT using the mod_rewrite
    mode to save the state of the table
  - routeSQL: When the foreign keys are displayed in the list text, the search
    must also search in the foreign keys
  - routeSQL: Return a chainText with the content of the main information when
    chain is used to be displayed in the HTML output

  - Define the <meta> concerning the TTL when using cacheoutput
  - logger: Allow to save logs in database

  - dblayer: if missing table in read, unreadable message
  - dblayer: allow to define enum fields
  - dblayer: create a PDO DSN constructor for easy configuration for users (for
    pgsql/mysql/sqlite, the PDO DSN format is different)
  - dblayer: see why we can't have more than 255 varchar in unique field in
    MySQL
  - dblayer: Check if http://fr2.php.net/manual/en/pdo.prepare.php#107811
    impact
  - dblayer: add a XML/JSON database support

  - authorization: do an authorization by IP address
  - authorization: do a token authorization for REST (SESSION with a previous
    defined token to protect against CSRF) or see OAuth2 on
    https://tools.ietf.org/html/rfc6749
  - authorizationfile: use the lockfile system instead of internal

  - Markdown: add table support
  - Test the markdown with https://github.com/jgm/CommonMark
  - markdown: allow the ending double-spaces to be converted to <br/> in <ul>

  - cli: allow reading/editing line with arrow support (like zenity)
  - cli: allow support of json in parameters (in plus of urldecode)
  - cli: Can't provide a parameter with '&' (like 'Tom&Jerry')
  - cli: allow reading multiple commands from pipe (cat cmdfile | ./cli)
  - cli: create an interface with helpers by tabs (lauch by ./cli) (like mysql)
  - modelGenerator: multiple foreign keys on same table are not multiple on the
    result
  - modelGenerator: multiple foreign keys on same table try to add multiple time
    the same foreign object
  - authorization SESSION: Check the password each 3 minutes instead of each
    page (quicker when using LDAP backend)
  - lock: in database, in IMAP
  - cache: in database, in memcached

  - outputhtml: correct the layoutVariables function to support layout provided
    in a file (done) or in the layout text

  - auth: add a parameter to 'Remember me'
  - auth: re-add the login to the auth page in case of authentication error
  - authentication: add the 'Remember me' function
  - authentication: allow to reject the anonymous users in verifAuthREST () and
    verifAuthHTML () methods