/** * Genera la documentacion de los servicios web provistos por el proyecto (requiere tener publicado el proyecto en localhost) * -r 0|1 reemplaza la documentacion existente */ function opcion__serv_generar_doc() { if (!extension_loaded('wsf')) { throw new toba_error('La extensión wsf no se encuentra cargada, verifique la instalación.'); } $param = $this->get_parametros(); $forzar_reemplazo = isset($param["-r"]) ? $param["-r"] == 1 : false; $proyecto = $this->get_proyecto(); $servicios = toba_info_editores::get_items_servicios_web(); $carpeta_doc = $proyecto->get_dir() . "/doc/servicios_web"; if (!file_exists($carpeta_doc)) { mkdir($carpeta_doc, 0777, true); } $this->consola->mensaje("Generando documentacion..."); $index_page = "<html><head>\n\t\t<link href='wsdl-viewer.css' rel='stylesheet' type='text/css' media='screen'/>\n\t\t</head>\n\t\t<body>\n\t\t<div id='header'>\n\t\t<h1>{$proyecto->get_id()}</h1><h2>Documentación Servicios Web</h2>\n\t\t</div>\n\t\t<div id='inner_box'><div class='page'>\n\t\t<ul>"; foreach ($servicios as $serv_datos) { $servicio = toba_modelo_catalogo::get_servicio_web($proyecto, $serv_datos['item'], $this->consola); $file = $servicio->generar_documentacion($carpeta_doc, $forzar_reemplazo); $index_page .= "<li><a href='{$file}'>{$serv_datos['item']}</a></li>"; unset($servicio); } $index_page .= "</ul></div></div></body></html>"; file_put_contents($carpeta_doc . "/index.html", $index_page); $this->consola->mensaje("Listo. Navegar hacia file://" . $carpeta_doc . "/index.html"); }
static function mostrar_servicios() { $id_proyecto = toba::proyecto()->get_id(); echo "<h2>{$id_proyecto} - servicios web publicados</h2>"; $items = toba_info_editores::get_items_servicios_web($id_proyecto); echo "<ul>"; foreach ($items as $item) { $url_servicio = toba::vinculador()->get_url_ws($id_proyecto, $item['item']); $url_wsdl1 = toba::vinculador()->get_url_ws($id_proyecto, $item['item'], null, array('wsdl' => true)); $url_wsdl2 = toba::vinculador()->get_url_ws($id_proyecto, $item['item'], null, array('wsdl2' => true)); echo "<li><a href='{$url_servicio}'>{$item['item']}</a>: {$item['nombre']}. \n\t\t\t\t\t<a href='{$url_wsdl1}'>wsdl 1.1</a> - <a href='{$url_wsdl2}'>wsdl 2.0</a></li>"; } echo "</ul>"; }
function get_url_ws($proyecto = null, $ws, $parametros = array(), $opciones = array()) { $separador = '&'; if (is_null($proyecto)) { $proyecto = toba::proyecto()->get_id(); } $disponibles = toba_info_editores::get_items_servicios_web($proyecto); $items = array(); foreach ($disponibles as $wservice) { $items[] = $wservice['item']; } if (!in_array($ws, $items)) { //Si no forma parte de los ws, null return null; } $query_str = toba_recurso::url_proyecto($proyecto); $query_str .= '/servicios.php/' . $ws; if (isset($opciones['wsdl'])) { $query_str .= '?wsdl'; } elseif (isset($opciones['wsdl2'])) { $query_str .= '?wsdl2'; } if (isset($parametros) && is_array($parametros)) { foreach ($parametros as $clave => $valor) { $query_str .= $separador . "{$clave}={$valor}"; } } if (isset($opciones['html'])) { $params = isset($opciones['texto']) ? array('texto' => $opciones['texto']) : array(); return $this->generar_html($query_str, $params); } return $query_str; }