function synved_option_page_add($id, $name, $item) { global $synved_option_list; $type = synved_option_item_type($item); if ($type == 'options-page') { $label = synved_option_item_label($item); $tip = synved_option_item_tip($item); $parent = synved_option_item_parent($item); $role = synved_option_item_role($item); if ($label == null) { $label = $name; } $page_slug = $id . '_' . $name; $addfunc = 'add_' . 'subm' . 'enu_page'; $page = $addfunc($parent, $label, $label, $role, $page_slug, create_function('', 'return synved_option_page_cb(\'' . $id . '\', \'' . $name . '\', synved_option_item_find(\'' . $id . '\', \'' . $name . '\'));')); $synved_option_list[$id]['pages'][$name]['wp-page-slug'] = $page_slug; $synved_option_list[$id]['pages'][$name]['wp-page'] = $page; return $page; } return null; }
function synved_option_ajax_type_addon($action, $params) { $response = null; if (current_user_can('upload_files') && current_user_can('install_plugins')) { $id = isset($params['id']) ? $params['id'] : null; $name = isset($params['name']) ? $params['name'] : null; if ($id != null && $name != null) { $item = synved_option_item_find($id, $name); if ($item != null) { $return = null; $error_list = array(); try { $page_name = synved_option_item_page($id, $name); $page = synved_option_item($id, $page_name); $parent = synved_option_item_parent($page); $url = wp_nonce_url($parent . '?page=' . $page_name, 'synved-option'); ob_start(); $old_err = error_reporting(0); $credentials = request_filesystem_credentials($url); $form = ob_get_clean(); error_reporting($old_err); ob_start(); var_dump($_POST); $posted = ob_get_clean(); if ($credentials === false) { $response['result'] = 'ERROR'; $response['error'] = 'NO_CREDS'; $response['creds_form'] = $form; $response['posted'] = $posted; } else { if (WP_Filesystem($credentials)) { $return = synved_option_item_addon_install($id, $name, $item); } } } catch (Exception $ex) { $return = null; } if ($return != null) { $response['result'] = 'OK'; } } } } return $response; }