Handbuch für Contao 3 › books › contao-handbuch-3.5.pdf · 2017-07-19 · Handbuch für Contao...
Transcript of Handbuch für Contao 3 › books › contao-handbuch-3.5.pdf · 2017-07-19 · Handbuch für Contao...
1.1
1.2
1.2.1
1.2.2
1.2.3
1.2.4
1.2.5
1.2.6
1.3
1.3.1
1.3.2
1.3.3
1.4
1.4.1
1.4.2
1.4.3
1.4.4
1.4.5
1.4.6
1.5
1.5.1
1.5.2
1.5.3
1.5.4
1.5.5
1.5.6
1.5.7
1.5.8
1.5.9
1.5.10
1.6
1.6.1
1.6.2
1.6.3
Inhaltsverzeichnis
Inhaltsverzeichnis
Einleitung
Installation
Contaoinstallieren
DenSafeModeHackverwenden
ManuellesUpdate
LiveUpdateService
EineInstallationumziehen
DenLive-Serverkonfigurieren
Administrationsbereich
Datensätzeauflisten
Datensätzebearbeiten
Backend-Tastaturkürzel
Seitenverwalten
Komponenten
Themes
Stylesheets
Module
Seitenlayouts
Seitentypen
Inhalteverwalten
Artikel
Nachrichten
Termine
RSS-/Atom-Feed
Newsletter
Formulare
Kommentare
Templates
Markdown
Insert-Tags
Systemadministration
BenutzerundGruppen
Erweiterungen
Systemwartung
1
2
HandbuchfürContao3.5DiesistdasoffizielleHandbuchfürAnwenderundEntwickler.DieneusteVersionistunterdocs.contao.orgerhältlich.
Licence
TheContaodocumentationislicensedunderaCreativeCommonsAttribution3.0Licenselicense(CCBY-NC-SA3.0).Ifyouwanttoredistributeamodifiedorunmodifiedversionofthedocumentation,youcandosounderthelicenseterms.
Ifyoucontributetothedocumentation,e.g.bycreatingpullrequests,yougrantusfullusagerightsofanycontentyoucreateorupload.Youalsoensurethatyourcontentdoesnotviolateanythird-partyrights.
Wearenotclaimingexclusiveusagerights,thereforeyouarefreetouseyourcontributedcontent(e.g.textsorimages)inanyotherprojectaswell.
Einleitung
3
InstallationDiefolgendenAbschnitteerklärendieInstallationundAktualisierungvonContao.SielernenwiemandasContao-Installtoolverwendet,wiemaneineInstallationperFTPsynchronisiert,wiemandenSafeModeHackeinrichtetundwiemaneinenWebserverfürContaokonfiguriert.
Installation
4
Contaoinstallieren
LadenSiesichzunächstdasaktuelleContao-ArchivherunterundentpackenSieesaufIhremlokalenRechner.VerschiebenSiedieDateienindashtdocs-VerzeichnisIhrerXAMPP-InstallationoderkopierenSiesiemiteinemFTP-Programm(z.B.WinSCP)aufIhrenServer.StellenSiesicherdassauchdieDatei.htaccess.defaulthochgeladenwirdundbenennenSiediesedanachauf.htaccessum.DerBasisordnerheißtwahrscheinlichhtdocs,httpdocs,html,public_htmloderwww.
WennSieSSH-ZugriffaufdenServerhaben,könnenSieContaoauchdirektüberdieKommandozeileherunterladen,beispielsweisemitcurl.JenachgewünschterVersionistdieURLanzupassen.
NeusteVersionvonContao(4.x):
curl-Lhttp://download.contao.org|tar-xzp
LTS-VersionvonContao(3.5):
curl-Lhttp://download.contao.org/lts|tar-xzp
EinebestimmteVersion(z.B.3.5.2):
curl-Lhttp://download.contao.org/3.5.2|tar-xzp
DasContao-Installtool
UmdasContao-Installtoolaufzurufen,hängenSieeinfach/contao/install.phpandieURLIhrerContao-Installationan.BeachtenSie,dassdasInstalltoolmiteinemPasswortgegenBruteForce-Attackengeschütztistundgesperrtwird,wenndreimalhintereinandereinfalschesPassworteingegebenwurde.UmdieseSperreaufzuheben,öffnenSiedieDateisystem/config/localconfig.phpineinemTexteditor,findenSiediefolgendeZeileundsetzenSiesieauf0.
$GLOBALS['TL_CONFIG']['installCount']=0;//HebtdieautomatischeSperreauf
Datenbankverbindungherstellen
MeldenSiesichanderAdministrationsoberflächeIhresServers(z.B."Plesk"oder"cPanel")anunderstellenSieeineneueDatenbankfürContao.GebenSiedieZugangsdatenimContao-InstalltooleinundbeachtenSiedieabweichendeSchreibweiseUTF8anstattUTF-8inMySQL!
Tabellenaktualisieren
ContaoprüftbeiderInstallationdieTabellenderDatenbankundgibteineListeempfohlenerÄnderungenaus,wenndiesenichtaktuellsind.LesenSiedieseEmpfehlungenaufmerksam,dennContaokenntnurseineeigenenTabellenundwirdversuchen,vermeintlichnichtbenötigteTabellenandererProgramme"aufzuräumen".BestätigenSiedieÄnderungendurchAnklickender"Datenbankaktualisieren"-Schaltfläche.
EinTemplateimportieren
EinTemplateisteinevorkonfigurierteWebseite,dieeinebeispielhafteSeitenstrukturundverschiedeneStylesheetszurFormatierungderContaoCore-Moduleund-Inhaltselementeenthält.
Contaoinstallieren
5
SeitVersion3.2.11istdieBeispiel-WebseitenichtmehrimDownloadpaketenthalten.AbhängigvondereingesetztenVersionkanndieneueContaoOfficialDemooderdiealteMusicAcademyalsErweiterunginstalliertwerden.AufschlussüberKompatibilitätgibtdasErweiterungsverzeichnis.
VorgehenzurInstallationderDemo:
1. EinefrischeContaoInstallationmitAdmin-Accounterstellen2. AlsAdminimBackendanmelden3. PassendeErweiterungüberdasExtensionRepositoryhinzufügen4. AlsAdminvomBackendabmelden5. Installtoolerneutaufrufen
UmeinTemplatezuimportieren,wählenSiedenEintragausdemDrop-Down-MenüundklickenSieaufdie"Templateimportieren"-Schaltfläche.
Achtung
BeimImporteinesTemplateswerdenbestehendeDatenüberschrieben!
Administrator-Kontoerstellen
WennSiekeinTemplateimportierthaben,müssenSieeinAdministrator-Kontoerstellen,damitSiesichamContao-Backendanmeldenkönnen.DanachistderInstallationsprozessabgeschlossen.DerLinkuntenrechtsleitetSiezurBackend-Anmeldungweiter.WennSiedieBeispielwebseiteimportierthaben,könnenSiesichdortalsBenutzer"k.jones"mitdemPasswort"kevinjones"anmelden.
ContaoDemoinstallieren
SieheVorgehenzurInstallationderDemoimAbschnittEinTemplateimportierenweiteroben.
SuchmaschinenfreundlicheURLsverwenden
WennSieeinenApache-Webserverhabenundmod_rewriteverwendendürfen,könnenSieContaodazuveranlassen,suchmaschinenfreundlicheURLszugenerieren,diewiestatischeHTML-Seitenaussehen.DiedazubenötigtenRewrite-Regelnsindinder.htaccess.default-DateiimContao-Verzeichnisgespeichert.BenennenSiedieseDateiumin.htaccess,damitsievomApache-Servererkanntwird,undrufenSieanschließenddasModul"Einstellungen"imContao-Backendauf.WählenSiedieOption"URLsumschreiben"inderGruppe"Frontend-Einstellungen"ausundspeichernSieIhreÄnderungen.ContaogeneriertjetztstatischeURLswiez.B.home.htmlanstattindex.php?id=12.
Contaoinstallieren
6
DenSafeModeHackverwenden
EventuellhabenSiebeimAufrufdesContao-InstalltoolsdieMitteilungerhalten,dassdielokaleKonfigurationsdateinichtbeschreibbarist.
Dateizugriffsrechte
DieBezeichnung"SafeModeHack"isteigentlichnichtkorrekt,dasieimpliziert,dassdasProblemdurchdenPHPsafe_modeverursachtwürde.TatsächlichwirdesjedochvonunzureichendenDateizugriffsrechtenverursachtundtrittauchbeideaktiviertemsafe_modeauf,dahersollteesrichtiger"FilePermissionHack"heißen.
PHPalsApache-ModulläuftnormalerweisealsBenutzerwwwrun,www-dataodernobody,wohingegendieDateien,dieSieperFTPhochgeladenhaben,IhremBenutzer(z.B.web4oderab5678)gehören.DerSerververweigertBenutzerngrundsätzlichdenZugriffauffremdeDateienundmachtauchfürdasPHP-SkriptContaokeineAusnahme.
FTPfürDateioperationenverwenden
UmdasRechteproblemzuumgehen,bautContaoeineFTP-VerbindungaufundlegtdieRessourcenunterdemFTP-Benutzeran.SiemüssendafürnurIhreFTP-ZugangsdatenimInstalltooleintragen.AchtenSiedabeibesondersaufdenkorrektenrelativenPfadvomFTP-BasisordnerzumContao-Verzeichnis(z.B.html/,public_html/oderhttpdocs/).
EinpaarwenigeVerzeichnissebenötigentrotzSafeModeHackSchreibrechte,weilPHPdirektaufsiezugreift:
assets/images
assets/images/*
system/logs
DenSafeModeHackverwenden
7
system/tmp
DieSchreibrechte(CHMOD777)werdenvomInstalltoolautomatischgesetztundmüsseninderRegelnichtmanuellnachgearbeitetwerden.Fallsdiesdocheinmalnotwendigseinsollte,passenSiebittenurdiesedreiVerzeichnissean–auchwennSieineinemTutorialoderdemContao-Forumetwasanderesgelesenhabensollten!
DenSafeModeHackverwenden
8
ManuellesUpdate
BeidermanuellenAktualisierungeinerContao-InstallationkönnenSieentwederdaskompletteContao-ArchivaufdenServerübertragen(Dateienersetzen)odernurdiegeändertenDateienhochladen(Dateiensynchronisieren).InjedemFallsolltenSievorherfolgendeDateienundOrdnersichern-nurfürdenFall,dasseinFehlerauftrittoderSiesieversehentlichüberschreiben:
files/*
system/config/dcaconfig.php
system/config/initconfig.php
system/config/langconfig.php
system/config/localconfig.php
system/config/pathconfig.php
templates/*
DiesesBackupumfasstIhrelokaleKonfiguration,eventuellangepassteTemplatessowiediehochgeladenenDateien.
Dateienersetzen
DieDateieneinerContao-Installationzuersetzenistrelativsimpel.ÜbertragenSieeinfachdasContao-ArchivaufIhrenServeroderentpackenSieesaufIhremlokalenRechnerundkopierenSiedieDateienanschließendmiteinemFTP-Programm(wirempfehlenWinSCP).DanachstellenSiedieDateienausdemBackupwiederherundentferneneventuelleÜberbleibselvorherigerContao-Versionen.
Achtung:WennSieThird-Party-Erweiterungeninstallierthaben,müssenSiedieseebenfallssichernundnachdemUpdatewiederherstellenoderdaraufachten,siegarnichterstzuüberschreiben.AndernfallsmüssendieseModuleneuinstalliertwerden,wasbeieinigenErweiterungenzuDatenverlustführenkann!
SolltederComposer-ClientimEinsatzsein,mussdasVerzeichnis/composerebenfallsgesichertwerden.
Dateiensynchronisieren
UmeineContao-Installationzusynchronisieren,könnenSieentwederdasUnixDiff-ProgrammodereinenFTP-Clientverwenden.Unix-UtilitieswerdennormalerweisenurvonServeradministratorenverwendet,daherwerdensiehiernichterklärt.UmDateienperFTPzusynchronisieren,öffnenSieWinSCPundverbindenSiesichmitdemServer.ErstellenSieeinBackupderobengenanntenDateienundnavigierenSiedannzumContao-VerzeichnisundklickenSieaufdie"Dateiensynchronisieren"-Schaltfläche.
ManuellesUpdate
9
TreffenSieIhreAuswahlwieinderAbbildungundwählenSieunbedingtdieOption"Änderungsvorschau"aus,damitSiediezuaktualisierendenDateiennocheinmalprüfenkönnen.BestätigenSiedanachdieEinstellungenimVorschaufensterundachtenSiebesondersaufdiezulöschendenRessourcen!KlickenSie"OK",umdenSynchronisationsvorgangzustarten.
DieDatenbankaktualisieren
NachdemSiedieContao-Dateienaktualisierthaben,müssenSienochdieDatenbankaufdenneuestenStandbringen.DieseArbeitübernimmtdasContao-InstalltoolfürSie.GebenSieIhrPasswortein,scrollenSiebiszumDatenbank-AbschnittundbestätigenSiedieÄnderungen.
DeninternenCacheleeren
ManuellesUpdate
10
ZumSchlussmussnochderinterneCache(DCA-undSprachdateien)geleertundneuangelegtwerden.GehenSieimBackendzur"Systemwartung"undwählenunter"Datenbereinigen"denPunkt"InternenCacheleeren"aus.BestätigenSiedieAktionmit"Datenbereinigen".
NunerscheintinderKopfzeilevomBackendeinHinweis,dassderinterneCachenochnichtaufgebautwurde.ErstellenSiedeninternenCacheindemSieinderKopfzeile"DenCacheaufbauen"anklicken.
ManuellesUpdate
11
LiveUpdateService
DerContaoLiveUpdate-ServiceisteinkommerziellesContaoAdd-onvoniNetRobots,derFirmadesContao-GründersundKernentwicklers,LeoFeyer.EsermöglichtdieAktualisierungIhrerInstallationmitwenigenKlicksimBackend,ohneeinContao-ArchivherunterzuladenoderdieDateienmiteinemFTP-Programmzusynchronisieren.
EineContaoLiveUpdateIDbestellen
DasLiveUpdateumfasstfolgendeFunktionen:
BeliebigeUp-undDowngradesaufalleContao-VersionenAutomatischesBackupderDatenbankvordemUpdateIndividuellePrüfungundVervollständigungderContao-InstallationVergleichderangepasstenTemplatesmitdenOriginaldateien
Versionsauswahl
Template-Unterschiede
LiveUpdateService
12
Fehlersuche
99%allerLiveUpdate-ProblemesindaufunzureichendeDatei-Zugriffsrechtezurückzuführen.ContaobenötigtSchreibrechte,umDateienundOrdnerzuverwalten,dahersolltenSiealserstesIhreServerkonfigurationprüfenundsicherstellen,dassderSafeModeHacksowieindiesemHandbuchbeschriebenkonfiguriertist!
Hinweis
WennSieProblemebeiderAktivierungIhrerLiveUpdateIDhaben,wendenSiesichbitteandeniNetRobots-Support.BeiProblemenmitdemSafeModeHackoderderBenutzungvonContao,wählenSiebitteeinepassendeSupport-OptionaufderSupport-Seite.
LiveUpdateService
13
EineInstallationumziehen
DerUmzugeinerContao-InstallationvoneinemlokalenServeraufeinenLive-ServeristnichtvielandersalseineneueInstallation,außerdassSiedieDateienIhrerlokalenInstallationstattdenendesContao-ArchivssowieeinenSQL-DumpIhrerlokalenDatenbankverwenden.
Dateienkopieren
ÖffnenSieIhrFTP-Programm,verbindenSiesichmitdemZielserverundübertragenSiealleDateienIhrerlokalenContao-Installation.
Datenbankexportieren
EinMySQL-DumplässtsichameinfachstenmitderDatenbankverwaltung"phpMyAdmin"erstellen.AlsServeradministratorkönnenSienatürlichauchdasProgrammmysqldumpverwenden.MeldenSiesichan"phpMyAdmin"an,wählenSiediezuexportierendeDatenbankundklickenSieaufdie"Export"-SchaltflächeimoberenMenü.UmKompatibilitätsproblemezwischenverschiedenenMySQL-Versionenzuminimieren,isteswichtig,dieEinstellungenfürdenExportgemäßdesfolgendenScreenshotsanzupassen:
Datenbankimportieren
EineInstallationumziehen
14
ÖffnenSie"phpMyAdmin"aufdemZielserverunderstellenSieeineneueDatenbankfürContao.JenachServerkonfigurationistdaseventuellnurüberdieVerwaltungsoberfläche(z.B."Plesk"oder"cPanel")möglich.WählenSiedieneueleereDatenbankausundklickenSieaufdie"Import"-SchaltflächeimoberenMenü.LadenSiedanndenSQL-DumpderlokalenDatenbankhochundstartenSiedenImport.
Datenbank-Konfigurationanpassen
AlsLetztesöffnenSiedasContao-InstalltoolderneuenInstallation(dasPasswortistdasselbewiefürIhrelokaleInstallation)undpassenwennnötigdieDatenbank-Zugangsdatenan.DanachkönnenSiesichwiegewohntmitIhremBenutzernamenimBackendanmelden.
EineInstallationumziehen
15
DenLive-Serverkonfigurieren
IndiesemKapitelgehtesnichtdarum,denApache-DienstzuinstallierenoderPHPzukompilieren,wasaufeinemShared-Hosting-Serverohnehinnichtmöglichist.Stattdessenwirderklärt,wiemandieContao-SystemvoraussetzungenprüftundPHP5aktiviert.
Contao-Systemvoraussetzungen
ContaobenötigteinenWebserverwieApacheoderIISmitPHP-undMySQL-Support.
Software Version(min.)
PHP 5.4.0
MySQL 5.0.3
AußerdembenötigenSieverschiedenePHP-Erweiterungen,umvonallenFunktionenprofitierenzukönnen.
PHP-Erweiterungen für Pflicht
GDlib Bildbearbeitung Ja
DOM XML-Dateien Ja
SOAP ExtensionRepository Nein
Phar LiveUpdate Nein
mbstring internationaleZeichen Nein
mcrypt Verschlüsselung Nein
Hinweis
JenachinstalliertenExtensionskannesaußerdemnotwendigseindiePHPVariablemax_input_varszuerhöhen(bspw.auf2000oderhöher).AndernfallskönnenzulangeBackendFormularenichtkomplettabgeschicktwerden.
ContaowurdeerfolgreichinallenmodernenBrowsernwieFirefoxoderInternetExplorer(abVersion9)getestet.
DerContao-Check
LadenSiedenContao-CheckherunterundfindenSieheraus,obIhrServerdieContao-Systemvoraussetzungenerfüllt.DerContao-Checkprüft,obSiedasExtensionRepositoryunddasLiveUpdatenutzenkönnenundobSiedenSafeModeHackbenötigenodernicht.JenachSystemkonfigurationkönnenSiemitHilfedesWeb-InstallerseineneueContao-InstallationaufsetzenodereinebestehendeInstallationprüfen.
DenLive-Serverkonfigurieren
16
EntpackenSiedieZip-Datei,übertragenSiedenOrdnercheckinIhrContao-VerzeichnisundöffnenSieihnineinemBrowser.
DenContao-Checkherunterladen|ZumProjektaufGitHub
Provider-spezifischeEinstellungen
EsgibteinpaarwenigegroßeInternetServiceProvider,diespezielleEinstellungenfürdenBetriebvonContaoerfordern.ZumGlücksindsienurdieAusnahmevonderRegel.DieProvider-spezifischeEinstellungenfindenSieimContao-Forum.SorgenfreiesContao-HostingerhaltenSiebeidenContaoHosting-Partnern.
DenLive-Serverkonfigurieren
17
AdministrationsbereichUmdenAdministrationsbereich(Backend)aufzurufen,hängenSieeinfach/contaoandieURLIhrerContao-Webseitean.
Hinweis
DieKontensindgegenBruteForce-Attackengeschütztundwerdenfür5Minutengesperrt,wenndreimalhintereinandereinfalschesPassworteingegebenwurde.BeachtenSiedassdieGroß-/KleinschreibungbeiBenutzernameundPasswortberücksichtigtwird.
Administrationsbereich
18
Datensätzeauflisten
DieContaoCore-EngineunterstütztdreiAnsichten:eineeinfacheListe("listview"),einenachderübergeordnetenTabellegruppierteListe("parentview")undeinehierarchischeListe("treeview").DiesedreiAnsichtenwerdenzurDarstellungderDatenimBackendverwendet.
ListView
Der"ListView"listetdieDatensätzeeinerTabelleineinerbestimmtenReihenfolgeauf,normalerweisegruppiertnachAnfangsbuchstabe.
ParentView
Der"ParentView"listetdieDatensätzeeinerKindtabelleauf,diesichaufeinenDatensatzderElterntabellebeziehen.Eltern-Kind-RelationenkommenhäufigvorinContao,z.B.beiArtikelnundInhaltselementen,ArchivenundNachrichtenoderStylesheetsundFormatdefinitionen.
Datensätzeauflisten
19
TreeView
Der"TreeView"listetDatensätzeauf,dieineinerhierarchischenStrukturorganisiertsind.ContaounterstütztsowohlhierarchischeBeziehungeninnerhalbeinerTabelle(z.B.Seitenstruktur)alsauchKindtabellen,diesichaufhierarchischeElterntabellenbeziehen(z.B.ArtikelundSeiten).
Datensätzeauflisten
20
Datensortierenundfiltern
ContaobietetmehrereMöglichkeiten,Auflistungenzusortierenundzufiltern,damitSieauchbeimehrerentausendDatensätzendenÜberblickbehalten.VieleListenkönnenanhandeinesodermehrererFeldereingeschränktwerden.DiemeistenbietenzusätzlicheineVolltext-Suchean,diesogarreguläreAusdrückeunterstützt.UmdieLadezeitzuoptimieren,zeigtContaoimmernur30Datensätzeaufeinmalan.
Datensätzeauflisten
21
Datensätzeauflisten
22
Datensätzebearbeiten
ContaobietetetlicheprofessionelleFunktionen,diedasBearbeitenvonDatensoeinfachundkomfortabelwiemöglichmachen.SiekönnenzufrüherenVersionenzurückgehen,gelöschteDatensätzewiederherstellen,ElementeviaClipboardverschiebenundsogarmehrereDatensätzeaufeinmalbearbeiten.DiemeistendieserFunktionensindüberdieNavigationssymboleaufrufbar.
IconsimListView
Der"ListView"alseinfachsteAnsichtbietetnurdieviergrundlegendenBefehle:bearbeiten,duplizieren,löschenundInfo.
IconsimParentView
Der"ParentView"bietetzweizusätzlicheIcons,umdieReihenfolgederDatensätzezukontrollieren.DieReihenfolgekannauchmittelsDrag&Dropgeändertwerden.Dazueinfachaufdas"Drag&Drop"IconklickenundandieneuePositionbewegen.
Datensätzebearbeiten
23
IconsimTreeView
Im"TreeView"werdenweitereIconsbenötigt,umdiehierarchischeStrukturabbildenzukönnen.NebendemKopiereneineseinzelnenDatensatzeskönnenauchganzeTeilbäumedupliziertundentwederineinenodernacheinemanderenDatensatzeingefügtwerden.
Datensätzebearbeiten
24
FrühereVersionenwiederherstellen
ContaoerstelltbeijedemSpeichervorgangautomatischeineneueVersioneinesDatensatzes.SobaldesmehralseineVersiongibt,erscheintoberhalbdesFormularseinDrop-Down-Menü,mitdemSiezueinerfrüherenVersionenzurückgehenkönnen.
DurchKlickaufdasIconrechtsdesDrop-Down-MenüswerdendieUnterschiedezwischenderaktuellenunddergewähltenVersionangezeigt.
Datensätzebearbeiten
25
MehrereDatensätzebearbeiten
DieMöglichkeit,mehrereDatensätzeaufeinmalzubearbeiten,hebtContaoklarvondenMitbewerbernab.WechselnSiedenBearbeitungsmodusdurchAnklickender"Mehrerebearbeiten"-SchaltflächeundwählenSiedanndiezubearbeitendenDatensätzeundFelderaus.
Datensätzebearbeiten
26
Datensätzebearbeiten
27
Datensätzebearbeiten
28
Backend-Tastaturkürzel
UmdenWorkflowbeiderArbeitmitContaozubeschleunigen,gibtesimBackendetlicheTastaturkürzel,mitdenensichbestimmteBefehledirektaufrufenlassen.ZumBeispielkönnenSiedieSchaltfläche"Speichern"amEndeeinesEingabeformularsalternativzurBedienungmitderMausauchmitdemTastaturkürzel[Alt]+[s]ansteuern.
AllgemeineTastaturkürzel
Tastaturkürzel Schaltfläche Erklärung
[Alt]+[h] Startseite ZurStartseitedesBackend(Home).
[Alt]+[q] Abmelden BeendetdieaktuelleBackend-Sitzung(Quit).
[Alt]+[t] Nachoben SpringtzumAnfangderSeite(Top).
[Alt]+[b] Zurück ZurückzurvorherigenSeite(Back).
[Alt]+[n] NeuerDatensatz LegteinenneuenDatensatzan(New).
[Alt]+[e] Mehrerebearbeiten Wechseltinden"mehrerebearbeiten"-Modus(Editmultiple).
[Alt]+[f] Frontend-Vorschau ÖffnetdieFrontend-VorschauineinemneuenFenster(Frontendpreview).
TastaturkürzelimBearbeitungsmodus
Tastaturkürzel Schaltfläche Erklärung
[Alt]+[s] Speichern SpeichertdasaktuelleEingabeformular(Save).
[Alt]+[c]
Speichernundschließen
SpeichertundschließtdasaktuelleEingabeformular(Saveandclose).SiegelangenzurückzurvorherigenSeite.
[Alt]+[g]Speichernundzurück
SpeichertundschließtdasaktuelleEingabeformular(Saveandgoback).SiegelangenzurückzurübergeordnetenSeite,z.B.voneinemInhaltselementdirektzurArtikelübersicht.
[Alt]+[e]
Speichernundbearbeiten
SpeichertdasaktuelleEingabeformular(Saveandedit)undwechseltzurAnsichtderKind-Datensätze,z.B.beimAnlegenvonStylesheets.
[Alt]+[n]Speichernundneu
SpeichertdasaktuelleEingabeformularundlegteinenneuenDatensatzan(Saveandnew).
TastaturkürzelimModus"mehrerebearbeiten"
Tastaturkürzel Schaltfläche Erklärung
[Alt]+[d] Mehrerelöschen LöschtalleausgewähltenDatensätzeimModus»mehrerebearbeiten«(Delete).
[Alt]+[x] Mehrereverschieben VerschiebtalleausgewähltenDatensätzeimModus»mehrerebearbeiten«.
[Alt]+[c] Mehrerekopieren KopiertalleausgewähltenDatensätzeimModus»mehrerebearbeiten«(Copy).
[Alt]+[v] Mehrereüberschreiben ÜberschreibtalleausgewähltenDatensätzeimModus»mehrerebearbeiten«.
Backend-Tastaturkürzel
29
[Shift] MehrereCheckboxenauswählen
WähltmehrereCheckboxenauswenndieShift-Tastegedrücktwird.
DiebeschriebenenTastaturkürzelfunktionierenindieserFormnurunterWindows.Mac-Nutzermüssenanstattder[Alt]-Taste[Ctrl]+[⌥Opt]inVerbindungmitdemjeweiligenKürzelverwenden.ZudemweichtFirefoxunterWindowsleidervomgewohntenStandardab,dortmüssenSie[Alt]+[Umsch]inVerbindungmitdemgewünschtenKürzeldrücken.
Backend-Tastaturkürzel
30
SeitenverwaltenDiefolgendenKapitelerklären,wiemanSeiteninContaoverwaltet.DaContaoeinSeiten-basiertesCMSist,sindSeitenunddieSeitenstrukturdiezentralenElementeIhrerWebseiteundjederInhalt,dernichtmiteinerSeiteassoziiertist,erscheintauchniemalsimFrontend.
Seitenverwalten
31
Komponenten
DasZusammenspielvonSeiten,Artikeln,InhaltselementenundModulenzuverstehen,istderSchlüsselzumErlernenvonContao.Wiebereitserwähnt,istdieSeitenstrukturdaszentraleElementderWebseite.BesucherrufengrundsätzlichimmerSeitenaufundniemalseinzelneArtikel,wieesineinemNode-basiertenContentManagementSystemderFallist.
DasDiagrammverdeutlicht,dassArtikelundLayoutsdiebeidenwichtigstenKomponenteneinerSeitesind.WährendArtikeldieInhalteeinerSeitespeichern,legtdasSeitenlayoutfest,wiedieseaufderWebseitedargestelltwerden.LayoutsinContaosindnatürlichCSS-basiertundverwendenkeineLayout-Tabellen.AufdenfolgendenSeitenwirderklärt,wiemanStylesheetsundFrontend-Moduleanlegt,siezueinemLayoutkombiniertundsieanschließendeinerneuerstelltenSeitezuweist.
Komponenten
32
Themes
DasDesigneinerWebseitebestehtnormalerweiseausStylesheets,Frontendmodulen,Seitenlayouts,DateienundTemplates,dieSieimContao-Backendverwaltenkönnen.DerTheme-ManagerändertdiesenAnsatznicht,erfügtlediglicheineMöglichkeithinzu,dieRessourcenzuexportierenundwiederzuimportieren(Video-Einführungansehen).
ThemesversusFrontend-Templates
DerHauptunterschiedzwischenThemesundFrontend-Templatesist,dasseinFrontend-TemplateeinevollständigvorkonfigurierteBeispielwebseitemiteinerbeispielhaftenSeitenstruktur,Artikeln,InhaltselementenundsogarBenutzernundGruppenenthält.EinThemeenthältdagegennurdaseigentlicheDesignderWebseiteundkanndeswegenimportiertwerden,ohnedassbestehendeDatenverlorengehen.
Theme-Bestandteile
EinThemeisteineGruppevonStylesheets,Frontend-ModulenundSeitenlayouts,diealleinderDatenbankgespeichertsindundautomatischvomThemeExportererkanntwerden.SiewerdendieseElementeindennächstenAbschnittennäherkennenlernen.EinThemebeinhaltetdarüberhinausmeistensauchBilderundandereDateienausdemFiles-VerzeichnissowieoptionalangepassteTemplatesausdemTemplates-Verzeichnis.DieseRessourcensindjedochnichtautomatischmitdemThemeverlinktundmüssendeswegenindenTheme-Einstellungenhinzugefügtwerden,damitsiebeimTheme-Exportberücksichtigtwerden.
Themes
33
Theme-Exportund-Import
UmeinThemezuexportieren,klickenSieeinfachaufdieExport-SchaltflächeundspeichernSiedie.cto-DateiaufIhremlokalenComputer.Obwohl.ctoeineproprietäreDateiendungfürContao-Themesist,handeltessichdabeieigentlichumZIP-Archive,dieSiemitjedemProgrammentpackenkönnen,das.zip-Dateienunterstützt.UmeinThemezureimportieren,übertragenSiedie.cto-DateiaufIhrenWebserver,öffnenSiedenTheme-ManagerimContao-BackendundklickenSieauf"Themeimportieren".SiekönnenmehrereThemesaufeinmalimportieren.NachdemderImportabgeschlossenist,könnenSiedasSeitenlayoutdesneuenThemesinderSeitenstrukturzuweisen.
Themes
34
Stylesheets
BarrierefreieWebseitensolltenimmermitCSSformatiertwerden,daherenthältContaoein"Stylesheets"-Modul,mitdemSieFormatdefinitionenbequemimBackendverwaltenkönnen.UmdieverschiedenenContao-Elementeund-ModuleineinemStylesheetzureferenzieren,müssenSiederenKlassennamenkennen.Inhaltselement-Klassenbeginnenmit"ce_"(z.B."ce_text")undModul-Klassenmit"mod_"(z.B."mod_search").FallsSiesichnichtsichersind,sehenSieeinfachimQuelltextderWebseitenach.
JedesStylesheetkannaufeinenodermehrereMedientypenund/odereinebestimmteVersiondesInternetExplorersbeschränktwerden,fallsSieeinendervielendarinenthaltenenFehlergesondertbehebenmüssen.AchtenSiedabeiaufdieReihenfolgederFormatdefinitionen,dafrühereAnweisungenvonspäterenüberschriebenwerdenkönnen.
/*ZuerstdengenerellenAbstandsetzen*/
.mod_search{
margin:24px;
}
/*DanachdiespezielleIE7-Anweisung*/
*:first-child+html.mod_search{
margin:18px;
}
Stylesheets
35
WäredieReihenfolgeumgekehrt,würdederallgemeineAbstanddenIE-spezifischenWertüberschreiben.
Stylesheets
36
Module
MitHilfevonFrontend-ModulenkönnenSieIhreWebseiteumfastjedeerdenklicheFunktionalitäterweitern.DerContao-CoreenthältModule,umverschiedeneNavigationsmodulezuerstellen,dieBenutzerregistrierungund-anmeldungzuermöglichen,dieWebseitezudurchsuchen,RSS-Feedszuimportierenundvielesmehr.ModulekönnenimBackendunter"Themes"->"Frontend-Module"konfiguriertwerden.
Modul CSS-Klasse Beschreibung
Navigationsmenü mod_navigation ErzeugteinNavigationsmenüausderSeitenstruktur.
IndividuelleNavigation mod_customnav ErzeugteinindividuellesNavigationsmenü.
Navigationspfad mod_breadcrumb ErzeugteinenNavigationspfad.
Quicknavigation mod_quicknav ErzeugteinDrop-Down-MenüausderSeitenstruktur.
Quicklink mod_quicklink ErzeugteinindividuellesDrop-Down-Menü.
Buchnavigation mod_booknav ErzeugteinBuchnavigationsmenü.
Artikelnavigation mod_article_nav ErzeugteinSeitenumbruch-MenüzurArtikelnavigation.
Sitemap mod_sitemap ErzeugteineListeallerSeitenausderSeitenstruktur.
Login-Formular mod_login ErzeugteinAnmeldeformular(Login).
AutomatischerLogout - MeldeteinenBenutzerautomatischab(Logout).
PersönlicheDaten mod_personalData ErzeugteinFormularzurBearbeitungderBenutzerdaten.
Registrierung mod_registration ErzeugteinFormularzurBenutzerregistrierung.
Passwortändern mod_changePassword ErzeugteinFormularzurPasswort-Änderung.
Passwortvergessen mod_password ErzeugteinFormularzurPasswort-Anforderung.
Kontoschließen mod_closeAccount ErzeugteinFormularzurLöschungeinesBenutzerkontos.
Nachrichtenliste mod_newslist FügtderSeiteeineNachrichtenlistehinzu.
Nachrichtenleser mod_newsreader StellteineneinzelnenNachrichtenbeitragdar.
Nachrichtenarchiv mod_newsarchive FügtderSeiteeinNachrichtenarchivhinzu.
Nachrichtenarchiv-Menü mod_newsmenu ErzeugteinMenüzurNavigationdesNachrichtenarchivs.
Kalender mod_calendar FügtderSeiteeinenKalenderhinzu.
Eventleser mod_eventreader StellteineinzelnesEventdar.
Eventliste mod_eventlist ListetalleEventseinesbestimmtenZeitraumsauf.
Eventliste-Menü mod_eventmenu ErzeugteinMenüzurNavigationderEventliste.
Abonnieren mod_subscribe ErzeugteinFormularzumAbonnierenvonVerteilern.
Kündigen mod_unsubscribe ErzeugteinFormularzumKündigenvonAbonnements.
Newsletterliste mod_nl_list FügtderSeiteeineNewsletterlistehinzu.
Newsletterleser mod_nl_reader StellteineneinzelnenNewsletterdar.
FAQ-Liste mod_faqlist FügtderSeiteeineListehäufiggestellterFragenhinzu.
FAQ-Leser mod_faqreader StelltdieAntwortzueinerhäufiggestelltenFragedar.
Module
37
FAQ-Seite mod_faqpage GibtdieFAQ-ListeunddenFAQ-LeseraufderselbenSeiteaus.
Formular mod_form FügtderSeiteeinFormularhinzu.
Suchmaschine mod_search FügtderSeiteeinSuchfomularhinzu.
Kommentare mod_comments Kommentarebzw.Gästebuch-Einträgeverwalten.
Auflistung mod_listing ListetdieDateneinerbeliebigenTabelleauf.
Flash-Film mod_flash BindeteinenFlash-FilmineineSeiteein.
Artikelliste mod_article_list ErzeugteineListeallerArtikeleinerSpalte.
Zufallsbild mod_random_image FügtderSeiteeinzufälligausgewähltesBildhinzu.
EigenerHTML-Code - ErlaubtdasHinzufügenvoneigenemHTML-Code.
RSS-Reader mod_rss_reader FügtderSeiteeinenRSS-Feedhinzu.
Zugriffsschutz
JedesFrontend-Modulkanngeschütztwerden,sodassesnurGästeoderBenutzereinerbestimmtenMitgliedergruppesehenkönnen.
Module
38
Seitenlayouts
SeitenlayoutsdefinierendengrundsätzlichenAufbaueinerSeite,wiez.B.dieAnzahlderSpaltenoderdieGesamtbreite,undsielegenfest,welcheFrontend-ModuleinwelcherSpalteangezeigtwerden.SieermöglichenzudemdasEinbindenvonStylesheetsundRSS-bzw.Atom-FeedssowiedasEinfügeneinerGoogleAnalyticsIDoderbeliebigemJavaScript-Code,derfürdieSteuerunginteraktiverElementeundPluginsbenötigtwird.DasContaoCSS-FrameworkteiltdasBrowserfensterautomatischinmehrereLayoutbereicheauf.
Dasimpliziert,dassSiezumZeitpunktderErstellungeinesSeitenlayoutsbereitsdiebenötigtenStylesheetsundFrondend-Moduleangelegthabenmüssen.DaherwirdfolgendeReihenfolgebeimAnlegenvonRessourcenempfohlen:
ErstellenderbenötigtenStylesheetsErstellenderbenötigtenFrontend-ModuleOptionaleErstellungvonNachrichtenarchivenoderKalendernErstelleneinesneuenSeitenlayoutsundEinbindungderKomponenten
Seitenlayouts
39
Seitenlayouts
40
Seitentypen
DerTypeinerSeitelegtfest,obsiestatischeInhalteausgibt,zueineranderenSeiteweiterleitetoderdenStartpunkteinerWebseiteinnerhalbderSeitenstrukturmarkiert.Contaounterstütztfolgende6Seitentypen:
Seitentyp Beschreibung
ReguläreSeite EinereguläreSeiteenthältArtikelundInhaltselemente.SieverhältsichwieeinestatischeHTML-Seite.
ExterneWeiterleitung DieseSeiteleitetBesucherautomatischzueinerexternenWebseiteum(entsprichteinemHyperlink).
InterneWeiterleitung DieseSeiteleitetBesucherautomatischzueineranderenSeiteinnerhalbderSeitenstrukturum.
StartpunkteinerWebseite
DieseSeitekennzeichnetdenStartpunkteinerneuenWebseiteinnerhalbderSeitenstruktur.
403Zugriffverweigert
BeimAufrufeinergeschütztenSeiteohneZugriffsrechtewirdstattdessendie403-Fehlerseitegeladen.DieseSeitemussdirektunterhalbdesStartpunkteseinerWebseiteangelegtwerden.
404Seitenichtgefunden
BeimAufrufeinernichtvorhandenenSeitewirdstattdessendie404-Fehlerseitegeladen.DieseSeitemussdirektunterhalbdesStartpunkteseinerWebseiteangelegtwerden.
Startseite
WenndasFrontendmiteinerleerenRequestURLgeöffnetwird(z.B.http://www.example.org/),zeigtContaodieersteveröffentlichteSeiteimjeweiligenStartpunkt.DerAliasdieserSeitesollteaufindexgesetztwerden.NurdannwirddieerzeugteURLfürdieseSeiteaucheinleererRequestsein.
AbVersion3.5.18wirdaußerdemautomatischaufdieStartseiteweitergeleitet,fallsderenAliasnichtindexlautet.DieURLinkludiertdanndenAliasunddasglobaldefinierteSuffix(z.B.http://www.example.org/home.html).
Multidomain-Betrieb
ContaounterstütztmehrereWebseiteninnerhalbderSeitenstrukturundleitetBesucherjenachDNS-undSpracheinstellungenautomatischaufeinenbestimmtenStartpunkteinerWebseiteweiter.Nehmenwiran,SiebetreibeneinezweisprachigeFirmenwebseiteunter"www.example.com"undeinekleineprivateWebseiteunterderDomain"www.personal.example.org".SiebenötigendafürdreiStartpunkte:
Typ DNS Sprachenkürzel Fallback-Sprache
DeutscheFirmenseite keine de nein
EnglischeFirmenseite keine en ja
PrivateWebseite www.personal.example.org de ja
DiefolgendeTabellezeigt,zuwelcherSeiteeinBesucherabhängigvonderDomainundseinerBrowserspracheweitergeleitetwird.
Domain Browsersprache Weiterleitung
www.example.com Englisch EnglischeFirmenseite
www.example.com Deutsch DeutscheFirmenseite
Seitentypen
41
www.example.com Spanisch EnglischeFirmenseite
www.personal.example.org egal PersönlicheWebseite
BeachtenSie,dassdiepersönlicheWebseiteohnedieOption"Sprachen-Fallback"nurfürdeutscheBenutzersichtbarwäre!
Zugriffsrechte
Zugriffsrechtelegenfest,wasBackend-BenutzermiteinerSeiteundihrenArtikelnmachendürfen.SiehabennichtsmitdemZugriffsschutzzutun,derdenZugriffaufeineSeiteimFrontendlimitiert!ÄhnlichdemUnix-RechtesystemgibtesdreiZugriffsebenen:
ZugriffalsBesitzereinerSeiteZugriffalsMitgliedderGruppeeinerSeiteZugriffalsunprivilegierterBenutzer
FürjedeZugriffsebenekönnengesonderteRechtevergebenwerden.StandardmäßigdarfderBesitzereinerSeitesowohldieSeiteselbst,alsauchdiedamitverbundenenArtikelbearbeiten.EinMitgliedderGruppeeinerSeitedarfhingegennurdieArtikelbearbeitenundeinunprivilegierterBenutzerhatüberhauptkeineSchreibrechte.
Seitentypen
42
InhalteverwaltenDiefolgendenKapitelerklären,wiemanInhalteinContaoverwaltet.DerContao-CorebeinhaltetbereitsdiegrundlegendenInhaltstypenwiez.B.Artikel,Nachrichten,Events,NewsletteroderFormatdefinitionen.WeitereInhaltstypenwieBanner,Tickets,ProdukteoderEmpfehlungensindüberdasExtensionRepositoryverfügbar.InhaltekönnenimBackendmitdenentsprechendenModulenangelegtwerden.
Inhalteverwalten
43
Artikel
ArtikelsindContainerfürInhaltselemente.DasGruppierenzusammengehörigerInhaltselementemachteseinfach,siealleaufeinmalzuverschieben,zuveröffentlichen,zukopierenoderzuexportieren,anstattjedeseinzelneElementzubearbeiten.JederArtikelistmiteinerbestimmtenSeiteundeinemLayoutbereichassoziiertundhatdahereinefestePositioninnerhalbderSeitenstrukturundaufderWebseite.
Inhaltselemente
InhaltselementesindeineinfacherundintuitiverWeg,umInhaltezuerstellen.AnstattnurdenRichTextEditorzuverwenden,bietetContaofürjedenInhaltstypwiez.B.Texte,Listen,Tabellen,Hyperlinks,BilderoderDownloadseineigenesElement.NachfolgendfindenSieeineÜbersichtüberdieimContao-CoreenthaltenenInhaltselemente.
Name CSS-Klasse Beschreibung
Überschrift ce_headline ErzeugteineÜberschrift(h1-h6).
Text ce_text ErzeugteinenRichText,dermitTinyMCEformatiertwerdenkann.
HTML - ErlaubtdasHinzufügenvoneigenemHTML-Code.
Aufzählung ce_list ErzeugteinegeordneteoderungeordneteListe.
Tabelle ce_table ErzeugteineoptionalsortierbareTabelle.
Code ce_code GibtformatiertenProgrammcodeaufdemBildschirmaus.
Markdown ce_markdown ErzeugtHTML-CodeauseinemMarkdown-Text.
Akkordeon(Einzelelement) ce_accordion ErzeugteineinzelnesAkkordeon-Element(MitMooTools).
Akkordeon(UmschlagAnfang) ce_accordionStart ErzeugtdenöffnendenTeildesAkkordeon-Umschlags.
Akkordeon(UmschlagEnde) - ErzeugtdenschließendenTeildesAkkordeon-Umschlags.
Content-Slider(UmschlagAnfang) ce_sliderStart ErzeugtdenöffnendenTeildesSlider-Umschlags.
Content-Slider(UmschlagEnde) - ErzeugtdenschließendenTeildesSlider-Umschlags.
Hyperlink ce_hyperlink ErzeugteinenVerweisaufeineandereWebseite.
Top-Link ce_toplink ErzeugteinenLinkzumSeitenanfang.
Bild ce_image ErzeugteineinzelnesBild.
Galerie ce_gallery ErzeugteinelightboxBildergalerie.
Video/Audio ce_player ErzeugteinenVideo-bzw.Audio-Player.
YouTube ce_youtube FügteinYouTube-Videoein.
Download ce_download ErzeugteinenLinkzumDownloadeinerDatei.
Downloads ce_downloads ErzeugtmehrereLinkszumDownloadvonDateien.
Artikel - FügteinenanderenArtikelein.
Inhaltselement (parentclass) FügteinanderesInhaltselementein.
Formular ce_form FügteinFormularein.
Modul (parentclass) FügteinFrontend-Modulein.
Artikel
44
Artikelteaser ce_teaser ZeigtdenTeasertexteinesArtikelsan.
Kommentare ce_comments FügteinKommentar-Formularein.
Zugriffsschutz
JedesInhaltselementkanngeschütztwerden,sodassesnurGästeoderBenutzereinerbestimmtenMitgliedergruppesehenkönnen.
Flash-Inhalte
Flash-InhaltesindspezielleInhalte,dienichtalsArtikelaufderWebseiteausgegeben,sondernmittelsloadVars()ineinendynamischenFlash-Filmgeladenwerden.FügenSiefolgendesSkriptinIhrenFlash-Filmein,umdieKommunikationmitContaozuermöglichen:
TextField.prototype._loadArticle=function(flashID){
tf=this;
//HTML-Modeaktivieren
tf.html=true;
tf.htmlText="";
//LoadVars-Objektinstantiieren
lv=newLoadVars();
lv["flashID"]=flashID;
lv.sendAndLoad(URL+"flash.php",lv,"POST");
lv.onLoad=function(success){
if(success){
tf.htmlText=lv["content"];
}
}
}
//DenFlash-Inhalt"myArticle"indasTextfeld"myTextBox"laden
myTextBox._loadArticle("myArticle");
EinStylesheetimportieren
DasfolgendeActionScripterlaubtdasImportiereneinesStylesheetszurFormatierungdesTextfeldes:
Artikel
45
TextField.prototype._addCSS=function(style_sheet){
tf=this;
tf.styleSheet=null;
//StyleSheet-Objektinstantiieren
st=newTextField.StyleSheet();
st.load(URL+style_sheet);
st.onLoad=function(success){
if(success){
tf.styleSheet=st;
}
}
}
//DasStylesheet"basic.css"zumTextfeld"myTextBox"hinzufügen
myTextBox._addCSS("basic.css");
BeachtenSie,dassFlashnureinenkleinenTeilderHTML-TagsunterstütztundmancheFormatierungendahernichtangezeigtwerdenkönnen.
Artikel
46
Nachrichten
DieNews/Blog-ErweiterungermöglichtdieVerwaltungvonNachrichtenbzw.Blog-EinträgenundderenDarstellungimFrontend.ImGegensatzzuArtikeln,diemiteinerbestimmtenSeiteassoziiertsind,werdenNachrichteninArchivenorganisiertundkönnensoeinfachgruppiert,kategorisiertoderalsRSS-bzw.Atom-Feedexportiertwerden.
Nachrichtenarchive
ArchivewerdenzurGruppierungund/oderKategorisierungvonNachrichtenverwendet.JedesArchivkannsichaufeinebestimmteSpracheodereinbestimmtesThemabeziehen.
Frontend-Module
MitdenFrontend-ModulenderNews/Blog-ErweiterungkönnenNachrichtenaufderWebseitedargestelltwerden.ModulekönnenimBackendunter"Layout"->"Module"konfiguriertwerdenundmüssenanschließendineinemArtikeloderSeitenlayouteingebundenwerden.
Modul CSS-Klasse Beschreibung
Nachrichtenliste mod_newslist FügtderSeiteeineNachrichtenlistehinzu.
Nachrichtenleser mod_newsreader StellteineneinzelnenNachrichtenbeitragdar.
Nachrichtenarchiv mod_newsarchive FügtderSeiteeinNachrichtenarchivhinzu.
Nachrichtenarchiv-Menü mod_newsmenu ErzeugteinMenüzurNavigationdesNachrichtenarchivs.
Permalinks
JedeNachrichthateineeindeutigeURL(Permalink),diezurReferenzierungdesBeitragsverwendetwerdenkann:
http://www.example.com/news/items/james-wilson-returns.html
DieobengenannteURLfordertdenBeitrag"james-wilson-returns"aufderSeite"news"an.Denkensiedaran,dassContaoeinSeiten-basiertesCMSist;gäbeesdieSeite"news"nichtoderenthieltesienichtdasModulNachrichtenleser,würdederBeitragauchnichtangezeigt.
Nachrichten
47
Termine
DieKalender-ErweiterungermöglichtdieVerwaltungvonTerminenundderenDarstellungalsKalenderoderEventlisteimFrontend.ImGegensatzzuArtikeln,diemiteinerbestimmtenSeiteassoziiertsind,werdenTermineinKalendernorganisiertundkönnensoeinfachgruppiert,kategorisiertoderalsRSS-bzw.Atom-Feedexportiertwerden.
Kalender
KalenderwerdenzurGruppierungund/oderKategorisierungvonTerminenverwendet.JederKalenderkannsichaufeinebestimmteSpracheodereinbestimmtesThemabeziehen.
Frontend-Module
MitdenFrontend-ModulenderKalender-ErweiterungkönnenTerminebzw.EventsaufderWebseitedargestelltwerden.ModulekönnenimBackendunter"Layout"->"Module"konfiguriertwerdenundmüssenanschließendineinemArtikeloderSeitenlayouteingebundenwerden.
Modul CSS-Klasse Beschreibung
Kalender mod_calendar FügtderSeiteeinenKalenderhinzu.
Eventleser mod_eventreader StellteineneinzelnenEventdar.
Eventliste mod_eventlist ListetalleEventseinesbestimmtenZeitraumsauf.
Eventliste-Menü mod_eventmenu ErzeugteinMenüzurNavigationderEventliste.
Permalinks
JederTerminhateineeindeutigeURL(Permalink),diezurReferenzierungdesEventsverwendetwerdenkann:
http://www.example.com/event-reader/events/final-exams.html
DieobengenannteURLfordertdenEvent"final-exams"aufderSeite"events"an.Denkensiedaran,dassContaoeinSeiten-basiertesCMSist;gäbeesdieSeite"events"nichtoderenthieltesienichtdasModulEventleser,würdederBeitragauchnichtangezeigt.
Termine
48
RSS-/Atom-Feed
DieseFunktionistfürNewsArchiveundKalenderverfügbar.HiereinBeispielderKalender-Liste.
Einstellungen
EinodermehrereKalenderkönnengruppiertundalsRSS-bzw.Atom-Feedausgegebenwerden.GenaugleichfunktioniertesbeiNewsArchiven.Hierkannauchgewähltwerden,obnurderTeaseroderderkompletteArtikeldesEventsbzw.derNewsausgegebenwerdensoll.
RSS-/Atom-Feed
49
XMLDateien
DieXMLDateienwerdenautomatischgeneriertundimshareVerzeichnisIhrerContaoInstallationabgelegt.IndiesemBeispiel:share/events.xml.
RSS-/Atom-Feed
50
Newsletter
DieNewsletter-ErweiterungermöglichtdasVersendenvonNewslettern,dieVerwaltungvonAbonnementssowiedieoptionaleAusgabeversendeterNachrichtenimFrontend.ImGegensatzzuArtikeln,diemiteinerbestimmtenSeiteassoziiertsind,werdenNewsletterinVerteilernorganisiertundkönnensoeinfachgruppiertoderkategorisiertwerden.
Abonnenten
Newsletter-AbonnementswerdennormalerweiseautomatischüberdieentsprechendenFrontend-Moduleverwaltet,ohnedassSieindenProzesseingreifenmüssten.AusdatenschutzrechtlichenGründenmussdasAbonniereneinesVerteilersmittelsDoubleOpt-InerfolgenundeswirdnurdieE-Mail-AdressedesAbonnementsgespeichert.
FallsSiebereitseinenVerteilerhaben,könnenSiedieAbonnentenauseinerCSV-DateiinContaoimportieren.
Newsletterpersonalisieren
InsofernSieNewsletteranregistrierteMitgliederverschicken,könnenSiediesemitHilfedersogenannten"SimpleTokens"personalisieren.SimpleTokensfunktionierenähnlichwieInsert-TagsundkönnensowohlimHTML-alsauchimText-InhalteinesNewslettersverwendetwerden.
Sehrgeehrte(r)##firstname####lastname##,
bitteprüfenundaktualisierenSieIhreDaten:
Anschrift:##street##
PLZ/Ort:##postal####city##
Telefon:##phone##
E-Mail:##email##
IhrAdministrator
ImGegensatzzuInsert-TagskönnenSiemitSimpleTokensabernichtnuraufdieDatenderMitgliedertabelletl_memberzugreifen,sondernaucheinfacheIf-Else-AbfragenrealisierenundsobeispielsweisedieAnredepräzisieren.
{ifgender=="male"}
SehrgeehrterHerr##lastname##,
Newsletter
51
{elseifgender=="female"}
SehrgeehrteFrau##lastname##,
{else}
SehrgeehrteDamenundHerren,
{endif}
[InhaltdesNewsletters]
{ifphone==""}
BitteaktualisierenSieIhreDatenundgebenSieIhreTelefonnummeran.
{endif}
IhrAdministrator
Newsletterversenden
SpeziellaufShared-Hosting-ServerngibtesnormalerweiseLimitsfürdiemaximaleSkriptlaufzeitund/oderdieAnzahlderE-Mails,dieproMinuteversendetwerdendürfen.Contaoversucht,diesebeidenProblemezuumgehen,indemderVersendungsprozessinmehrerenTeilschrittenmiteinerbestimmtenWartezeitdazwischenerfolgtundsodieAnzahlderE-MailsproMinutekontrolliertwerdenkann.
Frontend-Module
MitdenFrontend-ModulenderNewsletter-ErweiterungkönnenAbonnementsverwaltetundoptionalNewsletterangezeigtwerden.ModulekönnenimBackendunter"Layout"->"Module"konfiguriertwerdenundmüssenanschließendineinemArtikeloderSeitenlayouteingebundenwerden.
Modul CSS-Klasse Beschreibung
Newsletter
52
Abonnieren mod_subscribe ErzeugteinFormularzumAbonnierenvonVerteilern.
Kündigen mod_unsubscribe ErzeugteinFormularzumKündigenvonAbonnements.
Newsletterliste mod_nl_list FügtderSeiteeineNewsletterlistehinzu.
Newsletterleser mod_nl_reader StellteineneinzelnenNewsletterdar.
Permalinks
JederNewsletterhateineeindeutigeURL(Permalink),diezurReferenzierungderNachrichtverwendetwerdenkann:
http://www.example.com/newsletters/items/james-wilson-returns.html
DieobigeURLfordertdenNewsletter"james-wilson-returns"aufderSeite"newsletters"an.Denkensiedaran,dassContaoeinSeiten-basiertesCMSist;gäbeesdieSeite"newsletters"nichtoderenthieltesienichtdasModulNewsletterleser,würdederBeitragauchnichtangezeigt.
Newsletter
53
Formulare
MitdemFormulargeneratorlassensichinteraktiveFormulareerstellen,dieperE-MailverschicktoderinderDatenbankgespeichertwerdenkönnen.HochgeladeneDateienwerdenalsAnhangversendetoderaufdemServergespeichert.FolgendeDatenformatewerdenunterstützt:
Format Beschreibung
Rohdaten DieFormulardatenwerdenalseinfacheTextnachrichtmiteinerZeileproFeldversendet.
XMLfile DieFormulardatenwerdenderE-MailalsXML-Dateiangefügt.
CSVfile DieFormulardatenwerdenderE-MailalsCSV-Dateiangefügt.
E-mail IgnoriertalleFelderaußer"email","subject","message"und"cc"(CarbonCopy)undverschicktdieDatenalswärensiemiteinemE-Mail-Programmversendetworden.Datei-Uploadssinderlaubt.
Formularfelder
ÄhnlichwiebeiInhaltselementen,enthältContaoeineigenesElementfürjedesFormularfeld,wiez.B.Textfelder,Auswahlmenüs,Dateiuploads,versteckteFelderoderSchaltflächen.FolgendeFormularfeldersindimContao-Coreenthalten:
Feld CSS-Klasse Beschreibung
Überschrift headline EinindividuellesFeldzumEinfügeneinerBereichsüberschrift.
Erklärung explanation EinindividuellesFeldzumEinfügeneinesErklärungstexts.
HTML - EinindividuellesFeldzumEinfügenvonHTML-Code.
Fieldset - EinContainerfürFormularfeldermiteineroptionalenLegende.
Textfeld text EineinzeiligesEingabefeldfüreinenkurzenodermittellangenText.
Passwortfeld password EineinzeiligesEingabefeldfüreinPasswort.ContaofügtautomatischeinBestätigungsfeldhinzu.
Textarea textarea EinmehrzeiligesEingabefeldfüreinenmittellangenoderlangenText.
Select-Menü select/multiselect Einein-odermehrzeiligesDrop-Down-Menü.
Radio-Button-Menü radio EineListemehrererOptionen,vondeneneineausgewähltwerdenkann.
Checkbox-Menü checkbox EineListemehrererOptionen,vondenenbeliebigvieleausgewähltwerden
können.
Datei-Upload upload EineinzeiligesEingabefeldzurÜbertragunglokalerDateienaufdenServer.
VerstecktesFeld - EineinzeiligesEingabefeld,dasimFormularnichtsichtbarist.
Sicherheitsfrage captcha EineeinfacheRechenaufgabezurPrüfungobdasFormularvoneinemMenschenabgesendetwurde(CAPTCHA).
Absendefeld submit EineAbsende-SchaltflächezurVersendungdesFormulars.
Frontend-Modul
MitdemFrontend-ModuledesFormulargeneratorskönnenFormulareangezeigtwerden.ModulekönnenimBackendunter"Layout"->"Module"konfiguriertwerdenundmüssenanschließendineinemArtikeloderSeitenlayouteingebundenwerden.
Formulare
54
Modul CSS-Klasse Beschreibung
Formular mod_form FügteinFormularaufderSeiteein.
Inhaltselement
DasInhaltselementbietetdieselbenFunktionenwiedasModul,lässtsichaberdirektimArtikeleinbindenundkonfigurieren.DerFormulargeneratorstellteinInhaltselementzurVerfügung:
Inhaltselement CSS-Klasse Beschreibung
Formular ce_form FügteinFormularein.
Formulare
55
Kommentare
KommentaresindeineweitereFormvonInhalt,welcherüberdasBackendverwaltetwerdenkann.KommentarekönneninKalendernundNews-Archivenaktiviertwerden.
Frontend-Modul
MitdemFrontend-ModulederKommentar-ErweiterungkönnenKommentareein-undausgegebenwerden.ModulekönnenimBackendunter"Layout"->"Module"konfiguriertwerdenundmüssenanschließendineinemArtikeloderSeitenlayouteingebundenwerden.
Modul CSS-Klasse Beschreibung
Kommentare mod_comments BietetKommentareodereineGästebuch-Funktion.
Inhaltselement
DasInhaltselementbietetdieselbenFunktionenwiedasModul,lässtsichaberdirektimArtikeleinbindenundkonfigurieren.DieKommentar-ErweiterungstellteinInhaltselementzurVerfügung:
Inhaltselement CSS-Klasse Beschreibung
Kommentare ce_comments FügtdasKommentar-FormularaufderSeiteein.
BBCode
DerBesucherkannausserdemdieBBCodeSpracheverwenden.ContaoverstehtfolgendeTags:
BBCode Beschreibung
[b][/b] DerenthalteneTextwirdfettdargestellt.
[i][/i] DerenthalteneTextwirdkursivdargestellt.
[u][/u] DerenthalteneTextwirdunterstrichen.
[img][/img] ErsetzendasTagdurcheinBild(Bild-PfadzwischendenTags).
[code][/code] DerenthalteneTextwirdineinerSchriftmitfesterLaufweitedargestellt.
[color=#ff0000][/color] DerenthalteneTextwirdinderentsprechendenFarbedargestellt.
[quote][/quote] StelltdenentsprechendenTextalsZitatdar.
[quote=John]Hallo[/quote] StelltdenentsprechendenTextalsZitateinesAutorsdar.
[url][/url] DieenthalteneURLwirdalsLinkdargestellt.
[url=http://][/url] DerenthalteneTextwirdmitderentsprechendenURLverlinkt.
[email][/email] DieenthalteneE-Mail-AdressewirdalsLinkdargestellt.
[[email protected]][/email] DerenthalteneTextwirdmitderE-Mail-Adresseverknüpft.
Kommentare
56
Kommentare
57
Templates
EinTemplateenthältmeistHTMLundPHPcode.EswirdzurAusgabevonInhalteneinesModulsoderInhaltelementsetc.verwendet.BeispielsweisegibtdasTemplatenews_full.html5einevollständigeNachrichtaus,währenddasTemplatenews_short.html5nureinenTeildavonanzeigt.
TemplatesbefindensichdirektindendazugehörenModulen.Dasnews_full.html5Templatebefindetsichbeispielsweiseinsystem/modules/news/templates/news.
FallsdieseDateidirektindiesemOrdnerbearbeitetwird,gehendieÄnderungenbeieinemnächstenUpdatevonContaoverloren.Umdieszuvermeiden,TemplateskönnenimBackendbearbeitetwerden.DabeiwirddieDateikopiertumÄnderungenwährendeinemUpdatenichtzuverlieren.
UnterdemMenüpunktTemplateskönnendieDateienbearbeitetundinOrdnernabgelegtwerden.OrdnermüssenwieunterTheme-BestandteilebeschriebeneinemThemezugewiesensein.
EinTemplategehörtzueinemModul,einemInhaltselement,einemFormularoderanderenKomponenten.SiewerdenzureinfacherenErkennungdeshalbmeistmiteinemPräfixversehen.Beispielsweisedeutetj_aufjQueryodernl_aufeinNewsletter-Template.
Template-Vererbung
Template-Vererbungerlaubt,einTemplatebasierendaufeinemanderenTemplateaufzubauen.Diesbedeutet,einTemplate(Kind)fügtInhaltineinzweitesTemplate(Eltern)ein.
DamitInhalteineinemEltern-Templateangepasstwerdenkönnen,musssichderInhaltinnerhalbeinesblock-Elementsbefinden.
EinBlockistwiefolgtaufgebaut:
<?php$this->block('name_des_blocks');?>
//Block-Inhalt
<?php$this->endblock();?>
DasfolgendeBeispielzeigteinTemplatebeiwelchemderhead-TagalseigenerBlockdefiniertwurde.
Templatefe_page.html5:
<!DOCTYPEhtml>
<html>
<head>
<?php$this->block('head');?>
<title><?phpecho$this->title;?></title>
<linkrel="stylesheet"href="style.css">
<?php$this->endblock();?>
</head>
<body>
...
</body>
Templates
58
</html>
ImKindtemplatefe_custom.htmlwirdzusätzlichzumbisherigenInhaltnocheinCSSstylesheetindasübergeordneteTemplateeingefügt.
Templatefe_custom.html5:
<?php$this->extend('fe_page');?>
<?php$this->block('head');?>
<?php$this->parent();?>
<linkrel="stylesheet"href="style_2.css">
<?php$this->endblock();?>
DieFunktionextend()definiertdasübergeordneteTemplate.DieFunktionparent()übernimmtdenInhaltdesübergeordnetenTemplate.
DieAusgabedesfe_custom.html5Templatesiehtdanachsoaus:
<!DOCTYPEhtml>
<html>
<head>
<title>Atitle</title>
<linkrel="stylesheet"href="style.css">
<linkrel="stylesheet"href="style_2.css">
</head>
<body>
...
</body>
</html>
Templatesmischen
MitHilfederinsert()-FunktionkanneinTemplateineinanderesTemplateeinfügtwerden.
<?php$this->insert('template_name');?>
Dieinsert()-FunktionakzeptiertausserdemauchdieÜbergabevonzusätzlichenVariablenalszweitenParameter.
<?php$this->insert('template_name',array('key'=>'value'));?>
//ÜbergibtalleVariablenausdemaktuellenTemplate
<?php$this->insert('template_name',$this->getData());?>
ImfolgendenBeispielfügenwirdenInhaltdesTemplatesimage-copyright.html5indasTemplateimage.html5ein.
DasTemplateimage.html5enthältlediglicheinenimg-Tagunddieinsert()-Funktion.
Templateimage.html5:
<imgsrc="<?phpecho$this->src;?>"alt="<?phpecho$this->alt;?>"/>
<?php$this->insert('image-copyright',array('name'=>'DonnaEvans','license'=>'CreativeCommons'));?>
Dasimage-copyright.html5Templateenthälteinensmall-Tagwelchernachdemimg-Tagimimage.html5Templateeingefügtwerdensoll.DieVariabelnnameundlicensewerdendurchdieParameterderinsert()-Funktionersetzt.
Templateimage-copyright.html5:
Templates
59
<small>Fotografiertvon<?phpecho$this->name;?>,lizenziertals<?phpecho$this->license;?></small>
DieAusgabedesimage.html5siehtdanachfolgendermassenaus:
<imgsrc="files/images/house.jpg"alt="EinkleinesHausinEngland"/>
<small>FotografiertvonDonnaEvans,lizenziertalsCreativeCommons</small>
Templates
60
Markdown
MarkdownisteineeinfacheAuszeichnungssprache,dieeserlaubt,TextmittelseinfachemSyntaxzuformatieren.MarkdownhatdenVorteil,einfachlesbarzuseinundautomatischinHTMLkonvertiertwerdenzukönnen.
NachfolgendeinigeBeispielefürdieMarkdown-Syntax:
Syntax
Paragrafen
AbsätzewerdendurcheineLeerzeileerstellt:
ErsterAbsatz
ZweiterAbsatz
Überschriften
EssindsechsEbenenfürÜberschriftenmöglich:
#Überschrift1
##Überschrift2
###Überschrift3
####Überschrift4
#####Überschrift5
######Überschrift6
Wichtig
UmwichtigenTextzumarkieren:
**strong**
__strong__
WirdzufolgendemHTML-Codekonvertiert:<strong>strong</strong>
Hervorhebung
UmTexthervorzuheben:
*emphasize*
_emphasize_
WirdzufolgendemHTML-Codekonvertiert:<em>emphasize</em>
Code
UmeinenTextalsComputercodezumarkieren:
`monospacedfont`
Markdown
61
WirdzufolgendemHTML-Codekonvertiert:<code>monospacedfont</code>
Code-Blöcke
UmeinenganzenAbsatzinCodezukonvertieren,denTextmitvierLeerzeicheneinrücken.
SchriftmitfesterLaufweite...
...übermehrereZeilen
Zitat-Block
ZitatblöckekönnendurcheinerechtespitzeKlammeramBeginnderZeileerstelltwerden.
>DiesisteinZitat.
Zeilenumbruch
DurchzweiodermehrLeerzeichenamEndeeinerZeilewirdeinUmbrucherzeugt:
ContaoisteinbarrierefreiesOpenSource
contentmanagementsystem.
Links
EsgibtzweiMöglichkeitenfürLinks:inlineundalsReferenz.
EinInline-Linksiehtwiefolgtaus:
[Contao](https://contao.org/de)
oderoptionalauchmiteinemTitel:
[Contao](https://contao.org/de"OffizielleContao-Webseite")
EinReferenz-Linksiehtwiefolgtaus:
[OffizielleContao-Webseite][1]
[1]:https://contao.org/de
DieReferenzkannanbeliebigerStelleimDokumentplatziertwerden.
Bilder
WiefürLinksgibtesauchfürBilderzweiSyntax-Möglichkeiten.
EinInline-Bildsiehtwiefolgtaus:
![Alttext](/pfad/zum/bild.jpg"OptionalerTitel")
EinBildimReferenz-StilwirddurchfolgendeSyntaxerreicht:
![AlternativerText][id]
Markdown
62
[id]:/pfad/zum/bild.jpg"OptionalerTitel"
DieReferenzkannanbeliebigerStelleimDokumentplatziertwerden.
Aufzählungslisten
UnsortierteListen
UnsortierteListenverwendenSternzeichenoderTrennstriche:
*Listeneintrag
*Listeneintrag
*VerschachtelterListeneintrag
*VerschachtelterListeneintrag
*Listeneintrag
-Listeneintrag
-Listeneintrag
-Listeneintrag
SortierteListen
SortierteListenverwendenZahlen:
1.Listeneintrag
2.Listeneintrag
3.Listeneintrag
ErweiterterSyntax
NichtalleHTML-ElementwiebeispielsweiseTabellenoderFußnotenkönnenmitnormalemMarkdownbeschriebenwerden.AusdiesemGrundgibteseinProjektfür"MarkdownExtra"umdieSyntaxzuerweitern.
NachfolgendeinigeBeispielefürdieerweiterteSyntax:
Tabellen
EineTabellekannwiefolgterstelltwerden:
ErsteKopfzeile|ZweiteKopfzeile|DritteKopfzeile
---------------|----------------|----------------
Zelleninhalt|Zelleninhalt|Zelleninhalt
Zelleninhalt|Zelleninhalt|Zelleninhalt
DieTextausrichtungkanndurchDoppelpunktegesteuertwerden:
ErsteKopfzeile|ZweiteKopfzeile|DritteKopfzeile
:--------------|:--------------:|---------------:
Linksbündig|Zentriert|Rechtsbündig
Linksbündig|Zentriert|Rechtsbündig
Fußnoten
Fußnotenwerdenwiefolgterstellt:
DiesisteinTextmitFußnote.[^1]
Markdown
63
[^1]:UnddiesistdieFußnote.
DieFußnoten-DefinitionkannanbeliebigerStelleimDokumentplatziertwerden.
WeitereInformationen
FüreinekompletteDokumentationzuMarkdown,besuchenSiedieoffizielleWebseiteunterfolgendemLink.
FüreinekompletteDokumentationzuMarkdownExtra,besuchenSiedieoffizielleWebseiteunterfolgendemLink.
Markdown
64
Insert-Tags
Insert-TagssindPlatzhalter,diebeiderAusgabeeinerSeitedurchbestimmteInhalteersetztwerden.SokannbeispielsweisedasaktuelleDatumangezeigtodereinBenutzermitseinemNamenangesprochenwerden.Insert-TagskönnenfastüberallinContaoverwendetwerden.
Link-Elemente
MitdenfolgendenInsert-TagskönnenSeitenundArtikelanhandihrerIDoderihresAliasverlinktwerden.
Insert-Tag Beschreibung
{{link::*}}DiesesTagwirdmiteinemLinkzueinerinternenSeiteersetzt(ersetzenSie*mitderIDoderdemAlias).
{{link::back}}
DiesesTagwirdmiteinemLinkzurderzuletztbesuchteSeiteersetzt.Kannauchals{{link_open::back}},{{link_url::back}}und{{link_title::back}}verwendetwerden.
{{link::login}}DiesesTagwirdmiteinemLinkzurAnmeldeseitedesaktuellenFrontend-Benutzers(fallsvorhanden)ersetzt.
{{link_open::*}}WirdmitdemöffnendenTageinesLinkszueinerinternenSeiteersetzt:{{link_open::12}}Hierklicken{{link_close}}.
{{link_url::*}}DiesesTagwirdmitderURLeinerinternenSeiteersetzt:<ahref="{{link_url::12}}">Hierklicken</a>.
{{link_title::*}}DiesesTagwirdmitdemTiteleinerinternenSeiteersetzt:<atitle="{{link_title::12}}">Hierklicken</a>.
{{link_name::*}} DiesesTagwirdmitdemNameneinerinternenSeiteersetzt:<a>{{link_name::12}}</a>.
{{link_close}}WirdmitdemschließendenTageinesLinkszueinerinternenSeiteersetzt:{{link_open::12}}Hierklicken{{link_close}}.
{{article::*}}DiesesTagwirdmiteinemLinkzueinemArtikelersetzt(ersetzenSie*mitderIDoderdemAlias).
{{article_open::*}}WirdmitdemöffnendenTageinesLinkszueinemArtikelersetzt:{{article_open::12}}Hierklicken{{link_close}}.
{{article_url::*}}DiesesTagwirdmitderURLeinesArtikelsersetzt:<ahref="{{article_url::12}}">Hierklicken</a>.
{{article_title::*}}DiesesTagwirdmitdemTiteleinesArtikelsersetzt:<atitle="{{article_title::12}}">Hierklicken</a>.
{{news::*}}DiesesTagwirdmiteinemLinkzueinerNachrichtersetzt(ersetzenSie*mitderIDoderdemAlias).
{{news_open::*}}WirdmitdemöffnendenTageinesLinkszueinerNachrichtersetzt:{{news_open::12}}Hierklicken{{link_close}}.
{{news_url::*}}DiesesTagwirdmitderURLeinerNachrichtersetzt:<ahref="{{news_url::12}}">Hierklicken</a>.
{{news_title::*}}
DiesesTagwirdmitdemTiteleinerNachrichtersetzt:<atitle="{{news_title::12}}">Hierklicken</a>.
{{news_feed::*}} DieserTagwirdmitderURLzueinemNews-Feedersetzen(ersetzenSie*mitderID).
{{event::*}}DiesesTagwirdmiteinemLinkzueinemEventersetzt(ersetzenSie*mitderIDoderdemAlias).
Insert-Tags
65
{{event_open::*}} WirdmitdemöffnendenTageinesLinkszueinemEventersetzt:{{event_open::12}}Hierklicken{{link_close}}.
{{event_url::*}}DiesesTagwirdmitderURLeinesEventsersetzt:<ahref="{{event_url::12}}">Hierklicken</a>.
{{event_title::*}}DiesesTagwirdmitdemTiteleinesEventsersetzt:<atitle="{{event_title::12}}">Hierklicken</a>.
{{calendar_feed::*}} DieserTagwirdmitderURLzueinemKalender-Feedersetzen(ersetzenSie*mitderID).
{{faq::*}}DiesesTagwirdmiteinemLinkzueinerhäufiggestelltenFrageersetzt(ersetzenSie*mitderIDoderdemAlias).
{{faq_open::*}}WirdmitdemöffnendenTageinesLinkszueinerFrageersetzt:{{faq_open::12}}Hierklicken{{link_close}}.
{{faq_url::*}}DiesesTagwirdmitderURLeinerFrageersetzt:<ahref="{{faq_url::12}}">Hierklicken</a>.
{{faq_title::*}}DiesesTagwirdmitdemTiteleinerFrageersetzt:<atitle="{{faq_title::12}}">Hierklicken</a>.
Mitgliedereigenschaften
MitdenfolgendenInsert-TagskönnenEigenschaftendesangemeldetenMitglieds(Frontend-Benutzer)ausgebebenwerden.
Insert-Tag Beschreibung
{{user::*}}DiesesTagwirdmitdemInhalteinesFeldesvon`tl_member`desangemeldetenMitgliedsersetzt(ersetzenSie*mitdemFeldnamen).
{{user::firstname}} DiesesTagwirdmitdemVornamendesangemeldetenMitgliedsersetzt.
{{user::lastname}} DiesesTagwirdmitdemNachnamendesangemeldetenMitgliedsersetzt.
{{user::company}} DiesesTagwirdmitdemFirmennamendesangemeldetenMitgliedsersetzt.
{{user::phone}} DiesesTagwirdmitderTelefonnummerdesangemeldetenMitgliedsersetzt.
{{user::mobile}} DiesesTagwirdmitderHandynummerdesangemeldetenMitgliedsersetzt.
{{user::fax}} DiesesTagwirdmitderFaxnummerdesangemeldetenMitgliedsersetzt.
{{user::email}} DiesesTagwirdmitderE-Mail-AdressedesangemeldetenMitgliedsersetzt.
{{user::website}} DiesesTagwirdmitderInternetadressedesangemeldetenMitgliedsersetzt.
{{user::street}} DiesesTagwirdmitdemStaßennamendesangemeldetenMitgliedsersetzt.
{{user::postal}} DiesesTagwirdmitderPostleitzahldesangemeldetenMitgliedsersetzt.
{{user::city}} DiesesTagwirdmitderStadtdesangemeldetenMitgliedsersetzt.
{{user::country}} DiesesTagwirdmitdemLanddesangemeldetenMitgliedsersetzt.
{{user::username}} DiesesTagwirdmitdemBenutzernamendesangemeldetenMitgliedsersetzt.
Seiteneigenschaften
MitdenfolgendenInsert-TagskönnenSeiteneigenschaftenwiez.B.derSeitennameausgegebenwerden.
Insert-Tag Beschreibung
{{page::*}}DiesesTagwirdmitdemInhalteinesFeldesvon`tl_page`deraktuellenSeiteersetzt(ersetzenSie*mitdemFeldnamen).
Insert-Tags
66
{{page::id}} DiesesTagwirdmitderIDderaktuellenSeiteersetzt.
{{page::alias}} DiesesTagwirdmitdemAliasderaktuellenSeiteersetzt.
{{page::title}} DiesesTagwirdmitdemNamenderaktuellenSeiteersetzt.
{{page::pageTitle}} DiesesTagwirdmitdemTitelderaktuellenSeiteersetzt.
{{page::language}} DiesesTagwirdmitderSprachederaktuellenSeiteersetzt.
{{page::parentAlias}} DiesesTagwirdmitdemAliasderübergeordnetenSeiteersetzt.
{{page::parentTitle}} DiesesTagwirdmitdemNamenderübergeordnetenSeiteersetzt.
{{page::parentPageTitle}} DiesesTagwirdmitdemTitelderübergeordnetenSeiteersetzt.
{{page::mainAlias}} DiesesTagwirdmitdemAliasderübergeordnetenHauptseiteersetzt.
{{page::mainTitle}} DiesesTagwirdmitdemNamenderübergeordnetenHauptseiteersetzt.
{{page::mainPageTitle}} DiesesTagwirdmitdemTitelderübergeordnetenHauptseiteersetzt.
{{page::rootTitle}} DiesesTagwirdmitdemNamenderWebseiteersetzt.
{{page::rootPageTitle}} DiesesTagwirdmitdemTitelderWebseiteersetzt.
Umgebungsvariablen
MitdenfolgendenInsert-TagskönnenUmgebungsvariablenwiez.B.derSeitennameoderderRequest-Stringausgegebenwerden.
Insert-Tag Beschreibung
{{env::host}} DiesesTagwirdmitdemaktuellenHostnamenersetzt.
{{env::url}} DiesesTagwirdmitdemHostnamenunddemProtokollersetzt.
{{env::path}} DiesesTagwirdmitderaktuellenBasis-URLsamtPfadzumContao-Verzeichnisersetzt.
{{env::request}} DiesesTagwirdmitdemaktuellenRequest-Stringersetzt.
{{env::ip}} DiesesTagwirdmitderIP-AdressedesaktuellenBesuchersersetzt.
{{env::referer}} DiesesTagwirdmitderURLderzuletztbesuchtenSeiteersetzt.
{{env::files_url}} DiesesTagwirdmitderstatischenURLdesUploadverzeichnisersetzt.
{{env::assets_url}} DiesesTagwirdmitderstatischenURLdesAssets-Verzeichnisersetzt.
Include-Elemente
MitdenfolgendenInsert-TagskönnenRessourcenwiez.B.Artikel,ModuleoderDateienausdem"templates"-Verzeichniseingebundenwerden.
Insert-Tag Beschreibung
{{insert_article::*}}DiesesTagwirdmitdemreferenziertenArtikelersetzt(ersetzenSie*mitderIDoderdemAlias).
{{insert_content::*}}DiesesTagwirdmitdemreferenziertenInhaltselementersetzt(ersetzenSie*mitderIDdesElements).
{{insert_module::*}}DiesesTagwirdmitdemreferenziertenModulersetzt(ersetzenSie*mitderIDdesModuls).
{{insert_form::*}}DiesesTagwirdmitdemreferenziertenFormularersetzt(ersetzenSie*mitderIDdesFormulars).
Insert-Tags
67
{{article_teaser::*}}DiesesTagwirdmitdemTeasereinesArtikelsersetzt(ersetzenSie*mitderIDdesArtikels).
{{news_teaser::*}}DiesesTagwirdmitdemTeasereinerNachrichtersetzt(ersetzenSie*mitderIDderNachricht).
{{event_teaser::*}} DiesesTagwirdmitdemTeasereinesEventsersetzt(ersetzenSie*mitderIDdesEvents).
{{file::*}}
DiesesTagwirdmitdemInhalteiner.php-,.tpl-,.xhtml-oder.html5-Dateiausdem"templates"-Verzeichnisersetzt(ersetzenSie*mitdemNamen).BeiBedarfkönnenSieArgumenteübergeben:{{file::file.php?arg1=val}}.MittelsUUIDkannaußerdemderPfadeinerDateiausderDatenbankabgefragtwerden:{{file::6939a448-9b30-11e4-bcba-079af1e9baea}}.
Verschiedenes
MitdenfolgendenInsert-TagskönnenSieverschiedeneAufgabenerledigenundz.B.dasaktuelleDatumodereinLightbox-Bildeinfügen.
Insert-Tag Beschreibung
{{date}} DiesesTagwirdmitdemaktuellenDatumgemäßdesglobalenDatumsformatsersetzt.
{{date::*}} DiesesTagwirdmitdemaktuellenDatumgemäßeinesindividuellenDatumsformatsersetzt.
{{last_update}}DiesesTagwirdmitdemDatumderletztenAktualisierunggemäßdesglobalenDatumsformatsersetzt.
{{last_update::*}}DiesesTagwirdmitDatumderletztenAktualisierunggemäßeinesindividuellenDatumsformatsersetzt.
{{email::*}} DiesesTagwirdmiteinemverschlüsseltenLinkzueinerE-Mail-Adresseersetzt.
{{email_open::*}}DiesesTagwirdmiteinemverschlüsseltenLinkzueinerE-Mail-Adresseersetzt.Allerdingswirddasschließende</a>nichtangefügt.
{{email_url::*}} DiesesTagwirdnurdurchdieverschlüsselteE-Mail-Adresseersetzt.
{{post::*}}MitdiesemTagkanneineangegebenePost-Variableausgelesenundangezeigtwerden.Kannz.B.genutztwerden,umaufeinzelneFeldereinesgesendetenFormularszuzugreifen.
{{lang::*}}
MitdiesemTagkönnenfremdsprachigeWörterineinemTextmarkiertwerden:{{lang::fr}}Aurevoir{{lang}}.Dieswirdersetztmit<spanlang="fr">Aurevoir</span>undfügtxml:lang="fr"hinzufallsdasSeitenformatXHTMList.
{{abbr::*}}AbkürzungenineinemTextmarkieren:{{abbr::WorldWideWeb}}WWW{{abbr}}.Dieswirdersetztmit<abbrtitle="WorldWideWeb">WWW</abbr>.
{{acronym::*}}
AkronymeineinemTextmarkieren:{{acronym::MultipurposeInternetMailExtensions}}MIME{{acronym}}.Dieswirdersetztmit<acronymtitle="MultipurposeInternetMailExtensions">MIME</acronym>.
{{ua::*}}EigenschaftendesBrowsers(UserAgent)ausgeben:{{ua::browser}}.Dieswirdbeispielsweiseersetztmit"chrome".
{{iflng::*}}
DiesesTagwirdkomplettentfernt,wenndieSprachederSeitenichtmitderTag-Spracheübereinstimmt.SiekönnensosprachspezifischeBezeichnungenerstellen:{{iflng::en}}Yourname{{iflng::de}}IhrName{{iflng}}
{{ifnlng::*}}
DiesesTagwirdkomplettentfernt,wenndieSprachederSeitemitderTag-Spracheübereinstimmt.SiekönnensosprachspezifischeBezeichnungenerstellen:{{ifnlng::de}}Yourname{{ifnlng}}{{iflng::de}}IhrName{{iflng}}
{{image::*}}
DiesesTagwirdmitderVorschauansichteinesBildesersetzt(wobei*eineDatenbankID,eineUUIDodereinPfadausdemDateisystemseinkann):{{image::58ca4a90-2d30-11e4-8c21-0800200c9a66?width=200&height=150}}.width:BreitedesVorschaubildes,height:HöhedesVorschaubildes,
Insert-Tags
68
alt:AlternativerText,class:CSS-Klasse,rel:rel-Attribut(z.B."lightbox"),mode:Modus("proportional","crop"oder"box").
{{picture::*}}
DiesesTagwirdmiteinem<picture>-ElementundverschiedenenBildgrössenersetzt,abhängigvonderverwendetenBildgrößen-Konfiguration(wobei*eineDatenbankID,eineUUIDodereinPfadausdemDateisystemseinkann):{{picture::58ca4a90-2d30-11e4-8c21-0800200c9a66?size=1&template=picture_default}}.width:BreitedesVorschaubildes,height:HöhedesVorschaubildes,alt:AlternativerText,class:CSS-Klasse,rel:rel-Attribut(z.B."lightbox"),mode:Modus("proportional","crop"oder"box"),size:IDeinerBildgrösse(sieheThemes->Bildgrößen),template:ZuverwendendesTemplate(picture_default).
{{label::*}}
DiesesTagwirdmiteinerÜbersetzungersetzt.DerersteParameteristderNameeinerSprachdateiodereinemAkronym(z.B.CNTfürLänderoderLNGfürSprachen).Beispiele:{{label::CNT:au}}wirdzu"Australien"und{{label::tl_article:title:0}}wirdzu"Titel".BeachtenSie,dassinnerhalbdesPfadszurBezeichnungnureinfacheDoppelpunkteverwendetwerden.
{{version}} DiesesTagwirdmitderverwendetenContao-Version(z.B.3.2.7)ersetzt.
{{request_token}} DiesesTagwirdmitdemzuraktuellenSessiongehörendenRequest-Tokenersetzt.
{{toggle_view}}DiesesTagwirdmiteinemLinkersetzt,welcherzwischenMobile-undDesktop-Layoutwechselt.
{{br}} DiesesTagwirdmiteinemHTML<br>Element(Zeilenumbruch)ersetzt.
Insert-Tag-Flags
MittelsFlagskönnenSieInsert-Tagsweiterverarbeiten.DerWertkanndamitz.B.einerPHP-Funktionübergebenwerden.BeliebigvieleFlagskönnenmiteinanderkombiniertwerden:
{{ua::browser|uncached}}
{{page::title|decodeEntities|strtoupper}}
VerfügbareFlags:
Flag Beschreibung WeitereInformationen
uncached ErhältdasTagbeimSchreibenderCache-Datei.
refresh ErstelltdieAusgabebeijederAnfrageneu.
addslashes StelltbestimmtenZeicheneinesStringsein"\"voran. PHP-Funktion
stripslashes Entferntdas"\"vorbestimmtenZeicheneinesStrings. PHP-Funktion
standardizeStandardisiertdieAusgabe(z.B.dasAliasbeiderSeitenstruktur).
ampersand WandeltUnd-ZeicheninEntitiesum.
specialchars WandeltSonderzeicheninEntitiesum.
nl2brFügtvorallenZeilenumbrücheneinesStringsHTML-Zeilenumbrücheein. PHP-Funktion
nl2br_pre ErhältdieZeilenumbrücheinnerhalbvon<pre>-Tags.
strtolower WandeltdieAusgabeinKleinbuchstabenum. PHP-Funktion
Insert-Tags
69
utf8_strtolower Unicode-bewussteUmwandlunginKleinbuchstaben
strtoupper WandeltdieAusgabeinGroßbuchstabenum. PHP-Funktion
utf8_strtoupper Unicode-bewussteUmwandlunginGroßbuchstaben
ucfirst WandeltdasersteZeichenineinenGroßbuchstabenum. PHP-Funktion
lcfirst WandeltdasersteZeichenineinenKleinbuchstabenum. PHP-Funktion
ucwordsWandeltdasersteZeichenjedesWortesineinenGroßbuchstabenum. PHP-Funktion
trim EntferntLeerzeichenvomAnfangundEndederAusgabe. PHP-Funktion
rtrim EntferntLeerzeichenvomAnfangderAusgabe. PHP-Funktion
ltrim EntferntLeerzeichenvomEndederAusgabe. PHP-Funktion
utf8_romanize RomanisiertdieAusgabe.
strrev DrehtdieAusgabeum. PHP-Funktion
encodeEmail KodiertE-Mail-AdresseninderAusgabe. sieheString::encodeEmail
decodeEntities DekodiertEntitiesinderAusgabe. sieheString::decodeEntities()
number_format FormatierteineZahl(keineDezimalstellen). sieheSystem::getFormattedNumber()
currency_format FormatierteineWährung(zweiDezimalstellen). sieheSystem::getFormattedNumber()
readable_size WandeltdieAusgabeineinmenschenlesbaresFormatum. sieheSystem::getReadableSize()
urlencode URL-kodierteinenString. PHP-Funktion
rawurlencode URL-KodierungnachRFC3986. PHP-Funktion
Insert-Tags
70
SystemadministrationDiefolgendenKapitelerklären,wiemanContaoadministriert.NebenderInstallationundAktualisierungdesSystemsistderAdministratorauchfürdasAnlegenvonBenutzernundGruppen,dieErweiterungsverwaltungunddieWartungderApplikationzuständig.
Systemadministration
71
BenutzerundGruppen
ContaounterscheidetzwischenBackend-Benutzern("Benutzer"),diesichamAdministrationsbereichanmeldenkönnen,undFrontend-Benutzern("Mitglieder"),diesichaufderWebseiteanmeldenkönnen.ImGegensatzzuAdministratoren,diestandardmäßigalleSeitenundElementebearbeitendürfen("allowall"),könnenreguläreBenutzernuraufdieRessourcenzugreifen,dieexplizitinihremProfiloderdemProfileinerderGruppen,denensieangehören,freigeschaltetwurden("denyall").
Benutzer
JederBenutzerkannmehrerenGruppenangehörenunderbtautomatischderenRechte.Zugriffsrechtesindadditiv,dasheißteinBenutzererbtdieSummederRechteallerseinerGruppen.WirdeinbestimmtesRechtinGruppeAvergeben,kannesnichtinGruppeBwiderrufenwerden.
Pagemounts
Pagemountslegenfest,welcheSeiteneinBenutzerinderSeitenstruktursehenkann.DernachfolgendeScreenshotzeigtdieSeitenstrukturausSichtvonHelenLewis.ObwohldieWebseitewesentlichmehrSeitenenthält,kannsienurdreidavonsehen,dennnurdie"Courses"-Seitewurdeininder"Editors"-Gruppegemountet.BeachtenSieaußerdem,dassHelenLewisnureinederdreiSeitenbearbeitenkann!
EineSeitesehenzukönnen,beinhaltetnochnichtdasRecht,siezubearbeiten.ErinnernSiesich,dassZugriffsrechteinderSeitenstrukturvergebenwerden,dahermusseineSeitesowohlimBenutzerprofilgemountet,alsauchinderSeitenstrukturfreigeschaltetwerden.
Filemounts
Filemountslegenfest,welcheVerzeichnisseeinBenutzerinderDateiverwaltungsehenkann.DernachfolgendeScreenshotzeigtdenDateimanagerausSichtvonHelenLewis,dieimGegensatzzumAdministratornuraufdencampus-Ordnerzugreifendarf.
BenutzerundGruppen
72
ErlaubteFelder
Wieobenerwähnt,habenreguläreBenutzerstandardmäßigüberhauptkeineRechte("denyall"),dürfenalsoauchnichtaufFormularfelderzugreifen.SelbstwennsiealsobeispielsweisedasNachrichten-Modulaufrufenkönnten,wäredasFormularzumAnlegeneinesBeitragssolangeleer,bisderAdministratorindenGruppenrechteneinesodermehrereFelderderTabelletl_newsfreigeschaltethat.
Mitglieder
BenutzerundGruppen
73
DieVerwaltungvonMitgliedern(Frontend-Benutzern)istvielsimpleralsdievonBackend-Benutzern,weileskeinePagemountsodererlaubteFeldergibt.DieMitgliederverwaltungwirdhauptsächlichbenötigt,umdenaufGruppenebeneimplementiertenZugriffsschutzfürSeitenzukontrollieren.JenachKonfigurationkönnenregistrierteMitgliedergeschützteSeitenoderDownloadsaufrufen,diefürGästenichterreichbarsind.
Frontend-Vorschau
AlsAdministratorkönnenSiesichalsjedesMitgliedanmeldenunddieWebseitemitdenentsprechendenBerechtigungenprüfen.DieseOptionistinderMitgliederlisteverfügbar.
DasFrontenderscheintmitderVorschau-Toolbar,inwelcherzwischendenMitgliederngewechseltwerdenkann.AusserdemkönnendurchdieentsprechendeOptionalleunveröffentlichtenElementederangezeigtwerden.
BenutzerundGruppen
74
Erweiterungen
ErweiterungensindeinwichtigerBestandteilvonContao,weilsiedasHinzufügenweitererFunktionalitätermöglichen.Momentanbefindensich1.400ErweiterungenimExtensionRepository,dieSiedirektimBackendaufrufenkönnen.BeachtenSiedabei,dassdasExtensionRepository2.0nurnochsolcheErweiterungenanzeigt,diezuIhrerContao-Versionkompatibelsind.DieAnzahlderErweiterungeninIhremErweiterungskatalogwirddaherjenachVersionwahrscheinlichdeutlichunter1.400liegen.DieKommunikationmitdemRepository-ServererfolgtmittelsSOAP,daherbenötigenSiediePHPSOAP-Erweiterungen,umdenServicezunutzen.
Erweiterungskatalog
Mitdem"Erweiterungskatalog"-ModulkönnenSiedieErweiterungslistedurchsuchenundErweiterungenaufKnopfdruckinstallieren.NutzenSiedieFilter-undSortieroptionenzumAuffindeneinesModulsundklickenSieaufdessenNamen,umdieBeschreibungzulesenodereszuinstallieren.
DieDetailseiteenthältdieBeschreibungderErweiterungsowiewichtigeInformationenzuSystemvoraussetzungen,VersionenundAbhängigkeitenvonanderenModulen.KlickenSieaufdie"Installieren"-Schaltfläche,umdieErweiterungherunterzuladenundzuinstallieren.
Erweiterungen
75
ContaolädtdieErweiterungautomatischherunter,kopiertdieDateienundaktualisiertwennnötigdieDatenbank.
Erweiterungen
76
Erweiterungsverwaltung
MitdemModul"Erweiterungsverwaltung"könnenErweiterungenaktualisiertoderdeinstalliertwerden.EswirdautomatischaufUpdatesgeprüftundaufneueVersionenhingewiesen.VieleErweiterungenenthaltenaußerdemeinenSupport-LinkzurDokumentationund/oderzumForum.
UmeineErweiterungzudeinstallieren,klickenSieaufdasentsprechendeIconundfolgenSiedenAnweisungen.EswerdenalleDateienentferntundfallsnötigdieDatenbankaktualisiert.BeachtenSie,dassdieseAktionnichtrückgängiggemachtwerdenkann!
Erweiterungen
77
ManuelleInstallation
FallsdiePHPSOAP-ErweiterungaufIhremServernichtverfügbarist,könnenSieExtensionsauchmanuellinstallieren.FindenSiedasentsprechendeModulinderErweiterungslisteundladenSiedas.zip-ArchivdesaktuellenReleaseherunter.EntpackenSiedieDateienundkopierenSiesieinIhrlokalesoderentferntesContao-Verzeichnis.AbschließendprüfenSiedieDatenbankmitdemContao-Installtool.
Erweiterungen
78
Systemwartung
DiemeistenWartungsaufgabeninContaosindautomatisiert,sodassSiesichaufIhreeigentlicheArbeitkonzentrierenkönnen.Manchmalkannesjedochnotwendigsein,diesonstautomatischausgeführtenAufgabenderSystemwartungmanuellzustarten.
Datenbereinigen
NebendenBenutzer-generiertenInhaltenspeichertContaoverschiedeneSystemdaten,diefürdieSucheoderdasWiederherstellengelöschterDatensätzeoderfrühererVersionenverwendetwerden.SiekönnendieseDatenmanuellbereinigen,umz.B.alteVorschaubilderzuentfernenoderdieXML-SitemapsnacheinerÄnderunganderSeitenstrukturzuaktualisieren.
Suchindexneuaufbauen
SeitenwerdenautomatischbeimAufrufimFrontendindiziert(esseidennSiesindparallelimBackendangemeldet),dahermüssenSiesichumdenSuchindexnormalerweisekeineGedankenmachen.WennSieallerdingsvieleSeitenaufeinmalaktualisierthaben,istesbequemer,denSuchindexmanuellneuaufzubauen,alsallegeändertenSeiteneinzelnimBrowseraufzurufen.
Systemwartung
79
Systemwartung
80