Descarga la aplicación para disfrutar aún más
Vista previa del material en texto
1 UNIVERSIDAD DE GUAYAQUIL FACULTAD DE CIENCIAS MATEMATICAS Y FISICAS CARRERA DE INGENIERIA EN SISTEMAS COMPUTACIONALES “ENCICLOPEDIA WEB INFORMATICA SOBRE FUNCIONES Y PROCEDIMIENTOS DE LENGUAJES DE PROGRAMACION ORIENTADA A LA IMPLEMENTACION DE E-LEARNING” Proyecto #17 TESIS DE GRADO Previa a la obtención del Título de: INGENIERO EN SISTEMAS COMPUTACIONALES AUTOR: CARLOS ANTONIO ZAMBRANO IZQUIERDO TUTOR: ING. XAVIER LOAIZA GUAYAQUIL – ECUADOR 2010 2 Guayaquil, 11 de octubre del 2010 APROBACION DEL TUTOR En mi calidad de Tutor del trabajo de investigación, “Enciclopedia Web Informática Sobre Funciones y Procedimientos de Lenguajes de Programación Orientada a la Implementación de E-Learning” elaborado por el Sr. Carlos Antonio Zambrano Izquierdo, egresado de la Carrera de Ingeniería en Sistemas Computacionales, Facultad de Ciencias Matemáticas y Físicas de la Universidad de Guayaquil, previo a la obtención del Título de Ingeniero en Sistemas, me permito declarar que luego de haber orientado, estudiado y revisado, la Apruebo en todas sus partes. Atentamente …………………………………. Ing. XAVIER LOAIZA TUTOR 3 DEDICATORIA Todo esfuerzo tiene su recompensa, cuando uno cae se levanta y sigue, por eso, mi trabajo es dedicado a todas las personas quienes su vida se base en la perseverancia y actitud. 4 AGRADECIMIENTO Agradezco a Dios sobre todas las cosas, a mis padres y hermanos quienes son mi ejemplo de superación y agradezco también a mis compañeros de tesis que supieron trabajar en equipo para alcanzar la meta planteada. 5 TRIBUNAL DE GRADO Ing. Frenando Abad Montero Ing. Juan Chanabá Alcócer DECANO DE LA FACULTAD DIRECTOR CIENCIAS MATEMATICAS Y FISICAS Ing. Xavier Loaiza Ing. TUTOR PROFESOR DEL ÁREA - TRIBUNAL AB. Juan Chávez A. SECRETARIO 6 UNIVERSIDAD DE GUAYAQUIL FACULTAD DE CIENCIAS MATEMATICAS Y FISICAS CARRERA DE INGENIERIA EN SISTEMAS COMPUTACIONALES “ENCICLOPEDIA WEB INFORMATICA SOBRE FUNCIONES Y PROCEDIMIENTOS DE LENGUAJES DE PROGRAMACION ORIENTADA A LA IMPLEMENTACION DE E-LEARNING” RESUMEN El internet es una gran herramienta para la búsqueda de información, todo al instante y todo detallado, pero a su vez todo un poco desorganizado, el estudiante que está aprendiendo a programar, empieza conociendo lo básico de cualquiera que sea el lenguaje que esté usando, con el tiempo tendrá que ir perfeccionando su técnica de desarrollo y dependiendo de los procesos que esté desarrollando , tendrá que utilizar un sin número de funciones o procedimientos que dicho lenguaje de programación le facilite para su uso. El estudiante tendrá que aprender a usar esas funciones o procedimientos, pero, ¿qué ocurre cuando no las conoce o no las sabe utilizar?, hay muchos libros de programación en las bibliotecas, pero muy pocos “manuales de bolsillo” que le indiquen las funciones, su sintaxis, su formato o tal vez ejemplos de su uso. Es ahí cuando el estudiante o profesional pierde un tiempo valioso en la búsqueda de información cuando ese tiempo lo puede utilizar en implementar la misma. Autor: Carlos A. Zambrano Izquierdo Tutor: Ing. Xavier Loaiza 7 UNIVERSIDAD DE GUAYAQUIL FACULTAD DE CIENCIAS MATEMATICAS Y FISICAS CARRERA DE INGENIERIA EN SISTEMAS COMPUTACIONALES ENCICLOPEDIA WEB INFORMATICA SOBRE FUNCIONES Y PROCEDIMIENTOS DE LENGUAJES DE PROGRAMACION ORIENTADA A LA IMPLEMENTACION DE E-LEARNING Proyecto de trabajo de grado que se presenta como requisito para optar por el título de INGENIERO EN SISTEMAS COMPUTACIONALES Auto: Carlos Antonio Zambrano Izquierdo C.I.: 0916634264 Tutor: Ing. Xavier Loaiza Guayaquil, octubre de 2010 8 CERTIFICADO DE ACEPTACIÓN DEL TUTOR En mi calidad de Tutor del Primer Curso de Fin de Carrera, nombrado por el Departamento de Graduación y la Dirección de la Carrera de Ingeniería en Sistemas Computacionales de la Universidad de Guayaquil, CERTIFICO: Que he analizado el Proyecto de Grado presentado por el egresado Carlos Antonio Zambrano Izquierdo, como requisito previo para optar por el título de Ingeniero cuyo problema es: Enciclopedia Web Informática Sobre Funciones y Procedimientos de Lenguajes de Programación Orientada a la Implementación de E-Learning. Considero aprobado el trabajo en su totalidad. Presentado por: Carlos Antonio Zambrano Izquierdo _____0916634264_____ Apellidos y Nombres completos Cédula de ciudadanía N° Tutor: __Ing. Xavier Loaiza________ Guayaquil, octubre de 2010 9 INDICE GENERAL Caratula. 1 Aprobación del tutor. 2 Dedicatoria. 3 Agradecimiento. 4 Firmas del Tribunal de Grado. 5 Resumen. 6 Certificado de aceptación del tutor. 8 Indice General. 9 Indice de gráficos. 11 Introducción. 12 CAPITULO I. “EL PROBLEMA”. 13 1.1. Ubicación del problema en un contexto. 13 1.2. Situación conflicto, nudos críticos. 14 1.3. Causas del problema, Consecuencias. 14 1.4. Delimitación del problema. 15 1.5. Formulación del problema. 15 1.6. Evaluación del problema. 15 1.7. Objetivos de la investigación 17 1.7.1. Objetivos Generales. 17 1.7.2. Objetivos Especificos. 17 1.8. Alcances de la investigación. 18 1.9. Justificación e Importancia de la investigación. 19 10 CAPITULO II. “MARCO TEORICO”. 20 2.1. Antecedentes del estudio. 20 2.2. Fundamentación Teorica. 20 2.2.1. Conceptos Utilizados. 20 2.2.2. Arquitectura del Proyecto. 21 2.2.3. Estudio de Factibilidad. 24 2.2.3.1. Factibilidad Operacional 24 2.2.3.2. Factibilidad Teorica. 25 2.2.3.3. Factibilidad Económica. 25 2.3. Fundaenteción legal. 26 2.4. Hipotesis, preguntas a contestarse. 27 2.5. Variables de la investigación. 28 2.6. Definiciones conceptuales. 28 CAPITULO III. “METODOLOGIA” 30 3.1. Modalidad de la investigación. 30 3.2. Tipo de investigación. 30 3.3. Instrumentos de recolección de datos. 31 3.4. Procesamientos de la investigación. 31 3.5. Recolección de la inforación. 33 CAPITULO IV. “MARCO ADMINISTRATIVO”. 34 4.1. Cronograma. 34 4.2. Presupuesto. 39 Referencias Bibliográficas. 40 11 INDICE DE GRAFICOS Pág. GRAFICO 1. Arquitectura n Capas 22 GRAFICO 2. Arquitectura AJAX 23 GRAFICO 3. Arquitectura AJAX Tiempos 23 GRAFICO 4. Arquitectura Elearning 24 12 INTRODUCCIÓN En la actualidad las personas por debido al desarrollo de sus actividades laborales disponen de muy poco tiempo para dedicarse al enriquecimiento profesional por ese motivo optamos por el uso del modelo de estudios a distancia E-Learning, el cual enfoca muchos aspectos funcionales que se pueden desarrollar de una manera progresiva a tal punto de llegar a ser una herramienta eficiente, fuerte y estable para el alumnado de la carrera, ayudado por documentación en línea y apoyado con tutores o profesores que estarán siempre respondiendo a cualquier inquietud del mismo. Mi proyectoa platearse es solucionar una necesidad específica al sistema, enfocado a problemas que todo estudiante de Sistemas tiene al momento de aprender una nueva plataforma o herramienta de programación. Mi proyecto o propuesta de tesis la denominaré en el transcurso del desarrollo del mismo como: “WikiFunciones”. Con la flexibilidad que ofrece e-Learning, su Facilidad de acceso, sus bajos costos y la reducción en tiempos de aprendizaje, hacen de este la mejor solución en para el estudio no presencial. Durante el desarrollo de este documento explicare como el modulo Wikifunciones ayudara al estudiante en el aprendizaje y manejo de los diferentes lenguajes de programación, sin la necesidad de navegar por un sin número de sitios web desordenadamente hasta encontrar soluciones. 13 CAPÍTULO I EL PROBLEMA “Enciclopedia Web Informática Sobre Funciones y Procedimientos de Lenguajes de Programación Orientada a la Implementación de E-Learning" 1.1. UBICACIÓN DEL PROBLEMA EN UN CONTEXTO El internet es una gran herramienta para la búsqueda de información, todo al instante y todo detallado, pero a su vez todo un poco desorganizado, el estudiante que está aprendiendo a programar, empieza conociendo lo básico de cualquiera que sea el lenguaje que esté usando, con el tiempo tendrá que ir perfeccionando su técnica de desarrollo y dependiendo de los procesos que esté desarrollando , tendrá que utilizar un sin número de funciones o procedimientos que dicho lenguaje de programación le facilite para su uso. El estudiante tendrá que aprender a usar esas funciones o procedimientos, pero, ¿qué ocurre cuando no las conoce o no las sabe utilizar?, hay muchos libros de programación en las bibliotecas, pero muy pocos “manuales de bolsillo” que le indiquen las funciones, su sintaxis, su formato o tal vez ejemplos de su uso. Es ahí cuando el estudiante o profesional pierde un tiempo valioso en la búsqueda de información cuando ese tiempo lo puede utilizar en implementar la misma. 14 1.2. SITUACIÓN CONFLICTO NUDOS CRÍTICOS El problema es no obtener de manera rápida en un mismo lugar y al alcance del usuario que está conectado, toda la gama de información de funciones y procedimientos de los lenguajes de programación actuales, con información suficiente que satisfaga las necesidades de los programadores y que al mismo tiempo permita consultar a más personas en una gran comunidad de desarrolladores sobre el uso de las mismas. Herramientas como .NET, IIS, son exclusivas de su fabricante lo cual nos limita en parte el acceso a sus manuales en línea. Otras herramientas como PHP, JAVA. Son en ocasiones más difícil de encontrar ejercicios y notas sobre sus funciones y procedimientos. Y lo mas critico es no poder encontrar en un mismo sitio toda esa información. 1.3. CAUSAS Y CONSECUENCIAS DEL PROBLEMA Las consecuencias más notorias: El alumno no cumple con sus tareas. Perdida del interés por el lenguaje. Poca importancia por la programación. Pérdida de tiempo valioso en la búsqueda de un lugar a otro por una función de un tema especifico. 15 1.4. DELIMITACIÓN DEL PROBLEMA Este sitio Web tendrá el acceso de los estudiantes pertenecientes a la Carrera de Ingeniería en Sistemas de la Universidad de Guayaquil, los cuales formarán una comunidad que apoyara al incremento de información a “Wikifunciones”. Se busca con esto alcanzar un mayor grado de aprendizaje por parte del estudiante, obteniendo mejoras en el desarrollo de sistemas y crear un sentido de colaboración entre ellos. Agregar o editar datos dentro de la Wiki ayudara a incrementar conocimientos al sistema y que el alumnado pueda interactuar con un tutor o sus compañeros para entregar ayudas o soluciones en los códigos que aquí en la Wiki pudieran encontrar. 1.5. FORMULACIÓN DEL PROBLEMA El problema es no obtener de manera rápida, en un mismo lugar, clasificado y ordenado, toda la gama de información de funciones y procedimientos de los distintos lenguajes de programación actuales, tanto que se le dificulte al estudiante realizar investigaciones eficientes para solucionar problemas lógicos o estructurales en códigos de programación en lenguajes algo confusos. 1.6. EVALUACIÓN DEL PROBLEMA Los aspectos generales de evaluación son: Delimitado: El sitio web será montado en una plataforma e-learning el cual será accedido por los alumnos de la Carrera de Ingeniería de Sistemas y contemplará los lenguajes más comunes. La base de datos tendrá lenguajes actuales como: AJAX, JAVA, JAVASCRIPT, HTML, PHP, ORACLE, SQL, VISUAL BASIC .NET, etc. 16 y otros más antiguos como: C++, COBOL, FOXPRO/VISUAL FOXPRO, VISUAL BASIC, etc. Claro: desarrollar una solución web, que permita incorporar en un mismo sitio, de forma ordenada y clasificada, toda una enciclopedia de funciones y procedimientos de programación que abarque los lenguajes que actualmente están en el mercado informático y que el estudiante este utilizando para sus clases universitarias. Relevante: Mantener ordenada la información en la plataforma e-learning hace más fácil, flexible, rápida y eficiente la manera de ejecutar sistemas que requieran de códigos difíciles, los alumnos son los propios ejecutores de una buena información. Como ejemplo tenemos la Wikipedia, el cual se basa en publicaciones de los mismos lectores que cumpliendo una serie de simples configuraciones han mantenido un portal de buena calidad de información. Factible: El sistema se basa en lenguaje PHP lo cual lo hace flexible en desarrollo y de acceso gratuito, los alumnos pueden leer la información y al mismo tiempo pueden retroalimentar la base de funciones agregando nuevas o editando las ya existentes. Variables: Ias variables identificadas en el desarrollo son: los alumnos de CISC, las materias que hagan referencia a lenguajes de programación y el internet. 17 1.7. OBJETIVOS 1.7.1. Objetivo General Desarrollo de un Sitio Web que permita obtener de manera ordenada y clasificada, toda información referente a funciones y procedimientos de los distintos lenguajes de programación y además deberá permitir el ingreso, edición o eliminación de los textos compartidos por los múltiples usuarios registrados. 1.7.2. Objetivos específicos Para cumplir con el objetivo general se plantea lo siguiente: 1. Permitir el acceso al sitio web por registro de usuario. 2. Establecer distintos métodos de búsqueda. 3. Diseñar una interface para el ingreso y edición de textos que permitan adicionar información al sitio web. 4. Elaborar un control del historial de cambios en la información y seguridad administrativa sobre los usuarios. 5. Ofrecer una interface que permita compartir preguntas y respuestas sobre los datos mostrados por el sitio web. 18 1.8. ALCANCES Para cumplir con los objetivos específicos se plantean los siguientes alcances por cada uno: Los perfiles de usuario identificarán los accesos a la aplicación, todos los accesos seran para vizualización y edición pero solo el acceso de profesores serán de tipo administrativo. Se integrará una opción de búsqueda de información, clasificada por: nombres de los lenguajes de programación, iniciales alfanuméricas y un casillero de búsqueda por cualquier tipo de texto ingresado. Los usuarios que quieran colaborar con más información para el sitio, tendrán una interface que les ayudara muy fácilmente a ingresar datos que podrán ser editados por otros usuarios. La información mostrada tendrá contenido como: Lenguaje de programación al que pertenecen, nombre del objeto, nombre de la función o método, descripción, sintaxis, variables, descripción de variablesy ejemplos de uso. Para mantener un control sobre la información que entra al sitio, el usuario que ingrese o edite textos, podrá mantener un historial sobre los cambios y ediciones previas a la misma. 19 El administrador podrá bloquear a usuarios que no cumplan con las normas y reglamentos o que hayan sido denunciados por otros usuarios, todo bajo una revisión del historial. Cada función que se muestre en el sitio web tendrá un pequeño espacio donde ingresar comentarios, notas o preguntas. 1.9. JUSTIFICACION E lMPORTANCIA La aplicación Web tiene el propósito de brindarle al estudiante una herramienta de información clasificada y ordenada, en la cual poder encontrar una extensa gama de funciones y procedimientos de lenguajes de programación actuales y que estén siendo usados como herramientas de aprendizaje en su nivel de estudio. Los Estudiantes tendrán acceso desde el aula virtual y de los demás módulos de E- learning, facilitara la enseñanza del profesor y ayudara al estudiante a tener respuestas a sus inquietudes. La terminología WIKI es utilizada para sitios web cuyas páginas pueden ser editadas por múltiples voluntarios a través del navegador web. Los usuarios pueden crear, modificar o borrar un mismo texto que comparten. WIKIFUNCIONES es parte de proyecto E-Learning para la Carrera de Ingeniería en Sistemas Computacionales de La Universidad de Guayaquil y será desarrollado como una aplicación WEB 2.0, utilizando herramientas de desarrollo web y tecnología AJAX. 20 CAPÍTULO II MARCO TEÓRICO 2.1. ANTECEDENTES DEL ESTUDIO Proyectos similares podemos encontrar en la web, por ejemplo: http://php.net/manual/es/ (manuales de php), y la más conocida http://es.wikipedia.org (enciclopedia mundial), pero se quiere juntar todo esto en un solo sitio, crear una enciclopedia de funciones no solo de php, sino de c++, .net, etc. Un lugar donde se encuentren todos los lenguajes y que obtenga las funcionalidades básicas de una wiki. Para delimitar un poco se planeo aplicarlo en el modelo de estudios e-learning de la carrera de Ing. De sistemas y así limitar el acceso solo a los estudiantes y profesores que por medio de un logoneo puedan acceder a la información. 2.2. FUNDAMENTACIÓN TEÓRICA 2.2.1 Conceptos Utilizados Wiki: Es una forma de sitio Web en donde se acepta que usuarios creen, editen, borren o modifiquen el contenido de una página web, de una forma interactiva, fácil y rápida. Dichas facilidades hacen de una wiki una herramienta efectiva para la escritura colaborativa” (wikipedia) La utilización más conocida de los wiki es wikipedia, la gran enciclopedia libre de Internet. [1] ____________ [1] Fuente: Pedro Cuesta Morales “Aplicaciones Educativas de la Web 2.0” desde http://www.slideshare.net/pedrocuesta/wikis-70922 http://php.net/manual/es/ http://es.wikipedia.org/ http://www.slideshare.net/pedrocuesta/wikis-70922 21 eLearning: El eLearning es la utilización de las nuevas tecnologías y de Internet para mejorar la calidad del aprendizaje y facilitar el acceso a la educación y la formación. “En la sociedad del conocimiento las nuevas Tecnologías de la Información y la Comunicación (TIC) desempeñan un papel esencial. Como resultado de la aplicación de esas nuevas tecnologías al ámbito de la educación y de la formación surge el e-learning, que según definición de la Comisión Europea es “la utilización de las nuevas tecnologías multimediales y de Internet para mejorar la calidad del aprendizaje facilitando el acceso a recursos y servicios, así como los intercambios y la colaboración a distancia”. [2] 2.2.2 Arquitectura del Proyecto Aunque existen muchas variaciones posibles, una aplicación web está normalmente estructurada como una aplicación de n-capas. En su forma más común, el navegador web ofrece la primera capa y un motor capaz de usar alguna tecnología web dinámica (ejemplo: PHP, Java Servlets o ASP) constituye la capa intermedia. Por último, una base de datos constituye la última capa. El navegador web manda peticiones a la capa de en medio que ofrece servicios valiéndose de consultas y actualizaciones a la base de datos y a su vez proporciona una interfaz de usuario Internet. Se procederán a crear las capas necesarias y cada una realizara los ____________ [2] Fuente: Aula 10 en Español desde http://www.auladiez.com/didactica/e-learning-01.html http://www.auladiez.com/didactica/e-learning-01.html 22 procedimientos para los cuales han sido creadas. En la capa externa los componentes sirven a las operaciones de interfaz del cliente. En la capa interna, los componentes realizan operaciones de interfaz del sistema. Las capas intermedias proporcionan servicios de utilidad y funciones del software de aplicaciones. Gráfico.1 Arquitectura N Capas Fuente: http://www.google.com Apache PHP, Tomcat 23 Gráfico.2 Arquitectura Modelo AJAX Fuente: http://www.google.com Gráfico.3 Arquitectura Modelo Ajax “Tiempos” Fuente: http://www.google.com 24 Gráfico.4 Modelo E-Learning Fuente: http://escuela.med.puc.cl/publ/arsmedica/ArsMedica15/EducacionMedicaDistancia.html 2.2.3 Estudio de Factibilidad 2.2.3.1 Factibilidad operacional El módulo WikiFunciones, será desarrollado en una interfaz sencilla, de fácil uso, de tal forma que su utilidad sea fácil de aprender y de manejar. De esta forma evitaríamos que los alumnos se sientan incómodos con el sistema y no muestren interés alguno por utilizarlo. Todos los módulos del sistema eLearning estarán interconectados, dando mayor interactividad con el usuario como si se tratase de una aplicación de escritorio. 25 2.2.3.2 Factibilidad Técnica. Para el desarrollo de WikiFunciones se investigaron varias herramientas para aplicaciones RIA, y Open Source. Una herramienta que nos ayudará en desarrollar aplicaciones es AJAX (JavaScript Asíncrono y XML), debido a que los códigos de Ajax son completamente transparentes para los desarrolladores de aplicaciones web. Por lo tanto, los usuarios finales obtienen una interacción y respuesta similar a las de una aplicación de escritorio, mientras que la complejidad del desarrollo es similar a la que tendría la codificación de aplicaciones de escritorio. En cuanto a las otras herramientas se emplearán tales como Dreamweaver para el desarrollo del sistema, APACHE como servidor de aplicaciones, el lenguaje PHP del lado del servidor y My SQL como motor de base de datos. Cabe indicar que los componentes y herramientas mencionada son compatibles con los diferentes navegadores del mercado, entre los principales: Internet Explorer, Firefox y Chrome entre otros. 2.2.3.3 Factibilidad Económica. Como resultado del análisis costo/beneficio del sistema eLearning modulo WikiFunciones, concluimos que el análisis, diseño y desarrollo no representará costo alguno. Los beneficios son de satisfacción ya que lograr implementar el modulo en la carrera de Sistemas es el primera meta y lograr la aceptación total de los alumnos es lo primordial. 26 Para realizar un control de marketing aplicaremos 4 características de control: a. Flujo: Estado de interactividad y valor añadido que espera ver el usuario al entrar a nuestra página. b. Funcionalidad: Se refiere a una web atractiva, con navegación clara y útil para el usuario. c. Feedback: Es construir una relación con el cliente basada en sus necesidades para personalizar en función de esto la página después de cada contacto. d. Fidelización: Establecer un diálogo personalizado con los alumnos, el tutor es el responsable de mantener buena comunicación interna en el y su alumnado. 2.3. FUNDAMENTACIÓN LEGAL El desarrollototal del sistema se ampara bajo las leyes de desarrollo de Software Libre “Open Source” debido a que todas las herramientas utilizadas para su desarrollo se basan en dicha ley. “La palabra "libre" en nuestro nombre no se refiere al precio; se refiere a la libertad. Primero, a la libertad de copiar y redistribuir un programa a tus vecinos, para que ellos al igual que tu, lo puedan usar también. Segundo, a la libertad de cambiar un programa, así podrás controlarlo en lugar que el programa te controle a ti; para esto, el código fuente tiene que estar disponible para ti.” [3] ____________ [3] Fuente: Free Software Foundation, 1986 Desde Volumen 1, numero 1, pagina 8 : http://www.gnu.org/bulletins/bull1.txt http://www.gnu.org/bulletins/bull1.txt 27 En referencia a la utilización de “Código Libre”, tenemos en el Ecuador la siguiente ley: Decreto N O 1014 firmado el 10 de abril del 2008 por el Presidente del Ecuador Rafael Correa Delgado decreta: Art1. Establecer como política publica para las Entidades de la Administración Publica Central la utilización de Software Libre en sus sistemas y equipamientos informáticos. Art2. Se entiende por Software Libre, a los programas de computación que se pueden utilizar y distribuir sin restricción alguna, que permitan su acceso a los códigos fuentes y que sus aplicaciones puedan ser mejoradas. Estos programas de computación tienen las siguientes libertades: a) Utilización del programa con cualquier propósito de uso común b) Distribución de copias sin restricción alguna. c) Estudio y modificación del programa (Requisito: código fuente disponible) d) Publicación del programa mejorado (Requisito: código fuente disponible). 2.4. HIPÓTESIS PREGUNTAS A CONTESTARSE La hipótesis a demostrar es la siguiente: ”Puede el estudiante mejorar su aprendizaje con el ahorro de tiempo, teniendo toda las características y funciones de programación organizadas en un solo sitio.” Con esto quiero demostrar que montar una herramienta de este tipo en un sitio web es una alivio al estudiante cuando le llega la hora de buscar y buscar en la Red la información que puede encontrar en muchos sitios distintos. Ademas, demostrar que 28 esto forma parte del la flexibilidad de aprendizaje que nos brinda la plataforma eLearning. 2.5. VARIABLES DE LA INVESTIGACIÓN Aprendizaje. Acto de aprender algo. Tiempo. Medida convencional del desarrollo de algo, como los segundos, las horas, los años, los siglos, etc. Organización. Acto de organizar u organizarse. Eficacia. Capacidad para producir un efecto o resultado deseado. 2.6. DEFINICIONES CONCEPTUALES Sobre el Aprendizaje: El conocimiento se desarrolla (crece, se incrementa) con el apoyo de la investigación. Por tal motivo necesita apoyo el cual lo recibirá con el sistema, dándole la facilidad de búsqueda, aumentando su tiempo de desarrollo. Sobre el Tiempo: Unos de los factores en la navegación web es el tiempo, el cual se puede medir por velocidad de transmisión de datos, procesador, memoria, etc. Además de estos factores tenemos el acceso a la información puntual, el cual no siempre se encuentra muy fácilmente. 29 Sobre la Organización. Es muy importante para lograr mejores resultados. Obtener información organizada permite ser más ágiles en la clasificación de lo que se necesita utilizar. Sobre la Eficacia. La eficacia es la capacidad de alcanzar el efecto que espera o se desea tras la realización de una acción. Además es el resultado que queremos alcanzar con el desarrollo del proyecto. Sobre eLearning. El eLearning es la utilización de las nuevas tecnologías y de Internet para mejorar la calidad del aprendizaje y facilitar el acceso a la educación y la formación. “En la sociedad del conocimiento las nuevas Tecnologías de la Información y la Comunicación (TIC) desempeñan un papel esencial. Como resultado de la aplicación de esas nuevas tecnologías al ámbito de la educación y de la formación surge el e-learning, que según definición de la Comisión Europea es “la utilización de las nuevas tecnologías multimediales y de Internet para mejorar la calidad del aprendizaje facilitando el acceso a recursos y servicios, así como los intercambios y la colaboración a distancia”. Sobre Lenguajes de Programación. Lenguaje artificial que puede ser usado para controlar el comportamiento de una máquina, especialmente una computadora. Estos se componen de un conjunto de reglas sintácticas y semánticas que permiten expresar instrucciones que luego serán interpretadas. http://www.alegsa.com.ar/Definicion/de/artificial.php http://www.alegsa.com.ar/Definicion/de/usado.php http://www.alegsa.com.ar/Definicion/de/para.php http://www.alegsa.com.ar/Definicion/de/controlar.php http://www.alegsa.com.ar/Definicion/de/comportamiento.php http://www.alegsa.com.ar/Definicion/de/maquina.php http://www.alegsa.com.ar/Definicion/de/conjunto.php http://www.alegsa.com.ar/Definicion/de/expresar.php http://www.alegsa.com.ar/Definicion/de/luego.php 30 CAPÍTULO III METODOLOGÍA DISEÑO DE LA INVESTIGACIÓN 3.1. MODALIDAD DE LA INVESTIGACION Este proyecto tiene modalidad de campo. En la investigación de campo los datos son recogidos de primera mano por el propio investigador, lo hace en la propia realidad donde ocurre el fenómeno, fuera del espacio del laboratorio donde tiene poco o casi ningún control sobre las variables. 3.2. TIPO DE INVESTIGACION El tipo de investigación será por la Factibilidad, ya que el proyecto permitirá solucionar un problema que se ha ido dando durante mucho tiempo, aunque este problema sea invisible, está presente en el trabajo diario de un programador o un estudiante de sistemas. Como característica: Actividades y recursos necesarios para su ejecución. Se cuenta con el personal que ejecutara el sistema, estos serán los alumnos, se cuenta con la tecnología necesaria y entre las actividades tenemos la continua alimentación de información por parte de los propios alumnos. 31 3.3. INSTRUMENTOS DE RECOLECCIÓN DE DATOS Las técnicas de recolección de datos aplicadas en la investigación de este proyecto fueron: El internet: Es la herramienta numero uno para la obtención de información relevante en el desarrollo del proyecto, de aquí obtendremos ideas, conversaciones, ayudas, y herramientas para la elaboración. La encuesta: la encuesta cuyo objeto es de interactuar de forma directa con el recurso humano, para obtener opiniones importantes. La utilización de esta técnica se realizó a través de un foro electrónico montado en Facebook (http://www.facebook.com/group.php?gid=167849896562971&v=app_2373072738#!/t opic.php?uid=167849896562971&topic=202) elaborado a fin de recoger las ideas, comentarios o sugerencias de un número de integrantes que perteneces a la misma carrera e interés, en este caso la población es incontable porque puede ir creciendo como no. 3.4. PROCEDIMIENTOS DE LA INVESTIGACIÓN En el estudio total para la implementación de una Biblioteca virtual de programación que será parte de la plataforma eLearning, se fijo los siguientes pasos: El problema: Ubicación del problema en un contexto Situación conflicto nudos críticos http://www.facebook.com/group.php?gid=167849896562971&v=app_2373072738#!/topic.php?uid=167849896562971&topic=202 http://www.facebook.com/group.php?gid=167849896562971&v=app_2373072738#!/topic.php?uid=167849896562971&topic=202 32 Causas y consecuencias del problema Delimitación del problema Formulación del problema Evaluación del problema Objetivos de la Investigación Justificación o importancia de la investigación Marco teórico: Antecedentes del estudio. Fundamentación teórica. Arquitectura del proyecto Estudio de Factibilidad. Fundamentación legal. Hipótesis. Variables de la investigación. Módulos disponibles en Opendomo. Metodología: Diseño de Investigación (Tipo de Investigación) Instrumentos de recolección de datos Procedimiento de la Investigación 33 3.5. RECOLECCIÓN DE LA INFORMACIÓN Para la recolección de información se utilizo las técnicas de: La Encuesta. La cual se realizo de forma electrónica, creado foros de discusión en el portal de Facebook, agregando solo a alumnos de la Carrera de Sistemas. La Observación. Esta técnica nos permita analizar a los actores, los lugares, las herramientas que existen en la actualidad y la manera en que se están utilizando. 34 CAPÍTULO IV MARCO ADMINISTRATIVO 4.1. CRONOGRAMA 35 36 37 38 39 4.2. PRESUPUESTO El presupuesto estimado de gastos en el desarrollo del proyecto podemos describir los siguientes: Cuadro No. 1 Detalle de egreso del proyecto Equipos de Computación $0 Herramientas de desarrollo $0 Internet $115 / $23 mensuales Licencias de software $0 Servidores de Aplicación $0 Transporte a tutorías y reuniones $50 Total $165 Horas de desarrollo 720 h Impresión, anillado, empastado de documentación $100 Elaboración: Carlos A. Zambrano Izquierdo Fuente: Grupo de Desarrollo del Proyecto eLearning. Ingresos: La elaboración del proyecto no tuvo ningún financiamiento externo por tal motivo todos los gastos fueron dinero propio. Egresos: En el cuadro No. 1 observamos el desgloce de los egresos en la elaboración del proyecto, como podemos observar, en software es cero dólares, esto debido a la utilización del Código Libre. 40 REFERENCIAS BIBLIOGRÁFICAS C++ manual de bolsillo, Alan C. Plantz, Mexico, editorial: ADDISON- WESLEY. Programacion Basica de FoxPro, Ramon M.Chordá, editorial: ADDISON- WESLEY. Pedro Cuesta Morales “Aplicaciones Educativas de la Web 2.0”, desde http://www.slideshare.net/pedrocuesta/wikis-70922 Aula 10 en Español, desde http://www.auladiez.com/didactica/e-learning- 01.html Concepto elearning, desde http://www.maestrosdelweb.com/editorial/elearning/ Concepto de WIKI, desde http://es.wikipedia.org/wiki/Wiki Decreto 1014. Decreto de la ley de la Republica del Ecuador, desde http://www.drwsoluciones.net/2008/04/11/decreto-1014-software-libre-en- ecuador http://www.slideshare.net/pedrocuesta/wikis-70922 http://www.auladiez.com/didactica/e-learning-01.html http://www.auladiez.com/didactica/e-learning-01.html http://www.maestrosdelweb.com/editorial/elearning/ http://es.wikipedia.org/wiki/Wiki http://www.drwsoluciones.net/2008/04/11/decreto-1014-software-libre-en-ecuador http://www.drwsoluciones.net/2008/04/11/decreto-1014-software-libre-en-ecuador 41 ANEXOS 42 Panel Principal en modo Usuario Repositorio de Funciones Ultimas Funciones Ingresadas Consulta de existencia de funcion P1. Consultas de Datos Busqueda de Funcion Por metodo de busqueda Repositorio de Lenguajes De Programación Detalles para Control de nombres de lenguajes Repositorio de Preguntas y Repuestas Detalle de funcion para La busqqueda Registros de Preguntas y respuestas encontradas por funcion DFD – Nivel 0 – [ WK2 ] – Entrada al Sistema en Modo Administrador Resultado de Busqueda individual Busqueda de Funcion individual P2. Ingreso o Edicion de Funciones Peticion de Ingreso Nuevo Denuncias Ingreso de Pregunta Escritura de Preguntas Segun registro de Funcion presentada Almacenaje de nueva Pregunta Peticion de Edicion Aplica Denuncia Envio de Datos Editados Detalles para el Control de nombres de lenguajes Revision de Denuncias Registros de funciones encontradas Aplicación o negación de Denuncias Devuelve Denuncias P3. Mantenimiento De Datos Mostrar Modulo edita Muestra Envio de Datos Editados Envio de Datos para Editar 43 Panel Principal en modo Usuario Repositorio de Funciones Ultimas Funciones Ingresadas Consulta de existencia de funcion P1. Consultas de Datos Busqueda de Funcion Por metodo de busqueda Repositorio de Lenguajes De Programación Detalles para Control de nombres de lenguajes Repositorio de Preguntas y Repuestas Detalle de funcion para La busqqueda Registros de Preguntas y respuestas encontradas por funcion DFD – Nivel 1 – [ WK2 ] – Entrada al Sistema en Modo Administrador Resultado de Busqueda individual Busqueda de Funcion individual Peticion de Ingreso Nuevo Denuncias Ingreso de Pregunta Escritura de Preguntas Segun registro de Funcion presentada Almacenaje de nueva Pregunta Peticion de Edicion Aplica Denuncia Envio de Datos Editados Detalles para el Control de nombres de lenguajes Revision de Denuncias Registros de funciones encontradas Aplicación o negación de Denuncias Devuelve Denuncias Mostrar Modulo edita Muestra Envio de Datos Editados Envio de Datos para Editar Mantener Lenguajes y Datos Mantenimiento Historial de Cargas Mantenimiento de Lenguajes orden orden Ingreso o Edicion de Datos Revisar WK3 – NIVEL 1 44 Panel Principal en modo Usuario Repositorio de Funciones Ultimas Funciones Ingresadas Consulta de existencia de funcion P1. Consultas de Datos Busqueda de Funcion Por metodo de busqueda Repositorio de Lenguajes De Programación Detalles para Control de nombres de lenguajes Registros de funciones encontradas Repositorio de Preguntas y Repuestas Detalle de funcion para La busqqueda Registros de Preguntas y respuestas encontradas por funcion DFD – Nivel 0 – [ WK3 ] – Entrada al Sistema en Modo Usuario Resultado de Busqueda individual Busqueda de Funcion individual P2. Ingreso o Edicion de Funciones Peticion de Ingreso Nuevo Denuncias Ingreso de Pregunta Escritura de Preguntas Segun registro de Funcion presentada Almacenaje de nueva Pregunta Peticion de Edicion Envio de denuncia Envio de Datos Editados Detalles para el Control de nombres de lenguajes Historial Registro de Historial Denuncias Devuelve Denuncia 45 Panel Principal en modo Visitante Repositorio de Funciones Ultimas Funciones Ingresadas Consulta de existencia de funcion Busqueda de Funcion por metodo de busqueda Registros de funciones encontradas Repositorio de Preguntas y Repuestas Detalle de funcion para La busqqueda Registros de Preguntas y respuestas encontradas por funcion DFD – Nivel 1 – [ WK3 ] – Entrada al Sistema en Modo Usuario Revisar Resultados Revision de Funcion y FAQ Registro de funcion individual Busqueda de Funcion individual Resultado de busqueda Individual Ingreso de Pregunta Escritura de Preguntas Segun registro de Funcion presentada Almacenaje de nueva Pregunta Peticion de Ingreso Nuevo Denuncias Peticion de Edicion Envio de denuncia Envio de Datos Editados Detalles para el Control de nombres de lenguajes Repositorio de Lenguajes De Programación Detalles para Control de nombres de lenguajes Ingreso o Edicion de Datos P2.1. Seguimiento de ediciones y Denuncias Peticion de Seguimiento Historial Registro de Historial Denuncias Devuelve Denuncia 46 DFD – Nivel 2 – [ WK3 ] – P2.1: Seguimiento de ediciones y Denuncias DenunciasEnvio de denuncia Ingreso o Edicion de Datos Peticion de Seguimiento Historial Registro de Historial Procesode seguimiento y control de usuarios editores Ingreso de denunciado, detalle Denuncia Recepcion de Registro de Historial Lecturas de historiales Envio de Registro de Historial 47 Datos de Acceso Examen Online Datos del perfil Solicitar creación de examen Seleccionar tipo de Examen Tipo de examen Asignación de curso al examen Ingreso de preguntas y alternativas de Examen Datos del examen Real Examen Examen Preguntas y alternativas Datos del examen Orden de asignación Activar examen al alumno o grupo Alumno Orden de activacion Totalizar respuestas Orden de creación Orden de activacion Calificaciones Calificación examen Mostrar Calificaciones examen Real Obtener resultado s Totales Datos del examen Examen Preguntas y opciones Alternativas seleccionadas Datos del examen No Real Clases Online.com Contraseña Modulo Estudiante Cargar las Opciones del Alumno Selección de Tipo de examen Iniciar el Examen Real Crear Curso y asignar a los alumnos de ese Curso Registrarse si es nuevo Base1 Modulo Profesor Iniciar el examen no Real Examen Preguntas y opciones Examen Online Aula Virtual Repositorio Virtual de Alumno Calificaciones Orden de acceso Orden de acceso Cargar las Opciones del Profesor Llego la Hora de la clase. Y comienza la video Conferencia Podemos ver al Profesor y su video Explicativo Se habilita la Opción de hacer la pregunta Hacemos la Pregunta por chat Después de eso el Profesor Responde la Pregunta Si no esta habilitada la opción de Hacer Preguntas Esperamos que termine de preguntar nuestro compañero Termino la clase y se Profesor se desconecta Si no se hacen preguntas Elegir Profesor Ver Publicaciones Revisar Descargar archivo Cns Profesor Elegir Semestre/ Materia Cns Semestre/Materia Administración de Publicaciones Subir Informacion Actualizar Registro y Estados de Información Publicada Cns Información Publicada Eliminación de Información Publicada Registrar Base de DatosRepositorio Virtual de Docente Aula Virtual Prendemos nuestra Web Cam y comenzamos la video conferencia a la hora fijada Reproducimos nuestro video y manejamos el “Pausa” y el “Continuar” dependiendo la explicación Si termina la clase el Profesor se desconecta y termina el Video explicativo Salir Salir Si estamos en modo de Pregunta, cualquier estudiante puede preguntar El profesor cambia a modo ocupado mientras responde por Medio del chat Cuando Termina de Responder pasa otra vez de modo ocupado a modo Pregunta Si no Preguntan Si Nadie Mas Pregunta Si hay otra pregunta Si alguien Pregunta Si No Si desea seguir descargando Si desea Salir 1 Si desea Salir 1 Si desea Salir 1 1 Si desea Salir 2 Si desea Salir 2 Si desea Salir 2 2 Panel Principal en modo Visitante Repositirio de funciones Consulta de existencia de funcion P1. Consultas de Datos Panel Principal en modo Usuario Repositorio de funciones Consulta de existencia de funcion P1. Consultas de Datos P2. Ingreso o Edicion de Funciones Peticion de Ingreso Nuevo Ingreso de Pregunta Escritura de Preguntas Segun registro de Funcion presentada Peticion de Edicion Panel Principal en modo Usuario Consulta de existencia de funcion P1. Consultas de Datos P2. Ingreso o Edicion de Funciones Peticion de Ingreso Nuevo Ingreso de Pregunta Escritura de Preguntas Segun registro de Funcion presentada Peticion de Edicion Revision de Denuncias Aplicación o negación de Denuncias P3. Mantenimiento De Datos Mostrar Modulo Generar opciones de búsqueda, descarga y sugerencias Consulta y descarga Validar consulta y descarga Visualizar y Descargar R equerim iento validado Cargar opciones de Administrador A dm in is tr ad or re gi st ra do Actualizar base de Documentos Actualización Almacenamiento de Documentos Adición o Eliminación de Documentos Restringir visualización y descarga R estricción SALIR Libro solicitado Almacén de Links Detalle Links Almacén de opiniones y sugerencias Libros más consultados Registrar automáticamente Numero de visitas y descargas R eg is tr o au to m át ic o Descargas Información restringida Registrar opiniones y sugerencias s ug er en ci as re gi st ra da s Petición Consulta Administrador bibliotecario Registrar Administrador Datos Administrador Base Administradores Detalle AdministradorBibliotecas externas Busqueda externa D es cr ip ci ón d e su ge re nc ia s D etalle de libros C on su lta y D es ca rg a N o P er m iti da Almacén Restringido. D et al le re st rin gi do D etalle consultado G en er ac ió n de Li nk s m ás us ad os Procesar información estadística R eq ue rim ie nt o E st ad ís tic o Visualizar Estadístico Estadístico Salir Biblioteca virtual Datos de usuario Consultar Sugerencias Visualizar sugerencias Detalle sugerencias Consulta Sugerencia Revisión de sugerencias Salida y retorno Salir Salida y retorno SALIR Salir Detalle estadístico 1 Gestionar Digitalización de documentos Documento Digitalizado Datos del documento Biblioteca Física Entrada al sistema de biblioteca 48 Diagrama Entidad Relacion del Módulo “WikiFunciones”. 49 Anexo B (librerías) Cuadro 2. Coneccion a la Base de Datos <?php class DB_mysql { /* variables de conexión */ var $BaseDatos; var $Servidor; var $Usuario; var $Clave; /* identificador de conexión y consulta */ var $Conexion_ID = 0; var $Consulta_ID = 0; var $Guardado_ID = 0; /* número de error y texto error */ var $Errno = 0; var $Error = ""; /* Método Constructor: Cada vez que creemos una variable de esta clase, se ejecutará esta función */ function DB_mysql(){ //$bd = , $host = , $user = , $pass = ) { include_once("config_ecisc.php"); $this->BaseDatos = $entorno["base"]; //$bd; $this->Servidor = $entorno["servidor"]; //$host; $this->Usuario = $entorno["usuario"]; //$user; $this->Clave = $entorno["contrasena"]; //$pass; } /*Conexión a la base de datos*/ //function conectar($bd, $host, $user, $pass){ function conectar(){ //if ($bd != "") $this->BaseDatos = $bd; //if ($host != "") $this->Servidor = $host; //if ($user != "") $this->Usuario = $user; //if ($pass != "") $this->Clave = $pass; // Conectamos al servidor $this->Conexion_ID = mysql_connect($this->Servidor, $this->Usuario, $this->Clave); if (!$this->Conexion_ID) { $this->Error = "Ha fallado la conexión."; return 0; } //seleccionamos la base de datos if (!@mysql_select_db($this->BaseDatos, $this->Conexion_ID)) { $this->Error = "Imposible abrir ".$this->BaseDatos ; return 0; } /* Si hemos tenido éxito conectando devuelve el identificador de la conexión, sino devuelve 0 */ return $this->Conexion_ID; } /* Ejecuta un consulta */ function consulta($sql = ""){ if ($sql == "") { $this->Error = "No ha especificado una consulta SQL"; return 0; } //ejecutamos la consulta $this->Consulta_ID = @mysql_query($sql, $this->Conexion_ID); if (!$this->Consulta_ID) { $this->Errno = mysql_errno(); $this->Error = mysql_error(); } /* Si hemos tenido éxito en la consulta devuelve el identificador de la conexión, sino devuelve 0 */ return $this->Consulta_ID; 50 } /* Ejecuta un guardado de datos */ function guardar($sql = ""){ if ($sql == "") { $this->Error = "No ha especificado una consulta SQL"; return 0; } $this->Guardado_ID = @mysql_query($sql); if (!$this->Guardado_ID) { $this->Errno = mysql_errno(); $this->Error = mysql_error(); } return $this->Guardado_ID; } /* Ejecuta una actualización de datos */function actualizar($sql = ""){ if ($sql == "") { $this->Error = "No ha especificado una consulta SQL"; return 0; } $this->Actualizar_ID = @mysql_query($sql); if (!$this->Actualizar_ID) { $this->Errno = mysql_errno(); $this->Error = mysql_error(); } return $this->Actualizar_ID; } /* este guarda*/ function eliminar($sql = ""){ if ($sql == "") { $this->Error = "No ha especificado una consulta SQL"; return 0; } $this->Eliminar_ID = @mysql_query($sql); if (!$this->Eliminar_ID) { $this->Errno = mysql_errno(); $this->Error = mysql_error(); } return $this->Eliminar_ID; } /* Devuelve el número de campos de una consulta */ function numcampos() { return mysql_num_fields($this->Consulta_ID); } /* Devuelve el número de registros de una consulta */ function numregistros(){ return mysql_num_rows($this->Consulta_ID); } /* Devuelve el nombre de un campo de una consulta */ function nombrecampo($numcampo) { return mysql_field_name($this->Consulta_ID, $numcampo); } /* Devuelve el un arreglo asociativo de datos */ function fetch_array(){ return mysql_fetch_array($this->Consulta_ID); } /* Devuelve currentnext de secuencia segun tabla especificada*/ //function getSecuencia($tabla){ // $consulta = $this->consulta("SELECT currentnext FROM ad_sequence where name = '".$tabla."'"); // while($resultados = $this->fetch_array()) // { return $resultados['currentnext'];} //} /* actualiza currentnext de secuencia segun tabla especificada*/ //function setSecuencia($tabla){ 51 // $consulta1 = $this->consulta("SELECT incrementno FROM ad_sequence where name = '".$tabla."'"); // while($resultados1 = $this->fetch_array()){ $num= $resultados1['incrementno'];} // $newCurrentNext = $this->getSecuencia($tabla) + $num ; // return $this->guardar("UPDATE ad_sequence set currentnext= ". $newCurrentNext." where name = '".$tabla."'"); //} /* Muestra los datos de una consulta */ function setCampos() { $arr=array(); for ($i = 0; $i < $this->numcampos(); $i++){ $arr[] = array("campos" => $this->nombrecampo($i)); } echo json_encode($arr); } function getRegistro() { $arr=array(); while ($row = mysql_fetch_row($this->Consulta_ID)) { $arr[] = array("de" => $row[0],"iva" => $row[1],"sc" => $row[2],"sb" => $row[3] ); } echo json_encode($arr); } /////////////////////////////////////////////////////////// function combos($sql) { $consulta1 = $this->consulta($sql); echo " <select name='cmbConces' id='comboConces' size='' style='width:100%' class='txtOrg'>"; while ($row = mysql_fetch_row($this->Consulta_ID)) { echo "<option value='".$row[1]."'>".$row[1]."</option>"; } echo "</select>"; } /////////////////////////////////////////////////////////// function comboImgs($sql,$id) { $consulta1 = $this->consulta($sql); echo " <select class='imagenes' id='combimg'".$id." size='' style='width:200px' onclick='muestraImg(this.value,$id)'>"; while ($row = mysql_fetch_row($this->Consulta_ID)) { echo "<option value='".$row[1]."@".$row[0]."'>".$row[1]."</option>"; } echo "</select>"; } ////////////////////////////////////////////////////////////////////// function unDato($sql) { $consulta1 = $this->consulta($sql); while ($row = mysql_fetch_row($this->Consulta_ID)) { return $row[0]; } } //////////////////////////////////////////////////////////////////////////////////////////////////////////////// function verconsulta($sql) { $consulta1 = $this->consulta($sql); $salida=""; while ($row = mysql_fetch_array($this->Consulta_ID)) { for ($i = 0; $i < $this->numcampos(); $i++){ $salida .= $row[$i].","; } $arre[] = array("regs" => $salida); $salida=""; } if($this->numregistros()!=0){ echo json_encode($arre); } else { $arre[] = array("regs" => "0"); return json_encode($arre);} } //////////////////////////////////////////////////////////////////////////////////////////////////////////////// function consultas_2($sql) { $consulta1 = $this->consulta($sql); $salida=""; while ($row = mysql_fetch_array($this->Consulta_ID)) { for ($i = 0; $i < $this->numcampos(); $i++){ $salida .= $row[$i]."¬"; } $arre[] = array("regs" => $salida); $salida=""; } if($this->numregistros()!=0){ echo json_encode($arre); } else { $arre[] = array("regs" => "0"); echo json_encode($arre);} } } //fin de la Clse DB_mysql ?> Archivo: Clase_Mysql.inc.php Elaboración: Carlos A. Zambrano I. 52 Cuadro 3 Login al Sistema, Carga de Cookies <?php //esto es para decirle al cache de procesos del navegador que se desactive header("Cache-Control: no-store, no-cache, must-revalidate"); require ("clase_MySql.inc.php"); $miconexion = new DB_mysql ; $miconexion->conectar(); function quitar($mensaje) { $mensaje = str_replace("<","<",$mensaje); $mensaje = str_replace(">",">",$mensaje); $mensaje = str_replace("\'","'",$mensaje); $mensaje = str_replace('\"',""",$mensaje); $mensaje = str_replace("\\\\","\\",$mensaje); return $mensaje; } if(trim($_POST["nick"]) != "" && trim($_POST["password"]) != "" && trim($_POST["tipoUsuario"]) != ""){ $nickN = quitar($_POST["nick"]); $passN = md5($_POST["password"]); //quitar($_POST["password"]); $tipoN = quitar($_POST["tipoUsuario"]); $result; if ( $tipoN == "profesor" ){ $result = $miconexion->consulta("SELECT password,nombres,apellidos FROM exa_profesor WHERE pro_identificacion='$nickN'"); }else if ( $tipoN == "alumno" ) { $result = $miconexion->consulta("SELECT password,nombres,apellidos FROM exa_alumno WHERE alu_identificacion='$nickN'"); } else { $result = $miconexion->consulta("SELECT admin_password,admin_nombre,admin_apellido FROM bib_admin_bibliotecario WHERE bib_identificacion ='$nickN'"); } if($row = mysql_fetch_array($result)){ if($row["password"] == $passN){ session_start(); $_SESSION["usNick"] = $nickN; $_SESSION["usPass"] = $passN; $_SESSION["usTipo"] = $tipoN; $_SESSION["usNoms"] = $row["nombres"]; $_SESSION["usApes"] = $row["apellidos"]; if($tipoN == "alumno") echo 1 ; else echo 2; header( 'Location: ../index.html' ); }else if($row["admin_password"] == $passN){ session_start(); $_SESSION["usNick"] = $nickN; $_SESSION["usPass"] = $passN; $_SESSION["usTipo"] = $tipoN; $_SESSION["usNoms"] = $row["admin_nombre"]; $_SESSION["usApes"] = $row["admin_apellido"]; if($tipoN == "alumno") echo 1 ; else echo 2; header( 'Location: ../index.html' ); }else { header( 'Location: login/login.php?error=La Contraseña es Incorrecta. !!!' ); mysql_free_result($result);} }else{ header( 'Location: login/login.php?error=El Número de Cédula Ingresado NO Existe. !!!' ); mysql_free_result($result); } }else{ header( 'Location: login/login.php?error=Los Datos están Incompletos para Autenticar. !!!' );} //mysql_close(); ?> Archivo: ingresar.php Elaboración: Carlos A. Zambrano I. Cuadro 3 JavaScript del Sistema <script type="text/javascript" language="javascript"> function abrirMenu(){ 53 $("LstMenuVar").style.height='300px'; $("LstMenuVar").style.overflow='auto'; $("MenuFuncionesVariante").style.display='inline'; /*$("MenuFuncionesVariante").style.overflow='auto'; */ } //////////////////////////////////////////////////////////////////// function denunciar(id,tipo){ var url='../seguimientos/denunciar.php'; var param= "id="+id+"&tipo="+tipo; // "nick="+ $F("nick") +"&password="+$F("password");//alert(param); return; var ajaxRequest = new Ajax.Request(url,{method: 'post', parameters: param, asynchronous: true, //var ajaxRequest = new Ajax.Request(url,{method: 'post', asynchronous: true, onSuccess: function(transport) { $("menuDenuncias").innerHTML=transport.responseText; alert("Denuncia enviada."); }} ); } /*////////////////////////////////////////////////////////////////////////////////////////////////////*/ function portada(){ $("capaBusc").innerHTML=""; $("capaBusc").style.display="none"; $("capaLista").style.display='none'; $("capaLista").innerHTML=""; $("LstMenuVar").style.display="none"; var url='buscador.php'; var param= ""; // "nick="+ $F("nick") +"&password="+$F("password"); //var ajaxRequest = new Ajax.Request(url,{method: 'post', parameters: param, asynchronous: true, var ajaxRequest = new Ajax.Request(url,{method: 'post', asynchronous: true, onSuccess: function(transport) { $('ladoDer').innerHTML = transport.responseText; }} ); } ////////////////////////////////////////////////////////////////////////////////////////////////////////// function contribucion(opEd,var0,var1,var2){ $("capaBusc").innerHTML=""; $("capaBusc").style.display="none"; $("capaLista").style.display='none'; $("capaLista").innerHTML=""; $("LstMenuVar").style.display="none"; var idFunc; try { idFunc = $('idFunc').value; } catch(e) { idFunc = '0';} var url='../editor/editor.php'; var param= "opEd="+opEd+"&idFunc="+idFunc+"&var0="+var0+"&var1="+var1+"&var2="+var2 ; //alert(param); var ajaxRequest = new Ajax.Request(url,{method: 'post', parameters: param, asynchronous: true, onSuccess: function(transport) { $('ladoDer').innerHTML = transport.responseText; agregap(); }} ); } ///////////////////////////////////////////////////////////////////////////////////////////////////////////////// function seguimientos(){ $("capaBusc").innerHTML=""; $("capaBusc").style.display="none"; $("capaLista").style.display='none'; $("capaLista").innerHTML=""; $("LstMenuVar").style.display="none"; var url='../seguimientos/seguimientos.php'; var param= ""; // "nick="+ $F("nick") +"&password="+$F("password"); //var ajaxRequest = new Ajax.Request(url,{method: 'post', parameters: param, asynchronous: true, var ajaxRequest = new Ajax.Request(url,{method: 'post', asynchronous: true, onSuccess: function(transport) { $('ladoDer').innerHTML = transport.responseText; }} ); } ///////////////////////////////////////////////////////////////////////////////////////////////////////////////// function historial(id){ $("capaBusc").innerHTML=""; $("capaBusc").style.display="none"; $("capaLista").style.display='none'; $("capaLista").innerHTML=""; $("LstMenuVar").style.display="none"; var url='../seguimientos/historial.php'; 54 var param= "id="+id; // "nick="+ $F("nick") +"&password="+$F("password"); var ajaxRequest = new Ajax.Request(url,{method: 'post', parameters: param, asynchronous: true, //var ajaxRequest = new Ajax.Request(url,{method: 'post', asynchronous: true, onSuccess: function(transport) { $('ladoDer').innerHTML = transport.responseText; }} ); } ///////////////////////////////////////////////////////////////////////////////////////////////////////////////// function importante(){ $("capaBusc").innerHTML=""; $("capaBusc").style.display="none"; $("capaLista").style.display='none'; $("capaLista").innerHTML=""; $("LstMenuVar").style.display="none"; var url='../importante/importante.php'; var param= ""; // "nick="+ $F("nick") +"&password="+$F("password"); //var ajaxRequest = new Ajax.Request(url,{method: 'post', parameters: param, asynchronous: true, var ajaxRequest = new Ajax.Request(url,{method: 'post', asynchronous: true, onSuccess: function(transport) { $('ladoDer').innerHTML = transport.responseText; }} ); } ///////////////////////////////////////////////////////////////////////////////////////////////////////////////// function denuncias(){ $("capaBusc").innerHTML=""; $("capaBusc").style.display="none"; $("capaLista").style.display='none'; $("capaLista").innerHTML=""; $("LstMenuVar").style.display="none"; var url='../seguimientos/denuncias.php'; var param= ""; // "nick="+ $F("nick") +"&password="+$F("password"); //var ajaxRequest = new Ajax.Request(url,{method: 'post', parameters: param, asynchronous: true, var ajaxRequest = new Ajax.Request(url,{method: 'post', asynchronous: true, onSuccess: function(transport) { $('ladoDer').innerHTML = transport.responseText; }} ); } ////////////////////////////////////////////////////////////////////////////////////////////////////////// function loading(letra){ $("capaBusc").innerHTML=""; $("capaBusc").style.display="none"; $("capaLista").style.display='block'; $("capaLista").align='left'; $("capaLista").innerHTML=" <img src='../../../../images/5.gif' width='58' height='16' alt='loading' />"; setTimeout("buscarDatos('"+letra+"')",600); } ////////////////////////////////////////////////////////////////////////////////////////////////////////// //function loading2(idLeng){ // setTimeout("buscarDatosFunciones('"+idLeng+"')",980); // } //function loading2_2(idLeng){ // setTimeout("buscarTodasFunciones('"+idLeng+"')",980); // } ///////////////////////////////////////////////////////////////////////////////////////////////////////// function loading3(text){ //if($("cmbTipo").value==0) {alert("Escoja una opcion del listado [Buscar en?]..");return;} //$("capaLista").align='left'; textoLimpio = text.replace(/^\s*|\s*$/g,""); if(textoLimpio==""){$("capaBusc").style.display="none";return;} $("capaLista").innerHTML=""; $("capaLista").style.display="none"; $("capaBusc").style.display="inline"; $("imagenBuscar").innerHTML="<img src='../../../../images/14.gif' width='15' height='15' alt='loading' />"; //if(text.length <=40 ) {$("capaBusc").innerHTML=text;} setTimeout("buscarDatosCB('1"+text+"')",600); //buscarDatosCB(text); } // buscarDatos() //*****************************************************************************************************************/ // activa y muestra busquedas de el buscador alfabetico function buscarDatos(letra){ url='buscar.php'; param="letra="+letra; var ajaxRequest = new Ajax.Request(url,{method: 'POST', parameters: param, asynchronous: true, 55 onSuccess: function(transport) { arrayRoles = transport.responseText.evalJSON(); $("capaLista").innerHTML=""; //$("capaLista").align='left'; var table = document.createElement('Table'); table.width='99%'; table.style.font="11px sans-serif"; table.border='0'; table.cellspacing="0"; table.cellpadding="0"; table.id="ListaDeLenguajes"; var tabBody = document.createElement('tbody'); var tabBody1 = document.createElement('tbody'); var tr = document.createElement('TR'); var td1 = document.createElement('TD'); td1.setAttribute("colspan","2"); td1.innerHTML="<div style='float:left; color:#B1B1B1'>Lenguajes de Programación con inicial <b>"+letra+"</b>..</div><div style='float:right; cursor:pointer;'></div>"; tr.appendChild(td1); tabBody1.appendChild(tr); table.appendChild(tabBody1); var hayL=0; var hayF=0; /****************************************/ var tr = document.createElement('TR');var td1 = document.createElement('TD'); td1.width="600px"; var str =""; for(i=0;i<arrayRoles.length;i++) { if(arrayRoles[i].q3 == "L"){ str+=" <a href='#' onclick='javascript:buscarTodasFunciones(""+arrayRoles[i].q2+"")'><b>"+ arrayRoles[i].q1+"</b></a> <b>- </b>"; //var td2 = document.createElement('TD'); //td1.innerHTML =" <a href='javascript:loading2_2(""+arrayRoles[i].q2+"")'>"+ arrayRoles[i].q1+"</a>"; hayL++; } // fin de L } // fin FOR td1.innerHTML = str.substring(0,str.length-11); //td2.innerHTML =" <img src='../../../../images/5.gif' width='58' height='16' alt='loading' style='display:none' id='"+arrayRoles[i].q2+"' />"; tr.appendChild(td1); //tr.appendChild(td2); tabBody.appendChild(tr); /****************************************************/ table.appendChild(tabBody); $("capaLista").appendChild(table); if( hayL == 0 ){ var tr = document.createElement('TR'); var td1 = document.createElement('TD'); td1.innerHTML =" No hay Resultados..."; tr.appendChild(td1); var tBody1 = document.createElement('tbody'); tBody1.appendChild(tr); table.appendChild(tBody1); } //***************************************** F var tr = document.createElement('TR'); var td1 = document.createElement('TD'); td1.setAttribute("colspan","2"); var tBody2 = document.createElement('tbody'); td1.innerHTML="<div style='float:left; color:#B1B1B1'>Funciones de programación con inicial <b>"+letra+"</b>..</div>"; tr.appendChild(td1); tBody2.appendChild(tr); table.appendChild(tBody2); str="<div style='width:800px; display:inline-block; overflow:visible'>"; var tr = document.createElement('TR'); var td1 = document.createElement('TD'); td1.width="600px"; //var td2 = document.createElement('TD'); var tBody3 = document.createElement('tbody'); for(i=0;i<arrayRoles.length;i++) { if(arrayRoles[i].q3 == "F"){ //td1.innerHTML =" <a href='javascript:loading2(""+arrayRoles[i].q2+"")'>"+ arrayRoles[i].q1+"</a>"; 56 str+= " <a href='#' onclick='javascript:buscarDatosFunciones(""+arrayRoles[i].q2+"")'><b>"+ arrayRoles[i].q1+"</b></a> <b>- </b>"; //td2.innerHTML =" <img src='../../../../images/5.gif' width='58' height='16' alt='loading' style='display:none' id='"+arrayRoles[i].q2+"' />"; if (i%9 == 0) str +="<br />"; hayF++; } // fin de L } // fin FOR str+="</div>" td1.innerHTML = str; //.substring(0,str.length-11); ; tr.appendChild(td1); //tr.appendChild(td2); tBody3.appendChild(tr); table.appendChild(tBody3); $("capaLista").appendChild(table); if( hayF == 0){ var tr = document.createElement('TR'); var td1 = document.createElement('TD'); var tBody4 = document.createElement('tbody'); td1.innerHTML =" No hay Resultados..."; tr.appendChild(td1); tBody4.appendChild(tr); table.appendChild(tBody4); } } } ); } // buscarDatos() Caja de busqueda //*****************************************************************************************************************/ // activa y busca desde la caja de busqueda function buscarDatosCB(texto){ url='buscarCB.php'; var letra = texto.substring(1,texto.length); var op = texto.substring(0,1); var pal=""; param="letra="+letra+"&op="+op; $("imagenBuscar").innerHTML="<img src='../../../../images/ico6.png' alt='search' width='15' height='15' />"; var ajaxRequest = new Ajax.Request(url,{method: 'POST', parameters: param, asynchronous: true, onSuccess: function(transport) { arrayRoles = transport.responseText.evalJSON(); $("capaBusc").innerHTML=""; $("capaBusc").align='center'; var table = document.createElement('TABLE'); table.width='100%'; table.style.font="9px Verdana, Arial, Helvetica, sans-serif"; table.border='0'; table.cellspacing="0"; table.cellpadding="0"; table.id="cajabuscar"; var hayL=0; var hayF=0; for(i=0;i<arrayRoles.length;i++) { if(arrayRoles[i].q3 == "F"){ var tb = document.createElement('TBODY'); tb.align='left'; var tr = document.createElement('TR'); var td1 = document.createElement('TD'); pal = arrayRoles[i].q2; //td1.setAttribute("onclick","buscarDatosFunciones("+arrayRoles[i].q2+")"); td1.onclick = function() { buscarDatosFunciones(pal); } var url1 = arrayRoles[i].q1.replace(letra,"<b>"+letra+"</b>"); //td1.innerHTML ="<a href='javascript:loading2(""+arrayRoles[i].q2+"")'>"+ url1.substring(0,10)+"<b>..</b></a>"; td1.innerHTML ="<span style='color:#3B5998;font-size:10px'><b> "+ url1+"</b></span><br /><span style='color:#666; font- size:9px'> "+arrayRoles[i].q4.substring(0,60)+"..</span>"; //td2.innerHTML =arrayRoles[i].q4.substring(0,30)+"<b>..</b>"; tr.title = arrayRoles[i].q1+"... "+arrayRoles[i].q4.substring(0,100); tr.style.cursor="pointer"; tr.appendChild(td1); tb.appendChild(tr); table.appendChild(tb); hayL++; } // fin de L } // fin FOR $("capaBusc").appendChild(table); //***************************************** F 57 for(i=0;i<arrayRoles.length;i++) { if(arrayRoles[i].q3 == "D"){ var tb = document.createElement('TBODY'); tb.align='left'; var tr = document.createElement('TR'); var td1 = document.createElement('TD'); pal = arrayRoles[i].q2; //td1.setAttribute("onclick","buscarDatosFunciones("+arrayRoles[i].q2+")"); td1.onclick = function() { buscarDatosFunciones(pal); } //td1.innerHTML ="<a href='javascript:loading2(""+arrayRoles[i].q2+"")'>"+ arrayRoles[i].q1.substring(0,10)+"<b>..</b></a>"; var res = arrayRoles[i].q4.replace(letra,"<b>"+letra+"</b>"); td1.innerHTML ="<span style='color:#3B5998;font- size:10px'><b> "+arrayRoles[i].q1+"</b></span><br /><span style='color:#666; font- size:9px'> "+res.substring(0,70)+"..</span>"; tr.title = arrayRoles[i].q1+"... "+arrayRoles[i].q4.substring(0,100); tr.style.cursor="pointer"; tr.appendChild(td1); tb.appendChild(tr); table.appendChild(tb); hayF++; } // fin de L } // fin FOR $("capaBusc").appendChild(table); if( hayF == 0 && hayL == 0){ var tb = document.createElement('TBODY'); //tb.align='left'; var tr = document.createElement('TR'); var td1 = document.createElement('TD');td1.setAttribute("colspan","2"); td1.innerHTML ="No hay Resultados..."; tr.appendChild(td1); tb.appendChild(tr); table.appendChild(tb);} else { var tb = document.createElement('TBODY'); var tr = document.createElement('TR'); tr.style.cursor="pointer"; var td1 = document.createElement('TD'); td1.setAttribute("colspan","2"); td1.innerHTML ="<div align='center' style='border-top:1px dashed #000'><br/><b>Ver todos los resultados para: </b><span style='color:#006600'>"+letra+"</span></div><br />" ; td1.onclick = function() { buscarTodo(letra); } tr.appendChild(td1); tb.appendChild(tr); table.appendChild(tb); } } } ); } //////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// // muestra todos los resultados que arroja la caja de busqueda function buscarTodo(letra){ $("capaBusc").innerHTML=""; $("capaBusc").style.display="none"; $("capaLista").style.display='none'; $("capaLista").innerHTML=""; url='buscarCB.php'; var op = 2; param="letra="+letra+"&op="+op; var ajaxRequest = new Ajax.Request(url,{method: 'POST', parameters: param, asynchronous: true, onSuccess: function(transport) { arrayRoles = transport.responseText.evalJSON(); $("ladoDer").innerHTML=""; var table = document.createElement('TABLE'); table.width='98%'; table.style.font="11px Verdana, Arial, Helvetica, sans-serif"; table.border='0'; table.cellspacing="0"; table.cellpadding="0"; table.setAttribute("class","bloquesPreview"); table.aling='left'; var tbody = document.createElement('TBODY'); var tr = document.createElement('TR'); 58 var td1 = document.createElement('TD'); td1.align="left"; td1.style.color="#B1B1B1"; td1.setAttribute("colspan","2"); //td1.innerHTML="<h3 style='border-bottom:1px solid #666'>Resultados de la búsqueda</h3><i>Resultados para <b>"+letra+"</b></i><br>"; td1.innerHTML="<div style='float:left; margin-right:8px;'><img src='../../images/find.ico' alt='ico1' /></div><div style=' text-align:left'><h3>Resultados de la búsqueda</h3></div><div class='small' style='margin-bottom:7px;'>Resultados para <b>"+letra+"</b></div><br />"; tr.appendChild(td1); tbody.appendChild(tr); table.appendChild(tbody); for(i=0;i<arrayRoles.length;i++) { if(arrayRoles[i].q3 == "F"){ var tbody = document.createElement('TBODY'); tbody.align='left'; var tr = document.createElement('TR'); //if( i%2 == 0){tr.style.background="#E0EAF7";} var tr2 = document.createElement('TR'); var tr3 = document.createElement('TR'); var td1 = document.createElement('TD'); var td2 = document.createElement('TD'); var td3 = document.createElement('TD'); //td1.innerHTML ="<a href='javascript:loading2(""+arrayRoles[i].q2+"")'>"+arrayRoles[i].q1+"</a>"; td1.innerHTML ="<a href='javascript:buscarDatosFunciones(""+arrayRoles[i].q2+"")'><b>"+arrayRoles[i].q1+"</b></a>"; var textoAlt = arrayRoles[i].q4.replace(letra,"<b>"+letra+"</b>"); td2.innerHTML =textoAlt.substring(0,200)+" <b>...</b>"; td3.innerHTML ="<b>"+arrayRoles[i].q6 +"</b> // <b>"+arrayRoles[i].q5+"</b><br><hr />"; td3.style.color="#006600"; tr.appendChild(td1); tr2.appendChild(td2); tr3.appendChild(td3); tbody.appendChild(tr); tbody.appendChild(tr2); tbody.appendChild(tr3); table.appendChild(tbody); //table.appendChild(tr2); //table.appendChild(tr3); } // fin de L } // fin FOR $("ladoDer").appendChild(table); //***************************************** F for(i=0;i<arrayRoles.length;i++) { if(arrayRoles[i].q3 == "D"){ var tbody = document.createElement('TBODY'); tbody.align='left'; var tr = document.createElement('TR'); //if( i%2 == 0){tr.style.background="#E0EAF7";} var tr2 = document.createElement('TR'); var tr3 = document.createElement('TR'); var td1 = document.createElement('TD'); var td2 = document.createElement('TD'); var td3 = document.createElement('TD'); //td1.innerHTML ="<a href='javascript:loading2(""+arrayRoles[i].q2+"")'>"+ arrayRoles[i].q1+"</a>"; td1.innerHTML ="<a href='javascript:buscarDatosFunciones(""+arrayRoles[i].q2+"")'><b>"+arrayRoles[i].q1+"<b></a>"; var textoAlt2 = arrayRoles[i].q4.replace(letra,"<b>"+letra+"</b>"); td2.innerHTML = textoAlt2.substring(0,200)+" <b>...</b>"; td3.innerHTML = "<b>"+arrayRoles[i].q6 +"</b> // <b>"+arrayRoles[i].q5+"</b><br><hr />"; td3.style.color="#006600"; tr.appendChild(td1); tr2.appendChild(td2); tr3.appendChild(td3); tbody.appendChild(tr); tbody.appendChild(tr2); tbody.appendChild(tr3); table.appendChild(tbody); //table.appendChild(tr2); //table.appendChild(tr3); } // fin de L } // fin FOR $("ladoDer").appendChild(table); } } ); 59 } /////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// //////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// // muestra todas las funciones cuando se elige un lenguaje en el buscador alfabetico function buscarTodasFunciones(letra){ //alert('entro'); $("capaBusc").innerHTML=""; $("capaBusc").style.display="none"; $("capaLista").style.display='none'; $("capaLista").innerHTML=""; $("MenuFuncionesVariante").innerHTML=""; url='buscarFuncionesTodas.php'; param="letra="+letra; var ajaxRequest = new Ajax.Request(url,{method: 'POST', parameters: param, asynchronous: true, onSuccess: function(transport) { arrayRoles = transport.responseText.evalJSON(); $("ladoDer").innerHTML=""; var table = document.createElement('TABLE'); table.width='98%'; table.style.font="11px Verdana, Arial, Helvetica, sans-serif"; table.border='0'; table.cellspacing="0"; table.cellpadding="0"; table.setAttribute("class","bloquesPreview"); if(arrayRoles.length == 0) { var tbody = document.createElement('TBODY'); var tr = document.createElement('TR'); var td1 = document.createElement('TD');td1.setAttribute("colspan","2"); td1.style.background="#FFFFFF"; td1.innerHTML ="<div style='float:left; margin-right:8px;'><img src='../../images/find.ico' alt='ico1' /></div><div style=' text-align:left'><h3>Resultados de la búsqueda</h3></div><div class='small' style='margin-bottom:7px'><b>No hay Resultados...</b></div>"; $("LstMenuVar").style.display="none"; tr.appendChild(td1); tbody.appendChild(tr); table.appendChild(tbody); $("ladoDer").appendChild(table); return; } var tbody = document.createElement('TBODY'); var tr = document.createElement('TR'); var td1 = document.createElement('TD'); td1.align="left"; td1.style.color="#B1B1B1"; td1.setAttribute("colspan","2"); td1.innerHTML=" <div style='float:left; margin-right:8px;'><img src='../../images/find.ico' alt='ico1' /></div><div style=' text-align:left'><h3>Resultados de la búsqueda</h3></div><div class='small' style='margin-bottom:7px;'>Resultados para <b>"+arrayRoles[0].q5+"</b></div><br />"; tr.appendChild(td1); tbody.appendChild(tr); table.appendChild(tbody); var menuizq ="<ul class='menu' style='background-color:#FFF' >"; $("LstMenuVar").style.display="inline"; $("tituloMenuVariante").innerHTML = '<img src="../../../../images/up.gif" width="14" height="8" alt="up" /> Funciones de '+arrayRoles[0].q5.substring(0,13)+'...' ; for(i=0;i<arrayRoles.length;i++) { menuizq +="<li><a href='javascript:buscarDatosFunciones(""+arrayRoles[i].q2+"")'>"+arrayRoles[i].q1+"</a></li>";
Compartir