Retroceder   Foros del Web > Programación para sitios web > Coldfusion

Respuesta
 
Herramientas Desplegado
Antiguo 20-nov-2002, 03:51   #1 (permalink)
Cain ha deshabilitado el karma
 
Avatar de Cain
 
Fecha de Ingreso: noviembre-2002
Ubicación: Catalunya
Mensajes: 6.494
Enviar un mensaje por AIM a Cain Enviar un mensaje por Yahoo  a Cain
FAQs de ColdFusion

Aprovechando que tenemos un subforo propio, he pensado que podemos crear un tema de FAQs, que algún administrador puede marcar como Importante para que se quede siempre arriba y no se pierda.

La idea es recopilar preguntas frecuentes con sus correspondientes respuestas.

La estructura puede ser la siguiente (plagiando la de PHP, que fue plagiada de ASP )

Tema Introducción

Pregunta ¿Qué es Cold Fusion?

Respuesta
Cold Fusion es un lenguaje del lado del servidor (como PHP, ASP, JSP...) que permite crear páginas dinámicamente.
La empresa que lo distribuye es Macromedia.


Por favor, postead sólo preguntas con respuesta, si tenéis dudas cread otro tema.
Cita:
http://forosdelweb.com/images/icons/icon4.gif ! Importante

Las FAQ (Preguntas Frecuentes) están abiertas a que cualquier usuario haga sus aportaciones.
Si embargo se os pide que tengais algunas consideraciones especiales a la hora de insertar vuestra aportación:
  • Asegúrate de que la FAQ que vas a aportar pertenece a este foro (ColdFusion). Aquellas aportaciones que NO pertenezcan al lenguaje ColdFusion puro y duro serán eliminadas sin previo aviso.
  • Asegúrate de que tu aportación no ha sido yá insertada. Si ha sido aportada pero ofreces una forma diferente de hacer lo mismo, bienvenida sea. Pero no si vas a proponer una solución que yá esté en las FAQ. Las FAQ duplicadas también serán eliminadas.
  • Indica el número de FAQ y sobre qué trata
  • Si tienes alguna duda sobre alguna FAQ plantéala en un nuevo tema indicando el número de FAQ. Este tema no es para plantear preguntas. cualquier mensaje en este tema que no sea una FAQ será eliminado sin previo aviso.
__________________
http://malditofriki.com/

Última edición por tunait; 28-dic-2004 a las 10:54.
Cain está desconectado   Responder Citando
Antiguo 20-nov-2002, 04:11   #2 (permalink)
Cain ha deshabilitado el karma
 
Avatar de Cain
 
Fecha de Ingreso: noviembre-2002
Ubicación: Catalunya
Mensajes: 6.494
Enviar un mensaje por AIM a Cain Enviar un mensaje por Yahoo  a Cain
Tema FuseBox

Pregunta ¿Cómo creo páginas con estructura Fuse Box?

Respuesta

Fuse Box es una forma de estructurar las páginas consistente en separar las consultas a bases de datos, las funciones, los scripts, etc. de la parte "estética" de la web.
Esto es útil cuando se trabaja en equipo y la gente que se encarga del diseño web es diferente de la gente que se encarga del desarrollo en Cold Fusion.

La idea es tener una página esquema (generalmente index.cfm) que llama a los archivos necesarios según la acción que se le pasa por URL.

Una estructura simple de index.cfm sería la siguiente:

Código:
<CFSWITCH EXPRESSION="#fuseaction#">
	<CFCASE VALUE="list">
	<cfinclude template="qry_list.cfm">
	 <cfinclude template="dsp_list.cfm">
    </CFCASE>
	<CFCASE VALUE="edit">
	<cfinclude template="qry_edit.cfm">
	    <cfinclude template="dsp_edit.cfm">
    </CFCASE>
	<CFCASE VALUE="update">
	<cfinclude template="act_update.cfm">
	 <cfinclude template="dsp_update.cfm">
    </CFCASE>
</CFSWITCH>
La forma de llamar a una de esas acciones, sería index.cfm?fuseaction=list

En cada uno de los archivos incluídos, debe ir la parte del código necesaria.
En este ejemplo, hemos separado las consultas a base de datos (qry_*.cfm) de los "displays" (dsp_*.cfm), y hemos tratado especialmente el fichero que realiza una acción sobre la base de datos (act_*.cfm).
__________________
http://malditofriki.com/
Cain está desconectado   Responder Citando
Antiguo 20-nov-2002, 04:17   #3 (permalink)
Cain ha deshabilitado el karma
 
Avatar de Cain
 
Fecha de Ingreso: noviembre-2002
Ubicación: Catalunya
Mensajes: 6.494
Enviar un mensaje por AIM a Cain Enviar un mensaje por Yahoo  a Cain
Tema Bases de datos

