$row) { $name = $row[0]['data']['#name']; $form['operations']['#rows'][$operation][] = l(t('Test'), WSCLIENT_UI_PATH . '/manage/' . $service->name . '/operation/' . $name . '/test'); } $form['operations']['#header'][1]['colspan'] += 1; } /** * Publish our testing UI and ajax callbacks. * * hook_menu() */ function wsclient_tester_menu() { // wsclient ui is a little clever with its paths ... Copy it in case it changes. $id_count = count(explode('/', WSCLIENT_UI_PATH)) + 1; $op_count = $id_count + 2; $items[WSCLIENT_UI_PATH . '/manage/%wsclient_service/operation/%wsclient_ui_operation/test'] = array( 'title' => 'test operation', 'page callback' => 'drupal_get_form', 'page arguments' => array('wsclient_tester_operation_test', $id_count, $op_count), 'load arguments' => array($id_count), 'access arguments' => array('administer web services'), 'file' => 'wsclient_tester.inc', 'file path' => drupal_get_path('module', 'wsclient_tester'), ); return $items; }