Logo Studenta

enciclopedia sobre funciones de lenguajes de programacion de elearning

¡Este material tiene más páginas!

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("<","&lt;",$mensaje); 
 $mensaje = str_replace(">","&gt;",$mensaje); 
 $mensaje = str_replace("\'","'",$mensaje); 
 $mensaje = str_replace('\"',"&quot;",$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="&nbsp;&nbsp;<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&oacute;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+="&nbsp;<a href='#' 
onclick='javascript:buscarTodasFunciones(&quot;"+arrayRoles[i].q2+"&quot;)'><b>"+ 
arrayRoles[i].q1+"</b></a>&nbsp;&nbsp;<b>-&nbsp;</b>"; 
 //var td2 = document.createElement('TD'); 
 //td1.innerHTML ="&nbsp;<a href='javascript:loading2_2(&quot;"+arrayRoles[i].q2+"&quot;)'>"+ 
arrayRoles[i].q1+"</a>"; 
 hayL++; 
 } // fin de L 
 } // fin FOR 
 
 td1.innerHTML = str.substring(0,str.length-11); 
 //td2.innerHTML ="&nbsp;&nbsp;<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 ="&nbsp;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&oacute;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 ="&nbsp;<a href='javascript:loading2(&quot;"+arrayRoles[i].q2+"&quot;)'>"+ 
arrayRoles[i].q1+"</a>"; 
 
 
56 
 str+= "&nbsp;<a href='#' 
onclick='javascript:buscarDatosFunciones(&quot;"+arrayRoles[i].q2+"&quot;)'><b>"+ 
arrayRoles[i].q1+"</b></a>&nbsp;&nbsp;<b>-&nbsp;</b>"; 
 //td2.innerHTML ="&nbsp;&nbsp;<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 ="&nbsp;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(&quot;"+arrayRoles[i].q2+"&quot;)'>"+ url1.substring(0,10)+"<b>..</b></a>"; 
 td1.innerHTML ="<span style='color:#3B5998;font-size:10px'><b>&nbsp;"+ 
url1+"</b></span><br /><span style='color:#666; font-
size:9px'>&nbsp;"+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(&quot;"+arrayRoles[i].q2+"&quot;)'>"+ 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>&nbsp;"+arrayRoles[i].q1+"</b></span><br /><span style='color:#666; font-
size:9px'>&nbsp;"+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&uacute;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&uacute;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(&quot;"+arrayRoles[i].q2+"&quot;)'>"+arrayRoles[i].q1+"</a>"; 
 td1.innerHTML ="<a 
href='javascript:buscarDatosFunciones(&quot;"+arrayRoles[i].q2+"&quot;)'><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(&quot;"+arrayRoles[i].q2+"&quot;)'>"+ 
arrayRoles[i].q1+"</a>"; 
 td1.innerHTML ="<a 
href='javascript:buscarDatosFunciones(&quot;"+arrayRoles[i].q2+"&quot;)'><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&uacute;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&uacute;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" 
/>&nbsp;&nbsp;&nbsp;Funciones de '+arrayRoles[0].q5.substring(0,13)+'...' ; 
 for(i=0;i<arrayRoles.length;i++) { 
 menuizq +="<li><a 
href='javascript:buscarDatosFunciones(&quot;"+arrayRoles[i].q2+"&quot;)'>"+arrayRoles[i].q1+"</a></li>";

Continuar navegando