Pregunta ¿Cómo puedo usar una base de datos por ODBC?

Respuesta

En el panel Cold Fusion Administrator de nuestro servidor web, iremos al apartado ODBC e insertaremos un nuevo ODBC.
Para ello, debemos escoger un nombre único, el controlador adecuado a nuestra base de datos (MS Access, MySQL, MSSQL...).
Una vez hecho esto, hacemos clic en Crear y pasaremos a una pantalla donde deberemos acabar de rellenar los datos.
Según el tipo de base de datos, deberemos seleccionar el fichero que la contiene, o indicar el servidor y los datos de acceso.
Una vez hemos acabado de crear la entrada ODBC, nos debe salir el mensaje verified .
Si saliera que no se ha podido verificar, deberíamos repasar los datos que hemos suministrado.
__________________
http://malditofriki.com/
Cain está desconectado   Responder Citando
Antiguo 26-nov-2002, 16:16   #4 (permalink)
Cain ha deshabilitado el karma
 
Avatar de Cain
 
Fecha de Ingreso: noviembre-2002
Ubicación: Catalunya
Mensajes: 6.494
Enviar un mensaje por AIM a Cain Enviar un mensaje por Yahoo  a Cain
Tema: Idiomas

Pregunta: ¿Cómo puedo saber el idioma del visitante?

Respuesta:

Para saber el idioma del visitante, debemos fiarnos de que haya configurado bien su navegador. Si lo ha hecho, habrá rellenado la cabecera HTTP_ACCEPT_LANGUAGE con sus idiomas favoritos.

Para determinar el idioma favorito del usuario usaremos:

Código:
<cfif parameterexists(HTTP_ACCEPT_LANGUAGE)>
<cfset idioma = LEFT(HTTP_ACCEPT_LANGUAGE, 2)>
</cfif>
Esto nos dara el idioma que el usuario ha marcado como prioritario.

Ahora bien, un usuario puede declarar varios idiomas, y es muy posible que nuestra web se adapte al 2º o al 3º idioma favorito del usuario en lugar de al 1º. Es por eso que debemos perfeccionar esa rutina para encontrar un idioma válido.

Supongamos que tenemos una web en catalán, español, inglés y francés:

Código:
<cfif parameterexists(HTTP_ACCEPT_LANGUAGE)>
<cfloop index="lap" from="1" to="#ListLen(HTTP_ACCEPT_LANGUAGE)#" step="1">
	<cfif not parameterexists(idioma)>
		<cfif Left(ListGetAt(HTTP_ACCEPT_LANGUAGE, lap), 2) is "ca"><cfset idioma = "ca">
		<cfelseif Left(ListGetAt(HTTP_ACCEPT_LANGUAGE, lap), 2) is "es"><cfset idioma = "es">
		<cfelseif Left(ListGetAt(HTTP_ACCEPT_LANGUAGE, lap), 2) is "en"><cfset idioma = "en">
		<cfelseif Left(ListGetAt(HTTP_ACCEPT_LANGUAGE, lap), 2) is "fr"><cfset idioma = "fr">
		</cfif>
	</cfif>
</cfloop>
</cfif>
Así nos aseguramos que si el usuario ha definido alguno de esos 4 idiomas en su navegador, podrá ver la web en su idioma favorito más prioritario.

Como es posible que los idiomas definidos por el usuario no se ajusten a las versiones disponibles de nuestra web, es conveniente marcar un idioma por defecto al final del cfif:

Código:
<cfif not parameterexists(idioma)><cfset idioma="ca"></cfif>
__________________
http://malditofriki.com/
Cain está desconectado   Responder Citando
Antiguo 01-dic-2002, 16:37   #5 (permalink)
Cain ha deshabilitado el karma
 
Avatar de Cain
 
Fecha de Ingreso: noviembre-2002
Ubicación: Catalunya
Mensajes: 6.494
Enviar un mensaje por AIM a Cain Enviar un mensaje por Yahoo  a Cain
Tema: Listas

Pregunta ¿Cómo se manejan las listas?

Respuesta:

Crear una lista es tan simple como crear una variable textual con los valores separados por comas.

<cfset lista = "lunes,martes,miércoles,jueves,viernes,sábado" >

Para añadir un valor a una lista existente, usaremos ListAppend():

<cfset lista = ListAppend(lista, "domingo")>

Para saber cuantos elementos tiene una lista, usaremos ListLen():

#ListLen(lista)# --> 7

Para recuperar un valor de una lista, usamos ListGetAt():

#ListGetAt(lista, 5)# --> sábado

Para saber si un elemento está en una lista, usaremos ListFind():

ListFind(lista, "domingo") --> 7 (la posición donde se encuentra)

Para eliminar una posición usaremos ListDeleteAt(), y para añadirla, ListInsertAt().

