====== NÉFELE for HARBOUR ====== **Néfele for Harbour** es una librería de clases con la que desarrollar aplicaciones Web en tiempo récord, basada en [[https://harbour.github.io/|Harbour]] utilizando su entorno de trabajo, sintaxis y acceso a bases de datos [[https://en.wikipedia.org/wiki/.dbf|DBF]], [[https://www.sqlite.org/index.html|SQLite]], [[https://mariadb.org/|MySql/MariaDB]], [[https://es.wikipedia.org/wiki/Microsoft_SQL_Server|SQL Server]], [[https://firebirdsql.org/|FireBird]], [[https://www.postgresql.org|PostgreSQL]] y MSAccess. **Néfele** permite mediante una serie de objetos ([[controles:wpanel|paneles]], [[controles:wlabel|textos]], [[controles:wbutton|botones]], [[controles:wedit|campos de edición]], [[controles:wlistview|listas de datos]], etc.) el montaje de una aplicación Web ejecutable en un navegador cualquiera y que además sea responsive. Utiliza para ello el framework [[https://materializecss.com/|Materialize]] basado en Material design como base aunque no renuncia a incorporar otras extensiones para enriquecer su aspecto y mejorar su usabilidad como los mensajes de [[https://sweetalert2.github.io/|Sweet Alert]], la creación de PDF con [[https://github.com/MrRio/jsPDF|jsPDF]], las notificaciones Push con [[https://onesignal.com/|OneSignal]], los tour informativos con [[http://iamdanfox.github.io/anno.js/|Anno.js]], el visualizador de PDF [[https://mozilla.github.io/pdf.js/|PDF.js]], la inclusión de [[controles:wqrcode|códigos QR]] en nuestras páginas o la creación de [[componentes:wXLSXReport|Hojas de Calculo XLSX]]. **Néfele** es el fruto de la colaboración de un grupo de programadores, usuarios de [[https://Xailer.com|Xailer]], que viendo la necesidad de expandir las aplicaciones de escritorio a la Web han llegado a esta solución totalmente operativa y extremadamente sencilla. ===== F.A.Q. PREGUNTAS FRECUENTES ===== [[nefelefaq|Consulta aquí las preguntas frecuentes de los usuarios.]] ===== Controles ===== * [[controles:wArrayBrowse]] * [[controles:wItemColBrowse]] * [[controles:wAttachFile]] * [[controles:wBadge]] * [[controles:wBevel]] * [[controles:wBevelFooter]] * [[controles:wRow]] * [[controles:wButton]] * [[controles:wCard]] 🚧 * [[controles:wCheckBox]] * [[controles:wChips]] * [[controles:wComboBox]] * [[controles:wItemComboBox]] * [[controles:wControl]] 🚧 * [[controles:wDatePicker]] * [[controles:wEdit]] * [[controles:wFileOpenDlg]] * [[controles:wFloatingBtn]] * [[controles:wItemFloatBtn]] * [[controles:wForm]] * [[controles:wIcon]] * [[controles:wImage]] 🚧 * [[controles:wFlexItem]] 🚧 * [[controles:wJsonClass]] 🚧 * [[controles:wLabel]] * [[controles:wListView]] 🚧 * [[controles:wItemListView]] 🚧 * [[controles:wMask]] 🚧 * [[controles:wMsgAlert]] 🚧 * [[controles:wPanel]] 🚧 * [[controles:wParallax]] 🚧 * [[controles:wItemParallax]] 🚧 * [[controles:wQrCode]] * [[controles:wRadioMenu]] 🚧 * [[controles:wRange]] 🚧 * [[controles:wRebar]] * [[controles:wRepeater]] 🚧 * [[controles:wSeparator]] * [[controles:wSideNav]] 🚧 * [[controles:wItemSideNav]] 🚧 * [[controles:wSimpleMenu]] 🚧 * [[controles:wSlider]] 🚧 * [[controles:wItemSlider]] 🚧 * [[controles:wSplitButton]] 🚧 * [[controles:wItemFloatBtn]] * [[controles:wStyle]] 🚧 * [[controles:wStyleItem]] 🚧 * [[controles:wSwitch]] * [[controles:wTabs]] 🚧 * [[controles:wItemsTabs]] 🚧 * [[controles:wTags]] 🚧 * [[controles:wTimePicker]] * [[controles:wToast]] 🚧 * [[controles:wWaitOn]] 🚧 * [[controles:tWebPage]] 🚧 En construcción; Solo esta documentada la declaración de la Clase.\\ ✨ Control en desarrollo aún no publicado. ===== Controles creados por los Usuario (Contrib)===== * [[contrib:wChart]] * [[contrib:wDataTable]] * [[contrib:wCodeScanner]] ===== Propiedades ===== * [[propiedades:aWidth]] * [[propiedades:aOffset]] * [[propiedades:aParams]] * [[propiedades:cAjaxBevel]] * [[propiedades:lAjaxWaitOn]] * [[propiedades:cAjaxText]] * [[propiedades:cClassId]] * [[propiedades:cIcon]] * [[propiedades:cId]] * [[propiedades:cImage]] * [[propiedades:cOnClick]] * [[propiedades:lEnabled]] * [[propiedades:nRowId]] * [[propiedades:oHtml]] * [[propiedades:oStyle]] * [[propiedades:oParent]] ===== Componentes ===== * [[componentes:wAddFunction]] * [[componentes:wAdoConnect]] * [[componentes:wStyle]] * [[componentes:Coordenadas Gps]] * [[controles:wManifest]] 🚧 * [[controles:wPDFReport]] * [[componentes:wXLSXReport]] ✨ **Proximamente en Néfele 0.5** ✨ /* * [[componentes:wHtml]] */ ===== Métodos Comunes ===== * [[metodos:Assert]] * [[metodos:Create]] * [[metodos:FullHtml]] * [[metodos:LogDebug]] * [[metodos:LogError]] /* * [[metodos:oParentForm]] * [[metodos:oParentWeb]] */ ===== Funciones Generales ===== ^Función ^Descripción ^ |[[funciones:AddLinkHtml|nfl_AddLinkHtml]] | Crear Link Html | |[[funciones:AddLinkTel|nfl_AddLinkTel]] | Crear Link de Teléfono | |[[funciones:nfl_AllString]] | Convierte todo a carácter y ajusta a un tamaño | |[[funciones:ArrayColumn|nfl_ArrayColumn]] | Nos extrae una columna de un Array | |[[funciones:nfl_ArrayToCookie]] | Codifica un Array para ser utilizado en una Cookie | |[[funciones:nfl_ArrayDistinct]] | Devuelve un array al que se le quitan los duplicados filtrando por una columna. | |[[funciones:nfl_Array2Char]] | Convierte un array a una cadena de caracteres separada por comas u otro separador. | |[[funciones:nfl_Array2Char|nfl_ArrayToChar]] | ::: | |[[funciones:AsciiHTML|nfl_AsciiHTML]] | Conversión de Cadenas/Array ANSI a UTF8 | |[[funciones:CallAutoForm|nfl_CallAutoForm]] | Crear una llamada Automática a nuestro CGI o a una URL | |[[funciones:CacheFile|nfl_CacheFile]] | Tratamiento de páginas cacheadas en el servidor | |[[funciones:nfl_CalcOffsetSQL]] | Esta función devuelve el Offset necesario para paginar una consulta SQL | |[[funciones:nfl_Char2Array]] | Conversión de una Cadenas en Array según el delimitador indicado| |[[funciones:nfl_Char2Array|nfl_CharToArray]] | ::: | |[[funciones:nfl_ChkCookie]] | Nos valida un Cookie | |[[funciones:nfl_ChkFormUID]] | Devuelve .T. si el wformuid es valido y se puede procesar el wForm | |[[funciones:nfl_CleanTag]] | Esta función limpia de una cadena el tags pasados | |[[funciones:nfl_CleanTags]] | Esta función limpia de una cadena todos los tags pasados | |[[funciones:nfl_ClrMaterialize]] | Localiza colores Materialize o su equivalente Hexadecimal | |[[funciones:nfl_Console]] | Envía Mensajes a NefeleConsole | |[[funciones:nfl_Comillas]] | Encapsula la cadena entre comillas simples | |[[funciones:nfl_Comillasd]] | Encapsula la cadena entre comillas dobles | |[[funciones:nfl_CookieToArray]] | Descodifica un Array recibido en una Cookie | |[[funciones:nfl_CloseAllItemLV]] | Crea el código JS para cerra todos los wItemListView de un wListView Collapsable/Expandable | |[[funciones:nfl_CloseModal]] | Nos genera el código JavaScript necesario para cerrar una ventana modal | |[[funciones:nfl_CloseSideNav]] | Nos genera el código JavaScript necesario para ocultar el wSideNav | |[[funciones:nfl_CreateTimeOut]] | Crear un evento Timer en la página | |[[funciones:nfl_DefaultSecurityPolicy]] | Configuración básica de politicas de seguridad seguridad | |[[funciones:nfl_DirectOutputMessage]] | Creación y envió de una página Básica con un mensaje | |[[funciones:nfl_DToJSD]] | Convierte una fecha Harbour a formato JavaScript .toString() | |[[funciones:nfl_DToJSDS]] | Convierte una fecha Harbour a formato JavaScript .toDateString() | |[[funciones:nfl_DownloadFile]] | Creación de un Link para la descarga de un fichero disponible en htdocs | |[[funciones:nfl_EmbedFile]] | Código HTML para embeber un fichero en un wBevel | |[[funciones:nfl_EmbedJSon]] | Crea el HTML necesario para embeber una visualización de un fichero JSon | |[[funciones:nfl_EmbedPDFjs]] | Crea el HTML necesario para embeber una llamada al visor PDFjs | |[[funciones:nfl_EmbedXML]] | Crea el HTML necesario para embeber una visualización de un fichero XML | |[[funciones:nfl_ExtractStr]] | Extrae una subcadena contenida entre dos cadenas | |[[funciones:nfl_FileDate]] | Extraer la Fecha de creación de un Fichero | |[[funciones:nfl_FillForm]] | Facilita la actualización de un wForm ya existente por AJAX | |[[funciones:nfl_GeneraTmp|nfl_GetTmpFileName]] | Genera el nombre de un fichero temporal en base a un nombre de fichero | |[[funciones:nfl_IsDate]] | Nos indica si el valor es una fecha correcta en xBase | |[[funciones:nfl_IsTime]] | Nos indica si el valor es una hora correcta en xBase | |[[funciones:nfl_IsBase64]] | Nos indica si el valor es una cadena en formato Base64 | |[[funciones:nfl_IsDebug]] | Nos indica si se esta ejecutando el CGI en modo Debug | |[[funciones:nfl_JSDtoD]] | Convierte una Fechas en formato JavaScript a xBase | |[[funciones:LoadCacheFile|nfl_LoadCacheFile]] | Recuperar una página cacheada en el servidor| |[[funciones:nfl_MimeExt]] | Retorna la extensión de fichero en base a su tipo Mime | |[[funciones:nfl_MimeType]] | Retorna el tipo Mime de un fichero según su extensión | |[[funciones:nfl_MsgSave]] | Crea un fichero secuencial de mensajes | |[[funciones:nfl_MsgSesionCaducada]] | Cadena y AutoEvento para notificar la sesión como Caducada | |[[funciones:nfl_OpenItemListView]] | Genera el JS necesario para abrir un ItemListView | |[[funciones:nfl_OpenModal]] | Apertura y Cierre de wBevel Modal | |[[funciones:nfl_OpenSideNav|]] | Apertura y Cierre del SideNav | |[[funciones:nfl_OnlyFileName]] | Nos retorna el nombre de un fichero sin extensión ni Path | |[[funciones:nfl_PreloadCss]] | Fuerza la precarga de CSS | |[[funciones:nfl_ProgName]] | Nos retorna el nombre del exe sin extensión ni Path | |[[funciones:nfl_ServerUrl]] | Nos devuelve la URL que se ha utilizado para llamar a nuestro CGI | |[[funciones:nfl_ShowSS]] | Ordena la Presentación del ShadowSheet de la página | |[[funciones:nfl_SingleUri]] | Nos devuelve a URL que se ha utilizado para llamar a nuestro CGI | |[[funciones:nfl_SqlDate]] | Convierte una Fecha en formato xBase a formato SQL | |[[funciones:nfl_SqlDatetime]] | Convierte una Fecha y Hora en formato xBase a formato SQL | |[[funciones:nfl_RefreshBadge]] | Nos genera el código JS para actualizar el texto de un wBadge | |[[funciones:nfl_RefreshMemo]] | Refresca el wEdit Memo con el contenido | |[[funciones:nfl_RefreshSwitch]] | Fuerza el Refresco de los wSwitch de una página una vez actualizado su contenido por AJAX | |[[funciones:nfl_RefreshText]] | Fuerza el Refresco de los wEdit una vez actualizado su contenido por AJAX | |[[funciones:nfl_ResetMemo]] | Reseteo de wEdit Memo por AJAX | |[[funciones:nfl_ToClipBoard]] | incrusta un Botón de envío al portapapeles en cualquier texto. | |[[funciones:nfl_UpdateById]] | Retorna el código necesario para actualizar un control por AJAX | |[[funciones:nfl_URLPDFjs]] | Crea la URL necesaria para llamar al visor PDFjs | |[[funciones:nfl_ValHora]] | Nos valida que la cadena pasada corresponde a una hora en formato xBase | |[[funciones:nfl_ValToJS]] | Prepara cualquier tipo de dato apara incluirlo en una sentencia JS | |[[funciones:nfl_ValToSql]] | Adapta cualquier tipo de dato a un formato admisible por SQL | ✨ Función disponible próximamente. /* ✨**v0.4**✨ */ ===== Funciones para Bases de Datos ===== ^Función ^Descripción ^ |[[utilidades:nfl_GetDriversODBC]] | Nos retorna un Array con los Driver ODBC de un Motor de BBDD instalados| |[[utilidades:nfl_SqlConnect]] | Nos retorna una conexión con una BBDD | ===== Funciones útiles en la creación de Controles Néfele ===== ^Función ^Descripción ^ |[[funciones:nfl_ArrayColors]] | Nos devuelve un array con todos los colores de Materialize y su equivalente Hex. | |[[funciones:nfl_CheckClr]] | Valida el color y nos retorna una clase valida | |[[funciones:nfl_CheckImage]] | Validación de Imagen | |[[funciones:nfl_CreateUniqueId]] | Creación de cadena única para UniqueId | |[[funciones:nfl_CheckValue]] | Comprueba el valor en un array de valores validos | |[[funciones:nfl_Deprecate]] | Genera un aviso de Descatalogación de una función, método, propiedad, etc.. | |[[funciones:nfl_FindParentClass]] | Localiza un oParent del control de una clase | |[[funciones:nfl_FiltroXSS]] | Nos filtra la cadena par evitar la inyección de código | |[[funciones:nfl_GetMeasureType]] | Retorna la unidad de medida de la página | |[[funciones:nfl_lOkNavegador]] | Valida si el Navegador es compatible con MaterializeCSS | |[[funciones:nfl_MergeParam]] | Fusiona los aParam de dos aParams sin duplicados | |[[funciones:nfl_NavegadorNoCompatible]] | Página de aviso de navegador no compatible | |[[funciones:nfl_PutIcon]] | Añade un Icono a nuestro control | |[[funciones:nfl_ReplaceChars]] | Reemplazo por lotes de caracteres | |[[funciones:nfl_ReplaceClrMaterialize]] | Nos devuelve el valor Hexa RGB de un Color Materialize, si no existe nos devuelve lo enviado | |[[funciones:nfl_StringToEdit]] | Filtrado de cadena para evitar XSS | |[[funciones:nfl_Tag]] | Encapsulado de cadenas entre Tag | |[[funciones:nfl_ToWeb]] | Tratamiento de parámetros con encriptación | |[[funciones:nfl_ToWeb]] | ::: | |[[funciones:nfl_UpdateArray]] | Fusiona dos Array con los elementos no coincidentes | ===== Técnicas ===== * [[nefele:iniciar|Iniciar una Aplicación Néfele]] * [[nefele:ocgi|El objeto oCGI]] * [[nefele:Application|El objeto Application]] * [[nefele:constantes|Constantes para Néfele]] * [[tecnicas:Ajax|Utilizando Ajax con Néfele]] * [[tecnicas:wo|El Acrónimo :WO]] * [[tecnicas:urlamigable|URL Amigables o Semántica]] * [[tecnicas:debugger|El Modo Debug]] 📰 [[tecnicas:debugger#Modo Debug en Producción]] * [[tecnicas:ventana modal|Ventanas modales]] * [[tecnicas:apirest|Utilizando Néfele para crear Servicio API REST]] * [[tecnicas:cachep|Cacheando páginas]] * [[tecnicas:dbconnect|Acceso a BBDD (MySql, MariaDB, SQLServer, SQlite, Firebird, PostgreSQL y MSAccess)]] * [[tecnicas:pdfviewer|Visualización y descarga de informes/documentos PDF]] * [[tecnicas:pdfjs|Implementación del visualizador de PDF]] [[https://mozilla.github.io/pdf.js/|PDF.js]] [[tecnicas:pdfjs|para Néfele]] * [[tecnicas:pwa|Progressive Web App]] * [[tecnicas:session|Uso de Sesiones y UserData]] ===== Utilidades ===== * [[utilidades:nefelewizard|Néfele Wizard]] * [[utilidades:nefeleconsole|Néfele Console]] /* ===== AddOn controles complementarios ==== * [[addon:GChartPie]] Utilización de GoogleChart para realizar gráficos de tartas. * [[addon:NP_MariaDB]] MariaDB/MySQL utilizando los DataSource de Xailer Enterprise desde el CGI con configuración web. * [[addon:NP_SQLServer]] SQL Server utilizando los DataSource de Xailer Enterprise desde el CGI con configuración web. * [[addon:NP_SQLlite]] SQLite utilizando los DataSource de Xailer Enterprise desde el CGI con configuración web. */ ===== Enlaces de interés ===== Aquí iremos colocando aquellas cosas que encontremos por internet, o que nos comente algún usuario y que puedan ser de interés para futuras mejoras de Néfele o para proyectos individuales. * [[enlaces:html|Información que nos ha sido muy útil]] * [[enlaces:Paneles administración]] * [[enlaces:Folders]] /* ===== Tag Cloud ===== ~~TAGCLOUD~~ */