fields( Field::inst( 'menu_items2.title' )->validator( 'Validate::notEmpty' ), /* Field::inst( 'menu_items2.publish' ), */ /* PUBLISH */ Field::inst( 'menu_items2.publish' ) ->options( Options::inst() ->table( 'publish_options' ) ->value( 'publish' ) ->label( 'publish' ) ) ->validator( Validate::dbValues() ), Field::inst( 'publish_options.publish' ), /* PUBLISH */ Field::inst( 'menu_items2.access' ), Field::inst( 'menu_items2.alias' ), Field::inst( 'menu_items2.menu' ), Field::inst( 'menu_items2.id' ), Field::inst( 'menu_items2.rowOrder' )->validator( 'Validate::numeric' ) ) /* JOIN */ ->leftJoin( 'publish_options', 'publish_options.publish_id', '=', 'menu_items2.id' ) /* JOIN */ ->on( 'preCreate', function ( $editor, $values ) { $editor->db() ->query( 'update', 'menu_items2' ) ->set( 'rowOrder', 'rowOrder+1', false ) ->where( 'rowOrder', $values['rowOrder'], '>=' ) ->exec(); } ) ->on( 'preRemove', function ( $editor, $id, $values ) { $order = $editor->db() ->select( 'menu_items2', 'rowOrder', array('id' => $id) ) ->fetch(); $editor->db() ->query( 'update', 'menu_items2' ) ->set( 'rowOrder', 'rowOrder-1', false ) ->where( 'rowOrder', $order['rowOrder'], '>' ) ->exec(); } ) ->process( $_POST ) ->json();