<cfset lista = ListDeleteAt(lista, 6)> <!--- eliminamos el sábado --->

<cfset lista = ListInsertAt(lista, 6, "sábado") <!--- Añadimos el sábado a su sitio --->
__________________
http://malditofriki.com/
Cain está desconectado   Responder Citando
Antiguo 03-dic-2002, 02:27   #6 (permalink)
Cain ha deshabilitado el karma
 
Avatar de Cain
 
Fecha de Ingreso: noviembre-2002
Ubicación: Catalunya
Mensajes: 6.494
Enviar un mensaje por AIM a Cain Enviar un mensaje por Yahoo  a Cain
Tema: Nombres de variable dinámicos

Pregunta: ¿Cómo puedo usar nombres de variables que son, a su vez, variables?

Respuesta:

Usando Evaluate().

Imagina que tenemos una web en varios idiomas, y que tenemos una variable llamada idioma que contiene el identificador de idioma.

Para hacer una consulta a la BD, usaremos:

Código:
<cfquery name="datos" datasource="#bd#">
SELECT campo1_#idioma#, campo2_#idioma# FROM tabla
</cfquery>
Hasta aquí no hay ningún problema.

Ahora bien, ¿cómo los recuperamos?

Así:

Código:
<cfoutput query="datos">
#Evaluate('campo1_#idioma#')#<br>
#Evaluate('campo2_#idioma#')#
</cfoutput>
__________________
http://malditofriki.com/
Cain está desconectado   Responder Citando
Antiguo 18-dic-2002, 02:15   #7 (permalink)
Cain ha deshabilitado el karma
 
Avatar de Cain
 
Fecha de Ingreso: noviembre-2002
Ubicación: Catalunya
Mensajes: 6.494
Enviar un mensaje por AIM a Cain Enviar un mensaje por Yahoo  a Cain
Tema: Paginar resultados

Pregunta: ¿Cómo puedo paginar los resultados de una consulta, de modo que sólo se vean X registros en cada página?

Respuesta

Código:
<!--- Definimos las variables estáticas: Número de resultados a mostrar --->
<cfset amostrar = 30>

<!--- Calculamos los resultados que obtendremos --->
<cfquery name="registros" datasource="base">
	SELECT Count(*) as totales FROM tabla WHERE condiciones
</cfquery>

<!--- Si no hemos indicado página, es que estamos en la primera --->
<cfif not parameterexists(pagina)><cfset pagina = 1></cfif>

<!--- Generamos las variables dinámicas en función de la página --->
<cfset origen = 1+(pagina*amostrar)-amostrar>
<cfset ultima = Ceiling(registros.totales/amostrar)>

<!--- Hacemos la consulta filtrando por origen (Si usamos MySQL) --->
<cfquery name="resultados" datasource="base">
	SELECT campos FROM tabla WHERE condiciones LIMIT #origen#,#amostrar#
</cfquery>
<!--- Si usamos Access, o cualquier otra base de datos que no soporte LIMIT,
 deberemos recuperar todos los resultados y filtrarlos en el CFOUTPUT --->

<!--- Ahora pintamos los resultados (MySQL) --->
<cfoutput query="resultados">
<!--- Si no usamos MySQL y, por lo tanto, no hemos podido hacer el filtro en el CFQUERY,
usaremos <cfoutput query="resultados" startrow="#origen#" maxrows="#amostrar#"> --->
#campos#
</cfoutput>

<!--- Ahora generamos los botones Anterior y Siguiente --->
<cfif pagina gt 1><a href="pagina.cfm?pagina=#Eval(#pagina#-1)#">Anterior</a></cfif>
<cfif pagina lt ultima><a href="pagina.cfm?pagina=#Eval(#pagina#+1)#">Siguiente</a></cfif>
__________________
http://malditofriki.com/
Cain está desconectado   Responder Citando
Antiguo 28-ene-2003, 10:29   #8 (permalink)
Cain ha deshabilitado el karma
 
Avatar de Cain
 
Fecha de Ingreso: noviembre-2002
Ubicación: Catalunya
Mensajes: 6.494
Enviar un mensaje por AIM a Cain Enviar un mensaje por Yahoo  a Cain
Tema: Fechas

Pregunta: ¿Cómo puedo mostrar la fecha en español con formato largo?

Respuesta:

Código:
<!--- Creamos las listas de dias de la semana y meses --->
<cfset semana = " Domingo,Lunes,Martes,Miércoles,Jueves,Viernes,Sába
do">
<cfset meses = " Enero,Febrero,Marzo,Abril,Mayo,Junio,Julio,Agosto,
Septiembre,Octubre,Noviembre,Diciembre">

