Before update

update wp_usermeta
    set meta_value = REPLACE(meta_value, 's:19:"glb_docxplorer_user"', 's:21:"glb_docxplorer_access"')
    where meta_key = 'wp_capabilities';


    update wp_usermeta
        set meta_value = REPLACE(meta_value, 's:21:"glb_docxplorer_access"', 's:19:"glb_docxplorer_user"')
        where meta_key = 'wp_capabilities';



@todo ORM
    - allow the scroll into entity properties using complex paths, ie 'my_prop.my_child_prop.my_subchild_prop'
    // @todo : refresh cache on wordpress update
    -> before_save, after_save, before_delete, after_delete
    -> manage short plugin names !!!! and test plugin names in orm
    -> matching and other Glb_Query functions
    -> join
    -> subquery
    -> check comumn type before inserting or updating
    -> many to many
    -> insert, deleted, update
    -> mysql_real_escape for conditions
    -> refactor
    -> dispatch events
    -> check datetime types as UTC
    -> manage events before_update ...
    -> use Glb_Db_Collection (?)
    -> check entity data type
    -> make a log trait
    -> check all mysql data types
    -> change table->name to table->set_table()
    -> éclaircir ce principe de docx VS docxplorer
    -> normalize plugin paths
    -> inner join and matching -> inner_data / matching_data -> load dependent entities also


    Glb_Users::current

@todo : rendre les plugins multisites
@todo : use set_transient for caching
@todo : use filter_input

@todo : put register_schedules elsewhere, this file should

@todo : manage escape for labels / descriptions
@todo : login page parameters

@todo : forbid multiple form submits, and multiple link clicks
@todo : cron plugin
@todo : create empty plugin
@todo : security notice must be logged
@todo : send filters
@todo : check .txt, .readme everywhere
@todo : allow the use of other plugins templates Core.elements/toto
@todo : log error in database and throw event / filter
@todo : plugin maker
@todo : check private with _
@todo : type = email, password etc.
@todo : functions Glb_Request::_check
jQuery.noticeAdd( { text: whoisonline.online[id] + " is now online" } );
@todo : implement destroy
@todo : upgrade database when version is not up to date

@todo : automatically check / install core plugin
@todo : log defined( 'WPINC' ) called directly
@todo : send filters everywhere
@todo : manage core login stuff
@todo : hook no cache
@todo : allow js css php override
@todo : add screen options
@todo : test install / activate etc...
@todo : test database migration
@todo : spawner only deals with ASCII UTF8 chars
@todo : accept POSTS data for Glb_Html to surround
@todo : get rig of admin_notices to write notices !
@todo : manage error on JSON.parse 'glb_core_public.ajax_response(JSON.parse(xhr.responseText));'


        // Do not execute sql directly
        // Call dbDelta which can migrate database
@todo : add nonce on repo_edit

@todo : create a mean to "autorize" plugins
@todo : remove quotes from internal names
@todo : translation interface
@todo : traduction des messages

@todo : add functionalities to call gloubi core labels, or a functionality that checks

@todo : manage quick and persistant cache
@todo : dependent params

@todo : test Glb_Hash, Glb_Collection
@todo : admin page ajax
@todo : ajax errors manage
@todo : ajax errors on elfinder
Voir Screenshot "bouton réduire le menu.png"
@todo : create view object
@todo : timeout on timer action

@todo : settings add a checkbox list setting type
Comme discuté via skype cet aprèm, check stp que, dans tous les cas, les login users docxplorer atterissent bel et bien sur la page DocXplorer


-------------------------------------------------------------
Dev functionalities :
@todo : catch php exceptions or redirect wp_errors

-------------------------------------------------------------
@todo - check html validity


function hook_nocache() {
    ?>
  <meta http-equiv="cache-control" content="max-age=0" />
  <meta http-equiv="cache-control" content="no-cache" />
  <meta http-equiv="expires" content="0" />
  <meta http-equiv="expires" content="Tue, 01 Jan 1980 1:00:00 GMT" />
  <meta http-equiv="pragma" content="no-cache" />
    <?php
}
add_action('wp_head', 'hook_nocache');



before production :
- language files
- put index.php everywhere
- verify .htaccess where to need to do that
- test security
- check if ( ! defined( 'WPINC' ) ) { die; } everywhere
- désactiver certaines fonctionnalités

- license and file headers
- repositories icons for configured-not-configured / with-or-without files
- catch rename

Filter pages on wich to load scripts

yarn add github:Studio-42/elFinder --modules-folder vendors
yarn add github:Studio-42/elFinder --modules-folder vendors
yarn update --modules-folder vendors

check file_manager plugin for différences


- detect differences on change log
- detect changes before logging user modifications -> add column details

- check external files download
- unit tests

- organiser un peu mieux les glb_db_collection, call that glb_table
- Envoyer une notification email

before production :

- admin table in ajax
- make notices from ajax

