/** * @todo: Falta implementar el reemplazo */ function generar_codigo_js($codigo_existente = '') { $nombre_metodo_php = 'extender_objeto_js'; $javascript = ''; foreach ($this->elementos_js as $elemento) { if ($javascript) { $javascript .= "\n"; } $javascript .= $elemento->get_codigo(); } if ($javascript) { if (!toba_archivo_php::codigo_tiene_metodo($codigo_existente, $nombre_metodo_php)) { //--Crea el metodo php $separador = new toba_codigo_separador_php('JAVASCRIPT', null, 'grande'); $separador->identar(1); $php = 'echo "' . "\n"; $php .= $javascript; $php .= '";'; $metodo = new toba_codigo_metodo_php('extender_objeto_js'); $metodo->set_contenido($php); $metodo->identar(1); $codigo = $separador->get_codigo() . "\n" . $metodo->get_codigo(); $this->codigo_php = toba_archivo_php::codigo_agregar_metodo($this->codigo_php, $codigo); } else { //--Agrega al metodo existente $metodo = new toba_codigo_metodo_php('extender_objeto_js'); $codigo_actual = toba_archivo_php::codigo_get_metodo($this->codigo_php, $nombre_metodo_php); //Busca el cerrado del string de javascript $pos = strrpos($codigo_actual, '";'); if ($pos !== false) { $php = toba_archivo_php::codigo_quitar_identacion(substr($codigo_actual, 0, $pos), 2); $php .= $javascript; $php .= toba_archivo_php::codigo_quitar_identacion(substr($codigo_actual, $pos), 2); $metodo->set_contenido($php); $metodo->identar(1); $this->codigo_php = toba_archivo_php::reemplazar_metodo($this->codigo_php, $nombre_metodo_php, $metodo->get_codigo()); } } } }