<!--- Recuperamos la fecha usando las listas y las variables de entorno --->
<cfoutput>#ListGetAt(semana, DayOfWeek(fecha))#, #Day(fecha)# de #ListGetAt(meses, Month(fecha))# de #Year(fecha)#</cfoutput>
__________________
http://malditofriki.com/
Cain está desconectado   Responder Citando
Antiguo 12-feb-2003, 03:07   #9 (permalink)
Cain ha deshabilitado el karma
 
Avatar de Cain
 
Fecha de Ingreso: noviembre-2002
Ubicación: Catalunya
Mensajes: 6.494
Enviar un mensaje por AIM a Cain Enviar un mensaje por Yahoo  a Cain
Tema: Variables de entorno

Pregunta: ¿Qué variables de entorno puedo recuperar y como?

Respuesta:

A continuación copio un código que muestra varias variables de entorno y cabeceras HTTP. Para recuperar otras, simplemente provad :-P

Código:
<cfoutput>
<html>
<head>
    <title>http://#HTTP_HOST##SCRIPT_NAME#?#QUERY_STRING#</title>
</head>

<body>
<table>
<tr><td>RUTA SENCERA:</td><td><a href="http://#HTTP_HOST##SCRIPT_NAME#?#QUERY_STRING#">http://#HTTP_HOST##SCRIPT_NAME#?#QUERY_STRING#</a></td></tr>
<tr><td colspan=2>&nbsp;</td></tr>

<tr><td>CGI.GATEWAY_INTERFACE:</td><td>#CGI.GATEWAY_INTERFACE#</td></tr>
<!--- Qué revisión de la especificación CGI está usando el servidor; por ejemplo 'CGI/1.1'.  --->

<tr><td>SERVER_NAME:</td><td>#SERVER_NAME#</td></tr>
<!--- El nombre del equipo servidor en el que se está ejecutando el script. Si el script se está ejecutando en un servidor virtual, este será el valor definido para dicho servidor virtual. --->

<tr><td>SERVER_SOFTWARE:</td><td>#SERVER_SOFTWARE#</td></tr>
<!--- Una cadena de identificación del servidor, que aparece en las cabeceras al responderse a las peticiones. --->

<tr><td>SERVER_PROTOCOL:</td><td>#SERVER_PROTOCOL#</td></tr>
<!--- Nombre y revisión del protocolo a través del que se solicitó la página; p.ej. 'HTTP/1.0';  --->

<tr><td>REQUEST_METHOD:</td><td>#REQUEST_METHOD#</td></tr>
<!--- Qué método de petición se usó para acceder a la página; p.ej. 'GET', 'HEAD', 'POST', 'PUT'.  --->

<tr><td>QUERY_STRING:</td><td>#QUERY_STRING#</td></tr>
<!--- La cadena de la petición, si la hubo, mediante la que se accedió a la página.  --->

<tr><td>CGI.DOCUMENT_ROOT:</td><td>#CGI.DOCUMENT_ROOT#</td></tr>
<!--- El directorio raíz del documento bajo el que se ejecuta el script, tal y como está definido en el fichero de configuración del servidor.  --->

<tr><td>HTTP_ACCEPT:</td><td>#HTTP_ACCEPT#</td></tr>
<!--- Los contenidos de la cabecera Accept: de la petición actual, si hay alguna.  --->

<tr><td>CGI.HTTP_ACCEPT_CHARSET:</td><td>#CGI.HTTP_ACCEPT_CHARSET#</td></tr>
<!--- Los contenidos de la cabecera Accept-Charset: de la petición actual, si hay alguna. Por ejemplo: 'iso-8859-1,*,utf-8'.  --->

<tr><td>HTTP_ACCEPT_LANGUAGE:</td><td>#HTTP_ACCEPT_LANGUAGE#</td></tr>
<!--- Los contenidos de la cabecera Accept-Language: de la petición actual, si hay alguna. Por ejemplo: 'en'.  --->

<tr><td>CGI.HTTP_ENCODING:</td><td>#CGI.HTTP_ENCODING#</td></tr>
<!--- Los contenidos de la cabecera Accept-Encoding: de la petición actual, si la hay. Por ejemplo: 'gzip'.  --->

<tr><td>HTTP_CONNECTION:</td><td>#HTTP_CONNECTION#</td></tr>
<!--- Los contenidos de la cabecera Connection: de la petición actual, si hay alguna. Por ejemplo: 'Keep-Alive'.  --->

<tr><td>HTTP_HOST:</td><td>#HTTP_HOST#</td></tr>
<!--- Los contenidos de la cabecera Host: de la petición actual, si hay alguna.  --->

<tr><td>HTTP_REFERER:</td><td>#HTTP_REFERER#</td></tr>
<!--- La dirección de la página (si la hay) desde la que el navegador saltó a la página actual. Esto lo establece el navegador del usuario; no todos los navegadores lo hacen.  --->

