For the first problem, you have several options
1. Put a copy of the plugin code in formit2resource (modified for a snippet)
2. Add code invoking OnDocFormSave in formit2resource, something like this:
$modx->invokeEvent('OnDocFormSave',array(
'mode' => modSystemEvent::MODE_NEW,
'id' => $resource->get('id'),
'resource' => & $modx->resource,
));
3. Refactor formit2resource to use the resource/create processor
4. Use NewsPublisher to create the resources.
For the second problem, you'd want to either have a recursive function to set the ancestor's hidemenu fields or something like this (untested)
/* only act on published, non-hidden, non-root docs */
if ($resource->get('parent') && $resource->get('published') && (!$resource->get('hidemenu'))) {
$ids = $modx->getParentIds($resource->get('id'));
if (!empty($ids)) {
foreach ($ids as $id) {
if ($id) {
$doc = $modx->getObject('modResource', $id);
if ($doc->get('hidemenu')) {
$doc->set('hidemenu', 0);
$doc->save();
}
}
}
}
}