###### tags: `cfmlnotes`
# CFML - Cold Fusion Markdown Language
## Grundlegendes
:::info
ColdFusion ist eine für webbasierte Skriptsprachen und Datenbank-Anwendungen zu verwendende Programmiersprache
:::
* Entwickelt von Alaire 1994
* Kompatibel mit sehr vielen anderen Sprachen
---
## Befehle
---
### CFSET
==cfset== ist dazu da um eine nicht existente Variable zu erzeugen. Man weisst ihr einen Wert oder einen Ausdruck zu. ==cfset== wird auch verwendet, um Funktionen aufzurufen und Listen oder Arrays zu erstellen.
```htmlmixed=
<cfset Vorname="Thomas">
```
### CFOUTPUT
==cfoutput== gibt Ihnalt wieder der z.B. durch Funktionen oder andere Prozesse erstellt wurde. Alles zwischen den ==cfoutput-tags== wird ausgegeben. Wenn man den Wert einer Variable ausgeben will, muss man diese zwischen ==Hash-Signs== ##.
```htmlmixed=
<coutput>Mein Name ist #Vorname#</cfoutput>
```
:::info
Mein Name ist Thomas
:::
https://helpx.adobe.com/coldfusion/cfml-reference/coldfusion-functions/functions-c-d/CreateTimeSpan.html
### ISDEFINED
Mir der Funktion ==IsDefined()== erstellt mal eine Abfrage, ob z.b. eine Variable existiert.
```htmlmixed=!
<cfif IsDefined("Vorname")>
<cfoutput>Die Variable -Vorname- existiert und hat den Wert #Vorname#.</cfoutput>
<cfelse>
<cfoutput>Die Variable -Vorname- existiert nicht.</cfoutput>
</cfif>
```
:::info
1. Möglichkeit, wenn Variable existiert:
Die Variable -Vorname- existiert und hat den Wert Thomas.
2.Möglichkeit: Variable existiert nicht:
Die Variable -Vorname- existiert nicht.
:::
### DATUMSFORMATIERUNG, Zeitmanipulation
#### NOW()
Eine einfache Funktion um das aktuelle Datum auszulesen und eventuell weiterzuverarbeiten.
```htmlmixed=
<cfset AktuellesDatum=now()>
```
:::info
Beim Auslesen der Variable erhielte man nun das heutige Datum.
Das Datum hat z.b. Folgende Formatierung: {ts '2018-11-06 06:59:52'}
:::
#### MONTH()
Mit der Funktion ==Month== liesst man aus einem beliebigen Datum den Monat aus. Die ausgabe erfolgt in Form einer Zahl von 1....12.
```htmlmixed=
<cfet AktuellerMonat=Month(AktuellesDatum)>
```
:::info
Wenn man nun die Variable -AktuellesDatum- auslesen würde, erhielte man eine 11, da im Beispiel November ist.
:::
#### YEAR()
Genau wie im Beispiel davor anzuwenden.
#### DAY()
Genau wie im Beispiel davor anzuwenden.
#### DATEADD("d,m,y", Anzahl, Datum)
==DateAdd()== verwendet man um einem bestehendem Datum eine gewisse Zahl an Tagen, Monaten, Jahren hinzuzufügen.
```htmlmixed=
<cfset NeuesDatum=DateAdd("m", 1, AktuellesDatum)
```
:::info
Hier erhält man nun, wenn man die Variable -NeuesDatum- ausliest: {ts '2018-12-06 06:59:52'}
Der Monat hat sich also um 1 erhöht. Natürlich kann man auch Werte abziehen.
:::
#### DATEFORMAT(Datum, Maske)
Durch diese Funktion kann man spezielle Werte aus dem Datum auslesen, sich als Zahl, Wort oder Abkürzung ausgeben lassen. Wichtig zu wissen ist dabei, dass die Ausgegebenen Werte nicht mehr als Datumsangehörige angesehen werden. Falls man diese als solche weiterverwenden will muss man erst wieder ein Datumswert erzeugen der dem Ausgelesenen Wert entspricht.
```htmlmixed=
<cfset Monat=DateFormat(AktuellesDatum, d)>
```
:::info
Liesst man nun die Variable -Monat- aus, so erhält man den numerischen Wert: 6
:::
#### DAYOFWEEK
Die Funktion ==DayOfWeek(Datum)== liesst den Wochentag aus, den ein bestimmtes Datum hat.
Die Werte die man hier auslesen kann sind numerisch und reichen von 1 bis 7, wobei 1..Sonntag und 7..Samstag darstellt.
```htmlmixed=
<cfset Wochentag=DayOfWeek(AktuellesDatum)>
```
#### DAYOFWEEKASSTRING
Hier kann man einen bestimmten Wochentag als Wort auslesen lassen. Man erhält also den Wochentag als Wort.
```htmlmixed=
<cfset WochentagAlsWort=DayOfWeekAsString(DayOfWeek(AktuellesDatum))>
```
#### DAYSINMONTH
Mit der Funktion ==DaysInMonth()= liesst man aus einem Datum aus wieviele Tage dieser Monat maximal hat.
```htmlmixed=
<cfset TageDesMonats=DaysInMonth(AktuellesDatum)>
```
:::info
Liesst man nun die Variable -TageDesMonats- aus, erhält man den Wert 30, da der November maximal 30 Tage hat.
:::
#### CREATEDATE
Mit der Funktion ==CreateDate(y,m,d)== erstellt man ein Datum, welches mit anderen Datumsfunktionen verändert und weiterverarbeitet werden kann.
```htmlmixed=
<cfset Geburtstag=CreateDate(1987,4,10)>
```
:::info
Liesst man nun die Variable Geburtstag aus, erhält man folgende Ausgabe: {ts '1987-04-10 00:00:00'}
:::
### CFLOOP
#### CFLOOP FROM TO
Hier wird ab einem festgesetzten Wert Bis zu einem Zielwert chronologisch Wiederholt. Der aktuelle Wert kann über den Befehl -index="i"-, z.b., gespeichert werden. i ist hier die Laufvariable.
```htmlmixed=
<cfloop from=1 to=10 index="i">
<cfoutput>#i#</cfoutput>
</cfloop>
```
:::info
1 2 3 4 5 6 7 8 9 10
:::
#### CFLOOP LIST
Hier gibt man eine willkürlicheElite an, die nicht chronologisch sein muss. Mann kann alles in die Liste eintragen. Man kann Zahlen und Buchstaben mischen.
```cfml
<cfloop list="2,3,4,5,6,7,1" index="i">
<cfoutput>#i#</cfoutput>
</cfloop>
```
:::info
2 3 4 5 6 7 1
:::
#### CFBREAK
Mit dem Befehl ==cfbreak== kann man aus der Schleife springen ohne sie bis zum Ende durchlaufen zu müssen.
```htmlmixed=
<cfloop list="2,3,4,5,6,7,1" index="i">
<cfoutput>#i#</cfoutput>
<cfif i EQ 4>
<cfbreak>
</cfif>
</cfloop>
```
:::info
2 3 4
:::
#### CFLOOP DATE
### Array-Funktionen
.
.
.
#### ArrayIsEmpty
.
.
.
#### ArrayLen
.
.
.
#### ArrayNew
.
.
.
#### Array.append/prepend
.
.
.
#### ListToArray
.
.
.
#### ArrayToList
.
.
.
### HTML TO PDF with CFML
:::info
https://helpx.adobe.com/coldfusion/cfml-reference/coldfusion-tags/tags-g-h/cfhtmltopdf.html
:::
### CFDOCUMENT --- SCHREIBEN VON PDF/FLASHPAGE
.
.
.
#### CFDOCUMENTITEM
:::info
https://docs.lucee.org/reference/tags/documentitem.html
:::
.
.
.
### CFEXECUTE
```htmlmixed=
<html>
<body>
<!-- verändern von bildern mit ImageMagick -->
<!-- cfexecute --- name= "speicherort des auszuführenden programms" arguments="[kompletter pfad der ursprungsdatei] -WASSOLLDASPROGRAMMMACHEN [kompletter pfad der neuen datei]" -->
<cfexecute name = "/usr/bin/convert" arguments="/disk_412/1a_webs/www/test_211_kleister/CCC.png -resize 64x64 /disk_412/1a_webs/www/test_211_kleister/CCC_new.png" timeout = "60" outputfile="CCC_New.txt"> </cfexecute>
</body>
</html>
```
.
.
.
### Structure-Funktionen
## Logische Operatoren
* EQ........=........GLEICH
* LE........<=.......KlEINER GLEICH
* GE........>=.......GRÖßER GLEICH
* NE........!=.......UNGLEICH
* GT........>........GRößER ALS
* LT........<........KLEINER ALS
* NOT.......!........NICHT
* AND.......&&.......UND
* OR........ll.......ODER
---
---