<tr><td>HTTP_USER_AGENT:</td><td>#HTTP_USER_AGENT#</td></tr>
<!--- Los contenidos de la cabecera User_Agent: de la petición actual, si hay alguna. Indica el navegador que se está utilizando para ver la página actual; p.ej. Mozilla/4.5 [en] (X11; U; Linux 2.2.9 i586). Entre otras cosas, se puede usar este valor con get_browser() para adaptar la funcionalidad de la página a las posibilidades del navegador del usuario.  --->

<tr><td>REMOTE_ADDR:</td><td>#REMOTE_ADDR#</td></tr>
<!--- La dirección IP desde la que el usuario está viendo la página actual.  --->

<tr><td>REMOTE_HOST:</td><td>#REMOTE_HOST#</td></tr>
<!--- La DNS desde la que el usuario está viendo la página actual.  --->

<tr><td>CGI.REMOTE_PORT:</td><td>#CGI.REMOTE_PORT#</td></tr>
<!--- El puerto que se está utilizando en la máquina del usuario para comunicarse con el servidor web.  --->

<tr><td>CGI.SCRIPT_FILENAME:</td><td>#CGI.SCRIPT_FILENAME#</td></tr>
<!--- La vía de acceso absoluta del script que se está ejecutando.  --->

<tr><td>CGI.SERVER_ADMIN:</td><td>#CGI.SERVER_ADMIN#</td></tr>
<!--- El valor que se haya dado a la directiva SERVER_ADMIN (en Apache) en el fichero de configuración del servidor web. Si el script se está ejecutando en un servidor virtual, será el valor definido para dicho servidor virtual.  --->

<tr><td>SERVER_PORT:</td><td>#SERVER_PORT#</td></tr>
<!--- El puerto del equipo servidor que está usando el servidor web para la comunicación. Para configuraciones por defecto, será '80'; al usar SSL, por ejemplo, cambiará al puerto que se haya definido como seguro para HTTP.  --->

<tr><td>CGI.SERVER_SIGNATURE:</td><td>#CGI.SERVER_SIGNATURE#</td></tr>
<!--- Una cadena que contiene la versión del servidor y el nombre del servidor virtual que es añadida a las páginas generadas por el servidor, si está característica está activa.  --->

<tr><td>PATH_TRANSLATED:</td><td>#PATH_TRANSLATED#</td></tr>
<!--- Vía de acceso basada en el sistema de ficheros- (no el directorio raíz del documento-) del script en cuestión, después de que el servidor haya hecho la conversión virtual-a-real.  --->

<tr><td>SCRIPT_NAME:</td><td>#SCRIPT_NAME#</td></tr>
<!--- Contiene la vía de acceso del script actual. Es útil para páginas que necesitan apuntar a sí mismas.  --->

<tr><td>REQUEST_URI:</td><td>#REQUEST_URI#</td></tr>
<!--- La URI que se dió para acceder a esta página; por ejemplo, '/index.html'.  --->
</table>
</body>
</html>
</cfoutput>
__________________
http://malditofriki.com/
Cain está desconectado   Responder Citando
Antiguo 04-mar-2003, 02:57   #10 (permalink)
Cain ha deshabilitado el karma
 
Avatar de Cain
 
Fecha de Ingreso: noviembre-2002
Ubicación: Catalunya
Mensajes: 6.494
Enviar un mensaje por AIM a Cain Enviar un mensaje por Yahoo  a Cain
Tema Mostrar datos de BD

Pregunta ¿Cómo distribuir los resultados de un query en columnas?

Respuesta Usando la función módulo de Cold Fusion.

Código de ejemplo con comentarios:

Código PHP:
<cfset columnes 4> <!--- Número de columnas (variable) --->
<
table align=center>
    <
cfoutput><tr><td colspan=#columnes#>#consulta.recordcount# Resultados</td></tr></cfoutput>
    
<cfif consulta.recordcount is 0>
    <
tr><td colspan=$columnes>No hay resultados en la BD.</td></tr>
    </
cfif>
    <
cfoutput query="consulta">
    <!--- 
Si es la primera celdaabrimos <tr> --->
    <
cfif currentrow MOD 2 is 1><tr></cfif>
        <
td>#campo#</td>
    
<!--- Si es la última celdacerramos </tr> --->
    <
cfif currentrow MOD 2 is 0></tr></cfif>
    </
cfoutput>
    <!--- 
Si el resultado no es múltiple de $columnes acabamos de rellenar los huecos --->
    <
cfif consulta.recordcount mod 2 gt 0>
    <
cfset ajustament columnes - (consulta.recordcount mod 2)>
    <
cfloop from="1" to="#ajustament#" step="1" index="pas">
        <
td>&nbsp;</td>
    </
cfloop>
    </
tr>
    </
