code: public function customaction(HTTPRequest $r)
      {
          $req = new BetterButtonsCustomActionRequest($this, $this->owner, $this->owner->ItemEditForm());
  
          return $req->handleRequest($r, DataModel::inst());
      }
docs: Handles all custom action from DataObjects and hands them off to a sub-controller.
  e.g. /customaction/mymethodname
  
  Can't handle the actions here because the url_param '$Action!' gets matched, and we don't
  get to read anything after /customaction/
  
  @param  HTTPRequest $r
  @return BetterButtonsCustomActionRequest