Respuestas de foro creadas
-
AutorEntradas
-
Alfredo SanzSuperadministrador
Yo estoy usando un exe externo que se llama SwithMail, pero como bien dices se puede hacer de varias formas, tanto integrándolo en el cgi como utilizando un ejecutable externo.
Personalmente me inclino por esta segunda solución, ya que si se incorpora en el cgi, el envío del email lo tiene que hacer el propio cgi y eso causa que esté más tiempo cargado en memoria, y cuanto antes se libere el cgi, pues mejor
Alfredo SanzSuperadministradorUps! Mira que lo hemos probado veces y aún así nos hemos dejado un fichero!!
Descárgate de nuevo los ejemplos desde https://nefele.dev/blog/download/nefele-samples-v-1-0-1-4/ y me cuentas si ya está solucionado.
Mis disculpas 😳
Alfredo SanzSuperadministradorHola,
Estamos terminando de nefelizar el printjs pero si lo necesitas antes, puedes hacerlo "a pelo" sin problema
Alfredo SanzSuperadministradorInternet Information Serves es "un poquito" distinto a Apache y no maneja igual los cgi.
Eduardo nos ha preparado un doc con los pasos necesarios para ejecutar los cgis en IIS. En unos días lo publicaremos en el blog.
Alfredo SanzSuperadministradormira a ver si puedes entrar directamente con http://tuservidor/cgi-gin/tuprograma.exe
si así te funciona, es un problema del scriptalias en la configuración de apache
Alfredo SanzSuperadministradorHemos preparando un ejemplo de CRUD completo en el nuevo ejemplo. En cuanto esté publicado fijaremos una fecha para enseñar todas estas novedades
Alfredo SanzSuperadministradorTendría que ver el ejemplo funcionando para poder decirte.
Si lo tienes en internet dime la url para poder echarle un vistazo
Alfredo SanzSuperadministradorSí, es correcto. Estás sobrecargando el fichero css.
En la próxima versión de néfele hay una property para poder desactivar materialize
Alfredo SanzSuperadministradorRevisa que estás usando la librería de nefele correcta.
Si no se te arregla, adjunta el fichero nefele_samples.xpj y lo reviso
Alfredo SanzSuperadministradorHola Juan,
Cuando creas el card le puedes poner un
:oStyle:cHeight = "400px"
Para que te agrande la altura de los card y te amplíe el espacio para el texto. Eso sí, ten encuenta que la altura ha de ser la misma para todos.
Alfredo SanzSuperadministradorUna cosa: ¿ Estás compilando con el debug?
Si no compilas con debug, cualquier error que te dé el programa, te dará un error 500
Alfredo SanzSuperadministradorLe echamos un vistazo a ver si se puede "nefelizar"
Alfredo SanzSuperadministradorEn el prg inicial justo debajo de
//------------------------------------------------------------------------------
// Enrutador
//------------------------------------------------------------------------------
Class TCgi FROM XCgiprueba a poner
PROPERTY lServerSession INIT .f.
Ya me contarás.
Alfredo SanzSuperadministradorIntenta acceder directamente desde localhost/cgi-bin/tunombredeprograma.exe
Alfredo SanzSuperadministradorsi la carpeta es siempre apache24, en principio solo tienes una instalación, seguramente tienes algún conflicto en el fichero de configuración de apache
Desde el cmd, vete a la carpeta de apache24\bin y ejecuta httpd.exe
Seguramente te saldrá el error que te impide arrancar correctamente
en el httpd.conf revisa la línea donde le indicas el listen a ver que puerto tienes
crea un ejemplo básico con el néfele wizard a ver si te funciona.
revisa el fichero error.log de apache a ver si te da alguna pista
05-11-2020 a las 11:28 en respuesta a: Google Maps con localizaciones no puedo visualizarlo :-( #1499Alfredo SanzSuperadministradorUsando un addHtml() antes de enviar la página en el que le mandas todo el javascript tendría que ser suficiente.
Recuerda que parapoder usar el servicio de google tienes que proporcionarle la clave de tu clave api que tienes que solicitar a google
Alfredo SanzSuperadministradoreste es el .htaccess que tengo en cgi-bin
1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859<RequireAll>Require all grantedRequire not ip 193.42.99.162</RequireAll>SetEnv sources "nefele"<IfModule mod_filter.c>AddOutputFilterByType DEFLATE text/plainAddOutputFilterByType DEFLATE text/htmlAddOutputFilterByType DEFLATE text/xmlAddOutputFilterByType DEFLATE text/cssAddOutputFilterByType DEFLATE application/xmlAddOutputFilterByType DEFLATE application/xhtml+xmlAddOutputFilterByType DEFLATE application/rss+xmlAddOutputFilterByType DEFLATE application/javascriptAddOutputFilterByType DEFLATE application/x-javascriptAddOutputFilterByType DEFLATE application/jsonAddType x-font/otf .otfAddType x-font/ttf .ttfAddType x-font/eot .eotAddType x-font/woff .woffAddType image/x-icon .icoAddType image/png .png</IfModule><Files *.exe>SetOutputFilter DEFLATE</Files><Files *.css>SetOutputFilter DEFLATE</Files><Files *.>SetOutputFilter DEFLATE</Files># Cabecera X-Frame-Options para mejorar la seguridad#Header always append X-Frame-Options SAMEORIGIN# Cabecera Strict-Transport-Security para indicar la duración de la cabecera HSTSHeader add Strict-Transport-Security "max-age=157680000; includeSubDomains; preload"# Cabecera X-XSS-Protection para evitar ataques XSS en IE y ChromeHeader set X-XSS-Protection "1; mode=block"# Cabecera X-Content-Type-Options para evitar que se carguen hojas de estilo o scripts maliciososHeader set X-Content-Type-Options "nosniff"# Cabecera Referer-PolicyHeader set Referrer-Policy no-referrer-when-downgrade# Cabecera Content-Security-PolicyHeader set Content-Security-Policy "self"# Cabecera Feature-PolicyHeader set Feature-Policy "accelerometer 'none'; camera 'none'; geolocation 'none'; gyroscope 'none'; magnetometer 'none'; microphone 'none'; payment 'none'; usb 'none'"Alfredo SanzSuperadministradorLa verdad es que configurar apache es un verdadero dolor de cabeza
revisa este enlace https://www.ionos.es/digitalguide/paginas-web/desarrollo-web/hsts-como-lograr-conexiones-http-seguras/ el " Header always set Strict-Transport-Security "
.. y no olvides reiniciar apache cada vez
Alfredo SanzSuperadministradorPrueba esto en el httpd.conf a ver si te funciona
12345<Directory "${SRVROOT}/cgi-bin">AllowOverride AllOptions NoneRequire all granted</Directory>Alfredo SanzSuperadministradorSí !
Ahora mismo soportamos:- Dbfs
- MySql y MariaDb a través de Tdolphin o con nuestra propia clase ADO
- sqLite
- FireBird
- MS Sql Server
En breve publicaremos los ejemplos de conexión
Alfredo SanzSuperadministradorBuenas noticias!!
En la próxima versión estará ya incorporada esta posibilidad
Contenido no disponible.
Por favor, acepta las cookies haciendo clic en este avisoAlfredo SanzSuperadministradorNo entiendo muy bien lo que quieres.
Prueba a poner
:cAjaxTimeOut := "visparam"
Para que te mande el resultado al visor de parámetros y ver qué te sale
prueba a poner
:aParams := {{"tUsuarios",oCGI:GetCGIValue( "tUsuarios","valor vacío" )}}
a ver si en visparam recibes tanto key como tUsuarios
- Esta respuesta fue modificada 4 años, 1 mes por Alfredo Sanz.
Alfredo SanzSuperadministradorVicente,
Por favor, comprime los ficheros en un zip y adjúntalos de nuevo
Alfredo SanzSuperadministradorHola, encantados de tenerte por aquí.
El problema que te da es porque no haces la llamada a través de ajax y entonces, el resultado de la procedure Alerta1 te reemplaza la página web en la que estás.
Revisa el ejemplo que tenemos en https://nefele.dev/foro/topic/ajax/
Inicialmente está preparado con una alert del navegador, pero Xevi lo modificó para que funcionara con wMsgAlert
Haz pruebas y cuando te funcione, incluiremos tu ejemplo en la sección
Nota: Para incluir código fuente, verás que en la barra del editor hay un símbolo "<>". Úsalo para introducir código de Néfele ( edito tu pregunta y lo cambio)
Alfredo SanzSuperadministradorMETHOD GetUserData( cVar, uDefaultVal, lCreate ) // Consulta o establece un valor en el hash de sesiones
METHOD SetUserData( cVar, uVal ) // Establece un valor en el hash de sesiones
METHOD HasUserData( cVar ) // Devuelve si existe la variable en el hash
METHOD UnsetUserData( cVar ) // Borra elemento del hash
METHOD ResetUserData( cVar ) // Borra todo el userdataLas variables de sesión permanecen activas en un cookie con 1 año de duración
Están pendientes de hacer las flashdata, que tal y como dices, serán "de un solo uso"
Alfredo SanzSuperadministradorEn teoría es posible, pero la documentación de materialize es pésima.
Lo miraremos.
Ponlo en las peticiones para que no se nos olvide
Alfredo SanzSuperadministradorSeguramente será el ESWIN.
Prueba con la ü a ver si te sale bien.
Si funciona la ü será cuestion de localizar el codepage correcto.Alfredo SanzSuperadministradorHola Xevi,
Estamos usando HB_StrToUTF8(xCadena, "ESWIN") para la conversión.
La verdad es que no sé si esta función adminte las diéresis
Lo miro a ver si encuentro algoAlfredo SanzSuperadministradorVaya, revisa a ver si tenemos lo mismo.
Las pruebas que he realizado funcionan bien.1234567891011121314151617181920212223242526272829303132333435363738394041PROCEDURE Alerta2WITH OBJECT TWebPage():New():lFooter=.f.WITH OBJECT WEdit():New(:WO):cId := "valor1":cTitle := "Valor1":cHelp := "prueba con aaa o con cualquier otro valor":Create()END WITHWITH OBJECT WButton():New(:WO):cText := "Sin miedo, púlsame":cOnClick := "AjaxAlerta2":cAjaxBevel := "nflcargo":aParams := { { "valor1", "#valor1"} }:Create()END WITHoCgi:SendPage( :Create() )END WITHRETURN//------------------------------------------------------------------------------PROCEDURE AjaxAlerta2Local cHtmlLocal cDato := oCGI:GetCgiValue("valor1","")If cDato == "aaa"cHtml := callAutoForm( "visparam", {{ "midato", "mivalor" }} )ElsecHtml := Tag("script", "alert('Dato NO encontrado')" )EndIfoCGI:SendScript( cHtml )RETURNContenido no disponible.
Por favor, acepta las cookies haciendo clic en este avisoAlfredo SanzSuperadministradorHola,
Si el control que estás usando adminte iconos (button, edit, etc..) puedes usar la property :cIcon.
Si no, puedes hacerlo tal y como dices usando ::addHtml()
Alfredo SanzSuperadministradorOk. Tengo ganas de ver alguna de las pantallas de tu aplicación 🙂
Alfredo SanzSuperadministradorHola.
Después del :cOnClickEdit prueba a ponerle
:cAjaxBevelEdit := "nflcargo"
Ya me contarás qué tal.
Alfredo SanzSuperadministrador¿Puedes compartir el código donde haces el sendfile?
Alfredo SanzSuperadministradorSí, tardan un poquito en responder
Alfredo SanzSuperadministradorHola Marcelo,
Mira a ver si te sirve este enlace
https://docs.microsoft.com/en-us/iis/configuration/system.webserver/cgiSí, sí que funicona. Al menos en IIS 7.0
Contenido no disponible.
Por favor, acepta las cookies haciendo clic en este avisoAlfredo SanzSuperadministradorBien, bien, bien!!
Veo que ya vais haciendo cosicas interesantes.
Me he permitido "nefelizar" un poco tu ejemplo.
Además me has dado un par de ideas nuevas para la nueva versión de Néfele.
Gracias por tu aportación.
123456789101112131415161718192021222324252627282930313233343536PROCEDURE MainPage()LOCAL n, aFiles := Directory("../htdocs/fotos/*.jpg") // OJO: En Xampp y Wampp la ruta puede variarWITH OBJECT TWebPage():New():cBackground := "https://img.rawpixel.com/s3fs-private/rawpixel_images/website_content/v748-toon-63_1_1.jpg?bg=transparent&con=3&cs=srgb&dpr=1&fm=jpg&ixlib=php-3.1.0&q=65&usm=15&vib=3&w=800&s=d98c67df8d5a1bf97c8a99789cb29b7a":cBackgroundSize := "cover"WITH OBJECT WBevel():New( :WO ):cTitle := "<strong>Galería de fotos</strong>":lShadow := .T.:nStyle := xc_Row:cTitleAlign := xc_Center:oStyle:cBorder_radius := 15:oStyle:cMargin_top := "1.656rem":Create()END WITHWITH OBJECT WBevel():New(:WO)FOR n := 1 TO Len(aFiles)WITH OBJECT WImage():New( :WO ):aWidth := {6,4,3}:cImage := "/fotos/" +aFiles[n,1]:lResponsive := .t.:cClass += "hoverable":lClickZoom := .t.:oStyle:cBorder_radius := 15:oStyle:cMargin_bottom := 20:oStyle:cPadding := 5:Create()END WIDTHNEXT:Create()END WITHoCgi:SendPage( :Create() ) // Se crea el HTML final y se envía al navegador saliendo del ejecutable CGIEND WITHContenido no disponible.
Por favor, acepta las cookies haciendo clic en este aviso- Esta respuesta fue modificada 4 años, 2 meses por Alfredo Sanz.
- Esta respuesta fue modificada 4 años, 2 meses por Alfredo Sanz.
- Esta respuesta fue modificada 4 años, 2 meses por Alfredo Sanz.
- Esta respuesta fue modificada 4 años, 2 meses por Alfredo Sanz.
- Esta respuesta fue modificada 4 años, 2 meses por Alfredo Sanz.
- Esta respuesta fue modificada 4 años, 2 meses por Alfredo Sanz.
- Esta respuesta fue modificada 4 años, 2 meses por Alfredo Sanz.
- Esta respuesta fue modificada 4 años, 2 meses por Alfredo Sanz.
- Esta respuesta fue modificada 4 años, 2 meses por Alfredo Sanz.
- Esta respuesta fue modificada 4 años, 2 meses por Alfredo Sanz.
- Esta respuesta fue modificada 4 años, 2 meses por Alfredo Sanz.
- Esta respuesta fue modificada 4 años, 2 meses por Alfredo Sanz.
- Esta respuesta fue modificada 4 años, 2 meses por Alfredo Sanz.
- Esta respuesta fue modificada 4 años, 2 meses por Alfredo Sanz.
- Esta respuesta fue modificada 4 años, 2 meses por Alfredo Sanz.
- Esta respuesta fue modificada 4 años, 2 meses por Alfredo Sanz.
- Esta respuesta fue modificada 4 años, 2 meses por Alfredo Sanz.
- Esta respuesta fue modificada 4 años, 2 meses por Alfredo Sanz.
Alfredo SanzSuperadministradorlappend, no me acuerdo 😕 ... le tengo que preguntar a Fredy
Indica si el código retornado por Ajax reemplazará el actual o se añadirá al ya existente 🙂
Alfredo SanzSuperadministradorHola Fernando, bienvenido!
Te recomiendo que sigas los pasos que damos en https://nefele.dev/blog/como-instalar-xailer-bien-explicado/
Fíjate que el harbour recomendado es el que te indicamos en el post
Si despues de seguir las instrucciones sigues teniendo problemas, no dudes en preguntarnos.
Alfredo SanzSuperadministradorTendrías que hacer algo como
1:cUrlToGo := GetEnv("HTTP_REFERER")+"?P1="+oCgi:GetCgiValue("P1")Ya nos contarás si te funciona.
Alfredo SanzSuperadministradorEn este caso te va a venir fenomenal usar las url amigables
https://nefele.dev/wiki/tecnicas/urlamigable
Alfredo SanzSuperadministradorNéfele mo utiliza el Application:oIcon
Simplemente crea un favicon.ico en tu carpeta htdocs y lo usará automáticamente
Alfredo SanzSuperadministradorHola,
Ese es el comportamiento por defecto de los Tabs de Materialize.
Para quitarlo
1:cCss +=".tabs .tab { text-transform: initial; }"Alfredo SanzSuperadministradorGabriel, no sé muy bien a qué te refieres.
Si me pasas el enlace donde has visto lo de los temas para las Cards ño miro y te digo
Alfredo SanzSuperadministradorSi no estás dentro de un <form> tienes que enviar el dato a través de :aParams
12345678910111213[...]WITH OBJECT WArrayBrowse():New(:WO):cId := "table":lIncludeArray := .t.:nStyle := xc_Striped // Estilo visual, con pautado pijama:cClrHeadPane := "black" // Color de Fondo a las cabeceras:cClrHeadText := "white" // Color del texto de cabeceras:oStyle:cLine_height := 0 //Quito altura entre registro y registro:cOnClick := "visparam":aParams := {{"tabla","#table_array"}}[...]Alfredo SanzSuperadministradorRevisa que tienes
123WITH OBJECT WArrayBrowse():New(:WO):cId := "table":lIncludeArray := .t.Alfredo SanzSuperadministradorVisto, lo incluiremos en la próxima versión
Alfredo SanzSuperadministradorSi :LIncludeArray := .t. añade un campo tipo hidden con el nombre <::cid>_array con el contenido del array en formato json.
Esto permite pasar el array completo como un parámetro del formulario a otro procedure o function. Puede ser interesante en ciertos casos para evitarnos tener que volver a consultar los datos a la bbdd, si bien hay que tener cuidado con la seguridad de la información almacenada.
Puedes, por ejemplo, comprobar si el dato que tienes en la página, sigue siendo el mismo que en la base de datos (precios, stock, etc..)
También te permite acceder a la información desde funciones javascript
Prueba a ponerlo a .t. y luego, en la consola del navegador pon:
JSON.parse(document.getElementById("table_array").value)[1][0]
Te devolverá por javascript el valor de la primera columna del segundo registro de la tabla
Nota: Voy a separar la pregunta en un nuevo hilo. Cuando sean preguntas nuevas, mejor crearlas en nuevo hilo para que resulte más fácil localizarlas
Alfredo SanzSuperadministradorRevisa el final de este hilo del foro
Cual es la forma correcta de llamar procedimientos al dar click en un control ?
Contenido no disponible.
Por favor, acepta las cookies haciendo clic en este avisoAlfredo SanzSuperadministradorNo, el Edit sólo contempla el <input> original de html.
Lo miraré a ver si se puede incorporar
Alfredo SanzSuperadministradorCasi seguro que es lo que te comentaba.
En la próxima versión está corregido
Prueba a incluir estos dos ficheros en el proyecto y lo confirmamos.
Acuérdate de quitarlos cuando saquemos la versión nueva
Adjuntos:
Debes acceder para ver los archivos adjuntos. -
AutorEntradas