cfif>
</
table
__________________
http://malditofriki.com/
Cain está desconectado   Responder Citando
Antiguo 04-mar-2003, 03:05   #11 (permalink)
Cain ha deshabilitado el karma
 
Avatar de Cain
 
Fecha de Ingreso: noviembre-2002
Ubicación: Catalunya
Mensajes: 6.494
Enviar un mensaje por AIM a Cain Enviar un mensaje por Yahoo  a Cain
Tema: Formateo de salida

Pregunta: Como formateo un número así: 123.456,78

Respuesta:

<cfset numero = 123456.78>
<cfset numero = Trim(NumberFormat(preu,'___,___,___,___,___,___.__ '))> <!--- 123,456.78 --->
<cfset numero = #Replace(numero, ".", "_", "all")#> <!--- 123,456_78 --->
<cfset numero = #Replace(numero, ",", ".", "all")#> <!--- 123.456_78 --->
<cfset numero = #Replace(numero, "_", ",", "all")#> <!--- 123.456,78 --->
__________________
http://malditofriki.com/
Cain está desconectado   Responder Citando
Antiguo 04-mar-2003, 03:35   #12 (permalink)
Cain ha deshabilitado el karma
 
Avatar de Cain
 
Fecha de Ingreso: noviembre-2002
Ubicación: Catalunya
Mensajes: 6.494
Enviar un mensaje por AIM a Cain Enviar un mensaje por Yahoo  a Cain
Tema: Emails

Pregunta: ¿Cómo mando un mail con ColdFusion?

Respuesta: Usando <cfmail>

<cfmail> soporta varios atributos:

<cfmail to="destinatario <email@destinata.rio>" from="remitente <email@remiten.te>" subject="Asunto" cc="copia <email@cop.ia>" bcc="copia oculta <email@copia_ocul.ta" mimeattach="archivo_adjunto" type="HTML">
cuerpo del mensaje

</cfmail>

Hay que tener en cuenta que si no se especifica type, Cold Fusion envía el mail en texto plano.
También conviene aclarar que el archivo adjunto DEBE ESTAR EN EL SERVIDOR donde se ejecuta Cold Fusion, así que para hacer un sistema para que los usuarios manden ficheros, primero deben subirlos al servidor mediante <cffile action="UPLOAD">.
__________________
http://malditofriki.com/
Cain está desconectado   Responder Citando
Antiguo 04-mar-2003, 05:27   #13 (permalink)
Cain ha deshabilitado el karma
 
Avatar de Cain
 
Fecha de Ingreso: noviembre-2002
Ubicación: Catalunya
Mensajes: 6.494
Enviar un mensaje por AIM a Cain Enviar un mensaje por Yahoo  a Cain
Tema: Formatos de salida

Pregunta: ¿Cómo puedo hacer que una cadena salga en mayúsculas?

Respuesta:

Cold Fusion tiene dos funciones nativa para pasar cadenas a mayúsculas o a minúsculas: UCase(string) y LCase(string)

Sin embargo, estas dos funciones no convierten los "carácteres especiales", tan frecuentes en la lengua española.

Es por eso, que hay que utilizar un complemento para que la función haga lo que pretendemos que haga.

<cfset nombre = Replace(variable, "á", "Á", "all")>
<cfset nombre = Replace(nombre, "é", "É", "all")>
<cfset nombre = Replace(nombre, "í", "Í", "all")>
<cfset nombre = Replace(nombre, "ó", "Ó", "all")>
<cfset nombre = Replace(nombre, "ú", "Ú", "all")>
<cfset nombre = Replace(nombre, "à", "À", "all")>
<cfset nombre = Replace(nombre, "è", "È", "all")>
<cfset nombre = Replace(nombre, "ì", "Ì", "all")>
<cfset nombre = Replace(nombre, "ò", "Ò", "all")>
<cfset nombre = Replace(nombre, "ù", "Ù", "all")>
<cfset nombre = Replace(nombre, "ä", "Ä", "all")>
<cfset nombre = Replace(nombre, "ë", "Ë", "all")>
<cfset nombre = Replace(nombre, "ï", "Ï", "all")>
<cfset nombre = Replace(nombre, "ö", "Ö", "all")>
<cfset nombre = Replace(nombre, "ü", "Ü", "all")>
<cfset nombre = Replace(nombre, "â", "Â", "all")>
<cfset nombre = Replace(nombre, "ê", "Ê", "all")>
<cfset nombre = Replace(nombre, "î", "Î", "all")>
<cfset nombre = Replace(nombre, "ô", "Ô", "all")>
<cfset nombre = Replace(nombre, "û", "Û", "all")>
<cfset nombre = Replace(nombre, "ã", "Ã", "all")>
<cfset nombre = Replace(nombre, "õ", "Õ", "all")>
<cfset nombre = Replace(nombre, "ç", "Ç", "all")>
<cfset nombre = Replace(nombre, "ñ", "Ñ", "all")>
<cfoutput>#UCase(nombre)#</cfoutput>
__________________
http://malditofriki.com/
Cain está desconectado   Responder Citando
Antiguo 27-mar-2003, 20:34   #14 (permalink)
Thebrain está en el buen camino
 
