コード例 #1
0
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;
}
コード例 #2
0
 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;
 }