Avatar de Thebrain
 
Fecha de Ingreso: enero-2003
Ubicación: Santiasco
Mensajes: 102
Enviar un mensaje por MSN a Thebrain
Tema: Reemplazo de tecla enter
Pregunta: ¿Como puedo reemplazar el "enter" con <br> al ingresarlo a la base de datos?
Respuesta:
Cuando recien empezamos con CF, tenemos el problema que al ingresar datos a una DB, no nos toma el "enter" como un salto de linea para solucionarlo solo tienes que usar este tag #replace(Chr(13),"<br>", "all")#

ejemplo
Código:
<cfform action="firmado.cfm" method="POST" enablecab="No" name="firmarlibro"> 
Nombre: <br>
<cfinput type="Text" name="nombre" message="Ingrese el nombre" required="Yes">
<br>
Comentario:
<br>
<textarea rows=10 cols=40 name="comentario"></textarea><br>
<input type="Submit" value="Firmar el libro"> :: <input type="reset" value="Borrar">
firmado.cfm
Código:
<cfquery name="libro" datasource="libro">
Insert into libro de visitas( 
Nombre, 
comentario) 
values ( 
'#nombre#', 
'#replace(form.comentario,Chr(13),"<br>", "all")#') 
</cfquery>
__________________
I'm sick of all you hypocrites holding me at bay And I don't need your sympathy to get me through the day.Dream Theater - A Change of Seasons

http://www.dreamtheater.cl
Thebrain está desconectado   Responder Citando
Antiguo 12-ago-2004, 17:12   #15 (permalink)
Thebrain está en el buen camino
 
Avatar de Thebrain
 
Fecha de Ingreso: enero-2003
Ubicación: Santiasco
Mensajes: 102
Enviar un mensaje por MSN a Thebrain
[b]Tema:[b] Reemplazar caracteres especiales
Pregunta: ¿como puedo reemplazar los caracteres especiales (á,é,í,... etc) a entidades HTML (&aacute;,&eacute;,...etc) para compatibilidad con Bases de datos y navegadores?
Respuesta:
uno de los grandes problemas para nosotros es que usamos caracteres especiales. la letra ñ, acentos, etc con este script, podemos convertir facilmente estos caracteres a entidades html que cualquier navegador y base de datos las puede ingresar sin ningun problema

Código:
<cfscript>
/* 
Autor: Mario Hernandez
Reemplazar Caracteres especiales a entidades HTML

puedes agregar los tuyos, al final de la lista
nCampo = Replace(nCampo ,"[caracter a reemplazar]","[caracter reemplazado]","ALL");

*/
   function cambiarChars(oCampo) {
	nCampo = Replace(oCampo,"ñ","&ntilde;","ALL");
	nCampo = Replace(nCampo,"á","&aacute;","ALL");
	nCampo = Replace(nCampo,"é","&eacute;","ALL");
	nCampo = Replace(nCampo,"í","&iacute;","ALL");
	nCampo = Replace(nCampo,"ó","&oacute;","ALL");
	nCampo = Replace(nCampo,"ú","&uacute;","ALL");
	nCampo = Replace(nCampo,"Ñ","&Ntilde;","ALL");
	nCampo = Replace(nCampo,"Á","&Aacute;","ALL");
	nCampo = Replace(nCampo,"É","&Eacute;","ALL");
	nCampo = Replace(nCampo,"Í","&Iacute;","ALL");
	nCampo = Replace(nCampo,"Ó","&Oacute;","ALL");
	nCampo = Replace(nCampo,"Ú","&Uacute;","ALL");
	nCampo = Replace(nCampo,Chr(13),"<br>","ALL");

        return nCampo;
   }
</cfscript>
ejemplo

Código:
<!--- Application.cfm --->
<cfscript>
   function cambiarChars(oCampo) {
	nCampo = Replace(oCampo,"ñ","&ntilde;","ALL");
	nCampo = Replace(nCampo,"á","&aacute;","ALL");
	nCampo = Replace(nCampo,"é","&eacute;","ALL");
	nCampo = Replace(nCampo,"í","&iacute;","ALL");
	nCampo = Replace(nCampo,"ó","&oacute;","ALL");
	nCampo = Replace(nCampo,"ú","&uacute;","ALL");
	nCampo = Replace(nCampo,"Ñ","&Ntilde;","ALL");
	nCampo = Replace(nCampo,"Á","&Aacute;","ALL");
	nCampo = Replace(nCampo,"É","&Eacute;","ALL");
	nCampo = Replace(nCampo,"Í","&Iacute;","ALL");
	nCampo = Replace(nCampo,"Ó","&Oacute;","ALL");
	nCampo = Replace(nCampo,"Ú","&Uacute;","ALL");
	nCampo = Replace(nCampo,Chr(13),"<br>","ALL");

        return nCampo;
   }
</cfscript>

<!--- form.cfm --->
<form action="grabar.cfm" method="post" />
<input type="text" name="nombre" /><br />
<textarea cols="10" rows="20" name="comentario"></textarea><br />
<input type="submit" value="Enviar Comentario" />
</form>

<!--- grabar.cfm --->
<cfquery name="commentarios" datasource="#Tu_DSN#">
INSERT INTO comentarios( Nombre, comentario) 
VALUES ( '#cambiarChars(form.nombre)#', '#cambiarChars(form.comentario)#') 
</cfquery>
__________________
I'm sick of all you hypocrites holding me at bay And I don't need your sympathy to get me through the day.Dream Theater - A Change of Seasons

http://www.dreamtheater.cl

Última edición por Thebrain; 12-ago-2004 a las 17:14.
Thebrain está desconectado   Responder Citando
Antiguo 05-sep-2004, 12:18   #16 (permalink)
orchabel está en el buen camino
 
Avatar de orchabel
 
Fecha de Ingreso: noviembre-2002
Ubicación: Hundido en un rincón...
Mensajes: 395
Enviar un mensaje por ICQ a orchabel Enviar un mensaje por MSN a orchabel Enviar un mensaje por Yahoo  a orchabel
tema: Bases de datos

Pregunta: Como asociar una base de datos postgresql a mi data Source?

Respuesta:

1. baja el driver jdbc para postgresql http://jdbc.postgresql.org/download.html

2. Coloca el archivo .jar en /opt/coldfusionmx/servers/lib si es en Linux

3. Cuando ingreses el driver en dataspurce en el CFIDE selecciona other y llena

JDBC URL = jdbc:postgresql://[servidor]:5432/[carpetas]

DRIVER CLASS = org.postgresql.Driver

DRIVER NAME = org.postgresql.Driver
__________________
BugHunter II
"si quieres un mañana mejor, piensa en ser mejor para un mañana"

Última edición por orchabel; 27-sep-2004 a las 16:43. Razón: Agrego más funciones
orchabel está desconectado   Responder Citando
Antiguo 05-sep-2004, 12:28   #17 (permalink)
orchabel está en el buen camino
 
Avatar de orchabel
 
Fecha de Ingreso: noviembre-2002
Ubicación: Hundido en un rincón...
Mensajes: 395
Enviar un mensaje por ICQ a orchabel Enviar un mensaje por MSN a orchabel Enviar un mensaje por Yahoo  a orchabel
Cool

Tema: CustomTags

Pregunta: Como crear mis propios tags

Respuesta:

1. Se debe definir la carpeta donde se buscarán los tags que se van a crear. Para eso se entra al administrador de coldfusion y en el menu se selecciona Custom Tags Paths y se agrega la carpeta donde se gurdarán los tags.

2. Se crea un archivo .cfm y se graba en la carpeta destinada a los custom tags con el nombre que se le desee colocar al tag. ej: si el tag se llamará <cf_roms> la página se deberá llamar roms.cfm

3. nos ubicamos en nuestro nuevo archivo. Se colocarán los parámetros que se utilizarán en el tag.. los que no son obligatorios deberán llevar la propiedad default ej:

<cfparam name="Attributes.active" type="boolean" default="true">
<cfparam name="Attributes.width" type="string" default="100%">
<cfparam name="Attributes.height" type="string" default="0">
<cfparam name="Attributes.id" type="numeric">

4. para diferenciar si se está abriendo <cf_roms> o cerrando </cf_roms> el tag se colocará la siguiente condición.

<cfif ThisTag.ExecutionMode eq "start">
<!---Codigo cuando inicia el tag--->
<cfelseif ThisTag.ExecutionMode eq "end">
<!---Codigo cuando cierra el tag--->
</cfif>

5. Con esto ya tendríamos nuestro tag. Para poder llamarlo solo sería insertar en nuestro código el llamdo y los parámtrosque necesita. Importante: los custom tags se llaman siempre con el codigo cf_ antes del nombre del tag.

ej: <cf_roms height="100%" active="true" id="1">MI CUSTOM TAG</cf_roms>

En este caso el parámetro width que no se ha pasado tomará el valor 100% por defecto.
__________________
BugHunter II
"si quieres un mañana mejor, piensa en ser mejor para un mañana"

Última edición por orchabel; 06-sep-2004 a las 12:43.
orchabel está desconectado   Responder Citando
Antiguo 07-sep-2004, 11:53   #