https://de.contaowiki.org/api.php?action=feedcontributions&user=Andreasisaak&feedformat=atomContao Community Documentation - Benutzerbeiträge [de]2024-03-29T07:01:31ZBenutzerbeiträgeMediaWiki 1.22.6https://de.contaowiki.org/SyncCtoSyncCto2014-06-17T10:03:54Z<p>Andreasisaak: </p>
<hr />
<div>[[Category:Extensions]]<br />
Mit '''syncCto''' kann der Benutzer im Backend mehrere Contao-Installationen miteinander synchronisieren.<br />
{{ExtInfo<br />
| DevSite=http://www.men-at-work.de<br />
| ExtVersion=2.6.1<br />
| Version=2.11 - 3.2<br />
| ERLink=http://www.contao.org/erweiterungsliste/view/syncCto.html<br />
| TrackerLink=https://github.com/menatwork/syncCto<br />
}}<br />
<br />
==Was ist syncCto?==<br />
<br />
syncCto bietet die Möglichkeit mehrere Contao-Installationen auf Basis einer Grund-Installation zu synchronisieren. Alle Aktionen können bequem im Backend durchgeführt werden. Durch die Integration in das Contao Rechtesystem können auch Redakteure eine Auswahl vorher definierter Datenbank-Tabellen und Dateien synchronisieren.<br />
<br />
Ein integrierter Backup-Manager sichert ausgewählte Datenbank-Tabellen, wahlweise die gesamte Contao-Installation oder nur die persönlichen Daten. Angelegte Backups können durch den Backup-Manager auch wieder importiert werden.<br />
<br />
Durch die Verwendung von syncCto können Redakteure schnell und einfach in einem Preview-System arbeiten und bei Vollendung der Arbeit den aktuellen und freigegebenen Stand zum Live-System synchronisieren.<br />
<br />
==Server und Client bei syncCto==<br />
Zu unterscheiden ist zwischen Server und Client. Die Server-Installation ist die Installation die auf den Client übertragen werden soll. Der Client ist die Contao Installation, zu der synchronisiert werden soll, also meistens die Installation, die auf dem Live-Server liegt. <br /><br />
Anders gesagt, Entwicklungssystem: syncCto Server ; Livesystem: syncCto Client. Es gibt komplexere Beispiele, dazu folgt mehr in den weiteren Abschnitten.<br />
<br />
==Konfiguration==<br />
<br />
===Systemcheck===<br />
<br />
Für eine reibungslose und fehlerfreie Synchronisation ist es wichtig als erstes alle Installationen zu kontrollieren. Dafür steht der neue Menüpunkt Systemcheck zur Verfügung, denn dort werden alle für syncCto wichtigen Funktionen und Ressourcen des Servers aufgelistet. Sind alle Zellen grün, ist der erste Schritt getan. Sollte dies nicht der Fall sein, kann syncCto womöglich nicht erfolgreich funktionieren.<br />
<br />
===Einstellungen===<br />
<br />
Bevor man die erste Installation synchronisieren kann, muss zwingend bei allen Installationen auf denen syncCto installiert ist, der Menüpunkt Einstellungen ('''Contao Einstellungen''') aufgerufen und gespeichert werden. Bei diesem Vorgang wird der ctoCommunication API Key generiert. Den ctoCommunication API Key aus den Einstellungen der Clientinstallation benötigt man später bei der Erstellung des zuvor erwähnten Clients.<br />
<br />
Zu beachten: Der von syncCto verwendete ctoCommunication API Key ist nicht der Contao-Installations-Schlüssel.<br />
<br />
==Clients verwalten==<br />
<br />
Um im Server einen neuen Client anzulegen, klickt man im Menüpunkt Clients einfach auf den Button "Neuer Client".<br />
<br />
* '''ctoCommunication API Key:''' Dieser Schlüssel sichert die Kommunikation zwischen den Contao-Installationen ab.<br />
* '''Titel:''' z.B. der Kundenname und der Name des Servers<br />
* '''Beschreibung:''' Eine aussagekräftige Beschreibung des Servers (Seit syncCto 2.6 nicht mehr enthalten)<br />
* '''Domain:''' Die Domain des Clients, ohne Unterverzeichnis<br />
* '''Serverpfad:''' Falls sich die Installation in einem Unterverzeichnis befindet<br />
* '''Portnummer:''' Standardmäßig ist es der Port 80<br />
* '''Verschlüsselungs-Engine:''' Es stehen drei Möglichkeiten zur Verfügung, in der Regel genügt "Blowfish"<br />
* '''HTTP-Authentifizierung aktivieren:''' Falls der Client mit einer .htaccess abgesichert ist, kann man hier den Benutzernamen und das Passwort eingeben und die gesicherte Installation synchronisieren<br />
<br />
==Synchronisation==<br />
<br />
Um den Client mit dem Server zu synchronisieren, klickt man beim entsprechenden Client auf den rechten Button "Client synchronisieren". Im nächsten Fenster wählt man die Synchronisationsart aus.<br />
<br />
* '''Contao-Installation:''' Die gesamte Contao-Installation, ausgenommen ist tl_files<br />
* '''Persönliche Daten:''' Nur Dateien und Ordner im tl_files Ordner. Core-Dateien werden nicht berücksichtigt<br />
* '''Konfigurationsdateien:''' Einträge aus der localconfig.php<br />
<br />
Datenbank-Tabellen werden nicht mehr (wie es bis Version 2.1 war) im DCA ausgewählt, sondern während der Synchronisation in einer Art Vergleichsliste dargestellt. Dort kann man dann auswählen welche Tabelle man synchronisieren will und welche ignoriert werden sollen.<br />
<br />
==Backups==<br />
<br />
Backups können im Backend unter dem Menüpunkt Backups angelegt und wiederhergestellt werden. Alle Backups werden im automatisch angelegten Ordner "syncCto_backups" in den tl_files abgelegt. Datenbanken finden sich im Ordner "database" und Dateien im Ordner "files". Wenn man Backups wieder einspielen möchte, klickt man im Menüpunkt auf Backups und wählt die Art der Wiederherstellung. Im nächsten Schritt wählt man die entsprechende Datei aus und klickt auf "Wiederherstellen". Die Dateien oder die Datenbank auf dem Server werden danach mit den Daten aus dem Backup überschrieben.<br />
<br />
===Backups automatisiert löschen===<br />
<br />
Zur Verfügung stehen folgende zwei PHP-Skripte:<br />
<br />
* '''SyncCtoDeleteDbBackups.php''' Löscht alle Datenbank-Backups<br />
* '''SyncCtoDeleteFileBackups.php''' Löscht alle Datei-Backups<br />
<br />
Die Cron Extension wird seit 2.1 nicht mehr automatisch ausgeliefert, daher muss sie manuell nachinstalliert werden oder die Dateien werden über einen echten Cronjob konfiguriert.<br />
<br />
==Anwendungsfall 1==<br />
<br />
Auf dem Webserver laufen zwei Contao-Installationen.<br />
<br />
* Die Adresse der 1. Webseite heißt ''<nowiki>http://192.168.0.100/server/</nowiki>''<br />
* Die Adresse der 2. Webseite heißt ''<nowiki>http://192.168.0.100/client/</nowiki>''<br />
<br />
Der Server, bei syncCto, beschreibt immer die Installation die alle Informationen hat, die man auf eine andere Installation übertragen will. Dieses Ziel wird bei syncCto als Client beschrieben. Server und Client laufen also auf der gleichen Maschine auf den gleichen Webserver. <br />
<br />
==Anwendungsfall 2==<br />
<br />
Es gibt 2 Seiten die auf zwei verschiedenen Maschinen laufen. Beide Maschinen sind verbunden; egal ob nun im lokalen Netzwerk oder über das Internet. Dabei ist es wichtig das der Server den Client erreichen kann. Der Server kann lokal zuhause auf dem internen Webserver laufen. Der Client allerdings muss von außen erreichbar sein.<br />
<br />
* Server läuft lokal zuhause die Adresse ist ''<nowiki>http://192.168.0.100/server</nowiki>''<br />
* Der Client liegt im Internet und hat die Adresse ''<nowiki>http://www.example.com</nowiki>''<br />
<br />
So wird im Server für den Client einfach die Adresse ''<nowiki>http://www.example.com</nowiki>'' eingetragen.<br />
<br />
==Mögliche Problemfälle==<br />
<br />
Der SMH ist keine Lösung da die Daten via HTTP versendet werden. Ein ordentlich konfigurierter Server ist daher Pflicht.<br />
<br />
Um möglichen Problemfällen auf die Spur zu kommen kann man den Debugmodus in den Einstellungen aktivieren. Dabei wird die Dauer der Synchronisation und die Speicherauslastung während der Synchronisation ausgegeben. Zusätzlich werden Debugdateien im Tempordner von Contao abgelegt. Diese sind bei Problemen immer im Forum anzuhängen.<br />
<br />
==Tipps und Tricks==<br />
<br />
===Providerspezifische Anpassungen===<br />
<br />
====Domainfactory====<br />
Bei Domainfactory sind oft die Defaulteinstellungen in der PHP.INI nicht ausreichend. So ist gerne der PHP_SAFEMODE aktiviert und dafür ZipArchive deaktiviert. Zum Glück bietet DF die Möglichkeit, im Kundenmenü je Domain eine eigene PHP.INI anzulegen.<br />
<br />
Mit den folgenden Einstellungen klappt es dann auch bei df.eu:<br />
<br />
extension_dir = "/usr/local/lib/php_modules/5-STABLE"<br />
<br />
extension = "zip.so"<br />
<br />
Bei dieser Gelegenheit kann man dann auch gleich das vorgegebene Memory-Limit auf 128 MB anpassen.<br />
<br />
Quelle: u.a. [http://www.df.eu/de/service/df-faq/webhosting/skriptsprachen/phpini-editor/ DomainFactory]<br />
<br />
==Weiterführende Links==<br />
<br />
* [http://www.contao-tutorials.de/tutorial/contao-installationen-synchronisieren.html Tutorial zu syncCto2]</div>Andreasisaakhttps://de.contaowiki.org/SyncCtoSyncCto2014-06-17T10:02:52Z<p>Andreasisaak: </p>
<hr />
<div>[[Category:Extensions]]<br />
Mit '''syncCto''' kann der Benutzer im Backend mehrere Contao-Installationen miteinander synchronisieren.<br />
{{ExtInfo<br />
| DevSite=http://www.men-at-work.de<br />
| ExtVersion=2.6.1<br />
| Version=2.11 - 3.2<br />
| ERLink=http://www.contao.org/erweiterungsliste/view/syncCto.html<br />
| TrackerLink=https://github.com/menatwork/syncCto<br />
}}<br />
<br />
==Was ist syncCto?==<br />
<br />
syncCto bietet die Möglichkeit mehrere Contao-Installationen auf Basis einer Grund-Installation zu synchronisieren. Alle Aktionen können bequem im Backend durchgeführt werden. Durch die Integration in das Contao Rechtesystem können auch Redakteure eine Auswahl vorher definierter Datenbank-Tabellen und Dateien synchronisieren.<br />
<br />
Ein integrierter Backup-Manager sichert ausgewählte Datenbank-Tabellen, wahlweise die gesamte Contao-Installation oder nur die persönlichen Daten. Angelegte Backups können durch den Backup-Manager auch wieder importiert werden.<br />
<br />
Durch die Verwendung von syncCto können Redakteure schnell und einfach in einem Preview-System arbeiten und bei Vollendung der Arbeit den aktuellen und freigegebenen Stand zum Live-System synchronisieren.<br />
<br />
==Server und Client bei syncCto==<br />
Zu unterscheiden ist zwischen Server und Client. Die Server-Installation ist die Installation die auf den Client übertragen werden soll. Der Client ist die Contao Installation, zu der synchronisiert werden soll, also meistens die Installation, die auf dem Live-Server liegt. <br /><br />
Anders gesagt, Entwicklungssystem: syncCto Server ; Livesystem: syncCto Client. Es gibt komplexere Beispiele, dazu folgt mehr in den weiteren Abschnitten.<br />
<br />
==Konfiguration==<br />
<br />
===Systemcheck===<br />
<br />
Für eine reibungslose und fehlerfreie Synchronisation ist es wichtig als erstes alle Installationen zu kontrollieren. Dafür steht der neue Menüpunkt Systemcheck zur Verfügung, denn dort werden alle für syncCto wichtigen Funktionen und Ressourcen des Servers aufgelistet. Sind alle Zellen grün, ist der erste Schritt getan. Sollte dies nicht der Fall sein, kann syncCto womöglich nicht erfolgreich funktionieren.<br />
<br />
===Einstellungen===<br />
<br />
Bevor man die erste Installation synchronisieren kann, muss zwingend bei allen Installationen auf denen syncCto installiert ist, der Menüpunkt Einstellungen ('''Contao Einstellungen''') aufgerufen und gespeichert werden. Bei diesem Vorgang wird der ctoCommunication API Key generiert. Den ctoCommunication API Key aus den Einstellungen der Clientinstallation benötigt man später bei der Erstellung des zuvor erwähnten Clients.<br />
<br />
Zu beachten: Der von syncCto verwendete ctoCommunication API Key ist nicht der Contao-Installations-Schlüssel.<br />
<br />
==Clients verwalten==<br />
<br />
Um im Server einen neuen Client anzulegen, klickt man im Menüpunkt Clients einfach auf den Button "Neuer Client".<br />
<br />
* '''ctoCommunication API Key:''' Dieser Schlüssel sichert die Kommunikation zwischen den Contao-Installationen ab.<br />
* '''Titel:''' z.B. der Kundenname und der Name des Servers<br />
* '''Beschreibung:''' Eine aussagekräftige Beschreibung des Servers<br />
* '''Domain:''' Die Domain des Clients, ohne Unterverzeichnis<br />
* '''Serverpfad:''' Falls sich die Installation in einem Unterverzeichnis befindet<br />
* '''Portnummer:''' Standardmäßig ist es der Port 80<br />
* '''Verschlüsselungs-Engine:''' Es stehen drei Möglichkeiten zur Verfügung, in der Regel genügt "Blowfish"<br />
* '''HTTP-Authentifizierung aktivieren:''' Falls der Client mit einer .htaccess abgesichert ist, kann man hier den Benutzernamen und das Passwort eingeben und die gesicherte Installation synchronisieren<br />
<br />
==Synchronisation==<br />
<br />
Um den Client mit dem Server zu synchronisieren, klickt man beim entsprechenden Client auf den rechten Button "Client synchronisieren". Im nächsten Fenster wählt man die Synchronisationsart aus.<br />
<br />
* '''Contao-Installation:''' Die gesamte Contao-Installation, ausgenommen ist tl_files<br />
* '''Persönliche Daten:''' Nur Dateien und Ordner im tl_files Ordner. Core-Dateien werden nicht berücksichtigt<br />
* '''Konfigurationsdateien:''' Einträge aus der localconfig.php<br />
<br />
Datenbank-Tabellen werden nicht mehr (wie es bis Version 2.1 war) im DCA ausgewählt, sondern während der Synchronisation in einer Art Vergleichsliste dargestellt. Dort kann man dann auswählen welche Tabelle man synchronisieren will und welche ignoriert werden sollen.<br />
<br />
==Backups==<br />
<br />
Backups können im Backend unter dem Menüpunkt Backups angelegt und wiederhergestellt werden. Alle Backups werden im automatisch angelegten Ordner "syncCto_backups" in den tl_files abgelegt. Datenbanken finden sich im Ordner "database" und Dateien im Ordner "files". Wenn man Backups wieder einspielen möchte, klickt man im Menüpunkt auf Backups und wählt die Art der Wiederherstellung. Im nächsten Schritt wählt man die entsprechende Datei aus und klickt auf "Wiederherstellen". Die Dateien oder die Datenbank auf dem Server werden danach mit den Daten aus dem Backup überschrieben.<br />
<br />
===Backups automatisiert löschen===<br />
<br />
Zur Verfügung stehen folgende zwei PHP-Skripte:<br />
<br />
* '''SyncCtoDeleteDbBackups.php''' Löscht alle Datenbank-Backups<br />
* '''SyncCtoDeleteFileBackups.php''' Löscht alle Datei-Backups<br />
<br />
Die Cron Extension wird seit 2.1 nicht mehr automatisch ausgeliefert, daher muss sie manuell nachinstalliert werden oder die Dateien werden über einen echten Cronjob konfiguriert.<br />
<br />
==Anwendungsfall 1==<br />
<br />
Auf dem Webserver laufen zwei Contao-Installationen.<br />
<br />
* Die Adresse der 1. Webseite heißt ''<nowiki>http://192.168.0.100/server/</nowiki>''<br />
* Die Adresse der 2. Webseite heißt ''<nowiki>http://192.168.0.100/client/</nowiki>''<br />
<br />
Der Server, bei syncCto, beschreibt immer die Installation die alle Informationen hat, die man auf eine andere Installation übertragen will. Dieses Ziel wird bei syncCto als Client beschrieben. Server und Client laufen also auf der gleichen Maschine auf den gleichen Webserver. <br />
<br />
==Anwendungsfall 2==<br />
<br />
Es gibt 2 Seiten die auf zwei verschiedenen Maschinen laufen. Beide Maschinen sind verbunden; egal ob nun im lokalen Netzwerk oder über das Internet. Dabei ist es wichtig das der Server den Client erreichen kann. Der Server kann lokal zuhause auf dem internen Webserver laufen. Der Client allerdings muss von außen erreichbar sein.<br />
<br />
* Server läuft lokal zuhause die Adresse ist ''<nowiki>http://192.168.0.100/server</nowiki>''<br />
* Der Client liegt im Internet und hat die Adresse ''<nowiki>http://www.example.com</nowiki>''<br />
<br />
So wird im Server für den Client einfach die Adresse ''<nowiki>http://www.example.com</nowiki>'' eingetragen.<br />
<br />
==Mögliche Problemfälle==<br />
<br />
Der SMH ist keine Lösung da die Daten via HTTP versendet werden. Ein ordentlich konfigurierter Server ist daher Pflicht.<br />
<br />
Um möglichen Problemfällen auf die Spur zu kommen kann man den Debugmodus in den Einstellungen aktivieren. Dabei wird die Dauer der Synchronisation und die Speicherauslastung während der Synchronisation ausgegeben. Zusätzlich werden Debugdateien im Tempordner von Contao abgelegt. Diese sind bei Problemen immer im Forum anzuhängen.<br />
<br />
==Tipps und Tricks==<br />
<br />
===Providerspezifische Anpassungen===<br />
<br />
====Domainfactory====<br />
Bei Domainfactory sind oft die Defaulteinstellungen in der PHP.INI nicht ausreichend. So ist gerne der PHP_SAFEMODE aktiviert und dafür ZipArchive deaktiviert. Zum Glück bietet DF die Möglichkeit, im Kundenmenü je Domain eine eigene PHP.INI anzulegen.<br />
<br />
Mit den folgenden Einstellungen klappt es dann auch bei df.eu:<br />
<br />
extension_dir = "/usr/local/lib/php_modules/5-STABLE"<br />
<br />
extension = "zip.so"<br />
<br />
Bei dieser Gelegenheit kann man dann auch gleich das vorgegebene Memory-Limit auf 128 MB anpassen.<br />
<br />
Quelle: u.a. [http://www.df.eu/de/service/df-faq/webhosting/skriptsprachen/phpini-editor/ DomainFactory]<br />
<br />
==Weiterführende Links==<br />
<br />
* [http://www.contao-tutorials.de/tutorial/contao-installationen-synchronisieren.html Tutorial zu syncCto2]</div>Andreasisaakhttps://de.contaowiki.org/Composer/ClientComposer/Client2014-05-05T15:30:26Z<p>Andreasisaak: </p>
<hr />
<div>{{stub}}<br />
[[Category:Admin HOWTOS]]<br />
[[Category:Installation und Updates]]<br />
<br />
=Composer=<br />
Auf gut deutsch = Komponist.<br />
Er gibt den Ton an in einer Contao Installation und ist als Ersatz für die Erweiterungs-Verwaltung gedacht. Der Composer wird von der CCA (Contao-Community-Alliance) betreut. <br />
<br />
Hier findest Du mehr Infos: http://c-c-a.org/projekte<br />
<br />
==Installation==<br />
Um ein reibungsloses Funktionieren zu gewährleisten, sollten Anwender die Stable-Version verwenden. Dazu die Erweiterungsverwaltung aufrufen und nach Composer suchen. Vor der Installation dann die aktuelle Stable-Version auswählen und mit der Installation fortfahren.<br />
<br />
Beim ersten Aufruf des Composers (der sich unter dem Menüpunkt "Paketverwaltung" findet) wird man aufgefordert, den Migrationsprozess zu starten. Nach der Installation sieht es erstmal so aus (Contao 3.2.5).<br />
<br />
===Übersicht===<br />
Im linken Backendmenü ersetzt die Paketverwaltung die Erweiterungsverwaltung und den Erweiterungskatalog. Das Sicherheitsschloss dient dazu Erweiterungen festzupinnen und damit vor der Aktualisierung zu schützen. Dieses Schloss sollte aber nicht für Composer selbst genutzt werden, da dadurch wichtige Aktualisierungen nicht mehr durchgeführt werden können.<br />
[[File:Composer_uebersicht.png|center]]<br><br><br />
<br />
===Einstellungen===<br />
# Rückkehr zur normalen Erweiterungsverwaltung.<br />
# Composer-Cache leeren<br />
# Einschalten des Expertenmodus<br />
[[File:Composer_einstellungen.png|center]]<br><br><br />
<br />
===Expertenmodus===<br />
Detailansicht im Expertenmodus. Zeigt das Installationsscript an.<br />
[[File:composer_expertenmodus.png|center]]<br><br><br />
<br />
===Abhängigkeiten===<br />
Bei angecklickter Checkbox werden die Abhängigkeiten zu den entsprechenden Erweiterungen angezeigt.<br />
[[File:composer_abhaengigkeiten.png|center]]<br><br><br />
<br />
===Erweiterungs Suche===<br />
Umfangreiche Suche von Erweiterungen.<br />
<br />
=Erweiterungs Katalog (Übersicht)=<br />
Eine mögliche Übersicht von Erweiterungen (Packages from contao-community-alliance)<br />
https://packagist.org/packages/contao-community-alliance/</div>Andreasisaakhttps://de.contaowiki.org/MetaModelsMetaModels2014-03-11T19:56:35Z<p>Andreasisaak: /* Verfügbare Attribute und Filter */</p>
<hr />
<div>[[Category:Extensions]]<br />
[[Category:MetaModels|B]]<br />
{{ExtInfo<br />
| Dev=Metamodels Team<br />
| DevSite=<br />
| Version=ab 2.11.X<br />
| ERLink=<br />
| VCSLink=https://github.com/MetaModels/core<br />
| TrackerLink=https://github.com/MetaModels/core/issues<br />
| Depending=[[DC_General]] [[Justtextwidgets]] [[MultiColumnWizard]] [[MetaPalettes]]<br />
}}<br />
<br />
=Vorwort: Wiki-Dokumentation der Erweiterung MetaModels (Nachfolger des Catalog)=<br />
Die Erweiterung MetaModels ist der Nachfolger der Catalog-Extension. Der Code wurde komplett neu entwickelt. Eine Kompatibilität zum Catalog besteht nicht.<br />
<br />
===Vorgehensschritte===<br />
# [[MetaModels|Start: Installation]] - Download und Installation von MetaModels<br />
# [[MetaModels_Beispiel_1|Beispiel 1: Backend einrichten]] - MetaModel erstellen, Daten erfassen<br />
# [[MetaModels_Beispiel_2|Beispiel 2: Frontend einrichten]] - Die Inhalte im Frontend anzeigen (Liste und Detail)<br />
# [[MetaModels_Beispiel_3|Beispiel 3: Weitere Filter einrichten]] – Inhalte auf Published setzen, einfache Select-Filter<br />
# [[MetaModels_Beispiel_4|Beispiel 4: Weiteres MetaModels einrichten]] - komplexe Select-Filter einsetzen<br />
<br />
=Download & Installation=<br />
<br />
==Download von der Demosite==<br />
[[Datei:logo-metamodels.png|link=|left|105px]]<br />
Unter der URL [http://now.metamodel.me now.metamodel.me] findet sich die Webseite zur Extension mit einer Frontentdemo und der Möglichkeit, Installationsarchive in den Formaten '''tgz''', '''tbz''' und '''zip''' mit so genannten Nightly Builds zu laden. Diese Archive beinhalten die MetaModels-Dateien, Attribute, Filter sowie sämtliche anderen Erweiterungen, die für den Betrieb nötig sind und ansonsten separat heruntergeladen und installiert werden müssen.<br />
<div style="clear: both"><br><br></div><br />
<br />
==Installation via Composer==<br />
<br />
MetaModels kann vollständig über [http://de.contaowiki.org/Composer Composer] installiert werden. Alle Attribute liegen auf [https://packagist.org/ Packagist] und werden vom offiziellen MetaModels Team betreut. Für die Installation von MetaModels über Composer muss man lediglich nach "metamodels" suchen, alle verfügbaren Pakete werden danach aufgelistet.<br />
<br />
==Download aus dem Entwicklungsrepository GitHub==<br />
<br />
[[Datei:logo-github.png|link=|left|105px]]<br />
Zu finden ist die Erweiterung MetaModels auf GitHub:<br />
[https://github.com/MetaModels github.com/Metamodels]<br><br />
Aktuell können das Core, dazu abhängige weitere Erweiterungen und alle weiteren MetaModels Attribute/Filter manuell installiert werden.<br />
<div style="clear: both"><br></div><br />
<br />
===Core===<br />
* [https://github.com/MetaModels/core MetaModels (Das Core-Modul)]<br />
* [https://github.com/MetaModels/boilerplate Boilerplate (Erzeugt einen separaten Bereich in der Backend-Navigation)]<br />
<br />
===Abhängigkeiten===<br />
Benötigt werden folgende Erweiterungen:<br />
* [https://github.com/MetaModels DC_General]<br />
* [https://contao.org/de/extension-list/view/MetaPalettes.html MetaPalettes]<br />
* [http://www.contao.org/erweiterungsliste/view/MultiColumnWizard.html MultiColumnWizard]<br />
* [https://github.com/Discordier/justtextwidgets justtextwidgets]<br />
* [https://contao.org/de/extension-list/view/geoprotection.de.html geoprotection] (wird nur für das Attribut '''Geoprotection''' benötigt)<br />
<br />
===Verfügbare Attribute und Filter===<br />
Sobald der Core und benötigten sonstigen Erweiterungen installiert sind, werde die weiteren Attributs- und Filterextensions des MetaModels benötigt.<br />
Dazu gehören:<br />
{| style="width:100%"<br />
|-<br />
! '''Attribute''' !! '''Attribute (translated)''' !! '''Filter'''<br />
|-<br />
|<br />
* [https://github.com/MetaModels/attribute_alias Attribut: Alias]<br />
* [https://github.com/MetaModels/attribute_checkbox Attribut: Checkbox (Kontrollkästchen)]<br />
* [https://github.com/MetaModels/attribute_combinedvalues Attribut: Combined Values (Kombinierte Einträge)]<br />
* [https://github.com/MetaModels/attribute_color Attribut: Color (Farbe)]<br />
* [https://github.com/MetaModels/attribute_country Attribut: Country (Land)]<br />
* [https://github.com/MetaModels/attribute_decimal Attribut: Decimal (Dezimal)]<br />
* [https://github.com/MetaModels/attribute_file Attribut: File (Datei)]<br />
* [https://github.com/MetaModels/attribute_geoprotection Attribut: Geoprotection (Länderzuordnung)]<br />
* [https://github.com/MetaModels/attribute_langcode Attribut: Langcode (Sprachschlüssel)]<br />
* [https://github.com/MetaModels/attribute_longtext Attribut: Longtext (Langtext, Textarea)]<br />
* [https://github.com/MetaModels/attribute_select Attribut: Select (Auswahl)]<br />
* [https://github.com/MetaModels/attribute_numeric Attribut: Numeric (Numerisch)]<br />
* [https://github.com/MetaModels/attribute_rating Attribut: Rating (Bewertung)]<br />
* [https://github.com/MetaModels/attribute_tags Attribut: Tags (Mehrfachauswahl)]<br />
* [https://github.com/MetaModels/attribute_text Attribut: Text]<br />
* [https://github.com/MetaModels/attribute_timestamp Attribut: Timestamp (Datum)]<br />
* [https://github.com/MetaModels/attribute_url Attribut: URL]<br />
|<br />
* [https://github.com/MetaModels/attribute_translatedalias Attribut: Translated Alias]<br />
* [https://github.com/MetaModels/attribute_translatedfile Attribut: Translated File]<br />
* [https://github.com/MetaModels/attribute_translatedlongtext Attribut: Translated Longtext]<br />
* [https://github.com/MetaModels/attribute_translatedselect Attribut: Translated Select]<br />
* [https://github.com/MetaModels/attribute_translatedtags Attribut: Translated Tags]<br />
* [https://github.com/MetaModels/attribute_translatedtext Attribut: Translated Text]<br />
|<br />
* [https://github.com/MetaModels/filter_checkbox Filter: Checkbox]<br />
* [https://github.com/MetaModels/filter_fromto Filter: FromTo]<br />
* [https://github.com/MetaModels/filter_range Filter: Range]<br />
* [https://github.com/MetaModels/filter_select Filter: Select]<br />
* [https://github.com/MetaModels/filter_tags Filter: Tags]<br />
* [https://github.com/MetaModels/filter_text Filter: Text]<br />
|}<br />
Attribut- und Filterextensions werden für den Betrieb von MetaModels benötigt. Welche dieser Erweiterungen in einem Projekt zu Einsatz kommen sollen ist abhängig von den benötigten Funktionen.<br />
{{Hinweis|Das Attribut [https://packagist.org/packages/metamodels/attribute_geoprotection '''Geoprotection'''] ist nicht mehr Teil der Nightly Builds. Es kann aber jederzeit über den oben angegeben Link separat geladen werden.}}{{Hinweis|Das Attribut [https://packagist.org/packages/metamodels/attribute_rating '''Rating'''] benötigt die Extension [https://packagist.org/packages/leounglaub/contao-simple-ajax '''SimpleAjax'''] von leo-unglaub. Das Rating Attribut wird seit einiger Zeit nicht mehr in der Nightly ausgeliefert.}}<br />
<br />
==Download via git und Kommandozeile==<br />
In einer bash (Linux Kommandozeile bzw. cygwin Kommandozeile) kann man sich auch alle Unterprojekte der MetaModels via git clonen. Man sollte jedoch vorher in den Ordner wechseln, wohin die Projekte heruntergeladen werden sollen.<br />
<br />
{| style="width:100%"<br />
|-<br />
! '''Linux''' !! '''MacOS'''<br />
|-<br />
|<br />
In Benutzerverzeichnis wechseln und für den Pull ein Verzeichniss anlegen.<br />
<source lang="bash"><br />
cd ~<br />
mkdir MetaModels<br />
cd MetaModels<br />
</source><br />
|<br />
In Benutzerverzeichnis wechseln und für den Pull ein Verzeichniss anlegen.<br />
<source lang="bash"><br />
cd ~<br />
mkdir MetaModels<br />
cd MetaModels<br />
</source><br />
|-<br />
|<br />
Alle MetaModel Repos holen<br />
<source lang="bash"><br />
for i in `wget -qO- https://api.github.com/orgs/MetaModels/repos | \<br />
grep clone_url | \<br />
cut -d \" -f4`; do \<br />
git clone $i; \<br />
done;<br />
</source><br />
|<br />
Alle MetaModel Repos holen<br />
<source lang="bash"><br />
for i in `curl https://api.github.com/orgs/MetaModels/repos | \<br />
grep clone_url | \<br />
cut -d \" -f4`; do \<br />
git clone $i; \<br />
done;<br />
</source><br />
|}<br />
<br />
=Installation=<br />
Die zu installieren Ordner und Dateien müssen zur Installation im Contao-System wie folgt hochgeladen werden:<br />
{| style="width:80%"<br />
|-<br />
! '''Module''' (/system/modules) !! '''Drivers''' (/system/drivers)<br />
|-<br />
|<br />
* generalDriver<br />
* justtextwidgets<br />
* metamodels<br />
* metamodels_boilerplate<br />
* metamodelsattribute_alias<br />
* metamodelsattribute_checkbox<br />
* metamodelsattribute_combinedvalues<br />
* metamodelsattribute_color<br />
* metamodelsattribute_country<br />
* metamodelsattribute_decimal<br />
* metamodelsattribute_file<br />
* metamodelsattribute_geoprotection<br />
* metamodelsattribute_langcode<br />
* metamodelsattribute_longtext<br />
* metamodelsattribute_numeric<br />
* metamodelsattribute_rating<br />
* metamodelsattribute_select<br />
* metamodelsattribute_tags<br />
* metamodelsattribute_text<br />
* metamodelsattribute_timestamp<br />
* metamodelsattribute_translatedalias<br />
* metamodelsattribute_translatedfile<br />
* metamodelsattribute_translatedlongtext<br />
* metamodelsattribute_translatedselect<br />
* metamodelsattribute_translatedtags<br />
* metamodelsattribute_translatedtext<br />
* metamodelsattribute_url<br />
* metamodelsfilter_checkbox<br />
* metamodelsfilter_fromto<br />
* metamodelsfilter_range<br />
* metamodelsfilter_select<br />
* metamodelsfilter_tags<br />
* metamodelsfilter_text<br />
* metapalettes<br />
* multicolumnwizard<br />
|<br />
* DC_General.php<br />
|}<br />
Danach muss mittels des Installtools ein Update der Datenbank gemacht werden.<br />
<br />
=Backend Ansichten=<br />
<br />
===Leeres MetaModel===<br />
[[Datei:MetaModels_Backend_System.png|right|600px]]<br />
Nach Aktualisierung der Datenbank erscheint '''MetaModels''' neu als eigenständige Einstellung in der Backend-Navigation links.<br />
<div style="clear: both"></div><br />
<br />
===Erweiterungsverwaltung===<br />
[[Datei:MetaModels_Backend_System_ER.png|right|600px]]<br />
In der Erweiterungsverwaltung findet sich hingegen nichts, was auf MetaModels hinweist. Aber das ist gut so (Stand Mai 2013).<br />
<div style="clear: both"></div><br />
<br />
===MetaModel mit null Datensätzen===<br />
[[Datei:MetaModels_Backend_System_Beispiel.png|right|600px]]<br />
Nachdem ein erstes neues MetaModel erstellt wurde, erscheint folgende Darstellung:<br />
Weiterführende Informationen zu einem einfachen Praxisbeispiel findet man unter [[MetaModels_Beispielprojekt|MetaModels Beispielprojekt]]<br />
<div style="clear: both"></div><br />
<br />
=Konfiguration=<br />
<br />
===Dokumentation der Attribute===<br />
[[File:icons_attribute.png|left|link=|32px]]<br />
Zur [[MetaModels_Backend:_Attribute|Dokumentation der Attribute]].<br />
<br />
===Dokumentation der Ausgabevorgaben===<br />
[[File:icons_ausgabevorgaben.png|left|link=|32px]]<br />
Den Überblick findest du [[MetaModels_Backend:_Ausgabevorgaben|hier]].<br />
<br />
===Dokumentation der Eingabemaske (fka Paletteneinstellungen)===<br />
[[File:icons_paletteneinstellungen.png|left|link=|32px]]<br />
Den Überblick findest du [[MetaModels_Backend:_Eingabemaske|hier]].<br />
<br />
===Dokumentation der Filter===<br />
[[File:icons_filter.png|left|link=|32px]]<br />
Zum [[MetaModels_Backend:_Filter|Überblick über die Filter]].<br />
<br />
===Dokumentation der Ansichtseinstellungen===<br />
[[File:icons_ansichtseinstellungen.png|left|link=|32px]]<br />
Zum [[MetaModels_Backend:_Ansichtseinstellungen|Überblick der Ansichtseinstellungen]].<br />
<br />
=Basics=<br />
Einführende Beispiele, wie man MetaModels einrichten und konfigurieren kann, findet man hier:<br />
# [[MetaModels_Beispiel_1| Backend einrichten]] - am Beispiel einer Musiksammlung, Eingeben der Sammlung<br />
# [[MetaModels_Beispiel_2| Frontend einrichten]] - Die Inhalte im Frontend anzeigen (Liste und Detail)<br />
# [[MetaModels_Beispiel_3| Weitere Filter einrichten]] – Inhalte auf Published setzen, einfache Select-Filter<br />
# [[MetaModels_Beispiel_4| Weiteres MetaModels einrichten]] - komplexe Select-Filter einsetzen<br />
# [[MetaModels Insert-Tags| Insert-Tags]] - Insert-Tags in MetaModels<br />
<br />
=Tipps und Tricks=<br />
Umsetzung-Beispiele, wie man MetaModels ausbauen kann, findet man hier:<br />
# [[MetaModels_Beispiel:_Übersetzter_select| Übersetzer select]] - "Übersetzter select"-Attribut eingerichtet werden.<br />
# [[MetaModels_Beispiel:_Referenced_items| Referenced items]] - MetaModels miteinder verknüpfen<br />
<br />
=Frontendausgabe=<br />
{{Hinweis|Die Dokumentation sollte in eine andere Seite ausgelagert werden}}<br />
----<br />
started by: [[Benutzer:Planepix|Planepix]] 00:49, 28. Nov. 2012 (CET)<br><br />
completed by [[Benutzer:Luis|Luis]], [[Benutzer:lucina|Lucina]]</div>Andreasisaakhttps://de.contaowiki.org/MetaModelsMetaModels2014-03-11T19:50:13Z<p>Andreasisaak: </p>
<hr />
<div>[[Category:Extensions]]<br />
[[Category:MetaModels|B]]<br />
{{ExtInfo<br />
| Dev=Metamodels Team<br />
| DevSite=<br />
| Version=ab 2.11.X<br />
| ERLink=<br />
| VCSLink=https://github.com/MetaModels/core<br />
| TrackerLink=https://github.com/MetaModels/core/issues<br />
| Depending=[[DC_General]] [[Justtextwidgets]] [[MultiColumnWizard]] [[MetaPalettes]]<br />
}}<br />
<br />
=Vorwort: Wiki-Dokumentation der Erweiterung MetaModels (Nachfolger des Catalog)=<br />
Die Erweiterung MetaModels ist der Nachfolger der Catalog-Extension. Der Code wurde komplett neu entwickelt. Eine Kompatibilität zum Catalog besteht nicht.<br />
<br />
===Vorgehensschritte===<br />
# [[MetaModels|Start: Installation]] - Download und Installation von MetaModels<br />
# [[MetaModels_Beispiel_1|Beispiel 1: Backend einrichten]] - MetaModel erstellen, Daten erfassen<br />
# [[MetaModels_Beispiel_2|Beispiel 2: Frontend einrichten]] - Die Inhalte im Frontend anzeigen (Liste und Detail)<br />
# [[MetaModels_Beispiel_3|Beispiel 3: Weitere Filter einrichten]] – Inhalte auf Published setzen, einfache Select-Filter<br />
# [[MetaModels_Beispiel_4|Beispiel 4: Weiteres MetaModels einrichten]] - komplexe Select-Filter einsetzen<br />
<br />
=Download & Installation=<br />
<br />
==Download von der Demosite==<br />
[[Datei:logo-metamodels.png|link=|left|105px]]<br />
Unter der URL [http://now.metamodel.me now.metamodel.me] findet sich die Webseite zur Extension mit einer Frontentdemo und der Möglichkeit, Installationsarchive in den Formaten '''tgz''', '''tbz''' und '''zip''' mit so genannten Nightly Builds zu laden. Diese Archive beinhalten die MetaModels-Dateien, Attribute, Filter sowie sämtliche anderen Erweiterungen, die für den Betrieb nötig sind und ansonsten separat heruntergeladen und installiert werden müssen.<br />
<div style="clear: both"><br><br></div><br />
<br />
==Installation via Composer==<br />
<br />
MetaModels kann vollständig über [http://de.contaowiki.org/Composer Composer] installiert werden. Alle Attribute liegen auf [https://packagist.org/ Packagist] und werden vom offiziellen MetaModels Team betreut. Für die Installation von MetaModels über Composer muss man lediglich nach "metamodels" suchen, alle verfügbaren Pakete werden danach aufgelistet.<br />
<br />
==Download aus dem Entwicklungsrepository GitHub==<br />
<br />
[[Datei:logo-github.png|link=|left|105px]]<br />
Zu finden ist die Erweiterung MetaModels auf GitHub:<br />
[https://github.com/MetaModels github.com/Metamodels]<br><br />
Aktuell können das Core, dazu abhängige weitere Erweiterungen und alle weiteren MetaModels Attribute/Filter manuell installiert werden.<br />
<div style="clear: both"><br></div><br />
<br />
===Core===<br />
* [https://github.com/MetaModels/core MetaModels (Das Core-Modul)]<br />
* [https://github.com/MetaModels/boilerplate Boilerplate (Erzeugt einen separaten Bereich in der Backend-Navigation)]<br />
<br />
===Abhängigkeiten===<br />
Benötigt werden folgende Erweiterungen:<br />
* [https://github.com/MetaModels DC_General]<br />
* [https://contao.org/de/extension-list/view/MetaPalettes.html MetaPalettes]<br />
* [http://www.contao.org/erweiterungsliste/view/MultiColumnWizard.html MultiColumnWizard]<br />
* [https://github.com/Discordier/justtextwidgets justtextwidgets]<br />
* [https://contao.org/de/extension-list/view/geoprotection.de.html geoprotection] (wird nur für das Attribut '''Geoprotection''' benötigt)<br />
<br />
===Verfügbare Attribute und Filter===<br />
Sobald der Core und benötigten sonstigen Erweiterungen installiert sind, werde die weiteren Attributs- und Filterextensions des MetaModels benötigt.<br />
Dazu gehören:<br />
{| style="width:100%"<br />
|-<br />
! '''Attribute''' !! '''Attribute (translated)''' !! '''Filter'''<br />
|-<br />
|<br />
* [https://github.com/MetaModels/attribute_alias Attribut: Alias]<br />
* [https://github.com/MetaModels/attribute_checkbox Attribut: Checkbox (Kontrollkästchen)]<br />
* [https://github.com/MetaModels/attribute_combinedvalues Attribut: Combined Values (Kombinierte Einträge)]<br />
* [https://github.com/MetaModels/attribute_color Attribut: Color (Farbe)]<br />
* [https://github.com/MetaModels/attribute_country Attribut: Country (Land)]<br />
* [https://github.com/MetaModels/attribute_decimal Attribut: Decimal (Dezimal)]<br />
* [https://github.com/MetaModels/attribute_file Attribut: File (Datei)]<br />
* [https://github.com/MetaModels/attribute_geoprotection Attribut: Geoprotection (Länderzuordnung)]<br />
* [https://github.com/MetaModels/attribute_langcode Attribut: Langcode (Sprachschlüssel)]<br />
* [https://github.com/MetaModels/attribute_longtext Attribut: Longtext (Langtext, Textarea)]<br />
* [https://github.com/MetaModels/attribute_select Attribut: Select (Auswahl)]<br />
* [https://github.com/MetaModels/attribute_numeric Attribut: Numeric (Numerisch)]<br />
* [https://github.com/MetaModels/attribute_rating Attribut: Rating (Bewertung)]<br />
* [https://github.com/MetaModels/attribute_tags Attribut: Tags (Mehrfachauswahl)]<br />
* [https://github.com/MetaModels/attribute_text Attribut: Text]<br />
* [https://github.com/MetaModels/attribute_timestamp Attribut: Timestamp (Datum)]<br />
* [https://github.com/MetaModels/attribute_url Attribut: URL]<br />
|<br />
* [https://github.com/MetaModels/attribute_translatedalias Attribut: Translated Alias]<br />
* [https://github.com/MetaModels/attribute_translatedfile Attribut: Translated File]<br />
* [https://github.com/MetaModels/attribute_translatedlongtext Attribut: Translated Longtext]<br />
* [https://github.com/MetaModels/attribute_translatedselect Attribut: Translated Select]<br />
* [https://github.com/MetaModels/attribute_translatedtags Attribut: Translated Tags]<br />
* [https://github.com/MetaModels/attribute_translatedtext Attribut: Translated Text]<br />
|<br />
* [https://github.com/MetaModels/filter_checkbox Filter: Checkbox]<br />
* [https://github.com/MetaModels/filter_fromto Filter: FromTo]<br />
* [https://github.com/MetaModels/filter_range Filter: Range]<br />
* [https://github.com/MetaModels/filter_select Filter: Select]<br />
* [https://github.com/MetaModels/filter_tags Filter: Tags]<br />
* [https://github.com/MetaModels/filter_text Filter: Text]<br />
|}<br />
Attribut- und Filterextensions werden für den Betrieb von MetaModels benötigt. Welche dieser Erweiterungen in einem Projekt zu Einsatz kommen sollen ist abhängig von den benötigten Funktionen.<br />
{{Hinweis|Das Attribut '''Geoprotection''' ist nicht mehr Teil der Nightly Builds. Kann aber jederzeit über den oben angegeben Link separat geladen werden.}}{{Hinweis|Das Attribut '''Rating''' benötigt die beiden PHP-Dateien '''SimpleAjax.php''' und '''SimpleAjaxFrontend.php''', welche mit dem aktuellen Nightly Build ausgeliefert werden. Die beiden PHP-Dateien müssen im Root-Verzeichnis der Contao-Installation abgelegt werden.}}<br />
<br />
==Download via git und Kommandozeile==<br />
In einer bash (Linux Kommandozeile bzw. cygwin Kommandozeile) kann man sich auch alle Unterprojekte der MetaModels via git clonen. Man sollte jedoch vorher in den Ordner wechseln, wohin die Projekte heruntergeladen werden sollen.<br />
<br />
{| style="width:100%"<br />
|-<br />
! '''Linux''' !! '''MacOS'''<br />
|-<br />
|<br />
In Benutzerverzeichnis wechseln und für den Pull ein Verzeichniss anlegen.<br />
<source lang="bash"><br />
cd ~<br />
mkdir MetaModels<br />
cd MetaModels<br />
</source><br />
|<br />
In Benutzerverzeichnis wechseln und für den Pull ein Verzeichniss anlegen.<br />
<source lang="bash"><br />
cd ~<br />
mkdir MetaModels<br />
cd MetaModels<br />
</source><br />
|-<br />
|<br />
Alle MetaModel Repos holen<br />
<source lang="bash"><br />
for i in `wget -qO- https://api.github.com/orgs/MetaModels/repos | \<br />
grep clone_url | \<br />
cut -d \" -f4`; do \<br />
git clone $i; \<br />
done;<br />
</source><br />
|<br />
Alle MetaModel Repos holen<br />
<source lang="bash"><br />
for i in `curl https://api.github.com/orgs/MetaModels/repos | \<br />
grep clone_url | \<br />
cut -d \" -f4`; do \<br />
git clone $i; \<br />
done;<br />
</source><br />
|}<br />
<br />
=Installation=<br />
Die zu installieren Ordner und Dateien müssen zur Installation im Contao-System wie folgt hochgeladen werden:<br />
{| style="width:80%"<br />
|-<br />
! '''Module''' (/system/modules) !! '''Drivers''' (/system/drivers)<br />
|-<br />
|<br />
* generalDriver<br />
* justtextwidgets<br />
* metamodels<br />
* metamodels_boilerplate<br />
* metamodelsattribute_alias<br />
* metamodelsattribute_checkbox<br />
* metamodelsattribute_combinedvalues<br />
* metamodelsattribute_color<br />
* metamodelsattribute_country<br />
* metamodelsattribute_decimal<br />
* metamodelsattribute_file<br />
* metamodelsattribute_geoprotection<br />
* metamodelsattribute_langcode<br />
* metamodelsattribute_longtext<br />
* metamodelsattribute_numeric<br />
* metamodelsattribute_rating<br />
* metamodelsattribute_select<br />
* metamodelsattribute_tags<br />
* metamodelsattribute_text<br />
* metamodelsattribute_timestamp<br />
* metamodelsattribute_translatedalias<br />
* metamodelsattribute_translatedfile<br />
* metamodelsattribute_translatedlongtext<br />
* metamodelsattribute_translatedselect<br />
* metamodelsattribute_translatedtags<br />
* metamodelsattribute_translatedtext<br />
* metamodelsattribute_url<br />
* metamodelsfilter_checkbox<br />
* metamodelsfilter_fromto<br />
* metamodelsfilter_range<br />
* metamodelsfilter_select<br />
* metamodelsfilter_tags<br />
* metamodelsfilter_text<br />
* metapalettes<br />
* multicolumnwizard<br />
|<br />
* DC_General.php<br />
|}<br />
Danach muss mittels des Installtools ein Update der Datenbank gemacht werden.<br />
<br />
=Backend Ansichten=<br />
<br />
===Leeres MetaModel===<br />
[[Datei:MetaModels_Backend_System.png|right|600px]]<br />
Nach Aktualisierung der Datenbank erscheint '''MetaModels''' neu als eigenständige Einstellung in der Backend-Navigation links.<br />
<div style="clear: both"></div><br />
<br />
===Erweiterungsverwaltung===<br />
[[Datei:MetaModels_Backend_System_ER.png|right|600px]]<br />
In der Erweiterungsverwaltung findet sich hingegen nichts, was auf MetaModels hinweist. Aber das ist gut so (Stand Mai 2013).<br />
<div style="clear: both"></div><br />
<br />
===MetaModel mit null Datensätzen===<br />
[[Datei:MetaModels_Backend_System_Beispiel.png|right|600px]]<br />
Nachdem ein erstes neues MetaModel erstellt wurde, erscheint folgende Darstellung:<br />
Weiterführende Informationen zu einem einfachen Praxisbeispiel findet man unter [[MetaModels_Beispielprojekt|MetaModels Beispielprojekt]]<br />
<div style="clear: both"></div><br />
<br />
=Konfiguration=<br />
<br />
===Dokumentation der Attribute===<br />
[[File:icons_attribute.png|left|link=|32px]]<br />
Zur [[MetaModels_Backend:_Attribute|Dokumentation der Attribute]].<br />
<br />
===Dokumentation der Ausgabevorgaben===<br />
[[File:icons_ausgabevorgaben.png|left|link=|32px]]<br />
Den Überblick findest du [[MetaModels_Backend:_Ausgabevorgaben|hier]].<br />
<br />
===Dokumentation der Eingabemaske (fka Paletteneinstellungen)===<br />
[[File:icons_paletteneinstellungen.png|left|link=|32px]]<br />
Den Überblick findest du [[MetaModels_Backend:_Eingabemaske|hier]].<br />
<br />
===Dokumentation der Filter===<br />
[[File:icons_filter.png|left|link=|32px]]<br />
Zum [[MetaModels_Backend:_Filter|Überblick über die Filter]].<br />
<br />
===Dokumentation der Ansichtseinstellungen===<br />
[[File:icons_ansichtseinstellungen.png|left|link=|32px]]<br />
Zum [[MetaModels_Backend:_Ansichtseinstellungen|Überblick der Ansichtseinstellungen]].<br />
<br />
=Basics=<br />
Einführende Beispiele, wie man MetaModels einrichten und konfigurieren kann, findet man hier:<br />
# [[MetaModels_Beispiel_1| Backend einrichten]] - am Beispiel einer Musiksammlung, Eingeben der Sammlung<br />
# [[MetaModels_Beispiel_2| Frontend einrichten]] - Die Inhalte im Frontend anzeigen (Liste und Detail)<br />
# [[MetaModels_Beispiel_3| Weitere Filter einrichten]] – Inhalte auf Published setzen, einfache Select-Filter<br />
# [[MetaModels_Beispiel_4| Weiteres MetaModels einrichten]] - komplexe Select-Filter einsetzen<br />
# [[MetaModels Insert-Tags| Insert-Tags]] - Insert-Tags in MetaModels<br />
<br />
=Tipps und Tricks=<br />
Umsetzung-Beispiele, wie man MetaModels ausbauen kann, findet man hier:<br />
# [[MetaModels_Beispiel:_Übersetzter_select| Übersetzer select]] - "Übersetzter select"-Attribut eingerichtet werden.<br />
# [[MetaModels_Beispiel:_Referenced_items| Referenced items]] - MetaModels miteinder verknüpfen<br />
<br />
=Frontendausgabe=<br />
{{Hinweis|Die Dokumentation sollte in eine andere Seite ausgelagert werden}}<br />
----<br />
started by: [[Benutzer:Planepix|Planepix]] 00:49, 28. Nov. 2012 (CET)<br><br />
completed by [[Benutzer:Luis|Luis]], [[Benutzer:lucina|Lucina]]</div>Andreasisaakhttps://de.contaowiki.org/MetaModelsMetaModels2014-03-11T19:44:53Z<p>Andreasisaak: </p>
<hr />
<div>[[Category:Extensions]]<br />
[[Category:MetaModels|B]]<br />
{{ExtInfo<br />
| Dev=Metamodels Team<br />
| DevSite=<br />
| Version=ab 2.11.X<br />
| ERLink=<br />
| VCSLink=https://github.com/MetaModels/core<br />
| TrackerLink=https://github.com/MetaModels/core/issues<br />
| Depending=[[DC_General]] [[Justtextwidgets]] [[MultiColumnWizard]] [[MetaPalettes]]<br />
}}<br />
<br />
=Vorwort: Wiki-Dokumentation der Erweiterung MetaModels (Nachfolger des Catalog)=<br />
Die Erweiterung MetaModels ist der Nachfolger der Catalog-Extension. Der Code wurde komplett neu entwickelt. Eine Kompatibilität zum Catalog besteht nicht.<br />
<br />
===Vorgehensschritte===<br />
# [[MetaModels|Start: Installation]] - Download und Installation von MetaModels<br />
# [[MetaModels_Beispiel_1|Beispiel 1: Backend einrichten]] - MetaModel erstellen, Daten erfassen<br />
# [[MetaModels_Beispiel_2|Beispiel 2: Frontend einrichten]] - Die Inhalte im Frontend anzeigen (Liste und Detail)<br />
# [[MetaModels_Beispiel_3|Beispiel 3: Weitere Filter einrichten]] – Inhalte auf Published setzen, einfache Select-Filter<br />
# [[MetaModels_Beispiel_4|Beispiel 4: Weiteres MetaModels einrichten]] - komplexe Select-Filter einsetzen<br />
<br />
=Download=<br />
<br />
==Download von der Demosite==<br />
[[Datei:logo-metamodels.png|link=|left|105px]]<br />
Unter der URL [http://now.metamodel.me now.metamodel.me] findet sich die Webseite zur Extension mit einer Frontentdemo und der Möglichkeit, Installationsarchive in den Formaten '''tgz''', '''tbz''' und '''zip''' mit so genannten Nightly Builds zu laden. Diese Archive beinhalten die MetaModels-Dateien, Attribute, Filter sowie sämtliche anderen Erweiterungen, die für den Betrieb nötig sind und ansonsten separat heruntergeladen und installiert werden müssen.<br />
<div style="clear: both"><br><br></div><br />
<br />
==Download aus dem Entwicklungsrepository GitHub==<br />
<br />
[[Datei:logo-github.png|link=|left|105px]]<br />
Zu finden ist die Erweiterung MetaModels auf GitHub:<br />
[https://github.com/MetaModels github.com/Metamodels]<br><br />
Aktuell können das Core, dazu abhängige weitere Erweiterungen und alle weiteren MetaModels Attribute/Filter manuell installiert werden.<br />
<div style="clear: both"><br></div><br />
<br />
===Core===<br />
* [https://github.com/MetaModels/core MetaModels (Das Core-Modul)]<br />
* [https://github.com/MetaModels/boilerplate Boilerplate (Erzeugt einen separaten Bereich in der Backend-Navigation)]<br />
<br />
===Abhängigkeiten===<br />
Benötigt werden folgende Erweiterungen:<br />
* [https://github.com/MetaModels DC_General]<br />
* [https://contao.org/de/extension-list/view/MetaPalettes.html MetaPalettes]<br />
* [http://www.contao.org/erweiterungsliste/view/MultiColumnWizard.html MultiColumnWizard]<br />
* [https://github.com/Discordier/justtextwidgets justtextwidgets]<br />
* [https://contao.org/de/extension-list/view/geoprotection.de.html geoprotection] (wird nur für das Attribut '''Geoprotection''' benötigt)<br />
<br />
===Verfügbare Attribute und Filter===<br />
Sobald der Core und benötigten sonstigen Erweiterungen installiert sind, werde die weiteren Attributs- und Filterextensions des MetaModels benötigt.<br />
Dazu gehören:<br />
{| style="width:100%"<br />
|-<br />
! '''Attribute''' !! '''Attribute (translated)''' !! '''Filter'''<br />
|-<br />
|<br />
* [https://github.com/MetaModels/attribute_alias Attribut: Alias]<br />
* [https://github.com/MetaModels/attribute_checkbox Attribut: Checkbox (Kontrollkästchen)]<br />
* [https://github.com/MetaModels/attribute_combinedvalues Attribut: Combined Values (Kombinierte Einträge)]<br />
* [https://github.com/MetaModels/attribute_color Attribut: Color (Farbe)]<br />
* [https://github.com/MetaModels/attribute_country Attribut: Country (Land)]<br />
* [https://github.com/MetaModels/attribute_decimal Attribut: Decimal (Dezimal)]<br />
* [https://github.com/MetaModels/attribute_file Attribut: File (Datei)]<br />
* [https://github.com/MetaModels/attribute_geoprotection Attribut: Geoprotection (Länderzuordnung)]<br />
* [https://github.com/MetaModels/attribute_langcode Attribut: Langcode (Sprachschlüssel)]<br />
* [https://github.com/MetaModels/attribute_longtext Attribut: Longtext (Langtext, Textarea)]<br />
* [https://github.com/MetaModels/attribute_select Attribut: Select (Auswahl)]<br />
* [https://github.com/MetaModels/attribute_numeric Attribut: Numeric (Numerisch)]<br />
* [https://github.com/MetaModels/attribute_rating Attribut: Rating (Bewertung)]<br />
* [https://github.com/MetaModels/attribute_tags Attribut: Tags (Mehrfachauswahl)]<br />
* [https://github.com/MetaModels/attribute_text Attribut: Text]<br />
* [https://github.com/MetaModels/attribute_timestamp Attribut: Timestamp (Datum)]<br />
* [https://github.com/MetaModels/attribute_url Attribut: URL]<br />
|<br />
* [https://github.com/MetaModels/attribute_translatedalias Attribut: Translated Alias]<br />
* [https://github.com/MetaModels/attribute_translatedfile Attribut: Translated File]<br />
* [https://github.com/MetaModels/attribute_translatedlongtext Attribut: Translated Longtext]<br />
* [https://github.com/MetaModels/attribute_translatedselect Attribut: Translated Select]<br />
* [https://github.com/MetaModels/attribute_translatedtags Attribut: Translated Tags]<br />
* [https://github.com/MetaModels/attribute_translatedtext Attribut: Translated Text]<br />
|<br />
* [https://github.com/MetaModels/filter_checkbox Filter: Checkbox]<br />
* [https://github.com/MetaModels/filter_fromto Filter: FromTo]<br />
* [https://github.com/MetaModels/filter_range Filter: Range]<br />
* [https://github.com/MetaModels/filter_select Filter: Select]<br />
* [https://github.com/MetaModels/filter_tags Filter: Tags]<br />
* [https://github.com/MetaModels/filter_text Filter: Text]<br />
|}<br />
Attribut- und Filterextensions werden für den Betrieb von MetaModels benötigt. Welche dieser Erweiterungen in einem Projekt zu Einsatz kommen sollen ist abhängig von den benötigten Funktionen.<br />
{{Hinweis|Das Attribut '''Geoprotection''' ist nicht mehr Teil der Nightly Builds. Kann aber jederzeit über den oben angegeben Link separat geladen werden.}}{{Hinweis|Das Attribut '''Rating''' benötigt die beiden PHP-Dateien '''SimpleAjax.php''' und '''SimpleAjaxFrontend.php''', welche mit dem aktuellen Nightly Build ausgeliefert werden. Die beiden PHP-Dateien müssen im Root-Verzeichnis der Contao-Installation abgelegt werden.}}<br />
<br />
==Download via git und Kommandozeile==<br />
In einer bash (Linux Kommandozeile bzw. cygwin Kommandozeile) kann man sich auch alle Unterprojekte der MetaModels via git clonen. Man sollte jedoch vorher in den Ordner wechseln, wohin die Projekte heruntergeladen werden sollen.<br />
<br />
{| style="width:100%"<br />
|-<br />
! '''Linux''' !! '''MacOS'''<br />
|-<br />
|<br />
In Benutzerverzeichnis wechseln und für den Pull ein Verzeichniss anlegen.<br />
<source lang="bash"><br />
cd ~<br />
mkdir MetaModels<br />
cd MetaModels<br />
</source><br />
|<br />
In Benutzerverzeichnis wechseln und für den Pull ein Verzeichniss anlegen.<br />
<source lang="bash"><br />
cd ~<br />
mkdir MetaModels<br />
cd MetaModels<br />
</source><br />
|-<br />
|<br />
Alle MetaModel Repos holen<br />
<source lang="bash"><br />
for i in `wget -qO- https://api.github.com/orgs/MetaModels/repos | \<br />
grep clone_url | \<br />
cut -d \" -f4`; do \<br />
git clone $i; \<br />
done;<br />
</source><br />
|<br />
Alle MetaModel Repos holen<br />
<source lang="bash"><br />
for i in `curl https://api.github.com/orgs/MetaModels/repos | \<br />
grep clone_url | \<br />
cut -d \" -f4`; do \<br />
git clone $i; \<br />
done;<br />
</source><br />
|}<br />
<br />
=Installation=<br />
Die zu installieren Ordner und Dateien müssen zur Installation im Contao-System wie folgt hochgeladen werden:<br />
{| style="width:80%"<br />
|-<br />
! '''Module''' (/system/modules) !! '''Drivers''' (/system/drivers)<br />
|-<br />
|<br />
* generalDriver<br />
* justtextwidgets<br />
* metamodels<br />
* metamodels_boilerplate<br />
* metamodelsattribute_alias<br />
* metamodelsattribute_checkbox<br />
* metamodelsattribute_combinedvalues<br />
* metamodelsattribute_color<br />
* metamodelsattribute_country<br />
* metamodelsattribute_decimal<br />
* metamodelsattribute_file<br />
* metamodelsattribute_geoprotection<br />
* metamodelsattribute_langcode<br />
* metamodelsattribute_longtext<br />
* metamodelsattribute_numeric<br />
* metamodelsattribute_rating<br />
* metamodelsattribute_select<br />
* metamodelsattribute_tags<br />
* metamodelsattribute_text<br />
* metamodelsattribute_timestamp<br />
* metamodelsattribute_translatedalias<br />
* metamodelsattribute_translatedfile<br />
* metamodelsattribute_translatedlongtext<br />
* metamodelsattribute_translatedselect<br />
* metamodelsattribute_translatedtags<br />
* metamodelsattribute_translatedtext<br />
* metamodelsattribute_url<br />
* metamodelsfilter_checkbox<br />
* metamodelsfilter_fromto<br />
* metamodelsfilter_range<br />
* metamodelsfilter_select<br />
* metamodelsfilter_tags<br />
* metamodelsfilter_text<br />
* metapalettes<br />
* multicolumnwizard<br />
|<br />
* DC_General.php<br />
|}<br />
Danach muss mittels des Installtools ein Update der Datenbank gemacht werden.<br />
<br />
=Backend Ansichten=<br />
<br />
===Leeres MetaModel===<br />
[[Datei:MetaModels_Backend_System.png|right|600px]]<br />
Nach Aktualisierung der Datenbank erscheint '''MetaModels''' neu als eigenständige Einstellung in der Backend-Navigation links.<br />
<div style="clear: both"></div><br />
<br />
===Erweiterungsverwaltung===<br />
[[Datei:MetaModels_Backend_System_ER.png|right|600px]]<br />
In der Erweiterungsverwaltung findet sich hingegen nichts, was auf MetaModels hinweist. Aber das ist gut so (Stand Mai 2013).<br />
<div style="clear: both"></div><br />
<br />
===MetaModel mit null Datensätzen===<br />
[[Datei:MetaModels_Backend_System_Beispiel.png|right|600px]]<br />
Nachdem ein erstes neues MetaModel erstellt wurde, erscheint folgende Darstellung:<br />
Weiterführende Informationen zu einem einfachen Praxisbeispiel findet man unter [[MetaModels_Beispielprojekt|MetaModels Beispielprojekt]]<br />
<div style="clear: both"></div><br />
<br />
=Konfiguration=<br />
<br />
===Dokumentation der Attribute===<br />
[[File:icons_attribute.png|left|link=|32px]]<br />
Zur [[MetaModels_Backend:_Attribute|Dokumentation der Attribute]].<br />
<br />
===Dokumentation der Ausgabevorgaben===<br />
[[File:icons_ausgabevorgaben.png|left|link=|32px]]<br />
Den Überblick findest du [[MetaModels_Backend:_Ausgabevorgaben|hier]].<br />
<br />
===Dokumentation der Eingabemaske (fka Paletteneinstellungen)===<br />
[[File:icons_paletteneinstellungen.png|left|link=|32px]]<br />
Den Überblick findest du [[MetaModels_Backend:_Eingabemaske|hier]].<br />
<br />
===Dokumentation der Filter===<br />
[[File:icons_filter.png|left|link=|32px]]<br />
Zum [[MetaModels_Backend:_Filter|Überblick über die Filter]].<br />
<br />
===Dokumentation der Ansichtseinstellungen===<br />
[[File:icons_ansichtseinstellungen.png|left|link=|32px]]<br />
Zum [[MetaModels_Backend:_Ansichtseinstellungen|Überblick der Ansichtseinstellungen]].<br />
<br />
=Basics=<br />
Einführende Beispiele, wie man MetaModels einrichten und konfigurieren kann, findet man hier:<br />
# [[MetaModels_Beispiel_1| Backend einrichten]] - am Beispiel einer Musiksammlung, Eingeben der Sammlung<br />
# [[MetaModels_Beispiel_2| Frontend einrichten]] - Die Inhalte im Frontend anzeigen (Liste und Detail)<br />
# [[MetaModels_Beispiel_3| Weitere Filter einrichten]] – Inhalte auf Published setzen, einfache Select-Filter<br />
# [[MetaModels_Beispiel_4| Weiteres MetaModels einrichten]] - komplexe Select-Filter einsetzen<br />
# [[MetaModels Insert-Tags| Insert-Tags]] - Insert-Tags in MetaModels<br />
<br />
=Tipps und Tricks=<br />
Umsetzung-Beispiele, wie man MetaModels ausbauen kann, findet man hier:<br />
# [[MetaModels_Beispiel:_Übersetzter_select| Übersetzer select]] - "Übersetzter select"-Attribut eingerichtet werden.<br />
# [[MetaModels_Beispiel:_Referenced_items| Referenced items]] - MetaModels miteinder verknüpfen<br />
<br />
=Frontendausgabe=<br />
{{Hinweis|Die Dokumentation sollte in eine andere Seite ausgelagert werden}}<br />
----<br />
started by: [[Benutzer:Planepix|Planepix]] 00:49, 28. Nov. 2012 (CET)<br><br />
completed by [[Benutzer:Luis|Luis]], [[Benutzer:lucina|Lucina]]</div>Andreasisaakhttps://de.contaowiki.org/MetaModels_Insert-TagsMetaModels Insert-Tags2014-01-08T19:49:49Z<p>Andreasisaak: </p>
<hr />
<div>= Insert-Tags =<br />
Die folgenden Insert-Tags stehen in MetaModels zur Verfügung:<br />
<br />
== Allgemeine Insert-Tags ==<br />
<br />
<source lang="php"><br />
{{mm::total::mod::*}} -> mm::total::mod::[ID]<br />
{{mm::total::ce::*}} -> mm::total::ce::[ID]<br />
</source><br />
== Itembasierte Insert-Tags ==<br />
<source lang="php"><br />
{{mm::item::*::*::*}} -> mm::item::[MM Name oder ID]::[Item ID oder ID,ID,ID]::[ID Rendersetting](::[Output raw|text|html|..])<br />
{{mm::detail::*::*::*}} -> mm::detail::[MM Name oder ID]::[Item ID]::[ID Rendersetting](::[Output raw|text|html|..])<br />
</source><br />
== Attributbasierte Insert-Tags ==<br />
<source lang="php"><br />
{{mm::attribute::*::*::*::*}} -> mm::attribute::[MM Name oder ID]::[Item ID]::[Attribute Name oder ID](::[Output raw|text|html|..])<br />
</source><br />
== Weiterleitungen ==<br />
<source lang="php"><br />
{{mm::jumpTo::*::*::*::*}} -> mm::jumpTo::[MM Name oder ID]::[Item ID]::[ID Rendersetting](::[Parameter (Default:url)|label|page|params.attname])<br />
</source><br />
<br />
== Quelle auf Github ==<br />
https://github.com/MetaModels/core/blob/dev/src/system/modules/metamodels/MetaModelInsertTags.php#L20</div>Andreasisaakhttps://de.contaowiki.org/MetaModels_Insert-TagsMetaModels Insert-Tags2014-01-08T19:48:52Z<p>Andreasisaak: </p>
<hr />
<div>= Insert-Tags =<br />
Die folgenden Insert-Tags stehen in MetaModels zur Verfügung:<br />
<br />
== Allgemeine Insert-Tags ==<br />
<br />
<source lang="php"><br />
{{mm::total::mod::*}} -> mm::total::mod::[ID]<br />
{{mm::total::ce::*}} -> mm::total::ce::[ID]<br />
</source><br />
== Itembasierte Insert-Tags ==<br />
<source lang="php"><br />
{{mm::item::*::*::*}} -> mm::item::[MM Name oder ID]::[Item ID oder ID,ID,ID]::[ID Rendersetting](::[Output raw|text|html|..])<br />
{{mm::detail::*::*::*}} -> mm::detail::[MM Name oder ID]::[Item ID]::[ID Rendersetting](::[Output raw|text|html|..])<br />
</source><br />
== Attributbasierte Insert-Tags ==<br />
<source lang="php"><br />
{{mm::attribute::*::*::*::*}} -> mm::attribute::[MM Name oder ID]::[Item ID]::[Attribute Name oder ID](::[Output raw|text|html|..])<br />
</source><br />
== Weiterleitungen ==<br />
<source lang="php"><br />
{{mm::jumpTo::*::*::*::*}} -> mm::jumpTo::[MM Name oder ID]::[Item ID]::[ID Rendersetting](::[Parameter (Default:url)|label|page|params.attname])<br />
</source></div>Andreasisaakhttps://de.contaowiki.org/SyncCtoSyncCto2013-09-25T22:37:45Z<p>Andreasisaak: </p>
<hr />
<div>[[Category:Extensions]]<br />
Mit '''syncCto''' kann der Benutzer im Backend mehrere Contao-Installationen miteinander synchronisieren.<br />
{{ExtInfo<br />
| DevSite=http://www.men-at-work.de<br />
| ExtVersion=2.4.2<br />
| Version=2.11 - 3.1<br />
| ERLink=http://www.contao.org/erweiterungsliste/view/syncCto.html<br />
| TrackerLink=https://github.com/menatwork/syncCto<br />
}}<br />
<br />
==Was ist syncCto?==<br />
<br />
syncCto bietet die Möglichkeit mehrere Contao-Installationen auf Basis einer Grund-Installation zu synchronisieren. Alle Aktionen können bequem im Backend durchgeführt werden. Durch die Integration in das Contao Rechtesystem können auch Redakteure eine Auswahl vorher definierter Datenbank-Tabellen und Dateien synchronisieren.<br />
<br />
Ein integrierter Backup-Manager sichert ausgewählte Datenbank-Tabellen, wahlweise die gesamte Contao-Installation oder nur die persönlichen Daten. Angelegte Backups können durch den Backup-Manager auch wieder importiert werden.<br />
<br />
Durch die Verwendung von syncCto können Redakteure schnell und einfach in einem Preview-System arbeiten und bei Vollendung der Arbeit den aktuellen und freigegebenen Stand zum Live-System synchronisieren.<br />
<br />
==Server und Client bei syncCto==<br />
Zu unterscheiden ist zwischen Server und Client. Die Server-Installation ist die Installation die auf den Client übertragen werden soll. Der Client ist die Contao Installation, zu der synchronisiert werden soll, also meistens die Installation, die auf dem Live-Server liegt. <br /><br />
Anders gesagt, Entwicklungssystem: syncCto Server ; Livesystem: syncCto Client. Es gibt komplexere Beispiele, dazu folgt mehr in den weiteren Abschnitten.<br />
<br />
==Konfiguration==<br />
<br />
===Systemcheck===<br />
<br />
Für eine reibungslose und fehlerfreie Synchronisation ist es wichtig als erstes alle Installationen zu kontrollieren. Dafür steht der neue Menüpunkt Systemcheck zur Verfügung, denn dort werden alle für syncCto wichtigen Funktionen und Ressourcen des Servers aufgelistet. Sind alle Zellen grün, ist der erste Schritt getan. Sollte dies nicht der Fall sein, kann syncCto womöglich nicht erfolgreich funktionieren.<br />
<br />
===Einstellungen===<br />
<br />
Bevor man die erste Installation synchronisieren kann, muss zwingend bei allen Installationen auf denen syncCto installiert ist, der Menüpunkt Einstellungen ('''Contao Einstellungen''') aufgerufen und gespeichert werden. Bei diesem Vorgang wird der ctoCommunication API Key generiert. Den ctoCommunication API Key aus den Einstellungen der Clientinstallation benötigt man später bei der Erstellung des zuvor erwähnten Clients.<br />
<br />
Zu beachten: Der von syncCto verwendete ctoCommunication API Key ist nicht der Contao-Installations-Schlüssel.<br />
<br />
==Clients verwalten==<br />
<br />
Um im Server einen neuen Client anzulegen, klickt man im Menüpunkt Clients einfach auf den Button "Neuer Client".<br />
<br />
* '''ctoCommunication API Key:''' Dieser Schlüssel sichert die Kommunikation zwischen den Contao-Installationen ab.<br />
* '''Titel:''' z.B. der Kundenname und der Name des Servers<br />
* '''Beschreibung:''' Eine aussagekräftige Beschreibung des Servers<br />
* '''Domain:''' Die Domain des Clients, ohne Unterverzeichnis<br />
* '''Serverpfad:''' Falls sich die Installation in einem Unterverzeichnis befindet<br />
* '''Portnummer:''' Standardmäßig ist es der Port 80<br />
* '''Verschlüsselungs-Engine:''' Es stehen drei Möglichkeiten zur Verfügung, in der Regel genügt "Blowfish"<br />
* '''HTTP-Authentifizierung aktivieren:''' Falls der Client mit einer .htaccess abgesichert ist, kann man hier den Benutzernamen und das Passwort eingeben und die gesicherte Installation synchronisieren<br />
<br />
==Synchronisation==<br />
<br />
Um den Client mit dem Server zu synchronisieren, klickt man beim entsprechenden Client auf den rechten Button "Client synchronisieren". Im nächsten Fenster wählt man die Synchronisationsart aus.<br />
<br />
* '''Contao-Installation:''' Die gesamte Contao-Installation, ausgenommen ist tl_files<br />
* '''Persönliche Daten:''' Nur Dateien und Ordner im tl_files Ordner. Core-Dateien werden nicht berücksichtigt<br />
* '''Konfigurationsdateien:''' Einträge aus der localconfig.php<br />
<br />
Datenbank-Tabellen werden nicht mehr (wie es bis Version 2.1 war) im DCA ausgewählt, sondern während der Synchronisation in einer Art Vergleichsliste dargestellt. Dort kann man dann auswählen welche Tabelle man synchronisieren will und welche ignoriert werden sollen.<br />
<br />
==Backups==<br />
<br />
Backups können im Backend unter dem Menüpunkt Backups angelegt und wiederhergestellt werden. Alle Backups werden im automatisch angelegten Ordner "syncCto_backups" in den tl_files abgelegt. Datenbanken finden sich im Ordner "database" und Dateien im Ordner "files". Wenn man Backups wieder einspielen möchte, klickt man im Menüpunkt auf Backups und wählt die Art der Wiederherstellung. Im nächsten Schritt wählt man die entsprechende Datei aus und klickt auf "Wiederherstellen". Die Dateien oder die Datenbank auf dem Server werden danach mit den Daten aus dem Backup überschrieben.<br />
<br />
===Backups automatisiert löschen===<br />
<br />
Zur Verfügung stehen folgende zwei PHP-Skripte:<br />
<br />
* '''SyncCtoDeleteDbBackups.php''' Löscht alle Datenbank-Backups<br />
* '''SyncCtoDeleteFileBackups.php''' Löscht alle Datei-Backups<br />
<br />
Die Cron Extension wird seit 2.1 nicht mehr automatisch ausgeliefert, daher muss sie manuell nachinstalliert werden oder die Dateien werden über einen echten Cronjob konfiguriert.<br />
<br />
==Anwendungsfall 1==<br />
<br />
Auf dem Webserver laufen zwei Contao-Installationen.<br />
<br />
* Die Adresse der 1. Webseite heißt ''<nowiki>http://192.168.0.100/server/</nowiki>''<br />
* Die Adresse der 2. Webseite heißt ''<nowiki>http://192.168.0.100/client/</nowiki>''<br />
<br />
Der Server, bei syncCto, beschreibt immer die Installation die alle Informationen hat, die man auf eine andere Installation übertragen will. Dieses Ziel wird bei syncCto als Client beschrieben. Server und Client laufen also auf der gleichen Maschine auf den gleichen Webserver. <br />
<br />
==Anwendungsfall 2==<br />
<br />
Es gibt 2 Seiten die auf zwei verschiedenen Maschinen laufen. Beide Maschinen sind verbunden; egal ob nun im lokalen Netzwerk oder über das Internet. Dabei ist es wichtig das der Server den Client erreichen kann. Der Server kann lokal zuhause auf dem internen Webserver laufen. Der Client allerdings muss von außen erreichbar sein.<br />
<br />
* Server läuft lokal zuhause die Adresse ist ''<nowiki>http://192.168.0.100/server</nowiki>''<br />
* Der Client liegt im Internet und hat die Adresse ''<nowiki>http://www.example.com</nowiki>''<br />
<br />
So wird im Server für den Client einfach die Adresse ''<nowiki>http://www.example.com</nowiki>'' eingetragen.<br />
<br />
==Mögliche Problemfälle==<br />
<br />
Der SMH ist keine Lösung da die Daten via HTTP versendet werden. Ein ordentlich konfigurierter Server ist daher Pflicht.<br />
<br />
Um möglichen Problemfällen auf die Spur zu kommen kann man den Debugmodus in den Einstellungen aktivieren. Dabei wird die Dauer der Synchronisation und die Speicherauslastung während der Synchronisation ausgegeben. Zusätzlich werden Debugdateien im Tempordner von Contao abgelegt. Diese sind bei Problemen immer im Forum anzuhängen.<br />
<br />
==Tipps und Tricks==<br />
<br />
===Providerspezifische Anpassungen===<br />
<br />
====Domainfactory====<br />
Bei Domainfactory sind oft die Defaulteinstellungen in der PHP.INI nicht ausreichend. So ist gerne der PHP_SAFEMODE aktiviert und dafür ZipArchive deaktiviert. Zum Glück bietet DF die Möglichkeit, im Kundenmenü je Domain eine eigene PHP.INI anzulegen.<br />
<br />
Mit den folgenden Einstellungen klappt es dann auch bei df.eu:<br />
<br />
extension_dir = "/usr/local/lib/php_modules/5-STABLE"<br />
<br />
extension = "zip.so"<br />
<br />
Bei dieser Gelegenheit kann man dann auch gleich das vorgegebene Memory-Limit auf 128 MB anpassen.<br />
<br />
Quelle: u.a. [http://www.df.eu/de/service/df-faq/webhosting/skriptsprachen/phpini-editor/ DomainFactory]<br />
<br />
==Weiterführende Links==<br />
<br />
* [http://www.contao-tutorials.de/tutorial/contao-installationen-synchronisieren.html Tutorial zu syncCto2]</div>Andreasisaakhttps://de.contaowiki.org/Diskussion:MetaModels_Beispiel_1Diskussion:MetaModels Beispiel 12013-09-19T10:58:25Z<p>Andreasisaak: Die Seite wurde neu angelegt: „''Obwohl es so aussieht, als sei Übersetzung eine frei wählbare Option, ist "diese Option" ein MUSS, denn ohne Sprachenzuweisung funktioniert das ganze MetaMode…“</p>
<hr />
<div>''Obwohl es so aussieht, als sei Übersetzung eine frei wählbare Option, ist "diese Option" ein MUSS, denn ohne Sprachenzuweisung funktioniert das ganze MetaModel nicht!'' <br />
<br />
Wieso schreibt man so ein Quatsch? MetaModels ist auch ohne Sprachenzuordnung voll funktionsfähig. Man sollte nur im Vorfeld sein Hirn einschalten da es nachträglich einfach viel Arbeit bedeuten kann das MetaModel von einer Sprache auf mehrere umzubauen. Das geht nicht automatisiert und ist technisch extrem aufwändig. Aber deswegen zu schreiben das deshalb MetaModels nicht ohne Mehrsprachigkeit und einer ausgewählten Sprache nicht funktioniert ist total falsch!!!</div>Andreasisaakhttps://de.contaowiki.org/MetaModels_Beispiel_1MetaModels Beispiel 12013-09-19T10:55:29Z<p>Andreasisaak: </p>
<hr />
<div>[[Category:Admin HOWTOS]]<br />
[[Category:MetaModels|B]]<br />
=Aufgabenstellung: Backend einrichten=<br />
Als Beispielprojekt soll eine einfache "Musikbox" gebaut werden, in der Musikstücke mit gewissen Attributen ("Eigenschaften") erfasst werden. Zu diesem Zweck wird zuerst das Backend aufgebaut. Hierzu braucht man eine Übersichtsliste und ein Erfassungsformular.<br />
<br />
===Vorgehensschritte===<br />
# [[MetaModels|Start: Installation]] - Download und Installation von MetaModels<br />
# [[MetaModels_Beispiel_1|Beispiel 1: Backend einrichten]] - MetaModel erstellen, Daten erfassen<br />
# [[MetaModels_Beispiel_2|Beispiel 2: Frontend einrichten]] - Die Inhalte im Frontend anzeigen (Liste und Detail)<br />
# [[MetaModels_Beispiel_3|Beispiel 3: Weitere Filter einrichten]] – Inhalte auf Published setzen, einfache Select-Filter<br />
# [[MetaModels_Beispiel_4|Beispiel 4: Weiteres MetaModels einrichten]] - komplexe Select-Filter einsetzen<br />
<br />
=Eine leere Datenbank erstellen=<br />
<br />
[[File:mm_startscreen.png|thumb|400px]]<br />
<br />
Zuerst wird ein neues MetaModel erstellt. Technischen gesehen wird dabei in der Contao-Datenbank eine leere Tabelle angelegt. <br />
<br />
* Klick auf '''Neues MetaModel'''<br />
* Name: '''Musicbox'''<br />
* TabellenName: '''mm_musicbox'''<br />
<br />
===Anmerkungen===<br />
<br />
* In unserem Beispiel aktivieren wir die Mehrsprachigkeit um nachträglich weitere Sprachen anlegen zu können. Falls man im Vorfeld weiß das man keine weiteren Sprachen benötigt, muss der Haken nicht gesetzt werden. MetaModels ist auch ohne Mehrprachigkeit komplett funktionstüchtig.<br />
* '''Varianten unterstützen''' wird vorläufig nicht benötigt.... und gegebenenfalls zu einem späteren Zeitpunkt erläutert.<br />
<br />
===Auszuführen===<br />
<br />
* '''Übersetzung''' anhaken<br />
* mindestens eine unterstützte Sprache auswählen<br />
* eine Sprache (z.B. '''Deutsch''') zum Fallback machen<br />
* '''Varianten aktivieren''' vorerst nicht anhaken<br />
<br />
Man sieht nun ein MetaModel "Musicbox" mit 0 (null) Datensätzen und einer Reihe von Icons, die nun zur Weiterbearbeitung genutzt werden.<br />
<br />
<div style="clear: both"><br></div><br />
<br />
==MetaModels Backend-Funktionen==<br />
Kurze Erklärung, was sich hinter den nun dargestellten Symbolen verbirgt (in Klammern ist angegegeben, was als Tooltip ausgegeben wird):<br />
<br />
[[File:mm_backend_funktionen_icons.png|link=|border]]<br />
<br />
[[File:icons_bearbeiten.png|left|32px]]<br />
<br />
Hier gelangt man wieder zurück zum gleichen Screen, wie bie der Erstellung eines neuen MetaModels. Hier kann man jederzeit sowohl den '''Namen''' als auch den '''Tabellennamen''' des MetaModels ändern.<br />
<br />
# [[MetaModels_Backend:_Attribute|'''Attribute''']] (Attribute für MetaModel ID x definieren)<br />
# [[MetaModels_Backend:_Ausgabevorgaben|'''Ausgabevorgaben''']] (Render-Einstellungen für MetaModel ID x definieren)<br />
# [[MetaModels_Backend:_Eingabemaske|'''Eingabemaske''']] (Eingabemaske für das MetaModel ID x definieren)<br />
# [[MetaModels_Backend:_Filter|'''Filter''']] (Filter für MetaModel ID x definieren)<br />
# [[MetaModels_Backend:_Ansichtseinstellungen|'''Paletten- und Ansichtseinstellungen''']] (Definieren Sie die Eingabe- / Ausgabe-Optionen für MetaModel ID x)<br />
<br />
=Das Backend konfigurieren=<br />
<br />
Um das Backend für die Erfassung der Daten vorzubereiten benötigt man a) eine Übersichtsliste und b) ein Erfassungsformular. Hierzu braucht man 4 der 5 Backend-Funktionen von MetaModels.<br />
<br />
* Datenbank erstellen, benennen, Sprachvariable zuweisen<br />
* Felder definieren, Attribute festlegen, Erfassungsformular gestalten<br />
* Übersichtsliste definieren<br />
* Erfassung (z.B. für Redakteure) freigeben<br />
<br />
<br />
==MM-Funktion: Attribute==<br />
<br />
[[File:icons_attribute.png|left|32px]]<br />
<br />
Hier erfasst man die benötigen Felder für die Eingabe.<br />
s. [[MetaModels_Backend:_Attribute|allgemeine Infos]] zu den Attributen<br />
<br />
[[File:mm_attribute_erfassen.png|thumb|400px]]<br />
<br />
Hierzu gibt man folgende Felder ein (im nebenstehenden Screen ist das beispielhaft für das Attribut "Titel" dargestellt):<br />
{|<br />
|- <br />
| '''Titel'''<br />
|<br />
* Attribute Type= Text<br />
* Column name= title<br />
* Name (deutsch)= Titel<br />
* Description (deutsch)= Name des Stücks<br />
|- <br />
| '''Interpret'''<br />
| <br />
* Attribute Type= Text<br />
* Column name= composer<br />
* Name (deutsch)= Interpret<br />
* Description (deutsch)= Name der Band, SängerIn oder InterpretIn<br />
|- <br />
| '''Land'''<br />
| <br />
* Attribute Type= Text<br />
* Column name= country<br />
* Name (deutsch)= Land<br />
* Description (deutsch)=<br />
|- <br />
| '''Jahr'''<br />
| <br />
* Attribute Type= Dezimal<br />
* Column name= year<br />
* Name (deutsch)= Jahr<br />
* Description (deutsch)= Erscheinungsjahr<br />
|- <br />
| '''Beschreibung'''<br />
| <br />
* Attribute Type= Langtext<br />
* Column name= description<br />
* Name (deutsch)= Beschreibung<br />
* Description (deutsch)= Wikipedia, Kurzbeschreibung, etc.<br />
|- <br />
| '''Cover'''<br />
| <br />
* Attribute Type= Datei<br />
* Column name= images<br />
* Name (deutsch)= Cover<br />
* Description (deutsch)= Cover, Bilder<br />
|- <br />
|colspan="2"|Bis jetzt wurde bei keinem der Attribute die Option '''Unique values''' aktiviert.<br><br>Um die Einträge eindeutig identifizieren zu können, wird zusätzlich ein Alias-Attribut erzeugt:<br />
|- <br />
| '''Alias'''<br />
| <br />
* Attribute Type= Alias<br />
* Column name= alias<br />
* Name (deutsch)= Alias<br />
* Description (deutsch)=<br />
* Unique values= aktiviert<br />
* Alias Neuerstellung erzwingen = aktiviert<br>(dann muss kein Alias eingegeben werden, wird neu berechnet bei Änderung des Titels)<br />
* Aliasfelder = Titel<br />
|}<br />
<br />
<div><br />
<br />
==MM-Funktion: Ausgabevorgaben (aka Render-Einstellungen)==<br />
[[File:icons_ausgabevorgaben.png|left|32px]]<br />
Hier wird die Ansicht erfasst: Eine Listendarstellung für das Backend.<br />
<br />
[[File:mm_ausgabe_definieren.png|right|thumb|400px]]<br />
<br />
* Auf '''neu''' klicken<br />
* '''BE Listenansicht''' eingeben<br />
* Der Rest kann so stehen bleiben, denn für die BE Listenansicht braucht man weder eine '''Zielseite''' noch '''Filter settings'''.<br />
<br />
(s. [[MetaModels_Backend:_Ausgabevorgaben|allgemeine Ausgabe-Vorgaben]])<br />
<br />
<div style="clear: both"></div><br />
<br />
[[File:mm_ausgabe_attribute_definieren.png|thumb|400px]]<br />
<br />
Um auszuwählen, welche Felder in der BE Listenansicht angezeigt werden sollen, klickt man einfach auf das entsprechende Icon rechts:<br />
<br />
* '''Add all''' fügt alle Felder auf einen Rutsch hinzu. Man kann auch '''Neu''' wählen und die Felder einzeln hinzufügen, aber mit '''Add all''' gehts am schnellsten.<br />
* Die Frage, ob alle Attribute hinzugefügt werden sollen("''Add all attributes to render setting''"), wird mit '''Weiter''' bestätigt.<br />
* Nun werden alle Attribute aufgelistet, die im vorangegangenen Schritt erfasst worden sind.<br />
<br />
Über das übliche 'Auge' werden nur die Attribute sichtbar gemacht, die in der Backend-Liste angezeigt werden sollen.<br />
Für dieses Tutorial wählen wir : '''Titel''', '''Interpret''', '''Land''' und '''Jahr'''.<br />
<br />
(( alter Screen, wird ersetzt ))<br />
<div style="clear: both"></div><br />
<br />
</div><br />
<br />
==MM-Funktion: Eingabemaske (fka Paletteneinstellungen)==<br />
<br />
[[File:icons_paletteneinstellungen.png|left|32px]]<br />
<br />
Hier legt man fest, wo und wie im BE die Daten zur Musicbox erfasst werden sollen.<br />
<br />
===BE-Liste===<br />
[[File:mm_paletten_BE_liste.png|thumb|400px]]<br />
Nach Klick auf '''Neue Eingabemaske''' öffnet sich ein [[MetaModels_Backend:_Eingabemaske|Erfassungsformular]]. Hier die Werte eingeben, wie nebenan abgebildet:<br />
* Name: '''BE Erfassung'''<br />
* Option '''Als Standard benutzen'''<br />
* Panel-Layout: Es stehen 4 Werte ('''filter''', '''sort''', '''search''' und '''limit''') zur Verfügung. Diese können auch über das Icon rechts abgerufen werden.<br />
**Werden hier mehrere Werte eingegeben, so sind diese entweder durch Komma (,) oder durch Semikolon (;) voneinander zu trennen - nur mit Leerzeichen getrennte Werte werden ignoriert.<br />
**Komma => Ausgabe in der gleichen Zeile wie der vorhergehende Wert<br />
**Semikolon => Ausgabe in neuer Zeile.<br />
* Integration: '''Als Einzeltabelle'''<br />
* Sortiermodus: '''2 Datensätze nach wählbarem Feld sortiert darstellen''' (Wichtig: Sowohl dieser Wert als auch '''sort''' im '''Panel-Layout''' müssen definiert sein, ansonsten erscheint die Sortier-Funktion nicht.<br />
* Sortierung: Auf- oder Absteigend... wie es dir gefällt<br />
* Backend-Bereich: '''Inhalte''' (oder wo soll es in der Backend-Navigation eingesetzt werden)<br />
* Backend-Icon: Auf Wunsch kann hier ein eigenes Icon gesetzt werden<br />
* Backend-Beschreibung: wie abgebildet<br />
<br />
<br />
Nun wurde eine Eingabemaske namens '''BE Erfassung''' erstellt. Im Folgenden wird nun das Erfassungs-Formular ein wenig gestaltet.<br><br />
Im letzten Kapitel auf dieser Seite ('''Die Daten erfassen''') sieht man, wie die Liste/das Formular zwecks Erfassung der Musikstücke aussieht.<br />
{{Hinweis|Mit der Erweiterung '''MetaModels Boilerplate''' (Nightly Build) kann man die MetaModels in einem separaten '''Backend-Bereich''' in der BE-Navigation unterbringen.}}{{Hinweis|Die Option '''Sortierung''' ist beim erstmaligen Bearbeiten der Seite noch nicht sichtbar. Es empfiehlt sich daher, nach Auswahl des '''Backend-Bereich'''s (hier: Inhalte) die Seite zu speichern. Jetzt kann die Sortierung festgelegt werden.}}<br />
<div style="clear: both"></div><br />
<br />
===BE-Formular===<br />
[[File:mm_paletten_BE_formular.png|thumb|400px]]<br />
<br />
Man fügt nun alle Attribute zur Palette hinzu, indem man auf das Icon rechts (''Die Einstellungen der Palette ID xx bearbeiten'') klickt.<br />
* '''Alle hinzufügen''' wählen und alle nun folgenden Screens bestätigen.<br />
* Man erhält so eine Liste aller Attribute, die man einzeln bearbeiten kann.<br />
* Auf Wunsch kan man hier auch die Reihenfolge umstellen und so bestimmen, wie die Daten erfasst werden sollen.<br />
* Angefangen wird mit dem ersten Eintrag '''Titel [text]'''<br />
<div style="clear: both"></div><br />
<br />
[[File:mm_paletten_BE_formular2.png|thumb|400px]]<br />
<br />
Folgendes Beispiel zeigt, was man bei der Erfassung des Attributs '''Titel''' alles einstellen kann.<br><br />
Ein Klick auf das Editier-Icon zeigt die wichtigsten Einstellungen:<br />
* Backend-Class: Damit kann man das Formular bzw. die Erfassungfelder etwas gestalten. 5 Werte stehen zur Verfügung: '''w50''', '''clr''', '''long''', '''wizard''' und '''m12'''<br />
* Pflichtfeld: Durch Anklicken legt man fest, ob auf diesem Feld eine Inhaltsprüfung stattfinden soll. Die Felder werden mit einem roten Asterisk gekennzeichnet.<br />
* Filterbar, Durchsuchbar, Sortierbar: Mit diesen Optionen kann man die BE-Liste etwas organisieren. Praktisch wenn man mehrere Dutzend/Hunderte von Datensätze erfasst hat.<br />
<div style="clear: both"></div><br />
<br />
==MM-Funktion: Zugriffsrechte definieren==<br />
<br />
[[File:icons_ansichtseinstellungen.png|left|32px]]<br />
<br />
Hier legt man fest, wer im Backend auf die Daten von MetaModel zugreifen und diese editieren darf.<br />
<br />
[[File:mm_neues_metamodel_ansichtseinstellungen.png|730px]]<br />
<br />
Damit die Benutzer den MM auch sehen können, muß in den Gruppen-/Benutzerrechten auch noch dieser MM freigeschaltet werden. Den MM findet man unter 'Erlaubte Module' > 'Backend Module'. Je nachdem ob man den MM einzeln oder Untergeordnet anzeigen lässt dann an der jeweiligen Stelle.<br />
<br />
=Die Daten erfassen=<br />
<br />
[[File:mm_backend_erfassen.png|thumb|600px]]<br />
<br />
Und so sieht's aus:<br>Nun wird in der linken Navigationsübersicht "Backend-Module" ein neuer Eintrag angezeigt und man kann mit der Erfassung der Musikstücke beginnen.<br />
<br />
* Mit Klick auf '''MyMusik''' gelangt man auf die BE Listenansicht. Diese ist noch leer<br />
* Mit Klick auf '''Neuer Datensatz'''. öffnet sich ein Formular, mit dem sich nun der erste Datensatz erfassen lässt<br />
* Die gewünschten Werte eingeben und mit '''Speichern und Schliessen''' bestätigen<br />
* Nun erscheint der erste Eintrag in der BE Listenansicht<br />
* Diesen Vorgang wiederholen, bis alle Datensätze erfasst wurden<br />
* Über der BE Listenansicht stehen nun die Panel-Layout Funktionen '''Suchen''', '''Sortieren''', '''Filtern''' und '''Anzeigen''' zur Verfügung<br />
<br />
<div style="clear: both"></div><br />
<br />
[[MetaModels_Beispielprojekt|Zurück zur Beispiel-Übersicht]] | [[MetaModels_Beispiel_2|Weiter zum Beispiel 2: Erstellung der Frontend-Ansicht]]</div>Andreasisaakhttps://de.contaowiki.org/MetaModels_Beispiel_1MetaModels Beispiel 12013-09-19T10:54:10Z<p>Andreasisaak: </p>
<hr />
<div>[[Category:Admin HOWTOS]]<br />
[[Category:MetaModels|B]]<br />
=Aufgabenstellung: Backend einrichten=<br />
Als Beispielprojekt soll eine einfache "Musikbox" gebaut werden, in der Musikstücke mit gewissen Attributen ("Eigenschaften") erfasst werden. Zu diesem Zweck wird zuerst das Backend aufgebaut. Hierzu braucht man eine Übersichtsliste und ein Erfassungsformular.<br />
<br />
===Vorgehensschritte===<br />
# [[MetaModels|Start: Installation]] - Download und Installation von MetaModels<br />
# [[MetaModels_Beispiel_1|Beispiel 1: Backend einrichten]] - MetaModel erstellen, Daten erfassen<br />
# [[MetaModels_Beispiel_2|Beispiel 2: Frontend einrichten]] - Die Inhalte im Frontend anzeigen (Liste und Detail)<br />
# [[MetaModels_Beispiel_3|Beispiel 3: Weitere Filter einrichten]] – Inhalte auf Published setzen, einfache Select-Filter<br />
# [[MetaModels_Beispiel_4|Beispiel 4: Weiteres MetaModels einrichten]] - komplexe Select-Filter einsetzen<br />
<br />
=Eine leere Datenbank erstellen=<br />
<br />
[[File:mm_startscreen.png|thumb|400px]]<br />
<br />
Zuerst wird ein neues MetaModel erstellt. Technischen gesehen wird dabei in der Contao-Datenbank eine leere Tabelle angelegt. <br />
<br />
* Klick auf '''Neues MetaModel'''<br />
* Name: '''Musicbox'''<br />
* TabellenName: '''mm_musicbox'''<br />
<br />
===Anmerkungen===<br />
<br />
* In unserem Beispiel benötigen wir die Mehrsprachigkeit. Dafür klickt man den Haken und wählt die notwendigen Sprachen aus.<br />
* '''Varianten unterstützen''' wird vorläufig nicht benötigt.... und gegebenenfalls zu einem späteren Zeitpunkt erläutert.<br />
<br />
===Auszuführen===<br />
<br />
* '''Übersetzung''' anhaken<br />
* mindestens eine unterstützte Sprache auswählen<br />
* eine Sprache (z.B. '''Deutsch''') zum Fallback machen<br />
* '''Varianten aktivieren''' vorerst nicht anhaken<br />
<br />
Man sieht nun ein MetaModel "Musicbox" mit 0 (null) Datensätzen und einer Reihe von Icons, die nun zur Weiterbearbeitung genutzt werden.<br />
<br />
<div style="clear: both"><br></div><br />
<br />
==MetaModels Backend-Funktionen==<br />
Kurze Erklärung, was sich hinter den nun dargestellten Symbolen verbirgt (in Klammern ist angegegeben, was als Tooltip ausgegeben wird):<br />
<br />
[[File:mm_backend_funktionen_icons.png|link=|border]]<br />
<br />
[[File:icons_bearbeiten.png|left|32px]]<br />
<br />
Hier gelangt man wieder zurück zum gleichen Screen, wie bie der Erstellung eines neuen MetaModels. Hier kann man jederzeit sowohl den '''Namen''' als auch den '''Tabellennamen''' des MetaModels ändern.<br />
<br />
# [[MetaModels_Backend:_Attribute|'''Attribute''']] (Attribute für MetaModel ID x definieren)<br />
# [[MetaModels_Backend:_Ausgabevorgaben|'''Ausgabevorgaben''']] (Render-Einstellungen für MetaModel ID x definieren)<br />
# [[MetaModels_Backend:_Eingabemaske|'''Eingabemaske''']] (Eingabemaske für das MetaModel ID x definieren)<br />
# [[MetaModels_Backend:_Filter|'''Filter''']] (Filter für MetaModel ID x definieren)<br />
# [[MetaModels_Backend:_Ansichtseinstellungen|'''Paletten- und Ansichtseinstellungen''']] (Definieren Sie die Eingabe- / Ausgabe-Optionen für MetaModel ID x)<br />
<br />
=Das Backend konfigurieren=<br />
<br />
Um das Backend für die Erfassung der Daten vorzubereiten benötigt man a) eine Übersichtsliste und b) ein Erfassungsformular. Hierzu braucht man 4 der 5 Backend-Funktionen von MetaModels.<br />
<br />
* Datenbank erstellen, benennen, Sprachvariable zuweisen<br />
* Felder definieren, Attribute festlegen, Erfassungsformular gestalten<br />
* Übersichtsliste definieren<br />
* Erfassung (z.B. für Redakteure) freigeben<br />
<br />
<br />
==MM-Funktion: Attribute==<br />
<br />
[[File:icons_attribute.png|left|32px]]<br />
<br />
Hier erfasst man die benötigen Felder für die Eingabe.<br />
s. [[MetaModels_Backend:_Attribute|allgemeine Infos]] zu den Attributen<br />
<br />
[[File:mm_attribute_erfassen.png|thumb|400px]]<br />
<br />
Hierzu gibt man folgende Felder ein (im nebenstehenden Screen ist das beispielhaft für das Attribut "Titel" dargestellt):<br />
{|<br />
|- <br />
| '''Titel'''<br />
|<br />
* Attribute Type= Text<br />
* Column name= title<br />
* Name (deutsch)= Titel<br />
* Description (deutsch)= Name des Stücks<br />
|- <br />
| '''Interpret'''<br />
| <br />
* Attribute Type= Text<br />
* Column name= composer<br />
* Name (deutsch)= Interpret<br />
* Description (deutsch)= Name der Band, SängerIn oder InterpretIn<br />
|- <br />
| '''Land'''<br />
| <br />
* Attribute Type= Text<br />
* Column name= country<br />
* Name (deutsch)= Land<br />
* Description (deutsch)=<br />
|- <br />
| '''Jahr'''<br />
| <br />
* Attribute Type= Dezimal<br />
* Column name= year<br />
* Name (deutsch)= Jahr<br />
* Description (deutsch)= Erscheinungsjahr<br />
|- <br />
| '''Beschreibung'''<br />
| <br />
* Attribute Type= Langtext<br />
* Column name= description<br />
* Name (deutsch)= Beschreibung<br />
* Description (deutsch)= Wikipedia, Kurzbeschreibung, etc.<br />
|- <br />
| '''Cover'''<br />
| <br />
* Attribute Type= Datei<br />
* Column name= images<br />
* Name (deutsch)= Cover<br />
* Description (deutsch)= Cover, Bilder<br />
|- <br />
|colspan="2"|Bis jetzt wurde bei keinem der Attribute die Option '''Unique values''' aktiviert.<br><br>Um die Einträge eindeutig identifizieren zu können, wird zusätzlich ein Alias-Attribut erzeugt:<br />
|- <br />
| '''Alias'''<br />
| <br />
* Attribute Type= Alias<br />
* Column name= alias<br />
* Name (deutsch)= Alias<br />
* Description (deutsch)=<br />
* Unique values= aktiviert<br />
* Alias Neuerstellung erzwingen = aktiviert<br>(dann muss kein Alias eingegeben werden, wird neu berechnet bei Änderung des Titels)<br />
* Aliasfelder = Titel<br />
|}<br />
<br />
<div><br />
<br />
==MM-Funktion: Ausgabevorgaben (aka Render-Einstellungen)==<br />
[[File:icons_ausgabevorgaben.png|left|32px]]<br />
Hier wird die Ansicht erfasst: Eine Listendarstellung für das Backend.<br />
<br />
[[File:mm_ausgabe_definieren.png|right|thumb|400px]]<br />
<br />
* Auf '''neu''' klicken<br />
* '''BE Listenansicht''' eingeben<br />
* Der Rest kann so stehen bleiben, denn für die BE Listenansicht braucht man weder eine '''Zielseite''' noch '''Filter settings'''.<br />
<br />
(s. [[MetaModels_Backend:_Ausgabevorgaben|allgemeine Ausgabe-Vorgaben]])<br />
<br />
<div style="clear: both"></div><br />
<br />
[[File:mm_ausgabe_attribute_definieren.png|thumb|400px]]<br />
<br />
Um auszuwählen, welche Felder in der BE Listenansicht angezeigt werden sollen, klickt man einfach auf das entsprechende Icon rechts:<br />
<br />
* '''Add all''' fügt alle Felder auf einen Rutsch hinzu. Man kann auch '''Neu''' wählen und die Felder einzeln hinzufügen, aber mit '''Add all''' gehts am schnellsten.<br />
* Die Frage, ob alle Attribute hinzugefügt werden sollen("''Add all attributes to render setting''"), wird mit '''Weiter''' bestätigt.<br />
* Nun werden alle Attribute aufgelistet, die im vorangegangenen Schritt erfasst worden sind.<br />
<br />
Über das übliche 'Auge' werden nur die Attribute sichtbar gemacht, die in der Backend-Liste angezeigt werden sollen.<br />
Für dieses Tutorial wählen wir : '''Titel''', '''Interpret''', '''Land''' und '''Jahr'''.<br />
<br />
(( alter Screen, wird ersetzt ))<br />
<div style="clear: both"></div><br />
<br />
</div><br />
<br />
==MM-Funktion: Eingabemaske (fka Paletteneinstellungen)==<br />
<br />
[[File:icons_paletteneinstellungen.png|left|32px]]<br />
<br />
Hier legt man fest, wo und wie im BE die Daten zur Musicbox erfasst werden sollen.<br />
<br />
===BE-Liste===<br />
[[File:mm_paletten_BE_liste.png|thumb|400px]]<br />
Nach Klick auf '''Neue Eingabemaske''' öffnet sich ein [[MetaModels_Backend:_Eingabemaske|Erfassungsformular]]. Hier die Werte eingeben, wie nebenan abgebildet:<br />
* Name: '''BE Erfassung'''<br />
* Option '''Als Standard benutzen'''<br />
* Panel-Layout: Es stehen 4 Werte ('''filter''', '''sort''', '''search''' und '''limit''') zur Verfügung. Diese können auch über das Icon rechts abgerufen werden.<br />
**Werden hier mehrere Werte eingegeben, so sind diese entweder durch Komma (,) oder durch Semikolon (;) voneinander zu trennen - nur mit Leerzeichen getrennte Werte werden ignoriert.<br />
**Komma => Ausgabe in der gleichen Zeile wie der vorhergehende Wert<br />
**Semikolon => Ausgabe in neuer Zeile.<br />
* Integration: '''Als Einzeltabelle'''<br />
* Sortiermodus: '''2 Datensätze nach wählbarem Feld sortiert darstellen''' (Wichtig: Sowohl dieser Wert als auch '''sort''' im '''Panel-Layout''' müssen definiert sein, ansonsten erscheint die Sortier-Funktion nicht.<br />
* Sortierung: Auf- oder Absteigend... wie es dir gefällt<br />
* Backend-Bereich: '''Inhalte''' (oder wo soll es in der Backend-Navigation eingesetzt werden)<br />
* Backend-Icon: Auf Wunsch kann hier ein eigenes Icon gesetzt werden<br />
* Backend-Beschreibung: wie abgebildet<br />
<br />
<br />
Nun wurde eine Eingabemaske namens '''BE Erfassung''' erstellt. Im Folgenden wird nun das Erfassungs-Formular ein wenig gestaltet.<br><br />
Im letzten Kapitel auf dieser Seite ('''Die Daten erfassen''') sieht man, wie die Liste/das Formular zwecks Erfassung der Musikstücke aussieht.<br />
{{Hinweis|Mit der Erweiterung '''MetaModels Boilerplate''' (Nightly Build) kann man die MetaModels in einem separaten '''Backend-Bereich''' in der BE-Navigation unterbringen.}}{{Hinweis|Die Option '''Sortierung''' ist beim erstmaligen Bearbeiten der Seite noch nicht sichtbar. Es empfiehlt sich daher, nach Auswahl des '''Backend-Bereich'''s (hier: Inhalte) die Seite zu speichern. Jetzt kann die Sortierung festgelegt werden.}}<br />
<div style="clear: both"></div><br />
<br />
===BE-Formular===<br />
[[File:mm_paletten_BE_formular.png|thumb|400px]]<br />
<br />
Man fügt nun alle Attribute zur Palette hinzu, indem man auf das Icon rechts (''Die Einstellungen der Palette ID xx bearbeiten'') klickt.<br />
* '''Alle hinzufügen''' wählen und alle nun folgenden Screens bestätigen.<br />
* Man erhält so eine Liste aller Attribute, die man einzeln bearbeiten kann.<br />
* Auf Wunsch kan man hier auch die Reihenfolge umstellen und so bestimmen, wie die Daten erfasst werden sollen.<br />
* Angefangen wird mit dem ersten Eintrag '''Titel [text]'''<br />
<div style="clear: both"></div><br />
<br />
[[File:mm_paletten_BE_formular2.png|thumb|400px]]<br />
<br />
Folgendes Beispiel zeigt, was man bei der Erfassung des Attributs '''Titel''' alles einstellen kann.<br><br />
Ein Klick auf das Editier-Icon zeigt die wichtigsten Einstellungen:<br />
* Backend-Class: Damit kann man das Formular bzw. die Erfassungfelder etwas gestalten. 5 Werte stehen zur Verfügung: '''w50''', '''clr''', '''long''', '''wizard''' und '''m12'''<br />
* Pflichtfeld: Durch Anklicken legt man fest, ob auf diesem Feld eine Inhaltsprüfung stattfinden soll. Die Felder werden mit einem roten Asterisk gekennzeichnet.<br />
* Filterbar, Durchsuchbar, Sortierbar: Mit diesen Optionen kann man die BE-Liste etwas organisieren. Praktisch wenn man mehrere Dutzend/Hunderte von Datensätze erfasst hat.<br />
<div style="clear: both"></div><br />
<br />
==MM-Funktion: Zugriffsrechte definieren==<br />
<br />
[[File:icons_ansichtseinstellungen.png|left|32px]]<br />
<br />
Hier legt man fest, wer im Backend auf die Daten von MetaModel zugreifen und diese editieren darf.<br />
<br />
[[File:mm_neues_metamodel_ansichtseinstellungen.png|730px]]<br />
<br />
Damit die Benutzer den MM auch sehen können, muß in den Gruppen-/Benutzerrechten auch noch dieser MM freigeschaltet werden. Den MM findet man unter 'Erlaubte Module' > 'Backend Module'. Je nachdem ob man den MM einzeln oder Untergeordnet anzeigen lässt dann an der jeweiligen Stelle.<br />
<br />
=Die Daten erfassen=<br />
<br />
[[File:mm_backend_erfassen.png|thumb|600px]]<br />
<br />
Und so sieht's aus:<br>Nun wird in der linken Navigationsübersicht "Backend-Module" ein neuer Eintrag angezeigt und man kann mit der Erfassung der Musikstücke beginnen.<br />
<br />
* Mit Klick auf '''MyMusik''' gelangt man auf die BE Listenansicht. Diese ist noch leer<br />
* Mit Klick auf '''Neuer Datensatz'''. öffnet sich ein Formular, mit dem sich nun der erste Datensatz erfassen lässt<br />
* Die gewünschten Werte eingeben und mit '''Speichern und Schliessen''' bestätigen<br />
* Nun erscheint der erste Eintrag in der BE Listenansicht<br />
* Diesen Vorgang wiederholen, bis alle Datensätze erfasst wurden<br />
* Über der BE Listenansicht stehen nun die Panel-Layout Funktionen '''Suchen''', '''Sortieren''', '''Filtern''' und '''Anzeigen''' zur Verfügung<br />
<br />
<div style="clear: both"></div><br />
<br />
[[MetaModels_Beispielprojekt|Zurück zur Beispiel-Übersicht]] | [[MetaModels_Beispiel_2|Weiter zum Beispiel 2: Erstellung der Frontend-Ansicht]]</div>Andreasisaakhttps://de.contaowiki.org/DC_GeneralDC General2013-04-11T15:28:18Z<p>Andreasisaak: </p>
<hr />
<div>[[Category:Extensions]]<br />
Der '''DC_General''' ist als allgemeingültiger, umfassender Treiber für das gesamte Contao-Backend konzipiert.<br />
{{ExtInfo<br />
| DevSite=http://www.men-at-work.de<br />
| ExtVersion=0.9.0 beta1<br />
| Version=2.11<br />
| TrackerLink=https://github.com/menatwork/DC_General/issues<br />
}}<br />
<br />
== Was ist ein DC_General? ==<br />
<br />
DC_General entstand auf der Basis von dem DC_Table Treiber. Allerdings wurden einige Sachen verändert. Zum einem wurde der Treiber auf eine MVC (Model View Controller) Basis umgebaut. Dadurch entstehen folgende Vorteile:<br />
* Der Datenprovider ist austauschbar, somit ist es möglich, die Daten von jedem beliebigen Ort zu laden bzw. zu speichern. Nachfolgend einige Aufzählungen für DatenProvider<br />
** Datenbanken (MySql, PostgresSql etc.)<br />
** XML Dateien<br />
** Email (pop3, imap)<br />
** API Schnittstellen<br />
** RPC<br />
** usw.<br />
* Die Daten werden innerhalb des DC_General in Models und Collections gespeichert<br />
* Die Views bzw. Controller sind austauschbar.<br />
<br />
Weiter Eigenschaften:<br />
* Eigene Templates für alle Ansichten, kein Inline HTML mehr.<br />
* In memory editing - Daten werden erst in die Datenbank gespeichert, wenn auch Speichern gedrückt wurde. <br />
* Multilanguage Support - Elemente zum Wechseln der Sprache sind schon von Haus aus eingebaut.<br />
<br />
== Tabellenkonfiguration ==<br />
<br />
{| cellpadding="20" cellspacing="0"<br />
|-<br />
| '''Schlüssel''' || '''Wert''' || '''Beschreibung'''<br />
|-<br />
| onload_callback || Callback-Funktion<br />''array'' || Ruft eine Callback-Funktion beim Initialisieren des Data Containers auf und übergibt das DataContainer-Objekt als Argument.<br />
|-<br />
| onsubmit_callback || Callback-Funktion<br />''array'' || Ruft eine Callback-Funktion nach der Aktualisierung eines Datensatzes auf und übergibt das DataContainer-Objekt als Argument.<br />
|-<br />
|}<br />
<br />
== Was ist DC_General nicht? ==<br />
<br />
DC_General ist zwar auf der Basis vom DC_Tabel entstanden, allerdings wurden viele Kernelemente umgebaut. Somit ist es nicht möglich das DC_Table und die anderen Contao Core Treiber einfach mit dem DC_General ersetzt werden.<br />
<br />
Vielmehr war der Gedanke das DC_General ein Treiber darstellt, der es erlaubt, mit mehr und weniger Aufwand, ein eigenes Backend ohne Contao-Core-Hacking zu erstellen.</div>Andreasisaakhttps://de.contaowiki.org/SlideItMooSlideItMoo2013-01-31T15:15:36Z<p>Andreasisaak: </p>
<hr />
<div>[[Category:Extensions]]<br />
slideItMoo ist ein Mootools-basierter Content/Elementslider mit dem Inhaltselemente aller Art in einer Slideshow gezeigt werden können. Eine Online Demo ist direkt auf der [http://www.php-help.ro/examples/slideitmoo_1.1/ Originalseite] zu finden.<br />
{{ExtInfo<br />
| DevSite=http://www.men-at-work.de<br />
| ExtVersion=2.3.0<br />
| Version=2.10 - 2.11<br />
| ERLink=http://www.contao.org/erweiterungsliste/view/slideItMoo.html<br />
| TrackerLink=https://github.com/patrickkahl/slideItMoo/issues<br />
}}<br />
<br />
== Installation ==<br />
Wie bei allen Erweiterungen, kann diese über die Erweiterungsverwaltung installiert werden. Falls diese nicht verfügbar sein sollte gibt es noch die Möglichkeit der [http://www.contao-community.de/showthread.php?76-Third-Party-Erweiterungen-manuell-installieren manuellen Installation]. Sollte die Erweiterung manuell installiert werden müssen auch alle Abhängigkeiten mit installiert werden. Diese sind im Extension Repositority ersichtlich.<br />
<br />
== Verwendung ==<br />
Nach der Installation ist am Ende der Elementgruppen eine neue slideItMoo Gruppe verfügbar. Hier gibt es zwei Elemente:<br />
[[Datei:slideitmoo_ce.png|center]]<br />
<br />
Beim Anlegen eines '''Startelements''' wird zusätzlich auch das '''Endelement''' erzeugt. Alle Inhaltselemente welche sich zwischen Start und Ende befinden werden geslidet. Beim Anlegen des Startelementes gibt es diverse Einstellungsmöglichkeiten.<br />
<br />
=== SlideItMoo Startelement Einstellungen ===<br />
* Allgemein<br />
** '''Anzahl der sichtbaren Elemente:''' Hier kann man angeben wieviele Elemente angezeigt werden soll. <br />
** '''Anzahl der zu verschiebenden Elemente: ''' Hier kann die Anzahl der zu verschiebenden Elemente angegeben werden. <br />
** '''Startindex:''' Hier wird angegeben bei welchem Element gestartet werden soll.<br />
** '''Optionale CSS-Klasse:''' Jedes Inhaltselement bei Contao erhält die Klasse ".block", slideItMoo reagiert standardmäßig drauf. Möchte man nur Inhaltselemente sliden, die die Klasse ".special" behinhalten, so muss diese Klasse ohne Punkt in das Feld geschrieben werden. In den meisten Fällen kann das Feld aber leer gelassen werden.<br />
* Abmessungen<br />
** '''Breite und Höhe:''' Es muss definiert werden wie breit und hoch der Slider sein muss (in Pixel).<br />
** '''Elementabstand:''' Hier wird der Abstand zwischen den einzelnen Elementen definiert.<br />
* Effekte<br />
** '''Effektdauer:''' Die Effektdauer in Millisekunden (2000 = 2 Sek)<br />
** '''Effektbewegung aktivieren:''' Effekte können aktiviert werden, diese bassieren auf [http://mootools.net/docs/core/Fx/Fx.Transitions Fx.Transition]<br />
** '''Effektbewegung:''' Hier kann die Effektbewegung ausgewählt werden. Beispiele findet man [http://mootools.net/docs/core/Fx/Fx.Transitions direkt auf MooTools]<br />
** '''Ease:''' Slideshow weicher darstellen<br />
* Elementbewegung<br />
** '''Slideshow umkehren:''' Die Slideshow wird rückwerts abgespielt.<br />
** '''Vertikal sliden:''' Die Slideshow vertikal ablaufen lassen.<br />
** '''Autoplay aktivieren:''' Die Slideshow wird automatisch abgespielt.<br />
** '''Einblendungsdauer:''' Wie lange dauert der Effekt des Slides. Angabe in Millisekunden (2000 = 2 Sek)<br />
* Navigation<br />
** '''Navigation aktivieren:''' Ermöglicht dem Nutzer zwischen den Slides zu navigieren.<br />
** '''Scroll-Navigation aktivieren:''' Die Slideshow mithilfe der mittleren Maustaste steuern.<br />
* Template<br />
** '''Template aktivien:''' Das mitgelieferte Standarddesign verwenden<br />
** '''CSS Template''' Die Gestaltung der Slideshow kann über Templates angepasst werden.<br />
<br />
<br>'''Wichtig''' Mit dem Standardtemplate von slideItMoo funktioniert der Slider ohne zusätzliche CSS-Anweisungen. Optional ist es auch möglich eine eigene CSS-Datei in den Ordner des slideItMooFrameworks abzulegen (plugins/slideitmoo/css) und dieses dann im Backend auszuwählen ODER die CSS-Anweisungen in die eigene style.css zu übernehmen. In diesem Fall sind viele Wege möglich.</div>Andreasisaakhttps://de.contaowiki.org/SlideItMooSlideItMoo2013-01-31T15:14:39Z<p>Andreasisaak: </p>
<hr />
<div>[[Category:Extensions]]<br />
slideItMoo ist ein Mootools-basierter Content/Elementslider mit dem Inhaltselemente aller Art in einer Slideshow gezeigt werden können. Eine Online Demo ist direkt auf der [http://www.php-help.ro/examples/slideitmoo_1.1/ Originalseite] zu finden.<br />
{{ExtInfo<br />
| DevSite=http://www.men-at-work.de<br />
| ExtVersion=1.0.0<br />
| Version=2.9.0 - 2.10.2<br />
| ERLink=http://www.contao.org/erweiterungsliste/view/slideItMoo.html<br />
| TrackerLink=https://github.com/patrickkahl/slideItMoo/issues<br />
}}<br />
<br />
== Installation ==<br />
Wie bei allen Erweiterungen, kann diese über die Erweiterungsverwaltung installiert werden. Falls diese nicht verfügbar sein sollte gibt es noch die Möglichkeit der [http://www.contao-community.de/showthread.php?76-Third-Party-Erweiterungen-manuell-installieren manuellen Installation]. Sollte die Erweiterung manuell installiert werden müssen auch alle Abhängigkeiten mit installiert werden. Diese sind im Extension Repositority ersichtlich.<br />
<br />
== Verwendung ==<br />
Nach der Installation ist am Ende der Elementgruppen eine neue slideItMoo Gruppe verfügbar. Hier gibt es zwei Elemente:<br />
[[Datei:slideitmoo_ce.png|center]]<br />
<br />
Beim Anlegen eines '''Startelements''' wird zusätzlich auch das '''Endelement''' erzeugt. Alle Inhaltselemente welche sich zwischen Start und Ende befinden werden geslidet. Beim Anlegen des Startelementes gibt es diverse Einstellungsmöglichkeiten.<br />
<br />
=== SlideItMoo Startelement Einstellungen ===<br />
* Allgemein<br />
** '''Anzahl der sichtbaren Elemente:''' Hier kann man angeben wieviele Elemente angezeigt werden soll. <br />
** '''Anzahl der zu verschiebenden Elemente: ''' Hier kann die Anzahl der zu verschiebenden Elemente angegeben werden. <br />
** '''Startindex:''' Hier wird angegeben bei welchem Element gestartet werden soll.<br />
** '''Optionale CSS-Klasse:''' Jedes Inhaltselement bei Contao erhält die Klasse ".block", slideItMoo reagiert standardmäßig drauf. Möchte man nur Inhaltselemente sliden, die die Klasse ".special" behinhalten, so muss diese Klasse ohne Punkt in das Feld geschrieben werden. In den meisten Fällen kann das Feld aber leer gelassen werden.<br />
* Abmessungen<br />
** '''Breite und Höhe:''' Es muss definiert werden wie breit und hoch der Slider sein muss (in Pixel).<br />
** '''Elementabstand:''' Hier wird der Abstand zwischen den einzelnen Elementen definiert.<br />
* Effekte<br />
** '''Effektdauer:''' Die Effektdauer in Millisekunden (2000 = 2 Sek)<br />
** '''Effektbewegung aktivieren:''' Effekte können aktiviert werden, diese bassieren auf [http://mootools.net/docs/core/Fx/Fx.Transitions Fx.Transition]<br />
** '''Effektbewegung:''' Hier kann die Effektbewegung ausgewählt werden. Beispiele findet man [http://mootools.net/docs/core/Fx/Fx.Transitions direkt auf MooTools]<br />
** '''Ease:''' Slideshow weicher darstellen<br />
* Elementbewegung<br />
** '''Slideshow umkehren:''' Die Slideshow wird rückwerts abgespielt.<br />
** '''Vertikal sliden:''' Die Slideshow vertikal ablaufen lassen.<br />
** '''Autoplay aktivieren:''' Die Slideshow wird automatisch abgespielt.<br />
** '''Einblendungsdauer:''' Wie lange dauert der Effekt des Slides. Angabe in Millisekunden (2000 = 2 Sek)<br />
* Navigation<br />
** '''Navigation aktivieren:''' Ermöglicht dem Nutzer zwischen den Slides zu navigieren.<br />
** '''Scroll-Navigation aktivieren:''' Die Slideshow mithilfe der mittleren Maustaste steuern.<br />
* Template<br />
** '''Template aktivien:''' Das mitgelieferte Standarddesign verwenden<br />
** '''CSS Template''' Die Gestaltung der Slideshow kann über Templates angepasst werden.<br />
<br />
<br>'''Wichtig''' Mit dem Standardtemplate von slideItMoo funktioniert der Slider ohne zusätzliche CSS-Anweisungen. Optional ist es auch möglich eine eigene CSS-Datei in den Ordner des slideItMooFrameworks abzulegen (plugins/slideitmoo/css) und dieses dann im Backend auszuwählen ODER die CSS-Anweisungen in die eigene style.css zu übernehmen. In diesem Fall sind viele Wege möglich.</div>Andreasisaakhttps://de.contaowiki.org/MetaModelsMetaModels2012-11-28T08:22:51Z<p>Andreasisaak: </p>
<hr />
<div>{{stub}}<br />
[[Category:Extensions]]<br />
[[Category:MetaModels]]<br />
{{ExtInfo<br />
| Dev=Metamodels Team<br />
| DevSite=<br />
| Version=ab 2.11.X<br />
| ERLink=<br />
| VCSLink=https://github.com/MetaModels/core<br />
| TrackerLink=https://github.com/MetaModels/core/issues<br />
| Depending=[[DC_General]] [[Justtextwidgets]] [[MultiColumnWizard]] [[MetaPalettes]]<br />
}}<br />
<br />
=Start der Wiki-Dokumentation der Erweiterung MetaModels (Nachfolger des Catalog)=<br />
<br />
{{Hinweis|Installation von MetaModels aus GitHub}}<br />
<br />
Zu finden ist die Erweiterung MetaModels auf GitHub:<br />
[https://github.com/MetaModels]<br />
<br />
Aktuell wird diese und dazu abhängige weitere Erweiterungen manuell installiert.<br />
<br />
Benötigt werden folgende Erweiterungen:<br />
<br />
[https://github.com/MetaModels/core Das Core-Modul]<br />
<br />
[https://github.com/MetaModels DC_General]<br />
<br />
[https://contao.org/de/extension-list/view/MetaPalettes.html MetaPalettes]<br />
<br />
[http://www.contao.org/erweiterungsliste/view/MultiColumnWizard.html MultiColumnWizard],<br />
siehe auch [http://de.contaowiki.org/MultiColumnWizard]<br />
<br />
[https://github.com/Discordier/justtextwidgets justtextwidgets]<br />
<br />
==Verfügbare Attribute==<br />
<br />
Sobald diese 3 Erweiterungen installiert sind, werde die weiteren Attributsextensions des MetaModels benötigt.<br />
Dazu gehören:<br />
<br />
[https://github.com/MetaModels/attribute_text Attribut: Text]<br />
[https://github.com/MetaModels/attribute_checkbox Attribut: Checkbox]<br />
[https://github.com/MetaModels/attribute_decimal Attribut: Dezimal]<br />
[https://github.com/MetaModels/attribute_file Attribut: Dateien]<br />
[https://github.com/MetaModels/attribute_select Attribut: Select]<br />
[https://github.com/MetaModels/attribute_alias Attribut: Alias]<br />
[https://github.com/MetaModels/attribute_longtext Attribut: Langtext]<br />
[https://github.com/MetaModels/attribute_numeric Attribut: Numerisch]<br />
[https://github.com/MetaModels/attribute_langcode Attribut: Sprachencode]<br />
[https://github.com/MetaModels/attribute_tags Attribut: Tags]<br />
[https://github.com/MetaModels/attribute_geoprotection Attribut: Länderzuordnung]<br />
<br />
[https://github.com/MetaModels/attribute_translatedalias Attribut: Text]<br />
[https://github.com/MetaModels/attribute_translatedfile Attribut: Text]<br />
[https://github.com/MetaModels/attribute_translatedlongtext Attribut: Text]<br />
[https://github.com/MetaModels/attribute_translatedselect Attribut: Text]<br />
[https://github.com/MetaModels/attribute_translatedtags Attribut: Text]<br />
[https://github.com/MetaModels/attribute_translatedtext Attribut: Text]<br />
<br />
<br />
<br />
----<br />
started by: [[Benutzer:Planepix|Planepix]] 00:49, 28. Nov. 2012 (CET)</div>Andreasisaakhttps://de.contaowiki.org/MetaModelsMetaModels2012-11-28T08:14:40Z<p>Andreasisaak: </p>
<hr />
<div>{{stub}}<br />
[[Category:Extensions]]<br />
[[Category:MetaModels]]<br />
{{ExtInfo<br />
| Dev=Metamodels Team<br />
| DevSite=<br />
| Version=ab 2.11.X<br />
| ERLink=<br />
| VCSLink=https://github.com/MetaModels/core<br />
| TrackerLink=https://github.com/MetaModels/core/issues<br />
| Depending=[[DC_General]] [[Justtextwidgets]] [[MultiColumnWizard]] [[MetaPalettes]]<br />
}}<br />
<br />
=Start der Wiki-Dokumentation der Erweiterung MetaModels (Nachfolger des Catalog)=<br />
<br />
{{Hinweis|Installation von MetaModels aus GitHub}}<br />
<br />
Zu finden ist die Erweiterung MetaModels auf GitHub:<br />
[https://github.com/MetaModels]<br />
<br />
Aktuell wird diese und dazu abhängige weitere Erweiterungen manuell installiert.<br />
<br />
Benötigt werden folgende Erweiterungen:<br />
<br />
[https://github.com/MetaModels/core Das Core-Modul]<br />
<br />
[https://github.com/MetaModels DC_General]<br />
<br />
[https://contao.org/de/extension-list/view/MetaPalettes.html MetaPalettes]<br />
<br />
[http://www.contao.org/erweiterungsliste/view/MultiColumnWizard.html MultiColumnWizard],<br />
siehe auch [http://de.contaowiki.org/MultiColumnWizard]<br />
<br />
[https://github.com/Discordier/justtextwidgets justtextwidgets]<br />
<br />
==Verfügbare Attribute==<br />
<br />
Sobald diese 3 Erweiterungen installiert sind, werde die weiteren Attributsextensions des MetaModels benötigt.<br />
Dazu gehören:<br />
<br />
[https://github.com/MetaModels/attribute_text Attribut: Text]<br />
<br />
<br />
----<br />
started by: [[Benutzer:Planepix|Planepix]] 00:49, 28. Nov. 2012 (CET)</div>Andreasisaakhttps://de.contaowiki.org/MetaModelsMetaModels2012-11-28T08:12:47Z<p>Andreasisaak: </p>
<hr />
<div>{{stub}}<br />
[[Category:Extensions]]<br />
[[Category:MetaModels]]<br />
{{ExtInfo<br />
| Dev=Metamodels Team<br />
| DevSite=<br />
| Version=ab 2.11.X<br />
| ERLink=<br />
| VCSLink=https://github.com/MetaModels/core<br />
| TrackerLink=https://github.com/MetaModels/core/issues<br />
| Depending=[[DC_General]] [[Justtextwidgets]] [[MultiColumnWizard]] [[MetaPalettes]]<br />
}}<br />
<br />
=Start der Wiki-Dokumentation der Erweiterung MetaModels (Nachfolger des Catalog)=<br />
<br />
{{Hinweis|Installation von MetaModels aus GitHub}}<br />
<br />
Zu finden ist die Erweiterung MetaModels auf GitHub:<br />
[https://github.com/MetaModels]<br />
<br />
Aktuell wird diese und dazu abhängige weitere Erweiterungen manuell installiert.<br />
<br />
Benötigt werden folgende Erweiterungen:<br />
<br />
[https://github.com/MetaModels/core Das Core-Modul]<br />
<br />
[https://github.com/MetaModels DC_General]<br />
<br />
[http://www.contao.org/erweiterungsliste/view/MultiColumnWizard.html MultiColumnWizard],<br />
siehe auch [http://de.contaowiki.org/MultiColumnWizard]<br />
<br />
[https://github.com/Discordier/justtextwidgets justtextwidgets]<br />
<br />
==Verfügbare Attribute==<br />
<br />
Sobald diese 3 Erweiterungen installiert sind, werde die weiteren Attributsextensions des MetaModels benötigt.<br />
Dazu gehören:<br />
<br />
[https://github.com/MetaModels/attribute_text Attribut: Text]<br />
<br />
<br />
----<br />
started by: [[Benutzer:Planepix|Planepix]] 00:49, 28. Nov. 2012 (CET)</div>Andreasisaakhttps://de.contaowiki.org/MetaModelsMetaModels2012-11-28T08:11:16Z<p>Andreasisaak: </p>
<hr />
<div>{{stub}}<br />
[[Category:Extensions]]<br />
[[Category:MetaModels]]<br />
{{ExtInfo<br />
| Dev=Metamodels Team<br />
| DevSite=<br />
| Version=ab 2.11.X<br />
| ERLink=<br />
| VCSLink=https://github.com/MetaModels/core<br />
| TrackerLink=https://github.com/MetaModels/core/issues<br />
| Depending=[[DC_General]] [[Justtextwidgets]] [[MultiColumnWizard]] [[MetaPalettes]]<br />
}}<br />
<br />
=Start der Wiki-Dokumentation der Erweiterung MetaModels (Nachfolger des Catalog)=<br />
<br />
{{Hinweis|Installation von MetaModels aus GitHub}}<br />
<br />
Zu finden ist die Erweiterung MetaModels auf GitHub:<br />
[https://github.com/MetaModels]<br />
<br />
Aktuell wird diese und dazu abhängige weitere Erweiterungen manuell installiert.<br />
<br />
Benötigt werden folgende Erweiterungen:<br />
<br />
[https://github.com/MetaModels/core Das Core-Modul]<br />
<br />
[https://github.com/MetaModels DC_General]<br />
<br />
[http://www.contao.org/erweiterungsliste/view/MultiColumnWizard.html MultiColumnWizard],<br />
siehe auch [http://de.contaowiki.org/MultiColumnWizard]<br />
<br />
[https://github.com/Discordier/justtextwidgets justtextwidgets]<br />
<br />
Sobald diese 3 Erweiterungen installiert sind, werde die weiteren Erweiterungen für die Attribute des MetaModels installiert.<br />
Dazu gehören:<br />
<br />
[https://github.com/MetaModels/attribute_text Das Modul für Attribut Text]<br />
<br />
<br />
----<br />
started by: [[Benutzer:Planepix|Planepix]] 00:49, 28. Nov. 2012 (CET)</div>Andreasisaakhttps://de.contaowiki.org/DC_GeneralDC General2012-10-17T11:02:55Z<p>Andreasisaak: </p>
<hr />
<div>[[Category:Extensions]]<br />
Der '''DC_General''' ist als allgemeingültiger, umfassender Treiber für das gesamte Contao-Backend konzipiert.<br />
{{ExtInfo<br />
| DevSite=http://www.men-at-work.de<br />
| ExtVersion=0.0.1<br />
| Version=2.10 - 2.11<br />
| TrackerLink=https://github.com/menatwork/DC_General/issues<br />
}}<br />
<br />
== Was ist ein DC_General? ==<br />
<br />
DC_General entstand auf der Basis von dem DC_Table Treiber. Allerdings wurden einige Sachen verändert. Zum einem wurde der Treiber auf eine MVC (Model View Controller) Basis umgebaut. Dadurch entstehen folgende Vorteile:<br />
<br />
* Der Datenprovider ist austauschbar, somit ist es möglich, die Daten von jedem beliebigen Ort zu laden bzw. zu speichern. Nachfolgend einige Aufzählungen für DatenProvider<br />
** Datenbanken (MySql, PostgresSql etc.)<br />
** XML Dateien<br />
** Email (pop3, imap)<br />
** API Schnittstellen<br />
** RPC<br />
** usw.<br />
* Die Daten werden innerhalb des DC_General in Models und Collections gespeichert<br />
* Die Views bzw. Controller sind austauschbar.<br />
<br />
== Tabellenkonfiguration ==<br />
<br />
{| cellpadding="20" cellspacing="0"<br />
|-<br />
| '''Schlüssel''' || '''Wert''' || '''Beschreibung'''<br />
|-<br />
| onload_callback || Callback-Funktion<br />''array'' || Ruft eine Callback-Funktion beim Initialisieren des Data Containers auf und übergibt das DataContainer-Objekt als Argument.<br />
|-<br />
| onsubmit_callback || Callback-Funktion<br />''array'' || Ruft eine Callback-Funktion nach der Aktualisierung eines Datensatzes auf und übergibt das DataContainer-Objekt als Argument.<br />
|-<br />
|}<br />
<br />
== Was ist DC_General nicht? ==<br />
<br />
DC_General ist zwar auf der Basis vom DC_Tabel entstanden, allerdings wurden viele Kernelemente umgebaut. Somit ist es nicht möglich das DC_Table und die anderen Contao Core Treiber einfach mit dem DC_General ersetzt werden.<br />
<br />
Vielmehr war der Gedanke das DC_General ein Treiber darstellt, der es erlaubt, mit mehr und weniger Aufwand, ein eigenes Backend ohne Contao-Core-Hacking zu erstellen.</div>Andreasisaakhttps://de.contaowiki.org/DC_GeneralDC General2012-10-17T11:00:23Z<p>Andreasisaak: </p>
<hr />
<div>[[Category:Extensions]]<br />
Der '''DC_General''' ist als allgemeingültiger, umfassender Treiber für das gesamte Contao-Backend konzipiert.<br />
{{ExtInfo<br />
| DevSite=http://www.men-at-work.de<br />
| ExtVersion=0.0.1<br />
| Version=2.10 - 2.11<br />
| TrackerLink=https://github.com/menatwork/DC_General/issues<br />
}}<br />
<br />
==Was ist ein DC_General?==<br />
<br />
DC_General entstand auf der Basis von dem DC_Table Treiber. Allerdings wurden einige Sachen verändert. <br />
<br />
Zum einem wurde der Treiber auf eine MVC (Model View Controller) Basis umgebaut. <br />
Da durch Entstehen folgende Vorteile:<br />
<br />
*Der Datenprovider ist austauschbar, somit ist es möglich, die Daten von jedem beliebigen Ort zu laden bzw. zu speichern. Nachfolgend einige Aufzählungen für DatenProvider<br />
** Datenbanken (MySql, PostgresSql etc.)<br />
** XML Dateien<br />
** Email (pop3, imap)<br />
** API Schnittstellen<br />
** RPC<br />
** usw.<br />
*Die Daten werden innerhalb des DC_General in Models und Collections gespeichert<br />
*Die Views bzw. Controller sind austauschbar.<br />
<br />
==Was ist DC_General nicht?==<br />
DC_General ist zwar auf der Basis vom DC_Tabel entstanden, allerdings wurden viele Kernelemente umgebaut. <br />
Somit ist es nicht möglich das DC_Table und die anderen Kern-Treiber, aus dem Contao Kern, mit DC_Gerneral ersetzte werden.<br />
<br />
Vielmehr war der Gedanke das DC_General ein Treiber darstellt, der es erlaubt, mit mehr und weniger Aufwand, ein eigenes Backend zu erstellen,<br />
ohne Contao-Core-Hacking zu betreiben.<br />
<br />
==Tabellenkonfiguration==<br />
<br />
{| cellpadding="20" cellspacing="0"<br />
|-<br />
| '''Schlüssel''' || '''Wert''' || '''Beschreibung'''<br />
|-<br />
| onload_callback || Callback-Funktion<br />''array'' || Ruft eine Callback-Funktion beim Initialisieren des Data Containers auf und übergibt das DataContainer-Objekt als Argument.<br />
|-<br />
| onsubmit_callback || Callback-Funktion<br />''array'' || Ruft eine Callback-Funktion nach der Aktualisierung eines Datensatzes auf und übergibt das DataContainer-Objekt als Argument.<br />
|-<br />
|}</div>Andreasisaakhttps://de.contaowiki.org/Docked_NavigationDocked Navigation2012-09-11T10:42:01Z<p>Andreasisaak: </p>
<hr />
<div>[[Category: Sonstiges]]<br />
<br />
= docked Navigation =<br />
<br />
== Einleitung ==<br />
<br />
In diesem Tutorial möchte ich beschreiben, wie man eine Navigation einrichtet, welche beim scrollen ab einem gewissen Punkt an der oberen Kante des Fensters andockt.<br />
bsp.[http://www.stefanmelz.de stefanmelz.de]<br />
<br />
<br />
<br />
== Aufbau des HTML ==<br />
<br />
Das ist eigentlich recht simpel. Man benötigt zu allererst das Grundgerüst. Einmal angenommen, man hat auf der Seite 3 Bereiche, welche man ansteuern möchte.<br />
<br />
<source lang="html4strict"><br />
<body><br />
<div id="navi"></div><br />
<div id=“dienste“></div><br />
<div id=“arbeiten“></div><br />
<div id=“profil“></div><br />
</body><br />
</source><br />
Das ganze kann noch verpackt sein und weitere Elemente davor und dahinter enthalten, das ist irrelevant. Wichtig ist, dass die Navigation und die anszusprechenden Bereiche eine eindeutige ID oder Klasse haben.<br />
<br />
<br />
== Die Navigation ==<br />
<br />
Eine Standard Navigation ist eine einfache unsortierte Liste. Da man auf der Seite bleiben soll, braucht man hier lediglich Anker. Das HTML kommt dann so in das div mit der ID „navi“.<br />
<source lang="html4strict"><br />
<ul><br />
<li class="dienste"><a href="#top">Dienstleistungen</a></li><br />
<li class="arbeiten"><a href="#arbeiten">Arbeitsbeispiele</a></li><br />
<li class="profil"><a href="#profil">Profil und Kontakt</a></li><br />
</ul><br />
</source><br />
<br />
Die Navigation funktioniert also ohne Javascript schonmal ganz gut und ist so nun einsetzbar.<br />
<br />
<br />
== Das Javascript / CSS ==<br />
<br />
Nun möchte man nicht immer wieder nach oben scrollen um die Navigation benutzen zu können. Diese soll immer am oberen Fensterrand „kleben“ bleiben. Allerdings erst, wenn die Navigation aus dem sichtbaren Bereich verschwinden würde. Dazu benötigt man ein wenig Javascript und CSS.<br />
<br />
=== CSS ===<br />
<br />
Um die Navigation am oberen Fensterrand zu positionieren ist nichts weiter nötig als die CSS Angabe: <br />
<source lang="css"><br />
position:fixed;<br />
top:0;<br />
</source><br />
<br />
Der Rest ist stark davon abhängig wie die Navigation aussieht und wo die Seite platziert ist. Soll zum Beispiel die komplette Bildschirmbreite eingenommen werden, fügen wie hinzu:<br />
<br />
<source lang="css"><br />
width:100%;<br />
</source><br />
<br />
<br />
Dieses CSS wird in die klasse „scrolled“ gepackt. Das sieht dann im Endeffekt so aus:<br />
<br />
<source lang="css"><br />
.scrolled {<br />
position:fixed;<br />
top:0;<br />
width:100%;<br />
}<br />
</source><br />
<br />
<br />
=== JS ===<br />
<br />
Nun soll die klasse „scrolled“ der Navigation zugewiesen werden, sobald diese aus dem sichtbaren Bereich verschwinden würde. Dazu muss die Position der Navigation ermittelt werden. Mootools hilft da mit der Methode getCoordinates(); Das ganze soll erst starten, wenn das DOM aufgebaut ist. Also in die eingebundene JS Datei folgendes schreiben:<br />
<br />
<source lang="javascript"><br />
<br />
window.addEvent('domready',function(){<br />
<br />
//das selektierte Element in eine Variable packen um schreibarbeit und performance zu sparen<br />
var navi = $('navi');<br />
<br />
<br />
//dann die Koordinaten der Navigation abfragen und in eine Variable packen<br />
var navicoords = navi.getCoordinates();<br />
<br />
<br />
//nun soll alles weitere passieren, sobald man scrolled, also ein neues Event hinzufügen<br />
window.addEvent('scroll',function(){<br />
<br />
//den aktuellen Scrollstatus fragt man hiermit ab<br />
var scroll = this.getScroll();<br />
<br />
//jetzt der abgleich fensterposition mit navigationsposition<br />
if((scroll.y) > navicoords.top)<br />
{<br />
//und nun der Navigation die Klasse scrolled geben<br />
navi.addClass('scrolled');<br />
}<br />
//ist die Navigation wieder sichtbar, negieren man das ganze wieder<br />
else<br />
{<br />
//die klasse scrolled wieder entfernen<br />
navi.removeClass('scrolled');<br />
}<br />
<br />
});<br />
<br />
//damit bei einem klick auf einen Navigationslink sanft gescrollt wird<br />
var mySmoothScroll = new Fx.SmoothScroll({<br />
links: 'a',<br />
wheelStops: false,<br />
<br />
// der offset muss so gross sein, wie die navi hoch ist, damit man beim smoothscroll nicht den eigentlichen Bereich mit der Navi ueberdeckt<br />
offset: {<br />
x: 0,<br />
y: -navicoords.height<br />
}<br />
});<br />
<br />
<br />
})<br />
</source><br />
<br />
<br />
Das war die ganze Hexerei mit der Positionierung. Demnächst folgt dann darauf aufbauend die Beschreibung, wie man die Links in der Navigation auf aktiv schaltet, wenn man sich in dem jeweiligen Bereich befindet.<br />
<br />
<br />
<br />
<br />
--[[Benutzer:Stefanmelz|Stefanmelz]] 23:15, 10. Sep. 2012 (CEST)</div>Andreasisaakhttps://de.contaowiki.org/DC_GeneralDC General2012-09-06T18:48:48Z<p>Andreasisaak: </p>
<hr />
<div>[[Category:Extensions]]<br />
Der '''DC_General''' ist als allgemeingültiger, umfassender Treiber für das gesamte Contao-Backend konzipiert.<br />
{{ExtInfo<br />
| DevSite=http://www.men-at-work.de<br />
| ExtVersion=0.0.1<br />
| Version=2.10 - 2.11<br />
| TrackerLink=https://github.com/menatwork/DC_General/issues<br />
}}<br />
<br />
==Wieso DC_General?==<br />
<br />
Der DC_General soll die bisherigen DC_Table, DC_File und DC_DynamicTable etc etc ablösen. Der neue Catalog3 wird auf diesem DC basieren.</div>Andreasisaakhttps://de.contaowiki.org/DC_GeneralDC General2012-09-06T18:48:30Z<p>Andreasisaak: </p>
<hr />
<div>[[Category:Extensions]]<br />
<br />
Der DC_General ist als allgemeingültiger, umfassender Treiber für das gesamte Contao-Backend konzipiert.<br />
<br />
{{ExtInfo<br />
| DevSite=http://www.men-at-work.de<br />
| ExtVersion=0.0.1<br />
| Version=2.10 - 2.11<br />
| TrackerLink=https://github.com/menatwork/DC_General/issues<br />
}}<br />
<br />
==Wieso DC_General?==<br />
<br />
Der DC_General soll die bisherigen DC_Table, DC_File und DC_DynamicTable etc etc ablösen. Der neue Catalog3 wird auf diesem DC basieren.</div>Andreasisaakhttps://de.contaowiki.org/DC_GeneralDC General2012-09-06T18:47:52Z<p>Andreasisaak: </p>
<hr />
<div>[[Category:Extensions]]<br />
<br />
{{ExtInfo<br />
| DevSite=http://www.men-at-work.de<br />
| ExtVersion=0.0.1<br />
| Version=2.10 - 2.11<br />
| TrackerLink=https://github.com/menatwork/DC_General/issues<br />
}}<br />
<br />
==Was ist DC_General?==<br />
<br />
Der DC_General ist als allgemeingültiger, umfassender Treiber für das gesamte Contao-Backend konzipiert. Er soll die bisherigen DC_Table, DC_File und DC_DynamicTable etc etc ablösen. Der neue Catalog3 wird auf diesem DC basieren.</div>Andreasisaakhttps://de.contaowiki.org/DC_GeneralDC General2012-09-06T18:47:27Z<p>Andreasisaak: Die Seite wurde neu angelegt: „Category:Extensions Mit '''syncCto''' kann der Benutzer im Backend mehrere Contao-Installationen miteinander synchronisieren. {{ExtInfo | DevSite=http://www.m…“</p>
<hr />
<div>[[Category:Extensions]]<br />
Mit '''syncCto''' kann der Benutzer im Backend mehrere Contao-Installationen miteinander synchronisieren.<br />
{{ExtInfo<br />
| DevSite=http://www.men-at-work.de<br />
| ExtVersion=0.0.1<br />
| Version=2.10 - 2.11<br />
| TrackerLink=https://github.com/menatwork/DC_General/issues<br />
}}<br />
<br />
==Was ist DC_General?==<br />
<br />
Der DC_General ist als allgemeingültiger, umfassender Treiber für das gesamte Contao-Backend konzipiert. Er soll die bisherigen DC_Table, DC_File und DC_DynamicTable etc etc ablösen. Der neue Catalog3 wird auf diesem DC basieren.</div>Andreasisaakhttps://de.contaowiki.org/SyncCtoSyncCto2012-08-18T09:27:51Z<p>Andreasisaak: /* Synchronisation */</p>
<hr />
<div>[[Category:Extensions]]<br />
Mit '''syncCto''' kann der Benutzer im Backend mehrere Contao-Installationen miteinander synchronisieren.<br />
{{ExtInfo<br />
| DevSite=http://www.men-at-work.de<br />
| ExtVersion=2.2.0<br />
| Version=2.10 - 2.11<br />
| ERLink=http://www.contao.org/erweiterungsliste/view/syncCto.html<br />
| TrackerLink=https://github.com/menatwork/syncCto<br />
}}<br />
<br />
==Was ist syncCto?==<br />
<br />
syncCto bietet die Möglichkeit mehrere Contao-Installationen auf Basis einer Grund-Installation zu synchronisieren. Alle Aktionen können bequem im Backend durchgeführt werden. Durch die Integration in das Contao Rechtesystem können auch Redakteure eine Auswahl vorher definierter Datenbank-Tabellen und Dateien synchronisieren.<br />
<br />
Ein integrierter Backup-Manager sichert ausgewählte Datenbank-Tabellen, wahlweise die gesamte Contao-Installation oder nur die persönlichen Daten. Angelegte Backups können durch den Backup-Manager auch wieder importiert werden.<br />
<br />
Durch die Verwendung von syncCto können Redakteure schnell und einfach in einem Preview-System arbeiten und bei Vollendung der Arbeit den aktuellen und freigegebenen Stand zum Live-System synchronisieren.<br />
<br />
==Server und Client bei syncCto==<br />
Zu unterscheiden ist zwischen Server und Client. Die Server-Installation ist die Installation die auf den Client übertragen werden soll. Der Client ist die Contao Installation, zu der synchronisiert werden soll, also meistens die Installation, die auf dem Live-Server liegt. <br /><br />
Anders gesagt, Entwicklungssystem: syncCto Server ; Livesystem: syncCto Client. Es gibt komplexere Beispiele, dazu folgt mehr in den weiteren Abschnitten.<br />
<br />
==Konfiguration==<br />
<br />
===Systemcheck===<br />
<br />
Für eine reibungslose und fehlerfreie Synchronisation ist es wichtig als erstes alle Installationen zu kontrollieren. Dafür steht der neue Menüpunkt Systemcheck zur Verfügung, denn dort werden alle für syncCto wichtigen Funktionen und Ressourcen des Servers aufgelistet. Sind alle Zellen grün, ist der erste Schritt getan. Sollte dies nicht der Fall sein, kann syncCto womöglich nicht erfolgreich funktionieren.<br />
<br />
===Einstellungen===<br />
<br />
Bevor man die erste Installation synchronisieren kann, muss zwingend bei allen Installationen auf denen syncCto installiert ist, der Menüpunkt Einstellungen ('''Contao Einstellungen''') aufgerufen und gespeichert werden. Bei diesem Vorgang wird der ctoCommunication API Key generiert. Den ctoCommunication API Key aus den Einstellungen der Clientinstallation benötigt man später bei der Erstellung des zuvor erwähnten Clients.<br />
<br />
Zu beachten: Der von syncCto verwendete ctoCommunication API Key ist nicht der Contao-Installations-Schlüssel.<br />
<br />
==Clients verwalten==<br />
<br />
Um im Server einen neuen Client anzulegen, klickt man im Menüpunkt Clients einfach auf den Button "Neuer Client".<br />
<br />
* '''ctoCommunication API Key:''' Dieser Schlüssel sichert die Kommunikation zwischen den Contao-Installationen ab.<br />
* '''Titel:''' z.B. der Kundenname und der Name des Servers<br />
* '''Beschreibung:''' Eine aussagekräftige Beschreibung des Servers<br />
* '''Domain:''' Die Domain des Clients, ohne Unterverzeichnis<br />
* '''Serverpfad:''' Falls sich die Installation in einem Unterverzeichnis befindet<br />
* '''Portnummer:''' Standardmäßig ist es der Port 80<br />
* '''Verschlüsselungs-Engine:''' Es stehen drei Möglichkeiten zur Verfügung, in der Regel genügt "Blowfish"<br />
* '''HTTP-Authentifizierung aktivieren:''' Falls der Client mit einer .htaccess abgesichert ist, kann man hier den Benutzernamen und das Passwort eingeben und die gesicherte Installation synchronisieren<br />
<br />
==Synchronisation==<br />
<br />
Um den Client mit dem Server zu synchronisieren, klickt man beim entsprechenden Client auf den rechten Button "Client synchronisieren". Im nächsten Fenster wählt man die Synchronisationsart aus.<br />
<br />
* '''Contao-Installation:''' Die gesamte Contao-Installation, ausgenommen ist tl_files<br />
* '''Persönliche Daten:''' Nur Dateien und Ordner im tl_files Ordner. Core-Dateien werden nicht berücksichtigt<br />
* '''Konfigurationsdateien:''' Einträge aus der localconfig.php<br />
<br />
Datenbank-Tabellen werden nicht mehr (wie es bis Version 2.1 war) im DCA ausgewählt, sondern während der Synchronisation in einer Art Vergleichsliste dargestellt. Dort kann man dann auswählen welche Tabelle man synchronisieren will und welche ignoriert werden sollen.<br />
<br />
==Backups==<br />
<br />
Backups können im Backend unter dem Menüpunkt Backups angelegt und wiederhergestellt werden. Alle Backups werden im automatisch angelegten Ordner "syncCto_backups" in den tl_files abgelegt. Datenbanken finden sich im Ordner "database" und Dateien im Ordner "files". Wenn man Backups wieder einspielen möchte, klickt man im Menüpunkt auf Backups und wählt die Art der Wiederherstellung. Im nächsten Schritt wählt man die entsprechende Datei aus und klickt auf "Wiederherstellen". Die Dateien oder die Datenbank auf dem Server werden danach mit den Daten aus dem Backup überschrieben.<br />
<br />
===Backups automatisiert löschen===<br />
<br />
Zur Verfügung stehen folgende zwei PHP-Skripte:<br />
<br />
* '''SyncCtoDeleteDbBackups.php''' Löscht alle Datenbank-Backups<br />
* '''SyncCtoDeleteFileBackups.php''' Löscht alle Datei-Backups<br />
<br />
Die Cron Extension wird seit 2.1 nicht mehr automatisch ausgeliefert, daher muss sie manuell nachinstalliert werden oder die Dateien werden über einen echten Cronjob konfiguriert.<br />
<br />
==Anwendungsfall 1==<br />
<br />
Auf dem Webserver laufen zwei Contao-Installationen.<br />
<br />
* Die Adresse der 1. Webseite heißt ''<nowiki>http://192.168.0.100/server/</nowiki>''<br />
* Die Adresse der 2. Webseite heißt ''<nowiki>http://192.168.0.100/client/</nowiki>''<br />
<br />
Der Server, bei syncCto, beschreibt immer die Installation die alle Informationen hat, die man auf eine andere Installation übertragen will. Dieses Ziel wird bei syncCto als Client beschrieben. Server und Client laufen also auf der gleichen Maschine auf den gleichen Webserver. <br />
<br />
==Anwendungsfall 2==<br />
<br />
Es gibt 2 Seiten die auf zwei verschiedenen Maschinen laufen. Beide Maschinen sind verbunden; egal ob nun im lokalen Netzwerk oder über das Internet. Dabei ist es wichtig das der Server den Client erreichen kann. Der Server kann lokal zuhause auf dem internen Webserver laufen. Der Client allerdings muss von außen erreichbar sein.<br />
<br />
* Server läuft lokal zuhause die Adresse ist ''<nowiki>http://192.168.0.100/server</nowiki>''<br />
* Der Client liegt im Internet und hat die Adresse ''<nowiki>http://www.example.com</nowiki>''<br />
<br />
So wird im Server für den Client einfach die Adresse ''<nowiki>http://www.example.com</nowiki>'' eingetragen.<br />
<br />
==Mögliche Problemfälle==<br />
<br />
Der SMH ist keine Lösung da die Daten via HTTP versendet werden. Ein ordentlich konfigurierter Server ist daher Pflicht.<br />
<br />
Um möglichen Problemfällen auf die Spur zu kommen kann man den Debugmodus in den Einstellungen aktivieren. Dabei wird die Dauer der Synchronisation und die Speicherauslastung während der Synchronisation ausgegeben. Zusätzlich werden Debugdateien im Tempordner von Contao abgelegt. Diese sind bei Problemen immer im Forum anzuhängen.<br />
<br />
==Weiterführende Links==<br />
<br />
* [http://www.contao-tutorials.de/tutorial/contao-installationen-synchronisieren.html Tutorial zu syncCto2]</div>Andreasisaakhttps://de.contaowiki.org/SyncCtoSyncCto2012-08-18T09:26:06Z<p>Andreasisaak: /* Synchronisation */</p>
<hr />
<div>[[Category:Extensions]]<br />
Mit '''syncCto''' kann der Benutzer im Backend mehrere Contao-Installationen miteinander synchronisieren.<br />
{{ExtInfo<br />
| DevSite=http://www.men-at-work.de<br />
| ExtVersion=2.2.0<br />
| Version=2.10 - 2.11<br />
| ERLink=http://www.contao.org/erweiterungsliste/view/syncCto.html<br />
| TrackerLink=https://github.com/menatwork/syncCto<br />
}}<br />
<br />
==Was ist syncCto?==<br />
<br />
syncCto bietet die Möglichkeit mehrere Contao-Installationen auf Basis einer Grund-Installation zu synchronisieren. Alle Aktionen können bequem im Backend durchgeführt werden. Durch die Integration in das Contao Rechtesystem können auch Redakteure eine Auswahl vorher definierter Datenbank-Tabellen und Dateien synchronisieren.<br />
<br />
Ein integrierter Backup-Manager sichert ausgewählte Datenbank-Tabellen, wahlweise die gesamte Contao-Installation oder nur die persönlichen Daten. Angelegte Backups können durch den Backup-Manager auch wieder importiert werden.<br />
<br />
Durch die Verwendung von syncCto können Redakteure schnell und einfach in einem Preview-System arbeiten und bei Vollendung der Arbeit den aktuellen und freigegebenen Stand zum Live-System synchronisieren.<br />
<br />
==Server und Client bei syncCto==<br />
Zu unterscheiden ist zwischen Server und Client. Die Server-Installation ist die Installation die auf den Client übertragen werden soll. Der Client ist die Contao Installation, zu der synchronisiert werden soll, also meistens die Installation, die auf dem Live-Server liegt. <br /><br />
Anders gesagt, Entwicklungssystem: syncCto Server ; Livesystem: syncCto Client. Es gibt komplexere Beispiele, dazu folgt mehr in den weiteren Abschnitten.<br />
<br />
==Konfiguration==<br />
<br />
===Systemcheck===<br />
<br />
Für eine reibungslose und fehlerfreie Synchronisation ist es wichtig als erstes alle Installationen zu kontrollieren. Dafür steht der neue Menüpunkt Systemcheck zur Verfügung, denn dort werden alle für syncCto wichtigen Funktionen und Ressourcen des Servers aufgelistet. Sind alle Zellen grün, ist der erste Schritt getan. Sollte dies nicht der Fall sein, kann syncCto womöglich nicht erfolgreich funktionieren.<br />
<br />
===Einstellungen===<br />
<br />
Bevor man die erste Installation synchronisieren kann, muss zwingend bei allen Installationen auf denen syncCto installiert ist, der Menüpunkt Einstellungen ('''Contao Einstellungen''') aufgerufen und gespeichert werden. Bei diesem Vorgang wird der ctoCommunication API Key generiert. Den ctoCommunication API Key aus den Einstellungen der Clientinstallation benötigt man später bei der Erstellung des zuvor erwähnten Clients.<br />
<br />
Zu beachten: Der von syncCto verwendete ctoCommunication API Key ist nicht der Contao-Installations-Schlüssel.<br />
<br />
==Clients verwalten==<br />
<br />
Um im Server einen neuen Client anzulegen, klickt man im Menüpunkt Clients einfach auf den Button "Neuer Client".<br />
<br />
* '''ctoCommunication API Key:''' Dieser Schlüssel sichert die Kommunikation zwischen den Contao-Installationen ab.<br />
* '''Titel:''' z.B. der Kundenname und der Name des Servers<br />
* '''Beschreibung:''' Eine aussagekräftige Beschreibung des Servers<br />
* '''Domain:''' Die Domain des Clients, ohne Unterverzeichnis<br />
* '''Serverpfad:''' Falls sich die Installation in einem Unterverzeichnis befindet<br />
* '''Portnummer:''' Standardmäßig ist es der Port 80<br />
* '''Verschlüsselungs-Engine:''' Es stehen drei Möglichkeiten zur Verfügung, in der Regel genügt "Blowfish"<br />
* '''HTTP-Authentifizierung aktivieren:''' Falls der Client mit einer .htaccess abgesichert ist, kann man hier den Benutzernamen und das Passwort eingeben und die gesicherte Installation synchronisieren<br />
<br />
==Synchronisation==<br />
<br />
Um den Client mit dem Server zu synchronisieren, klickt man beim entsprechenden Client auf den rechten Button "Client synchronisieren". Im nächsten Fenster wählt man die Synchronisationsart aus.<br />
<br />
* '''Contao-Installation:''' Die gesamte Contao-Installation, ausgenommen ist tl_files<br />
* '''Persönliche Daten:''' Nur Dateien und Ordner im tl_files Ordner. Core-Dateien werden nicht berücksichtigt<br />
* '''Konfigurationsdateien:''' Einträge aus der localconfig.php<br />
<br />
Standardmäßig ist die Option '''Persönliche Daten''' ausgewählt.<br /><br />
Danach kann man die DB-Tabellen auswählen. Man muss in diesem Schritt wissen welche Tabellen welche Daten enthält. Zum Schluss wählt man bei Bedarf noch Dateien und Ordner im tl_files aus und klickt für den Start der Synchronisation auf den Button "Client synchronisieren".<br />
<br />
==Backups==<br />
<br />
Backups können im Backend unter dem Menüpunkt Backups angelegt und wiederhergestellt werden. Alle Backups werden im automatisch angelegten Ordner "syncCto_backups" in den tl_files abgelegt. Datenbanken finden sich im Ordner "database" und Dateien im Ordner "files". Wenn man Backups wieder einspielen möchte, klickt man im Menüpunkt auf Backups und wählt die Art der Wiederherstellung. Im nächsten Schritt wählt man die entsprechende Datei aus und klickt auf "Wiederherstellen". Die Dateien oder die Datenbank auf dem Server werden danach mit den Daten aus dem Backup überschrieben.<br />
<br />
===Backups automatisiert löschen===<br />
<br />
Zur Verfügung stehen folgende zwei PHP-Skripte:<br />
<br />
* '''SyncCtoDeleteDbBackups.php''' Löscht alle Datenbank-Backups<br />
* '''SyncCtoDeleteFileBackups.php''' Löscht alle Datei-Backups<br />
<br />
Die Cron Extension wird seit 2.1 nicht mehr automatisch ausgeliefert, daher muss sie manuell nachinstalliert werden oder die Dateien werden über einen echten Cronjob konfiguriert.<br />
<br />
==Anwendungsfall 1==<br />
<br />
Auf dem Webserver laufen zwei Contao-Installationen.<br />
<br />
* Die Adresse der 1. Webseite heißt ''<nowiki>http://192.168.0.100/server/</nowiki>''<br />
* Die Adresse der 2. Webseite heißt ''<nowiki>http://192.168.0.100/client/</nowiki>''<br />
<br />
Der Server, bei syncCto, beschreibt immer die Installation die alle Informationen hat, die man auf eine andere Installation übertragen will. Dieses Ziel wird bei syncCto als Client beschrieben. Server und Client laufen also auf der gleichen Maschine auf den gleichen Webserver. <br />
<br />
==Anwendungsfall 2==<br />
<br />
Es gibt 2 Seiten die auf zwei verschiedenen Maschinen laufen. Beide Maschinen sind verbunden; egal ob nun im lokalen Netzwerk oder über das Internet. Dabei ist es wichtig das der Server den Client erreichen kann. Der Server kann lokal zuhause auf dem internen Webserver laufen. Der Client allerdings muss von außen erreichbar sein.<br />
<br />
* Server läuft lokal zuhause die Adresse ist ''<nowiki>http://192.168.0.100/server</nowiki>''<br />
* Der Client liegt im Internet und hat die Adresse ''<nowiki>http://www.example.com</nowiki>''<br />
<br />
So wird im Server für den Client einfach die Adresse ''<nowiki>http://www.example.com</nowiki>'' eingetragen.<br />
<br />
==Mögliche Problemfälle==<br />
<br />
Der SMH ist keine Lösung da die Daten via HTTP versendet werden. Ein ordentlich konfigurierter Server ist daher Pflicht.<br />
<br />
Um möglichen Problemfällen auf die Spur zu kommen kann man den Debugmodus in den Einstellungen aktivieren. Dabei wird die Dauer der Synchronisation und die Speicherauslastung während der Synchronisation ausgegeben. Zusätzlich werden Debugdateien im Tempordner von Contao abgelegt. Diese sind bei Problemen immer im Forum anzuhängen.<br />
<br />
==Weiterführende Links==<br />
<br />
* [http://www.contao-tutorials.de/tutorial/contao-installationen-synchronisieren.html Tutorial zu syncCto2]</div>Andreasisaakhttps://de.contaowiki.org/SyncCtoSyncCto2012-08-18T09:23:49Z<p>Andreasisaak: /* Backups automatisiert löschen */</p>
<hr />
<div>[[Category:Extensions]]<br />
Mit '''syncCto''' kann der Benutzer im Backend mehrere Contao-Installationen miteinander synchronisieren.<br />
{{ExtInfo<br />
| DevSite=http://www.men-at-work.de<br />
| ExtVersion=2.2.0<br />
| Version=2.10 - 2.11<br />
| ERLink=http://www.contao.org/erweiterungsliste/view/syncCto.html<br />
| TrackerLink=https://github.com/menatwork/syncCto<br />
}}<br />
<br />
==Was ist syncCto?==<br />
<br />
syncCto bietet die Möglichkeit mehrere Contao-Installationen auf Basis einer Grund-Installation zu synchronisieren. Alle Aktionen können bequem im Backend durchgeführt werden. Durch die Integration in das Contao Rechtesystem können auch Redakteure eine Auswahl vorher definierter Datenbank-Tabellen und Dateien synchronisieren.<br />
<br />
Ein integrierter Backup-Manager sichert ausgewählte Datenbank-Tabellen, wahlweise die gesamte Contao-Installation oder nur die persönlichen Daten. Angelegte Backups können durch den Backup-Manager auch wieder importiert werden.<br />
<br />
Durch die Verwendung von syncCto können Redakteure schnell und einfach in einem Preview-System arbeiten und bei Vollendung der Arbeit den aktuellen und freigegebenen Stand zum Live-System synchronisieren.<br />
<br />
==Server und Client bei syncCto==<br />
Zu unterscheiden ist zwischen Server und Client. Die Server-Installation ist die Installation die auf den Client übertragen werden soll. Der Client ist die Contao Installation, zu der synchronisiert werden soll, also meistens die Installation, die auf dem Live-Server liegt. <br /><br />
Anders gesagt, Entwicklungssystem: syncCto Server ; Livesystem: syncCto Client. Es gibt komplexere Beispiele, dazu folgt mehr in den weiteren Abschnitten.<br />
<br />
==Konfiguration==<br />
<br />
===Systemcheck===<br />
<br />
Für eine reibungslose und fehlerfreie Synchronisation ist es wichtig als erstes alle Installationen zu kontrollieren. Dafür steht der neue Menüpunkt Systemcheck zur Verfügung, denn dort werden alle für syncCto wichtigen Funktionen und Ressourcen des Servers aufgelistet. Sind alle Zellen grün, ist der erste Schritt getan. Sollte dies nicht der Fall sein, kann syncCto womöglich nicht erfolgreich funktionieren.<br />
<br />
===Einstellungen===<br />
<br />
Bevor man die erste Installation synchronisieren kann, muss zwingend bei allen Installationen auf denen syncCto installiert ist, der Menüpunkt Einstellungen ('''Contao Einstellungen''') aufgerufen und gespeichert werden. Bei diesem Vorgang wird der ctoCommunication API Key generiert. Den ctoCommunication API Key aus den Einstellungen der Clientinstallation benötigt man später bei der Erstellung des zuvor erwähnten Clients.<br />
<br />
Zu beachten: Der von syncCto verwendete ctoCommunication API Key ist nicht der Contao-Installations-Schlüssel.<br />
<br />
==Clients verwalten==<br />
<br />
Um im Server einen neuen Client anzulegen, klickt man im Menüpunkt Clients einfach auf den Button "Neuer Client".<br />
<br />
* '''ctoCommunication API Key:''' Dieser Schlüssel sichert die Kommunikation zwischen den Contao-Installationen ab.<br />
* '''Titel:''' z.B. der Kundenname und der Name des Servers<br />
* '''Beschreibung:''' Eine aussagekräftige Beschreibung des Servers<br />
* '''Domain:''' Die Domain des Clients, ohne Unterverzeichnis<br />
* '''Serverpfad:''' Falls sich die Installation in einem Unterverzeichnis befindet<br />
* '''Portnummer:''' Standardmäßig ist es der Port 80<br />
* '''Verschlüsselungs-Engine:''' Es stehen drei Möglichkeiten zur Verfügung, in der Regel genügt "Blowfish"<br />
* '''HTTP-Authentifizierung aktivieren:''' Falls der Client mit einer .htaccess abgesichert ist, kann man hier den Benutzernamen und das Passwort eingeben und die gesicherte Installation synchronisieren<br />
<br />
==Synchronisation==<br />
<br />
Um den Client mit dem Server zu synchronisieren, klickt man beim entsprechenden Client auf den rechten Button "Client synchronisieren". Im nächsten Fenster wählt man die Synchronisationsart aus.<br />
<br />
* '''Contao-Installation:''' Die gesamte Contao-Installation, Dateien und Ordner in den tl_files müssen seperat ausgewählt werden<br />
* '''Persönliche Daten:''' Nur ausgewählte Dateien und Ordner im tl_files Ordner. Core-Dateien werden nicht berücksichtigt<br />
<br />
Standardmäßig ist die Option '''Persönliche Daten''' ausgewählt.<br /><br />
Danach kann man die DB-Tabellen auswählen. Man muss in diesem Schritt wissen welche Tabellen welche Daten enthält. Zum Schluss wählt man bei Bedarf noch Dateien und Ordner im tl_files aus und klickt für den Start der Synchronisation auf den Button "Client synchronisieren".<br />
<br />
==Backups==<br />
<br />
Backups können im Backend unter dem Menüpunkt Backups angelegt und wiederhergestellt werden. Alle Backups werden im automatisch angelegten Ordner "syncCto_backups" in den tl_files abgelegt. Datenbanken finden sich im Ordner "database" und Dateien im Ordner "files". Wenn man Backups wieder einspielen möchte, klickt man im Menüpunkt auf Backups und wählt die Art der Wiederherstellung. Im nächsten Schritt wählt man die entsprechende Datei aus und klickt auf "Wiederherstellen". Die Dateien oder die Datenbank auf dem Server werden danach mit den Daten aus dem Backup überschrieben.<br />
<br />
===Backups automatisiert löschen===<br />
<br />
Zur Verfügung stehen folgende zwei PHP-Skripte:<br />
<br />
* '''SyncCtoDeleteDbBackups.php''' Löscht alle Datenbank-Backups<br />
* '''SyncCtoDeleteFileBackups.php''' Löscht alle Datei-Backups<br />
<br />
Die Cron Extension wird seit 2.1 nicht mehr automatisch ausgeliefert, daher muss sie manuell nachinstalliert werden oder die Dateien werden über einen echten Cronjob konfiguriert.<br />
<br />
==Anwendungsfall 1==<br />
<br />
Auf dem Webserver laufen zwei Contao-Installationen.<br />
<br />
* Die Adresse der 1. Webseite heißt ''<nowiki>http://192.168.0.100/server/</nowiki>''<br />
* Die Adresse der 2. Webseite heißt ''<nowiki>http://192.168.0.100/client/</nowiki>''<br />
<br />
Der Server, bei syncCto, beschreibt immer die Installation die alle Informationen hat, die man auf eine andere Installation übertragen will. Dieses Ziel wird bei syncCto als Client beschrieben. Server und Client laufen also auf der gleichen Maschine auf den gleichen Webserver. <br />
<br />
==Anwendungsfall 2==<br />
<br />
Es gibt 2 Seiten die auf zwei verschiedenen Maschinen laufen. Beide Maschinen sind verbunden; egal ob nun im lokalen Netzwerk oder über das Internet. Dabei ist es wichtig das der Server den Client erreichen kann. Der Server kann lokal zuhause auf dem internen Webserver laufen. Der Client allerdings muss von außen erreichbar sein.<br />
<br />
* Server läuft lokal zuhause die Adresse ist ''<nowiki>http://192.168.0.100/server</nowiki>''<br />
* Der Client liegt im Internet und hat die Adresse ''<nowiki>http://www.example.com</nowiki>''<br />
<br />
So wird im Server für den Client einfach die Adresse ''<nowiki>http://www.example.com</nowiki>'' eingetragen.<br />
<br />
==Mögliche Problemfälle==<br />
<br />
Der SMH ist keine Lösung da die Daten via HTTP versendet werden. Ein ordentlich konfigurierter Server ist daher Pflicht.<br />
<br />
Um möglichen Problemfällen auf die Spur zu kommen kann man den Debugmodus in den Einstellungen aktivieren. Dabei wird die Dauer der Synchronisation und die Speicherauslastung während der Synchronisation ausgegeben. Zusätzlich werden Debugdateien im Tempordner von Contao abgelegt. Diese sind bei Problemen immer im Forum anzuhängen.<br />
<br />
==Weiterführende Links==<br />
<br />
* [http://www.contao-tutorials.de/tutorial/contao-installationen-synchronisieren.html Tutorial zu syncCto2]</div>Andreasisaakhttps://de.contaowiki.org/SyncCtoSyncCto2012-08-18T09:11:13Z<p>Andreasisaak: </p>
<hr />
<div>[[Category:Extensions]]<br />
Mit '''syncCto''' kann der Benutzer im Backend mehrere Contao-Installationen miteinander synchronisieren.<br />
{{ExtInfo<br />
| DevSite=http://www.men-at-work.de<br />
| ExtVersion=2.2.0<br />
| Version=2.10 - 2.11<br />
| ERLink=http://www.contao.org/erweiterungsliste/view/syncCto.html<br />
| TrackerLink=https://github.com/menatwork/syncCto<br />
}}<br />
<br />
==Was ist syncCto?==<br />
<br />
syncCto bietet die Möglichkeit mehrere Contao-Installationen auf Basis einer Grund-Installation zu synchronisieren. Alle Aktionen können bequem im Backend durchgeführt werden. Durch die Integration in das Contao Rechtesystem können auch Redakteure eine Auswahl vorher definierter Datenbank-Tabellen und Dateien synchronisieren.<br />
<br />
Ein integrierter Backup-Manager sichert ausgewählte Datenbank-Tabellen, wahlweise die gesamte Contao-Installation oder nur die persönlichen Daten. Angelegte Backups können durch den Backup-Manager auch wieder importiert werden.<br />
<br />
Durch die Verwendung von syncCto können Redakteure schnell und einfach in einem Preview-System arbeiten und bei Vollendung der Arbeit den aktuellen und freigegebenen Stand zum Live-System synchronisieren.<br />
<br />
==Server und Client bei syncCto==<br />
Zu unterscheiden ist zwischen Server und Client. Die Server-Installation ist die Installation die auf den Client übertragen werden soll. Der Client ist die Contao Installation, zu der synchronisiert werden soll, also meistens die Installation, die auf dem Live-Server liegt. <br /><br />
Anders gesagt, Entwicklungssystem: syncCto Server ; Livesystem: syncCto Client. Es gibt komplexere Beispiele, dazu folgt mehr in den weiteren Abschnitten.<br />
<br />
==Konfiguration==<br />
<br />
===Systemcheck===<br />
<br />
Für eine reibungslose und fehlerfreie Synchronisation ist es wichtig als erstes alle Installationen zu kontrollieren. Dafür steht der neue Menüpunkt Systemcheck zur Verfügung, denn dort werden alle für syncCto wichtigen Funktionen und Ressourcen des Servers aufgelistet. Sind alle Zellen grün, ist der erste Schritt getan. Sollte dies nicht der Fall sein, kann syncCto womöglich nicht erfolgreich funktionieren.<br />
<br />
===Einstellungen===<br />
<br />
Bevor man die erste Installation synchronisieren kann, muss zwingend bei allen Installationen auf denen syncCto installiert ist, der Menüpunkt Einstellungen ('''Contao Einstellungen''') aufgerufen und gespeichert werden. Bei diesem Vorgang wird der ctoCommunication API Key generiert. Den ctoCommunication API Key aus den Einstellungen der Clientinstallation benötigt man später bei der Erstellung des zuvor erwähnten Clients.<br />
<br />
Zu beachten: Der von syncCto verwendete ctoCommunication API Key ist nicht der Contao-Installations-Schlüssel.<br />
<br />
==Clients verwalten==<br />
<br />
Um im Server einen neuen Client anzulegen, klickt man im Menüpunkt Clients einfach auf den Button "Neuer Client".<br />
<br />
* '''ctoCommunication API Key:''' Dieser Schlüssel sichert die Kommunikation zwischen den Contao-Installationen ab.<br />
* '''Titel:''' z.B. der Kundenname und der Name des Servers<br />
* '''Beschreibung:''' Eine aussagekräftige Beschreibung des Servers<br />
* '''Domain:''' Die Domain des Clients, ohne Unterverzeichnis<br />
* '''Serverpfad:''' Falls sich die Installation in einem Unterverzeichnis befindet<br />
* '''Portnummer:''' Standardmäßig ist es der Port 80<br />
* '''Verschlüsselungs-Engine:''' Es stehen drei Möglichkeiten zur Verfügung, in der Regel genügt "Blowfish"<br />
* '''HTTP-Authentifizierung aktivieren:''' Falls der Client mit einer .htaccess abgesichert ist, kann man hier den Benutzernamen und das Passwort eingeben und die gesicherte Installation synchronisieren<br />
<br />
==Synchronisation==<br />
<br />
Um den Client mit dem Server zu synchronisieren, klickt man beim entsprechenden Client auf den rechten Button "Client synchronisieren". Im nächsten Fenster wählt man die Synchronisationsart aus.<br />
<br />
* '''Contao-Installation:''' Die gesamte Contao-Installation, Dateien und Ordner in den tl_files müssen seperat ausgewählt werden<br />
* '''Persönliche Daten:''' Nur ausgewählte Dateien und Ordner im tl_files Ordner. Core-Dateien werden nicht berücksichtigt<br />
<br />
Standardmäßig ist die Option '''Persönliche Daten''' ausgewählt.<br /><br />
Danach kann man die DB-Tabellen auswählen. Man muss in diesem Schritt wissen welche Tabellen welche Daten enthält. Zum Schluss wählt man bei Bedarf noch Dateien und Ordner im tl_files aus und klickt für den Start der Synchronisation auf den Button "Client synchronisieren".<br />
<br />
==Backups==<br />
<br />
Backups können im Backend unter dem Menüpunkt Backups angelegt und wiederhergestellt werden. Alle Backups werden im automatisch angelegten Ordner "syncCto_backups" in den tl_files abgelegt. Datenbanken finden sich im Ordner "database" und Dateien im Ordner "files". Wenn man Backups wieder einspielen möchte, klickt man im Menüpunkt auf Backups und wählt die Art der Wiederherstellung. Im nächsten Schritt wählt man die entsprechende Datei aus und klickt auf "Wiederherstellen". Die Dateien oder die Datenbank auf dem Server werden danach mit den Daten aus dem Backup überschrieben.<br />
<br />
===Backups automatisiert löschen===<br />
<br />
Ab der Version 1.1.0 liegen der Extension zwei neue Cronjobs bei. Die Cronjobs löschen in Verbindung mit der Extension [http://www.contao.org/erweiterungsliste/view/cron.html Cron] automatisiert die Backups aus dem jeweiligen Ordner. Bei der Konfiguration der Cronjobs muss man den Link zum PHP-Script eingeben und den Intervall einstellen.<br />
<br />
Zur Verfügung stehen folgende zwei PHP-Skripte:<br />
<br />
* '''SyncCtoDeleteDbBackups.php''' Löscht alle Datenbank-Backups<br />
* '''SyncCtoDeleteFileBackups.php''' Löscht alle Datei-Backups<br />
<br />
[[Datei:SyncCto-konfiguration-cronjobs.jpg|Konfiguration der Cronjobs|frame|center]]<br />
<br />
Die Backups werden mit dieser Einstellung alle 7 Tage um genau 0:00 gelöscht. Möchte man den Zeitraum erhöhen, muss man */7 einfach gegen die Zahl austauschen. */14 löscht die Backups beispielsweise alle 14 Tage.<br />
<br />
[[Datei:SyncCto-konfiguration-cronjobs-2.jpg|Konfiguration zum Ausführen der Cronjobs|frame|center]]<br />
<br />
Nach Fertigstellung könnten die Cronjobs folgendermaßen aussehen:<br />
<br />
[[Datei:SyncCto-Cronjob.jpg|Übersicht Cronjobs|frame|center]]<br />
<br />
==Anwendungsfall 1==<br />
<br />
Auf dem Webserver laufen zwei Contao-Installationen.<br />
<br />
* Die Adresse der 1. Webseite heißt ''<nowiki>http://192.168.0.100/server/</nowiki>''<br />
* Die Adresse der 2. Webseite heißt ''<nowiki>http://192.168.0.100/client/</nowiki>''<br />
<br />
Der Server, bei syncCto, beschreibt immer die Installation die alle Informationen hat, die man auf eine andere Installation übertragen will. Dieses Ziel wird bei syncCto als Client beschrieben. Server und Client laufen also auf der gleichen Maschine auf den gleichen Webserver. <br />
<br />
==Anwendungsfall 2==<br />
<br />
Es gibt 2 Seiten die auf zwei verschiedenen Maschinen laufen. Beide Maschinen sind verbunden; egal ob nun im lokalen Netzwerk oder über das Internet. Dabei ist es wichtig das der Server den Client erreichen kann. Der Server kann lokal zuhause auf dem internen Webserver laufen. Der Client allerdings muss von außen erreichbar sein.<br />
<br />
* Server läuft lokal zuhause die Adresse ist ''<nowiki>http://192.168.0.100/server</nowiki>''<br />
* Der Client liegt im Internet und hat die Adresse ''<nowiki>http://www.example.com</nowiki>''<br />
<br />
So wird im Server für den Client einfach die Adresse ''<nowiki>http://www.example.com</nowiki>'' eingetragen.<br />
<br />
==Mögliche Problemfälle==<br />
<br />
Der SMH ist keine Lösung da die Daten via HTTP versendet werden. Ein ordentlich konfigurierter Server ist daher Pflicht.<br />
<br />
Um möglichen Problemfällen auf die Spur zu kommen kann man den Debugmodus in den Einstellungen aktivieren. Dabei wird die Dauer der Synchronisation und die Speicherauslastung während der Synchronisation ausgegeben. Zusätzlich werden Debugdateien im Tempordner von Contao abgelegt. Diese sind bei Problemen immer im Forum anzuhängen.<br />
<br />
==Weiterführende Links==<br />
<br />
* [http://www.contao-tutorials.de/tutorial/contao-installationen-synchronisieren.html Tutorial zu syncCto2]</div>Andreasisaakhttps://de.contaowiki.org/SyncCtoSyncCto2012-05-09T21:04:20Z<p>Andreasisaak: </p>
<hr />
<div>[[Category:Extensions]]<br />
Mit '''syncCto''' kann der Benutzer im Backend mehrere Contao-Installationen miteinander synchronisieren.<br />
{{ExtInfo<br />
| DevSite=http://www.men-at-work.de<br />
| ExtVersion=2.1.0<br />
| Version=2.10.0 - 2.11.3<br />
| ERLink=http://www.contao.org/erweiterungsliste/view/syncCto.html<br />
| TrackerLink=https://github.com/menatwork/syncCto<br />
}}<br />
<br />
==Was ist syncCto?==<br />
<br />
syncCto bietet die Möglichkeit mehrere Contao-Installationen auf Basis einer Grund-Installation zu synchronisieren. Alle Aktionen können bequem im Backend durchgeführt werden. Durch die Integration in das Contao Rechtesystem können auch Redakteure eine Auswahl vorher definierter Datenbank-Tabellen und Dateien synchronisieren.<br />
<br />
Ein integrierter Backup-Manager sichert ausgewählte Datenbank-Tabellen, wahlweise die gesamte Contao-Installation oder nur die persönlichen Daten. Angelegte Backups können durch den Backup-Manager auch wieder importiert werden.<br />
<br />
Durch die Verwendung von syncCto können Redakteure schnell und einfach in einem Preview-System arbeiten und bei Vollendung der Arbeit den aktuellen und freigegebenen Stand zum Live-System synchronisieren.<br />
<br />
==Konfiguration==<br />
<br />
===Systemcheck===<br />
<br />
Für eine reibungslose und fehlerfreie Synchronisation ist es wichtig als erstes alle Installationen zu kontrollieren. Dafür steht der neue Menüpunkt Systemcheck zur Verfügung, denn dort werden alle für syncCto wichtigen Funktionen und Ressourcen des Servers aufgelistet. Sind alle Zellen grün, ist der erste Schritt getan. Sollte dies nicht der Fall sein, kann syncCto womöglich nicht erfolgreich funktionieren.<br />
<br />
===Einstellungen===<br />
<br />
Bevor man die erste Installation synchronisieren kann, muss zwingend bei allen Installationen auf denen syncCto installiert ist, der Menüpunkt Einstellungen (Contao Einstellungen) aufgerufen und gespeichert werden. Bei diesem Vorgang wird der ctoCommunication API Key generiert. Den ctoCommunication API Key aus den Einstellungen der Clientinstallation benötigt man später bei der Erstellung des zuvor erwähnten Clients.<br />
<br />
Zu beachten: Der von syncCto verwendete ctoCommunication API Key ist nicht der Contao-Installations-Schlüssel.<br />
<br />
==Clients verwalten==<br />
<br />
Um einen neuen Client anzulegen, klickt man im Menüpunkt Clients einfach auf den Button "Neuer Client".<br />
<br />
* '''ctoCommunication API Key:''' Dieser Schlüssel sichert die Kommunikation zwischen den Contao-Installationen ab.<br />
* '''Titel:''' z.B. der Kundenname und der Name des Servers<br />
* '''Beschreibung:''' Eine aussagekräftige Beschreibung des Servers<br />
* '''Domain:''' Die Domain des Clients, ohne Unterverzeichnis<br />
* '''Serverpfad:''' Falls sich die Installation in einem Unterverzeichnis befindet<br />
* '''Portnummer:''' Standardmäßig ist es der Port 80<br />
* '''Verschlüsselungs-Engine:''' Es stehen drei Möglichkeiten zur Verfügung, in der Regel genügt "Blowfish"<br />
* '''HTTP-Authentifizierung aktivieren:''' Falls der Client mit einer .htaccess abgesichert ist, kann man hier den Benutzernamen und das Passwort eingeben und die gesicherte Installation synchronisieren<br />
<br />
==Synchronisation==<br />
<br />
Um den Client mit dem Server zu synchronisieren, klickt man beim entsprechenden Client auf den rechten Button "Client synchronisieren". Im nächsten Fenster wählt man die Synchronisationsart aus.<br />
<br />
* '''Contao-Installation:''' Die gesamte Contao-Installation, Dateien und Ordner in den tl_files müssen seperat ausgewählt werden<br />
* '''Persönliche Daten:''' Nur ausgewählte Dateien und Ordner im tl_files Ordner. Core-Dateien werden nicht berücksichtigt<br />
<br />
Standardmäßig ist die Option '''Persönliche Daten''' ausgewählt.<br /><br />
Danach kann man die DB-Tabellen auswählen. Man muss in diesem Schritt wissen welche Tabellen welche Daten enthält. Zum Schluss wählt man bei Bedarf noch Dateien und Ordner im tl_files aus und klickt für den Start der Synchronisation auf den Button "Client synchronisieren".<br />
<br />
==Backups==<br />
<br />
Backups können im Backend unter dem Menüpunkt Backups angelegt und wiederhergestellt werden. Alle Backups werden im automatisch angelegten Ordner "syncCto_backups" in den tl_files abgelegt. Datenbanken finden sich im Ordner "database" und Dateien im Ordner "files". Wenn man Backups wieder einspielen möchte, klickt man im Menüpunkt auf Backups und wählt die Art der Wiederherstellung. Im nächsten Schritt wählt man die entsprechende Datei aus und klickt auf "Wiederherstellen". Die Dateien oder die Datenbank auf dem Server werden danach mit den Daten aus dem Backup überschrieben.<br />
<br />
===Backups automatisiert löschen===<br />
<br />
Ab der Version 1.1.0 liegen der Extension zwei neue Cronjobs bei. Die Cronjobs löschen in Verbindung mit der Extension [http://www.contao.org/erweiterungsliste/view/cron.html Cron] automatisiert die Backups aus dem jeweiligen Ordner. Bei der Konfiguration der Cronjobs muss man den Link zum PHP-Script eingeben und den Intervall einstellen.<br />
<br />
Zur Verfügung stehen folgende zwei PHP-Skripte:<br />
<br />
* '''SyncCtoDeleteDbBackups.php''' Löscht alle Datenbank-Backups<br />
* '''SyncCtoDeleteFileBackups.php''' Löscht alle Datei-Backups<br />
<br />
[[Datei:SyncCto-konfiguration-cronjobs.jpg|Konfiguration der Cronjobs|frame|center]]<br />
<br />
Die Backups werden mit dieser Einstellung alle 7 Tage um genau 0:00 gelöscht. Möchte man den Zeitraum erhöhen, muss man */7 einfach gegen die Zahl austauschen. */14 löscht die Backups beispielsweise alle 14 Tage.<br />
<br />
[[Datei:SyncCto-konfiguration-cronjobs-2.jpg|Konfiguration zum Ausführen der Cronjobs|frame|center]]<br />
<br />
Nach Fertigstellung könnten die Cronjobs folgendermaßen aussehen:<br />
<br />
[[Datei:SyncCto-Cronjob.jpg|Übersicht Cronjobs|frame|center]]<br />
<br />
==Anwendungsfall 1==<br />
<br />
Auf dem Webserver laufen zwei Contao-Installationen.<br />
<br />
* Die Adresse der 1. Webseite heißt ''<nowiki>http://192.168.0.100/server/</nowiki>''<br />
* Die Adresse der 2. Webseite heißt ''<nowiki>http://192.168.0.100/client/</nowiki>''<br />
<br />
Der Server, bei syncCto, beschreibt immer die Installation die alle Informationen hat, die man auf eine andere Installation übertragen will. Dieses Ziel wird bei syncCto als Client beschrieben. Server und Client laufen also auf der gleichen Maschine auf den gleichen Webserver. <br />
<br />
==Anwendungsfall 2==<br />
<br />
Es gibt 2 Seiten die auf zwei verschiedenen Maschinen laufen. Beide Maschinen sind verbunden; egal ob nun im lokalen Netzwerk oder über das Internet. Dabei ist es wichtig das der Server den Client erreichen kann. Der Server kann lokal zuhause auf dem internen Webserver laufen. Der Client allerdings muss von außen erreichbar sein.<br />
<br />
* Server läuft lokal zuhause die Adresse ist ''<nowiki>http://192.168.0.100/server</nowiki>''<br />
* Der Client liegt im Internet und hat die Adresse ''<nowiki>http://www.example.com</nowiki>''<br />
<br />
So wird im Server für den Client einfach die Adresse ''<nowiki>http://www.example.com</nowiki>'' eingetragen.<br />
<br />
==Mögliche Problemfälle==<br />
<br />
Der SMH ist keine Lösung da die Daten via HTTP versendet werden. Ein ordentlich konfigurierter Server ist daher Pflicht.<br />
<br />
Um möglichen Problemfällen auf die Spur zu kommen kann man den Debugmodus in den Einstellungen aktivieren. Dabei wird die Dauer der Synchronisation und die Speicherauslastung während der Synchronisation ausgegeben. Zusätzlich werden Debugdateien im Tempordner von Contao abgelegt. Diese sind bei Problemen immer im Forum anzuhängen.<br />
<br />
==Weiterführende Links==<br />
<br />
* [http://www.contao-tutorials.de/tutorial/contao-installationen-synchronisieren.html Tutorial zu syncCto2]</div>Andreasisaakhttps://de.contaowiki.org/MultiColumnWizardMultiColumnWizard2012-04-19T20:58:39Z<p>Andreasisaak: </p>
<hr />
<div>[[en:MultiSelectWizard]]<br />
[[Category:Extensions]]<br />
{{ExtInfo<br />
| DevSite=http://www.men-at-work.de<br />
| ExtVersion=3.0.0<br />
| Version=2.10+<br />
| ERLink=http://www.contao.org/erweiterungsliste/view/MultiColumnWizard.html<br />
| TrackerLink=https://github.com/menatwork/MultiColumnWizard/issues<br />
}}<br />
<br />
Der MultiColumnWizard ist ein Widget zur Abbildung von mehreren Feldern ''gleichen'' und/oder ''unterschiedlichen'' Typs (''Inputtype'') in einem DCA-Element. Die einzelnen Felder des MCW werden im Backend spaltenweise geführt und sind als Gruppe zeilenweise erweiterbar. Die Anordnung entspricht einem multidimensionalen Array der Form ''array[Zeilen][Felder]'', das als serialisiertes Array in der Datenbank abgelegt wird. Das Widget ist quasi identisch zu [[MultiTextWizard]] oder [[MultiSelectWizard]]. Es erweitert die Funktionalitäten für beliebige Widgets.<br />
<br />
=Aussehen=<br />
Die Extension kann für jede Art von Inputtype verwendet werden, eine Mischung der einzelnen Typen ist kein Problem.<br />
[[Datei:MultiColumnWizard.jpg|MultiColumnWizard|frame|center]]<br />
<br />
=Verwendung=<br />
Es gibt zwei Verwendungsmöglichkeiten. Entweder direkt mit der Angabe von "columnFields" im "eval"-Array oder mit einem Callback.<br />
<br />
==Angabe mit columnFields==<br />
<br />
<source lang="php"><br />
$GLOBALS['TL_DCA']['tl_theme']['fields']['templateSelection'] = array<br />
(<br />
'label' => &$GLOBALS['TL_LANG']['tl_theme']['templateSelection'],<br />
'exclude' => true,<br />
'inputType' => 'multiColumnWizard',<br />
'eval' => array<br />
(<br />
'columnFields' => array<br />
(<br />
'ts_client_os' => array<br />
(<br />
'label' => &$GLOBALS['TL_LANG']['tl_theme']['ts_client_os'],<br />
'exclude' => true,<br />
'inputType' => 'select',<br />
'options' => array<br />
(<br />
'option1' => 'Option 1',<br />
'option2' => 'Option 2',<br />
),<br />
'eval' => array('style' => 'width:250px', 'includeBlankOption'=>true)<br />
),<br />
'ts_client_browser' => array<br />
(<br />
'label' => &$GLOBALS['TL_LANG']['tl_theme']['ts_client_browser'],<br />
'exclude' => true,<br />
'inputType' => 'text',<br />
'eval' => array('style'=>'width:180px')<br />
),<br />
'ts_client_mobile' => array<br />
(<br />
'label' => &$GLOBALS['TL_LANG']['tl_theme']['ts_client_mobile'],<br />
'exclude' => true,<br />
'inputType' => 'checkbox',<br />
'eval' => array('style'=>'width:40px')<br />
<br />
),<br />
'ts_extension' => array<br />
(<br />
'label' => &$GLOBALS['TL_LANG']['tl_theme']['ts_extension'],<br />
'inputType' => 'text',<br />
'eval' => array('mandatory'=>true, 'style'=>'width:115px')<br />
),<br />
)<br />
)<br />
);<br />
</source><br />
<br />
==Angabe mit Callback==<br />
<source lang="php"><br />
$GLOBALS['TL_DCA']['tl_table']['fields']['anything'] = array<br />
(<br />
'label' => &$GLOBALS['TL_LANG']['tl_table']['anything'],<br />
'exclude' => true,<br />
'inputType' => 'multiColumnWizard',<br />
'eval' => array('mandatory'=>true,'columnsCallback'=>array('Class', 'Method'))<br />
<br />
);<br />
</source><br />
<br />
Wobei natürlich der Return-Wert genau das selbe Array sein muss, wie bei der "columnFields"-Variante.<br />
<br />
==Verfügbare MultiColumnWizard Eval-Optionen==<br />
<br />
{| cellpadding="20" cellspacing="0"<br />
|-<br />
| '''Schlüssel''' || '''Wert''' || '''Beschreibung''' || '''Beispiel'''<br />
|-<br />
| columnPos || Gruppenname<br />''string'' || Gruppiert Felder und zeigt Sie untereinander an. || <br />
|-<br />
| maxCount || Menge<br />''integer'' || Legt die maximale Anzahl an Felder fest, die angelegt werden dürfen. || <source lang="php">$GLOBALS['TL_DCA']['tl_example']['fields']['mcwExample']['eval']['maxCount'] = 4;</source><br />
|-<br />
| minCount || Menge<br />''integer'' || Legt die minimale Anzahl an Felder fest, die angelegt werden dürfen. || <source lang="php">$GLOBALS['TL_DCA']['tl_example']['fields']['mcwExample']['eval']['minCount '] = 2;</source><br />
|-<br />
| valign || Position<br />''string'' || Legt die vertikale Position der Zelle in der Tabelle fest. || <source lang="php">$GLOBALS['TL_DCA']['tl_example']['fields']['mcwExample']['eval']['valign'] = 'top';</source><br />
|-<br />
| buttonPos || Position<br />''string'' || Legt die vertikale Position der Zelle, in der sich die Buttons befinden, fest. ||<br />
|-<br />
| buttons || Buttonnamen<br />''associative array'' || Legt fest, mit welchem Icon die 4 Buttons "up", "down", "copy", "delete" dargestellt werden. Dabei ist der Buttonname der Schlüssel und der Pfad zum Icon der Wert. Wird ein Wert für einen Button explizit auf ''false'' gesetzt, so wird dieser versteckt. || <source lang="php">$GLOBALS['TL_DCA']['tl_example']['fields']['mcwExample']['eval']['buttons'] = array('copy' => false, 'delete' => false, 'up' => 'myUpIcon.png');</source><br />
|}<br />
<br />
==Unterstützte Contao Eval-Optionen==<br />
Diese Eval-Optionen werden für die "Kindwidgets" - oder besser "komponierten Widgets" - unterstützt.<br />
<br />
{|<br />
|-<br />
| '''Schlüssel''' || '''Status'''<br />
|-<br />
| nospace || ''Ungetestet''<br />
|-<br />
| multiple || Unterstützt<br />
|-<br />
| size || Unterstützt<br />
|-<br />
| rgxp || Unterstützt<br />
|-<br />
| style || Unterstützt<br />
|-<br />
| tl_class || Unterstützt<br />
|-<br />
| preserveTags || Unterstützt<br />
|-<br />
| allowHtml || Unterstützt<br />
|-<br />
| trailingSlash || ''Ungetestet''<br />
|-<br />
| mandatory || Unterstützt<br />
|-<br />
| spaceToUnderscore || Unterstützt<br />
|-<br />
| includeBlankOption || Unterstützt<br />
|-<br />
| maxlength || Unterstützt<br />
|-<br />
| minlength || Unterstützt<br />
|}</div>Andreasisaakhttps://de.contaowiki.org/EFGEFG2012-03-27T10:18:17Z<p>Andreasisaak: </p>
<hr />
<div>{{stub}}<br />
<br />
'''EFG (Extended Form Generator)'''<br />
Übertrag Handbuch EFG aus altem Wiki<br />
<br />
{{AppliesTo<br />
|Version=2.9<br />
}}<br />
<br />
{{ExtInfo<br />
| Dev=Thomas Kuhn<br />
| ExtVersion=1.14.0 stable<br />
| Version=2.7.0 - 2.9.3<br />
| ERLink=http://www.contao.org/erweiterungsliste/view/efg.10140009.de.html<br />
|Depending=[http://www.contao.org/erweiterungsliste/view/xls_export.de.html<br />
}}<br />
<br />
== Was ist und was bietet EFG? ==<br />
EFG steht für Extended Form Generator und erweitert den Contao Formular-Generator um die folgenden Features.<br />
<br />
=== A - Bestätigung per Email ===<br />
Contao bietet die Möglichkeit, nach Absenden eines Formulars im Frontend auf eine "Danke-Seite" weiterzuleiten, sowie eine E-Mail mit den übermittelten Daten an eine definierte E-Mail-Adresse zu versenden. Diese kann optional als Kopie auch an den Absender des Formulars geschickt werden.<br />
<br />
EFG bietet darüberhinaus die Möglichkeit, eine E-Mail mit beliebigem Text-Inhalt an den Formular-Absender zu senden. Der Text und Betreff kann durch den Einsatz von "Insert-Tags" personalisiert werden. <br />
<br />
Ab v1.8 können die "Insert-Tags" (wie in der Bestätigungs-Mail) auch auf der Bestätigungs-Seite verwendet werden.<br />
<br />
=== B - Speichern eingehender "Formular-Daten", Erstellung von Backend-Modulen ===<br />
EFG bietet im Formular-Generator eine weitere Option "Daten im Backend-Modul speichern".<br />
<br />
Bei gewählter Option werden Backend-Module erzeugt, in denen die aus Frontend-Formularen eingehenden Daten verwaltet werden können.<br />
Es ist ebenso möglich, neue Datensätze direkt im Backend anzulegen - auch ohne veröffentlichtes Frontend-Formular. Dadurch können nahezu beliebige Backend-Module/-Tabellen erstellt werden, einfach durch Anlegen eines Fomulars mit den benötigten Feldern. Manuelles Anlegen von Datenbank-Tabellen ist nicht erforderlich.<br />
<br />
Zur Ausgabe und Bearbeitung der "Formular-Daten" im Frontend (mit Listen- und Detailansicht sowie Suche) steht letztlich noch ein spezielles Listing-Modul zur Verfügung.<br />
<br />
=== C - zusätzliche Formularfeld-Typen ===<br />
EFG stellt im Formular-Generator weitere Feld-Typen bereit:<br />
* Select-Menü (DB)<br />
* Radio-Button-Menü (DB) und<br />
* Checkbox-Menü (DB)<br />
<br />
Die im Frontend-Formular verfügbaren Optionen dieser Formular-Elemente werden aus beliebigen TL-Datenbank-Tabellen generiert (Angabe der Tabelle, des anzuzeigenden Feldes sowie optionaler Einschränkung zur Filterung der Werte)<br />
<br />
[[Datei:Efg-be_formdatalisting_de.png]]<br />
<br />
Dieser Feld-Typ erzeugt im Frontend-Formular eine Bilder-Galerie, ergänzt um Radio-Buttons zur Auswahl eines Bildes.<br />
<br />
== Funktionsweise und Erläuterungen ==<br />
<br />
'''Bestätigungs-Email'''<br />
<br />
Hierfür stehen im Formular-Generator die im folgenden dargestellten Felder zur Verfügung.<br />
<br />
'''Bestätigung per E-Mail versenden:'''<br />
<br />
Nur wenn diese Option gewählt ist, wird eine Bestätigungs-E-Mail versendet und es stehen die weiteren Felder zur Verfügung:<br />
<br />
'''Formularfeld der Empfänger-E-Mailadresse:'''<br />
<br />
Hier muß das Formularfeld gewählt werden, das die E-Mail-Adresse des Frontend-Benutzers/Seitenbesuchers enthält<br />
<br />
'''Absender:'''<br />
<br />
Die E-Mail-Adresse, die als Absender der Bestätigungs-Mail verwendet wird<br />
Verwendung von Insert-Tags möglich, siehe "Text der Bestätigungs-E-Mail"<br />
<br />
'''Betreff:'''<br />
<br />
Die Betreffzeile der Bestätigungs-Mail<br />
Verwendung von Insert-Tags möglich, siehe "Text der Bestätigungs-E-Mail"<br />
<br />
'''Text der Bestätigungs-E-Mail:'''<br />
<br />
Der eigentliche Text (Mail-Body) der Bestätigungs-Email. Es können die allgemeinen "Insert-Tags" (siehe http://www.contao.org/inserttags.html ) zur Ausgabe von Datum o.ä. eingesetzt werden.<br />
<br />
Weiterhin können die per Formular übermittelten Daten mit Insert-Tags der Form<br />
<source>{{form::FELDNAME}}</source> im Text eingesetzt werden.<br />
<br />
FELDNAME steht hierbei für den "Feldname", der im Formular-Generator für das jeweilige Formularfeld eingetragen wurde.<br />
<br />
Enthält das Formular z.B. ein Feld mit Feldname "user_name", so wird das Insert Tag <source>{{form::user_name}}</source> im Text der Email durch den vom Formular-Absender angegebenen Namen ersetzt.<br />
<br />
Datei-Uploads können als Anhang der Bestätigungs-Mail versendet werden, durch Einfügen von Insert-Tags der Form <source>{{form::FELDNAME?attachement=true}}</source><br />
<br />
<br />
'''HTML-Vorlage für die Bestätigungs-Email:'''<br />
<br />
Falls die Bestätigungs-Email als HTML-Mail (bzw. als Multipart, sowohl Text- als auch HTML-Version) versendet werden soll, kann hier aus dem Dateisystem eine HTML-Datei gewählt werden.<br />
<br />
Mit der Installation dieser Extension wird im Ordner "example_confirmation_mail" ein einfaches Beispiel für Testzwecke bereitgestellt. Die Verwendung der Insert-Tags ist auch in der HTML-Vorlage möglich.<br />
<br />
[[Datei:Efg_form_options1_de.png|efg_form_options1_de.png]]<br />
<br />
<br />
== Speichern von "Formular-Daten" im Backend, Erstellung von Backend-Modulen ==<br />
<br />
'''"Formular-Daten" im Backend'''<br />
<br />
EFG stellt im Formular-Generator eine zusätzliche Option zur Verfügung:<br />
<br />
* Daten im Modul "Formular-Daten" speichern<br />
<br />
[[Datei:Efg_form_options2_de.png|Efg_form_options2_de.png]]<br />
<br />
Wenn diese Option aktiviert ist, werden über das Frontend-Formular übermittelte Daten in der Datenbank gespeichert und können im Backend verwaltet werden.<br />
{{Hinweis|Nach Ergänzung oder Änderung von Formular-Feldern muß das Formular erneut gespeichert werden, oder aber diese Option erst nach Anlegen aller benötigten Formular-Felder gewählt werden.}}<br />
<br />
'''Verwaltung der "Formular-Daten" im Backend'''<br />
<br />
Sobald für mindestens ein Formular die Speicherung der "Formular-Daten" aktiviert ist, erscheint ein neuer Bereich in der Backend-Navigation, benannt als "Formular-Daten".<br />
<br />
<br />
[[Datei:Efg_be_module_feedback.png|Efg_be_module_feedback.png]]<br />
<br />
Jedes "daten-speichernde" Formular erzeugt darunter einen weiteren Eintrag (die Bezeichnung entspricht dabei dem Titel des Formulars).<br />
<br />
Hier können die Daten bearbeitet/verändert und gelöscht werden. Auch Neuanlegen von Datensätzen, sowie Export der Daten im CSV-Format ist im Backend möglich.<br />
<br />
Zusätzlich bietet der Navigations-Eintrag "Feedback" den gleichzeitigen Zugriff auf die aus verschiedenen Formularen gespeicherten Daten. Dies kann genutzt werden, wenn z.B. mehrere unterschiedliche "Anfrage"-Formulare im Einsatz sind. (Ein Neuanlegen von Daten ist allerdings nur in den formularspezifischen Listen-Ansichten möglich.)<br />
<br />
----<br />
<br />
'''Bearbeitung der Daten im Backend'''<br />
<br />
[[Datei:Efg_be_formdata_edit_de.png|Efg_be_formdata_edit_de.png]]<br />
<br />
Jeder Datensatz umfasst<br />
* zusätzlich zu den per Formularfeld definierten - folgende Basis-/Metadaten:<br />
* das Datum der Erstellung/Übermittlung des Datensatzes (Feldname "date") '''''*1'''''<br />
* die IP-Adresse des Benutzers (Feldname "ip") '''''*1'''''<br />
* eine Checkbox "Veröffentlicht" (Feldname: "published", Vorgabewert: nicht veröffentlicht, kann wie bei Artikeln z.B. in Verbindung mit Auflistung-Modul als Kriterium für Anzeige im Frontend dienen) '''''*2'''''<br />
* ein Textfeld "Bemerkung" (Feldname: "be_notes") '''''*2'''''<br />
<br />
'''''*1''''' - diese Felder sind im Frontend-Formular nicht verfügbar; sie werden sowohl per Frontend-Formular als auch bei Daten-Erfassung im Backend automatisch befüllt<br />
<br />
'''''*2''''' - diese Felder sind im Frontend-Formular nicht verfügbar, können aber z.B. in Verbindung mit Auflistungs-Modul Verwendung finden<br />
<br />
----<br />
<br />
'''Frontend-Modul "Auflistung Formular-Daten"'''<br />
<br />
Zur Ausgabe der "Formular-Daten" im Frontend steht ein Ausgabe-Modul "Auflistung Fomular-Daten" zur Verfügung. Die Anwendung und Funktionsweise entspricht dem Modul "Auflistung".<br />
Optional kann die Bearbeitung und das Löschen der Daten im Frontend ermöglicht werden (wahlweise öffentlich, nur Daten der eigenen Mitglieder-Gruppe oder nur eigene Daten). <br />
<br />
[[Datei:efg-be_formdatalisting_de.png|efg-be_formdatalisting_de.png]]<br />
<br />
<br />
Anstelle von Datenbank-Feldnamen wird bei den Angaben "Felder", "Bedingung", "Sortieren nach", "Durchsuchbare Felder" und "Felder der Detailseite" der im Formular-Generator für das jeweilige Formularfeld eingetragene "Feldname" verwendet.<br />
<br />
== Lizenz ==<br />
EFG wird der Contao Community unter der gleichen Lizenz wie Contao zur Verfügung gestellt (LGPL).<br />
<br />
== Autor der Erweiterung EFG ==<br />
Thomas Kuhn<br />
<br />
== Weiterführende Links ==<br />
Auf dem TYPOlight-Usertreffen 2009 in Frankfurt am Main wurde die Erweiterung EFG mit Praxisbeispielen vorgestellt. Die dazu gehörenden Informationen sind auf http://www.tl-usertreffen.weitzeldesign.com/usertreffen-2009.html zu finden.<br />
----<br />
<br />
--[[Benutzer:Planepix|Planepix]] 15:04, 12. Mär. 2011 (CET)</div>Andreasisaakhttps://de.contaowiki.org/ValumsFileUploaderValumsFileUploader2012-03-06T11:30:44Z<p>Andreasisaak: </p>
<hr />
<div>[[Category:Extensions]]<br />
'''valumsFileUploader''' ist ein Mehrfachuploader und bietet eine flashfreie Alternative zu FancyUpload im Backend und Frontend. Dateien können des weiteren via Drag&Drop hochgeladen werden.<br />
{{ExtInfo<br />
| DevSite=http://www.men-at-work.de<br />
| ExtVersion=3.1.0<br />
| Version=2.9.0 - 2.11.0<br />
| ERLink=http://www.contao.org/erweiterungsliste/view/valumsFileUploader.html<br />
| VCSLink=https://github.com/menatwork/valumsFileUploader<br />
}}<br />
<br />
==Verwendung im Backend==<br />
<br />
===Konfiguration===<br />
<br />
Aktiviert werden muss der valumsFileUploader nach der Installation bei jedem Benutzer in den Persönlichen Daten. Sobald der neue Uploader aktiviert wurde, stehen 2 weitere Optionen zur Verfügung: "Dateien überschreiben" und "Bilder skalieren". Ab der Version 2.10 ist es möglich die maximale Bildbreite und maximale Bildhöhe zu berücksichtigen, in diesem Fall werden die Bilder auf die eingestellten Werte skaliert. Nach Vollendung der Konfiguration steht dem Benutzer beim Dateiupload der neue Uploader zur Verfügung.<br />
<br />
===Upload===<br />
<br />
valumsFileUploader begrenzt keinen Upload und kann auch für sehr große Dateien genutzt werden. In diesem Fall sollte der Server auf dem die Contao Installation liegt dafür ausgestattet sein und große Dateiuploads erlauben. Dateien können mit Hilfe des "Durchsuchen" Buttons hochgeladen werden oder man zieht alle Dateien via Drag&Drop in die Schaltfläche. <br />
<br />
Die Dateien werden umgehend hochgeladen, ein Absenden des Formulars ist nicht notwendig.<br />
<br />
==Verwendung im Frontend==<br />
<br />
===Konfiguration===<br />
<br />
Um in Frontend-Formularen ein Uploadfeld vom Typ "valumsFileUploader" verwenden zu können, legt man im Formulargenerator ein neues Feld an. Beim Feldtyp wählt man "valumsFileUploader". Im nächsten Schritt gibt man die "erlaubten Dateitypen" und die "maximale Dateigröße" an. Möchte man die hochgeladenen Dateien desweiteren auch in einem bestimmten Ordner auf dem Server speichern, wählt man die Option "Hochgeladene Dateien speichern" aus. Nun muss man nur noch den Ordner für den Upload auswählen.<br />
<br />
===Mögliche Problemfälle===<br />
<br />
Der Uploader ohne korrekt ausgeführte Schreibrechte auf dem Server keine Dateien hochladen. Ein SMH ist daher zurzeit keine Lösung. An einer Änderung dieses Verhaltens wird gearbeitet.<br />
<br />
==Verwendung als Backend Widget==<br />
<br />
Mit einigen wenigen Einstellungen erhält jeder Entwickler die Möglichkeit den valumsFileUploader in sein "DCA" zu integrieren.<br />
<br />
===Codebeispiel===<br />
<source lang="php"><br />
$GLOBALS['TL_DCA']['tl_example']['fields']['vfuExample'] = array<br />
(<br />
// Set the button label and the help text<br />
'label' => array('Button label', 'Help text'),<br />
<br />
// Set field to "valumsFileUploader"<br />
'inputType' => 'valumsFileUploader',<br />
<br />
// Set special options<br />
'eval' => array(<br />
<br />
// Set path for files to save<br />
'path' => 'tl_files',<br />
<br />
// Set the maximum allowed file size<br />
'maxFileSize' => 2048000000,<br />
<br />
// Set the allowed file extensions comma seperated<br />
'extensions' => 'jpeg, jpg, png',<br />
<br />
// Set the the value to not override existing files and <br />
// choose the value to handle the files (useSuffix, useTimeStamp)<br />
'overwrite' => 'useSuffix',<br />
<br />
// Set the this value with height and with to resize the file<br />
'resize' => array('800', '800'),<br />
<br />
// Set debug mode<br />
'debug' => true,<br />
<br />
// Set label for drop field<br />
'dropTextLabel' => 'Drop text label'<br />
)<br />
);<br />
</source><br />
<br />
===Verfügbare Eval-Optionen===<br />
<br />
{| cellpadding="20" cellspacing="0"<br />
|-<br />
| '''Schlüssel''' || '''Wert''' || '''Beschreibung''' || '''Beispiel'''<br />
|-<br />
| path || ''string'' || Legt das Upload Verzeichnis Fest. || <source lang="php">$GLOBALS['TL_DCA']['tl_example']['fields']['vfuExample']['eval']['path'] = 'tl_files';</source><br />
|-<br />
| maxFileSize || ''integer'' || Legt die maximal erlaubte Dateigröße in Bytes fest.<br />
|| <source lang="php">$GLOBALS['TL_DCA']['tl_example']['fields']['vfuExample']['eval']['maxFileSize'] = 2048000000;</source><br />
|-<br />
| extensions || ''string'' || Legt die Dateierweiterungen Komma separiert fest. || <source lang="php">$GLOBALS['TL_DCA']['tl_example']['fields']['vfuExample']['eval']['extensions'] = 'jpeg, jpg, png';</source><br />
|-<br />
| overwrite || ''string'' || Legt fest das die existieren Dateien in dem Upload Verzeichnis nicht überschrieben werden dürfen, und wie mit den Duplikaten verfahren werden soll. Mögliche Werte sind "useSuffix" und "useTimeStamp". || <source lang="php">$GLOBALS['TL_DCA']['tl_example']['fields']['vfuExample']['eval']['overwrite'] = 'useSuffix';</source><br />
|-<br />
| resize || ''array'' || Durch Setzen der breite und höhe in einem Array wird das Bild beim Upload auf diese Werte runter skaliert. || <source lang="php">$GLOBALS['TL_DCA']['tl_example']['fields']['vfuExample']['eval']['resize'] = array('800', '800');</source><br />
|-<br />
| debug || ''bool'' || Durch setzen dieses Wertes wird der Debug Modus aktiviert oder deaktiviert. || <source lang="php">$GLOBALS['TL_DCA']['tl_example']['fields']['vfuExample']['eval']['debug'] = true;</source><br />
|-<br />
| dropTextLabel || ''string'' || Legt das Label für die Drop Zone des Uploaders Fest. || <source lang="php">$GLOBALS['TL_DCA']['tl_example']['fields']['vfuExample']['eval']['dropTextLabel'] = 'Drop text label';</source><br />
|-<br />
|}</div>Andreasisaakhttps://de.contaowiki.org/ValumsFileUploaderValumsFileUploader2012-03-06T11:30:29Z<p>Andreasisaak: </p>
<hr />
<div>[[Category:Extensions]]<br />
'''valumsFileUploader''' ist ein Mehrfachuploader und bietet eine flashfreie Alternative zu FancyUpload im Backend und Frontend. Dateien können des weiteren via Drag&Drop hochgeladen werden.<br />
{{ExtInfo<br />
| DevSite=http://www.men-at-work.de<br />
| ExtVersion=3.1.0<br />
| Version=2.9.0 - 2.11.0<br />
| ERLink=http://www.contao.org/erweiterungsliste/view/valumsFileUploader.html<br />
| VCSLink=https://github.com/menatwork/valumsFileUploader<br />
}}<br />
<br />
Der Uploader dient als flashfreie Alternative zu FancyUpload und bietet die Möglichkeit Dateien via Drag&Drop oder Auswahlmenü auf den Server zu laden. <br />
<br />
==Verwendung im Backend==<br />
<br />
===Konfiguration===<br />
<br />
Aktiviert werden muss der valumsFileUploader nach der Installation bei jedem Benutzer in den Persönlichen Daten. Sobald der neue Uploader aktiviert wurde, stehen 2 weitere Optionen zur Verfügung: "Dateien überschreiben" und "Bilder skalieren". Ab der Version 2.10 ist es möglich die maximale Bildbreite und maximale Bildhöhe zu berücksichtigen, in diesem Fall werden die Bilder auf die eingestellten Werte skaliert. Nach Vollendung der Konfiguration steht dem Benutzer beim Dateiupload der neue Uploader zur Verfügung.<br />
<br />
===Upload===<br />
<br />
valumsFileUploader begrenzt keinen Upload und kann auch für sehr große Dateien genutzt werden. In diesem Fall sollte der Server auf dem die Contao Installation liegt dafür ausgestattet sein und große Dateiuploads erlauben. Dateien können mit Hilfe des "Durchsuchen" Buttons hochgeladen werden oder man zieht alle Dateien via Drag&Drop in die Schaltfläche. <br />
<br />
Die Dateien werden umgehend hochgeladen, ein Absenden des Formulars ist nicht notwendig.<br />
<br />
==Verwendung im Frontend==<br />
<br />
===Konfiguration===<br />
<br />
Um in Frontend-Formularen ein Uploadfeld vom Typ "valumsFileUploader" verwenden zu können, legt man im Formulargenerator ein neues Feld an. Beim Feldtyp wählt man "valumsFileUploader". Im nächsten Schritt gibt man die "erlaubten Dateitypen" und die "maximale Dateigröße" an. Möchte man die hochgeladenen Dateien desweiteren auch in einem bestimmten Ordner auf dem Server speichern, wählt man die Option "Hochgeladene Dateien speichern" aus. Nun muss man nur noch den Ordner für den Upload auswählen.<br />
<br />
===Mögliche Problemfälle===<br />
<br />
Der Uploader ohne korrekt ausgeführte Schreibrechte auf dem Server keine Dateien hochladen. Ein SMH ist daher zurzeit keine Lösung. An einer Änderung dieses Verhaltens wird gearbeitet.<br />
<br />
==Verwendung als Backend Widget==<br />
<br />
Mit einigen wenigen Einstellungen erhält jeder Entwickler die Möglichkeit den valumsFileUploader in sein "DCA" zu integrieren.<br />
<br />
===Codebeispiel===<br />
<source lang="php"><br />
$GLOBALS['TL_DCA']['tl_example']['fields']['vfuExample'] = array<br />
(<br />
// Set the button label and the help text<br />
'label' => array('Button label', 'Help text'),<br />
<br />
// Set field to "valumsFileUploader"<br />
'inputType' => 'valumsFileUploader',<br />
<br />
// Set special options<br />
'eval' => array(<br />
<br />
// Set path for files to save<br />
'path' => 'tl_files',<br />
<br />
// Set the maximum allowed file size<br />
'maxFileSize' => 2048000000,<br />
<br />
// Set the allowed file extensions comma seperated<br />
'extensions' => 'jpeg, jpg, png',<br />
<br />
// Set the the value to not override existing files and <br />
// choose the value to handle the files (useSuffix, useTimeStamp)<br />
'overwrite' => 'useSuffix',<br />
<br />
// Set the this value with height and with to resize the file<br />
'resize' => array('800', '800'),<br />
<br />
// Set debug mode<br />
'debug' => true,<br />
<br />
// Set label for drop field<br />
'dropTextLabel' => 'Drop text label'<br />
)<br />
);<br />
</source><br />
<br />
===Verfügbare Eval-Optionen===<br />
<br />
{| cellpadding="20" cellspacing="0"<br />
|-<br />
| '''Schlüssel''' || '''Wert''' || '''Beschreibung''' || '''Beispiel'''<br />
|-<br />
| path || ''string'' || Legt das Upload Verzeichnis Fest. || <source lang="php">$GLOBALS['TL_DCA']['tl_example']['fields']['vfuExample']['eval']['path'] = 'tl_files';</source><br />
|-<br />
| maxFileSize || ''integer'' || Legt die maximal erlaubte Dateigröße in Bytes fest.<br />
|| <source lang="php">$GLOBALS['TL_DCA']['tl_example']['fields']['vfuExample']['eval']['maxFileSize'] = 2048000000;</source><br />
|-<br />
| extensions || ''string'' || Legt die Dateierweiterungen Komma separiert fest. || <source lang="php">$GLOBALS['TL_DCA']['tl_example']['fields']['vfuExample']['eval']['extensions'] = 'jpeg, jpg, png';</source><br />
|-<br />
| overwrite || ''string'' || Legt fest das die existieren Dateien in dem Upload Verzeichnis nicht überschrieben werden dürfen, und wie mit den Duplikaten verfahren werden soll. Mögliche Werte sind "useSuffix" und "useTimeStamp". || <source lang="php">$GLOBALS['TL_DCA']['tl_example']['fields']['vfuExample']['eval']['overwrite'] = 'useSuffix';</source><br />
|-<br />
| resize || ''array'' || Durch Setzen der breite und höhe in einem Array wird das Bild beim Upload auf diese Werte runter skaliert. || <source lang="php">$GLOBALS['TL_DCA']['tl_example']['fields']['vfuExample']['eval']['resize'] = array('800', '800');</source><br />
|-<br />
| debug || ''bool'' || Durch setzen dieses Wertes wird der Debug Modus aktiviert oder deaktiviert. || <source lang="php">$GLOBALS['TL_DCA']['tl_example']['fields']['vfuExample']['eval']['debug'] = true;</source><br />
|-<br />
| dropTextLabel || ''string'' || Legt das Label für die Drop Zone des Uploaders Fest. || <source lang="php">$GLOBALS['TL_DCA']['tl_example']['fields']['vfuExample']['eval']['dropTextLabel'] = 'Drop text label';</source><br />
|-<br />
|}</div>Andreasisaakhttps://de.contaowiki.org/ValumsFileUploaderValumsFileUploader2012-03-06T11:30:20Z<p>Andreasisaak: </p>
<hr />
<div>[[Category:Extensions]]<br />
'''valumsFileUploader''' ist ein Mehrfachuploader und bietet eine flashfreie Alternative zu FancyUpload im Backend und Frontend. Dateien können des weiteren via Drag&Drop hochgeladen werden.<br />
{{ExtInfo<br />
| DevSite=http://www.men-at-work.de<br />
| ExtVersion=3.1.0<br />
| Version=2.9.0 - 2.11.0<br />
| ERLink=http://www.contao.org/erweiterungsliste/view/valumsFileUploader.html<br />
| VCSLink=https://github.com/menatwork/valumsFileUploader<br />
}}<br />
<br />
==Kurzbeschreibung==<br />
<br />
Der Uploader dient als flashfreie Alternative zu FancyUpload und bietet die Möglichkeit Dateien via Drag&Drop oder Auswahlmenü auf den Server zu laden. <br />
<br />
==Verwendung im Backend==<br />
<br />
===Konfiguration===<br />
<br />
Aktiviert werden muss der valumsFileUploader nach der Installation bei jedem Benutzer in den Persönlichen Daten. Sobald der neue Uploader aktiviert wurde, stehen 2 weitere Optionen zur Verfügung: "Dateien überschreiben" und "Bilder skalieren". Ab der Version 2.10 ist es möglich die maximale Bildbreite und maximale Bildhöhe zu berücksichtigen, in diesem Fall werden die Bilder auf die eingestellten Werte skaliert. Nach Vollendung der Konfiguration steht dem Benutzer beim Dateiupload der neue Uploader zur Verfügung.<br />
<br />
===Upload===<br />
<br />
valumsFileUploader begrenzt keinen Upload und kann auch für sehr große Dateien genutzt werden. In diesem Fall sollte der Server auf dem die Contao Installation liegt dafür ausgestattet sein und große Dateiuploads erlauben. Dateien können mit Hilfe des "Durchsuchen" Buttons hochgeladen werden oder man zieht alle Dateien via Drag&Drop in die Schaltfläche. <br />
<br />
Die Dateien werden umgehend hochgeladen, ein Absenden des Formulars ist nicht notwendig.<br />
<br />
==Verwendung im Frontend==<br />
<br />
===Konfiguration===<br />
<br />
Um in Frontend-Formularen ein Uploadfeld vom Typ "valumsFileUploader" verwenden zu können, legt man im Formulargenerator ein neues Feld an. Beim Feldtyp wählt man "valumsFileUploader". Im nächsten Schritt gibt man die "erlaubten Dateitypen" und die "maximale Dateigröße" an. Möchte man die hochgeladenen Dateien desweiteren auch in einem bestimmten Ordner auf dem Server speichern, wählt man die Option "Hochgeladene Dateien speichern" aus. Nun muss man nur noch den Ordner für den Upload auswählen.<br />
<br />
===Mögliche Problemfälle===<br />
<br />
Der Uploader ohne korrekt ausgeführte Schreibrechte auf dem Server keine Dateien hochladen. Ein SMH ist daher zurzeit keine Lösung. An einer Änderung dieses Verhaltens wird gearbeitet.<br />
<br />
==Verwendung als Backend Widget==<br />
<br />
Mit einigen wenigen Einstellungen erhält jeder Entwickler die Möglichkeit den valumsFileUploader in sein "DCA" zu integrieren.<br />
<br />
===Codebeispiel===<br />
<source lang="php"><br />
$GLOBALS['TL_DCA']['tl_example']['fields']['vfuExample'] = array<br />
(<br />
// Set the button label and the help text<br />
'label' => array('Button label', 'Help text'),<br />
<br />
// Set field to "valumsFileUploader"<br />
'inputType' => 'valumsFileUploader',<br />
<br />
// Set special options<br />
'eval' => array(<br />
<br />
// Set path for files to save<br />
'path' => 'tl_files',<br />
<br />
// Set the maximum allowed file size<br />
'maxFileSize' => 2048000000,<br />
<br />
// Set the allowed file extensions comma seperated<br />
'extensions' => 'jpeg, jpg, png',<br />
<br />
// Set the the value to not override existing files and <br />
// choose the value to handle the files (useSuffix, useTimeStamp)<br />
'overwrite' => 'useSuffix',<br />
<br />
// Set the this value with height and with to resize the file<br />
'resize' => array('800', '800'),<br />
<br />
// Set debug mode<br />
'debug' => true,<br />
<br />
// Set label for drop field<br />
'dropTextLabel' => 'Drop text label'<br />
)<br />
);<br />
</source><br />
<br />
===Verfügbare Eval-Optionen===<br />
<br />
{| cellpadding="20" cellspacing="0"<br />
|-<br />
| '''Schlüssel''' || '''Wert''' || '''Beschreibung''' || '''Beispiel'''<br />
|-<br />
| path || ''string'' || Legt das Upload Verzeichnis Fest. || <source lang="php">$GLOBALS['TL_DCA']['tl_example']['fields']['vfuExample']['eval']['path'] = 'tl_files';</source><br />
|-<br />
| maxFileSize || ''integer'' || Legt die maximal erlaubte Dateigröße in Bytes fest.<br />
|| <source lang="php">$GLOBALS['TL_DCA']['tl_example']['fields']['vfuExample']['eval']['maxFileSize'] = 2048000000;</source><br />
|-<br />
| extensions || ''string'' || Legt die Dateierweiterungen Komma separiert fest. || <source lang="php">$GLOBALS['TL_DCA']['tl_example']['fields']['vfuExample']['eval']['extensions'] = 'jpeg, jpg, png';</source><br />
|-<br />
| overwrite || ''string'' || Legt fest das die existieren Dateien in dem Upload Verzeichnis nicht überschrieben werden dürfen, und wie mit den Duplikaten verfahren werden soll. Mögliche Werte sind "useSuffix" und "useTimeStamp". || <source lang="php">$GLOBALS['TL_DCA']['tl_example']['fields']['vfuExample']['eval']['overwrite'] = 'useSuffix';</source><br />
|-<br />
| resize || ''array'' || Durch Setzen der breite und höhe in einem Array wird das Bild beim Upload auf diese Werte runter skaliert. || <source lang="php">$GLOBALS['TL_DCA']['tl_example']['fields']['vfuExample']['eval']['resize'] = array('800', '800');</source><br />
|-<br />
| debug || ''bool'' || Durch setzen dieses Wertes wird der Debug Modus aktiviert oder deaktiviert. || <source lang="php">$GLOBALS['TL_DCA']['tl_example']['fields']['vfuExample']['eval']['debug'] = true;</source><br />
|-<br />
| dropTextLabel || ''string'' || Legt das Label für die Drop Zone des Uploaders Fest. || <source lang="php">$GLOBALS['TL_DCA']['tl_example']['fields']['vfuExample']['eval']['dropTextLabel'] = 'Drop text label';</source><br />
|-<br />
|}</div>Andreasisaakhttps://de.contaowiki.org/ValumsFileUploaderValumsFileUploader2012-03-06T11:17:56Z<p>Andreasisaak: </p>
<hr />
<div>[[Category:Extensions]]<br />
'''valumsFileUploader''' ist ein Mehrfachuploader und bietet eine flashfreie Alternative zu FancyUpload im Backend und Frontend. Dateien können des weiteren via Drag&Drop hochgeladen werden.<br />
{{ExtInfo<br />
| DevSite=http://www.men-at-work.de<br />
| ExtVersion=3.1.0<br />
| Version=2.9.0 - 2.11.0<br />
| ERLink=http://www.contao.org/erweiterungsliste/view/valumsFileUploader.html<br />
| VCSLink=https://github.com/menatwork/valumsFileUploader<br />
}}<br />
<br />
==valumsFileUploader==<br />
<br />
Der Uploader dient als flashfreie Alternative zu FancyUpload und bietet die Möglichkeit Dateien via Drag&Drop oder Auswahlmenü auf den Server zu laden. <br />
<br />
==Verwendung im Backend==<br />
<br />
===Konfiguration===<br />
<br />
Aktiviert werden muss der valumsFileUploader nach der Installation bei jedem Benutzer in den Persönlichen Daten. Sobald der neue Uploader aktiviert wurde, stehen 2 weitere Optionen zur Verfügung: "Dateien überschreiben" und "Bilder skalieren". Ab der Version 2.10 ist es möglich die maximale Bildbreite und maximale Bildhöhe zu berücksichtigen, in diesem Fall werden die Bilder auf die eingestellten Werte skaliert. Nach Vollendung der Konfiguration steht dem Benutzer beim Dateiupload der neue Uploader zur Verfügung.<br />
<br />
===Upload===<br />
<br />
valumsFileUploader begrenzt keinen Upload und kann auch für sehr große Dateien genutzt werden. In diesem Fall sollte der Server auf dem die Contao Installation liegt dafür ausgestattet sein und große Dateiuploads erlauben. Dateien können mit Hilfe des "Durchsuchen" Buttons hochgeladen werden oder man zieht alle Dateien via Drag&Drop in die Schaltfläche. <br />
<br />
Die Dateien werden umgehend hochgeladen, ein Absenden des Formulars ist nicht notwendig.<br />
<br />
==Verwendung im Frontend==<br />
<br />
===Konfiguration===<br />
<br />
Um in Frontend-Formularen ein Uploadfeld vom Typ "valumsFileUploader" verwenden zu können, legt man im Formulargenerator ein neues Feld an. Beim Feldtyp wählt man "valumsFileUploader". Im nächsten Schritt gibt man die "erlaubten Dateitypen" und die "maximale Dateigröße" an. Möchte man die hochgeladenen Dateien desweiteren auch in einem bestimmten Ordner auf dem Server speichern, wählt man die Option "Hochgeladene Dateien speichern" aus. Nun muss man nur noch den Ordner für den Upload auswählen.<br />
<br />
===Mögliche Problemfälle===<br />
<br />
Der Uploader ohne korrekt ausgeführte Schreibrechte auf dem Server keine Dateien hochladen. Ein SMH ist daher zurzeit keine Lösung. An einer Änderung dieses Verhaltens wird gearbeitet.<br />
<br />
==Verwendung als Backend Widget==<br />
<br />
Mit einigen wenigen Einstellungen erhält jeder Entwickler die Möglichkeit den valumsFileUploader in sein "DCA" zu integrieren.<br />
<br />
===Codebeispiel===<br />
<source lang="php"><br />
$GLOBALS['TL_DCA']['tl_example']['fields']['vfuExample'] = array<br />
(<br />
// Set the button label and the help text<br />
'label' => array('Button label', 'Help text'),<br />
<br />
// Set field to "valumsFileUploader"<br />
'inputType' => 'valumsFileUploader',<br />
<br />
// Set special options<br />
'eval' => array(<br />
<br />
// Set path for files to save<br />
'path' => 'tl_files',<br />
<br />
// Set the maximum allowed file size<br />
'maxFileSize' => 2048000000,<br />
<br />
// Set the allowed file extensions comma seperated<br />
'extensions' => 'jpeg, jpg, png',<br />
<br />
// Set the the value to not override existing files and <br />
// choose the value to handle the files (useSuffix, useTimeStamp)<br />
'overwrite' => 'useSuffix',<br />
<br />
// Set the this value with height and with to resize the file<br />
'resize' => array('800', '800'),<br />
<br />
// Set debug mode<br />
'debug' => true,<br />
<br />
// Set label for drop field<br />
'dropTextLabel' => 'Drop text label'<br />
)<br />
);<br />
</source><br />
<br />
===Verfügbare Eval-Optionen===<br />
<br />
{| cellpadding="20" cellspacing="0"<br />
|-<br />
| '''Schlüssel''' || '''Wert''' || '''Beschreibung''' || '''Beispiel'''<br />
|-<br />
| path || ''string'' || Legt das Upload Verzeichnis Fest. || <source lang="php">$GLOBALS['TL_DCA']['tl_example']['fields']['vfuExample']['eval']['path'] = 'tl_files';</source><br />
|-<br />
| maxFileSize || ''integer'' || Legt die maximal erlaubte Dateigröße in Bytes fest.<br />
|| <source lang="php">$GLOBALS['TL_DCA']['tl_example']['fields']['vfuExample']['eval']['maxFileSize'] = 2048000000;</source><br />
|-<br />
| extensions || ''string'' || Legt die Dateierweiterungen Komma separiert fest. || <source lang="php">$GLOBALS['TL_DCA']['tl_example']['fields']['vfuExample']['eval']['extensions'] = 'jpeg, jpg, png';</source><br />
|-<br />
| overwrite || ''string'' || Legt fest das die existieren Dateien in dem Upload Verzeichnis nicht überschrieben werden dürfen, und wie mit den Duplikaten verfahren werden soll. Mögliche Werte sind "useSuffix" und "useTimeStamp". || <source lang="php">$GLOBALS['TL_DCA']['tl_example']['fields']['vfuExample']['eval']['overwrite'] = 'useSuffix';</source><br />
|-<br />
| resize || ''array'' || Durch Setzen der breite und höhe in einem Array wird das Bild beim Upload auf diese Werte runter skaliert. || <source lang="php">$GLOBALS['TL_DCA']['tl_example']['fields']['vfuExample']['eval']['resize'] = array('800', '800');</source><br />
|-<br />
| debug || ''bool'' || Durch setzen dieses Wertes wird der Debug Modus aktiviert oder deaktiviert. || <source lang="php">$GLOBALS['TL_DCA']['tl_example']['fields']['vfuExample']['eval']['debug'] = true;</source><br />
|-<br />
| dropTextLabel || ''string'' || Legt das Label für die Drop Zone des Uploaders Fest. || <source lang="php">$GLOBALS['TL_DCA']['tl_example']['fields']['vfuExample']['eval']['dropTextLabel'] = 'Drop text label';</source><br />
|-<br />
|}</div>Andreasisaakhttps://de.contaowiki.org/ValumsFileUploaderValumsFileUploader2012-03-06T11:16:27Z<p>Andreasisaak: </p>
<hr />
<div>[[Category:Extensions]]<br />
'''valumsFileUploader''' ist ein Mehrfachuploader und bietet eine flashfreie Alternative zu FancyUpload im Backend und Frontend. Dateien können des weiteren via Drag&Drop hochgeladen werden.<br />
{{ExtInfo<br />
| DevSite=http://www.men-at-work.de<br />
| ExtVersion=3.1.0<br />
| Version=2.9.0 - 2.11.0<br />
| ERLink=http://www.contao.org/erweiterungsliste/view/valumsFileUploader.html<br />
| VCSLink=https://github.com/menatwork/valumsFileUploader<br />
}}<br />
<br />
==valumsFileUploader==<br />
<br />
Der Uploader dient als flashfreie Alternative zu FancyUpload und bietet die Möglichkeit Dateien via Drag&Drop oder Auswahlmenü auf den Server zu laden. <br />
<br />
==Verwendung im Backend==<br />
<br />
===Konfiguration===<br />
<br />
Aktiviert werden muss der valumsFileUploader nach der Installation bei jedem Benutzer in den Persönlichen Daten. Sobald der neue Uploader aktiviert wurde, stehen 2 weitere Optionen zur Verfügung: "Dateien überschreiben" und "Bilder skalieren". Ab der Version 2.10 ist es möglich die maximale Bildbreite und maximale Bildhöhe zu berücksichtigen, in diesem Fall werden die Bilder auf die eingestellten Werte skaliert. Nach Vollendung der Konfiguration steht dem Benutzer beim Dateiupload der neue Uploader zur Verfügung.<br />
<br />
===Upload===<br />
<br />
valumsFileUploader begrenzt keinen Upload und kann auch für sehr große Dateien genutzt werden. In diesem Fall sollte der Server auf dem die Contao Installation liegt dafür ausgestattet sein und große Dateiuploads erlauben. Dateien können mit Hilfe des "Durchsuchen" Buttons hochgeladen werden oder man zieht alle Dateien via Drag&Drop in die Schaltfläche. <br />
<br />
Die Dateien werden umgehend hochgeladen, ein Absenden des Formulars ist nicht notwendig.<br />
<br />
==Verwendung im Frontend==<br />
<br />
===Konfiguration===<br />
<br />
Um in Frontend-Formularen ein Uploadfeld vom Typ "valumsFileUploader" verwenden zu können, legt man im Formulargenerator ein neues Feld an. Beim Feldtyp wählt man "valumsFileUploader". Im nächsten Schritt gibt man die "erlaubten Dateitypen" und die "maximale Dateigröße" an. Möchte man die hochgeladenen Dateien desweiteren auch in einem bestimmten Ordner auf dem Server speichern, wählt man die Option "Hochgeladene Dateien speichern" aus. Nun muss man nur noch den Ordner für den Upload auswählen.<br />
<br />
===Mögliche Problemfälle===<br />
<br />
Der Uploader ohne korrekt ausgeführte Schreibrechte auf dem Server keine Dateien hochladen. Ein SMH ist daher zurzeit keine Lösung. An einer Änderung dieses Verhaltens wird gearbeitet.<br />
<br />
==Verwendung als Backend Widget==<br />
<br />
Mit einigen wenigen Einstellungen erhält jeder Developer die Möglichkeit ein Flashfreies upload Widget in sein "DCA" zu integrieren.<br />
<br />
===Codebeispiel===<br />
<source lang="php"><br />
$GLOBALS['TL_DCA']['tl_example']['fields']['vfuExample'] = array<br />
(<br />
// Set the button label and the help text<br />
'label' => array('Button label', 'Help text'),<br />
<br />
// Set field to "valumsFileUploader"<br />
'inputType' => 'valumsFileUploader',<br />
<br />
// Set special options<br />
'eval' => array(<br />
<br />
// Set path for files to save<br />
'path' => 'tl_files',<br />
<br />
// Set the maximum allowed file size<br />
'maxFileSize' => 2048000000,<br />
<br />
// Set the allowed file extensions comma seperated<br />
'extensions' => 'jpeg, jpg, png',<br />
<br />
// Set the the value to not override existing files and <br />
// choose the value to handle the files (useSuffix, useTimeStamp)<br />
'overwrite' => 'useSuffix',<br />
<br />
// Set the this value with height and with to resize the file<br />
'resize' => array('800', '800'),<br />
<br />
// Set debug mode<br />
'debug' => true,<br />
<br />
// Set label for drop field<br />
'dropTextLabel' => 'Drop text label'<br />
)<br />
);<br />
</source><br />
<br />
===Verfügbare Eval-Optionen===<br />
<br />
{| cellpadding="20" cellspacing="0"<br />
|-<br />
| '''Schlüssel''' || '''Wert''' || '''Beschreibung''' || '''Beispiel'''<br />
|-<br />
| path || ''string'' || Legt das Upload Verzeichnis Fest. || <source lang="php">$GLOBALS['TL_DCA']['tl_example']['fields']['vfuExample']['eval']['path'] = 'tl_files';</source><br />
|-<br />
| maxFileSize || ''integer'' || Legt die maximal erlaubte Dateigröße in Bytes fest.<br />
|| <source lang="php">$GLOBALS['TL_DCA']['tl_example']['fields']['vfuExample']['eval']['maxFileSize'] = 2048000000;</source><br />
|-<br />
| extensions || ''string'' || Legt die Dateierweiterungen Komma separiert fest. || <source lang="php">$GLOBALS['TL_DCA']['tl_example']['fields']['vfuExample']['eval']['extensions'] = 'jpeg, jpg, png';</source><br />
|-<br />
| overwrite || ''string'' || Legt fest das die existieren Dateien in dem Upload Verzeichnis nicht überschrieben werden dürfen, und wie mit den Duplikaten verfahren werden soll. Mögliche Werte sind "useSuffix" und "useTimeStamp". || <source lang="php">$GLOBALS['TL_DCA']['tl_example']['fields']['vfuExample']['eval']['overwrite'] = 'useSuffix';</source><br />
|-<br />
| resize || ''array'' || Durch Setzen der breite und höhe in einem Array wird das Bild beim Upload auf diese Werte runter skaliert. || <source lang="php">$GLOBALS['TL_DCA']['tl_example']['fields']['vfuExample']['eval']['resize'] = array('800', '800');</source><br />
|-<br />
| debug || ''bool'' || Durch setzen dieses Wertes wird der Debug Modus aktiviert oder deaktiviert. || <source lang="php">$GLOBALS['TL_DCA']['tl_example']['fields']['vfuExample']['eval']['debug'] = true;</source><br />
|-<br />
| dropTextLabel || ''string'' || Legt das Label für die Drop Zone des Uploaders Fest. || <source lang="php">$GLOBALS['TL_DCA']['tl_example']['fields']['vfuExample']['eval']['dropTextLabel'] = 'Drop text label';</source><br />
|-<br />
|}</div>Andreasisaakhttps://de.contaowiki.org/ValumsFileUploaderValumsFileUploader2012-03-06T11:15:16Z<p>Andreasisaak: </p>
<hr />
<div>[[Category:Extensions]]<br />
'''valumsFileUploader''' ist ein Mehrfachuploader und bietet eine flashfreie Alternative zu FancyUpload im Backend und Frontend. Dateien können des weiteren via Drag&Drop hochgeladen werden.<br />
{{ExtInfo<br />
| DevSite=http://www.men-at-work.de<br />
| ExtVersion=2.0.0<br />
| Version=2.9.0 - 2.9.5<br />
| ERLink=http://www.contao.org/erweiterungsliste/view/valumsFileUploader.html<br />
| VCSLink=https://github.com/menatwork/valumsFileUploader<br />
}}<br />
<br />
==valumsFileUploader==<br />
<br />
Der Uploader dient als flashfreie Alternative zu FancyUpload und bietet die Möglichkeit Dateien via Drag&Drop oder Auswahlmenü auf den Server zu laden. <br />
<br />
==Verwendung im Backend==<br />
<br />
===Konfiguration===<br />
<br />
Aktiviert werden muss der valumsFileUploader nach der Installation bei jedem Benutzer in den Persönlichen Daten. Sobald der neue Uploader aktiviert wurde, stehen 2 weitere Optionen zur Verfügung: "Dateien überschreiben" und "Bilder skalieren". Ab der Version 2.10 ist es möglich die maximale Bildbreite und maximale Bildhöhe zu berücksichtigen, in diesem Fall werden die Bilder auf die eingestellten Werte skaliert. Nach Vollendung der Konfiguration steht dem Benutzer beim Dateiupload der neue Uploader zur Verfügung.<br />
<br />
===Upload===<br />
<br />
valumsFileUploader begrenzt keinen Upload und kann auch für sehr große Dateien genutzt werden. In diesem Fall sollte der Server auf dem die Contao Installation liegt dafür ausgestattet sein und große Dateiuploads erlauben. Dateien können mit Hilfe des "Durchsuchen" Buttons hochgeladen werden oder man zieht alle Dateien via Drag&Drop in die Schaltfläche. <br />
<br />
Die Dateien werden umgehend hochgeladen, ein Absenden des Formulars ist nicht notwendig.<br />
<br />
==Verwendung im Frontend==<br />
<br />
===Konfiguration===<br />
<br />
Um in Frontend-Formularen ein Uploadfeld vom Typ "valumsFileUploader" verwenden zu können, legt man im Formulargenerator ein neues Feld an. Beim Feldtyp wählt man "valumsFileUploader". Im nächsten Schritt gibt man die "erlaubten Dateitypen" und die "maximale Dateigröße" an. Möchte man die hochgeladenen Dateien desweiteren auch in einem bestimmten Ordner auf dem Server speichern, wählt man die Option "Hochgeladene Dateien speichern" aus. Nun muss man nur noch den Ordner für den Upload auswählen.<br />
<br />
===Mögliche Problemfälle===<br />
<br />
Der Uploader ohne korrekt ausgeführte Schreibrechte auf dem Server keine Dateien hochladen. Ein SMH ist daher zurzeit keine Lösung. An einer Änderung dieses Verhaltens wird gearbeitet.<br />
<br />
==Verwendung als Backend Widget==<br />
<br />
Mit einigen wenigen Einstellungen erhält jeder Developer die Möglichkeit ein Flashfreies upload Widget in sein "DCA" zu integrieren.<br />
<br />
===Codebeispiel===<br />
<source lang="php"><br />
$GLOBALS['TL_DCA']['tl_example']['fields']['vfuExample'] = array<br />
(<br />
// Set the button label and the help text<br />
'label' => array('Button label', 'Help text'),<br />
<br />
// Set field to "valumsFileUploader"<br />
'inputType' => 'valumsFileUploader',<br />
<br />
// Set special options<br />
'eval' => array(<br />
<br />
// Set path for files to save<br />
'path' => 'tl_files',<br />
<br />
// Set the maximum allowed file size<br />
'maxFileSize' => 2048000000,<br />
<br />
// Set the allowed file extensions comma seperated<br />
'extensions' => 'jpeg, jpg, png',<br />
<br />
// Set the the value to not override existing files and <br />
// choose the value to handle the files (useSuffix, useTimeStamp)<br />
'overwrite' => 'useSuffix',<br />
<br />
// Set the this value with height and with to resize the file<br />
'resize' => array('800', '800'),<br />
<br />
// Set debug mode<br />
'debug' => true,<br />
<br />
// Set label for drop field<br />
'dropTextLabel' => 'Drop text label'<br />
)<br />
);<br />
</source><br />
<br />
===Verfügbare Eval-Optionen===<br />
<br />
{| cellpadding="20" cellspacing="0"<br />
|-<br />
| '''Schlüssel''' || '''Wert''' || '''Beschreibung''' || '''Beispiel'''<br />
|-<br />
| path || ''string'' || Legt das Upload Verzeichnis Fest. || <source lang="php">$GLOBALS['TL_DCA']['tl_example']['fields']['vfuExample']['eval']['path'] = 'tl_files';</source><br />
|-<br />
| maxFileSize || ''integer'' || Legt die maximal erlaubte Dateigröße in Bytes fest.<br />
|| <source lang="php">$GLOBALS['TL_DCA']['tl_example']['fields']['vfuExample']['eval']['maxFileSize'] = 2048000000;</source><br />
|-<br />
| extensions || ''string'' || Legt die Dateierweiterungen Komma separiert fest. || <source lang="php">$GLOBALS['TL_DCA']['tl_example']['fields']['vfuExample']['eval']['extensions'] = 'jpeg, jpg, png';</source><br />
|-<br />
| overwrite || ''string'' || Legt fest das die existieren Dateien in dem Upload Verzeichnis nicht überschrieben werden dürfen, und wie mit den Duplikaten verfahren werden soll. Mögliche Werte sind "useSuffix" und "useTimeStamp". || <source lang="php">$GLOBALS['TL_DCA']['tl_example']['fields']['vfuExample']['eval']['overwrite'] = 'useSuffix';</source><br />
|-<br />
| resize || ''array'' || Durch Setzen der breite und höhe in einem Array wird das Bild beim Upload auf diese Werte runter skaliert. || <source lang="php">$GLOBALS['TL_DCA']['tl_example']['fields']['vfuExample']['eval']['resize'] = array('800', '800');</source><br />
|-<br />
| debug || ''bool'' || Durch setzen dieses Wertes wird der Debug Modus aktiviert oder deaktiviert. || <source lang="php">$GLOBALS['TL_DCA']['tl_example']['fields']['vfuExample']['eval']['debug'] = true;</source><br />
|-<br />
| dropTextLabel || ''string'' || Legt das Label für die Drop Zone des Uploaders Fest. || <source lang="php">$GLOBALS['TL_DCA']['tl_example']['fields']['vfuExample']['eval']['dropTextLabel'] = 'Drop text label';</source><br />
|-<br />
|}</div>Andreasisaakhttps://de.contaowiki.org/ValumsFileUploaderValumsFileUploader2012-03-06T11:13:56Z<p>Andreasisaak: </p>
<hr />
<div>[[Category:Extensions]]<br />
'''valumsFileUploader''' ist ein Mehrfachuploader und bietet eine flashfreie Alternative zu FancyUpload im Backend und Frontend. Dateien können des weiteren via Drag&Drop hochgeladen werden.<br />
{{ExtInfo<br />
| DevSite=http://www.men-at-work.de<br />
| ExtVersion=2.0.0<br />
| Version=2.9.0 - 2.9.5<br />
| ERLink=http://www.contao.org/erweiterungsliste/view/valumsFileUploader.html<br />
| TrackerLink=http://contao-forge.de/projects/valumsfileuploader/issues<br />
}}<br />
<br />
==valumsFileUploader==<br />
<br />
Der Uploader dient als flashfreie Alternative zu FancyUpload und bietet die Möglichkeit Dateien via Drag&Drop oder Auswahlmenü auf den Server zu laden. <br />
<br />
==Verwendung im Backend==<br />
<br />
===Konfiguration===<br />
<br />
Aktiviert werden muss der valumsFileUploader nach der Installation bei jedem Benutzer in den Persönlichen Daten. Sobald der neue Uploader aktiviert wurde, stehen 2 weitere Optionen zur Verfügung: "Dateien überschreiben" und "Bilder skalieren". Ab der Version 2.10 ist es möglich die maximale Bildbreite und maximale Bildhöhe zu berücksichtigen, in diesem Fall werden die Bilder auf die eingestellten Werte skaliert. Nach Vollendung der Konfiguration steht dem Benutzer beim Dateiupload der neue Uploader zur Verfügung.<br />
<br />
===Upload===<br />
<br />
valumsFileUploader begrenzt keinen Upload und kann auch für sehr große Dateien genutzt werden. In diesem Fall sollte der Server auf dem die Contao Installation liegt dafür ausgestattet sein und große Dateiuploads erlauben. Dateien können mit Hilfe des "Durchsuchen" Buttons hochgeladen werden oder man zieht alle Dateien via Drag&Drop in die Schaltfläche. <br />
<br />
Die Dateien werden umgehend hochgeladen, ein Absenden des Formulars ist nicht notwendig.<br />
<br />
==Verwendung im Frontend==<br />
<br />
===Konfiguration===<br />
<br />
Um in Frontend-Formularen ein Uploadfeld vom Typ "valumsFileUploader" verwenden zu können, legt man im Formulargenerator ein neues Feld an. Beim Feldtyp wählt man "valumsFileUploader". Im nächsten Schritt gibt man die "erlaubten Dateitypen" und die "maximale Dateigröße" an. Möchte man die hochgeladenen Dateien desweiteren auch in einem bestimmten Ordner auf dem Server speichern, wählt man die Option "Hochgeladene Dateien speichern" aus. Nun muss man nur noch den Ordner für den Upload auswählen.<br />
<br />
===Mögliche Problemfälle===<br />
<br />
Der Uploader ohne korrekt ausgeführte Schreibrechte auf dem Server keine Dateien hochladen. Ein SMH ist daher zurzeit keine Lösung. An einer Änderung dieses Verhaltens wird gearbeitet.<br />
<br />
==Verwendung als Backend Widget==<br />
<br />
Mit einigen wenigen Einstellungen erhält jeder Developer die Möglichkeit ein Flashfreies upload Widget in sein "DCA" zu integrieren.<br />
<br />
===Codebeispiel===<br />
<source lang="php"><br />
$GLOBALS['TL_DCA']['tl_example']['fields']['vfuExample'] = array<br />
(<br />
// Set the button label and the help text<br />
'label' => array('Button label', 'Help text'),<br />
<br />
// Set field to "valumsFileUploader"<br />
'inputType' => 'valumsFileUploader',<br />
<br />
// Set special options<br />
'eval' => array(<br />
<br />
// Set path for files to save<br />
'path' => 'tl_files',<br />
<br />
// Set the maximum allowed file size<br />
'maxFileSize' => 2048000000,<br />
<br />
// Set the allowed file extensions comma seperated<br />
'extensions' => 'jpeg, jpg, png',<br />
<br />
// Set the the value to not override existing files and <br />
// choose the value to handle the files (useSuffix, useTimeStamp)<br />
'overwrite' => 'useSuffix',<br />
<br />
// Set the this value with height and with to resize the file<br />
'resize' => array('800', '800'),<br />
<br />
// Set debug mode<br />
'debug' => true,<br />
<br />
// Set label for drop field<br />
'dropTextLabel' => 'Drop text label'<br />
)<br />
);<br />
</source><br />
<br />
===Verfügbare Eval-Optionen===<br />
<br />
{| cellpadding="20" cellspacing="0"<br />
|-<br />
| '''Schlüssel''' || '''Wert''' || '''Beschreibung''' || '''Beispiel'''<br />
|-<br />
| path || ''string'' || Legt das Upload Verzeichnis Fest. || <source lang="php">$GLOBALS['TL_DCA']['tl_example']['fields']['vfuExample']['eval']['path'] = 'tl_files';</source><br />
|-<br />
| maxFileSize || ''integer'' || Legt die maximal erlaubte Dateigröße in Bytes fest.<br />
|| <source lang="php">$GLOBALS['TL_DCA']['tl_example']['fields']['vfuExample']['eval']['maxFileSize'] = 2048000000;</source><br />
|-<br />
| extensions || ''string'' || Legt die Dateierweiterungen Komma separiert fest. || <source lang="php">$GLOBALS['TL_DCA']['tl_example']['fields']['vfuExample']['eval']['extensions'] = 'jpeg, jpg, png';</source><br />
|-<br />
| overwrite || ''string'' || Legt fest das die existieren Dateien in dem Upload Verzeichnis nicht überschrieben werden dürfen, und wie mit den Duplikaten verfahren werden soll. Mögliche Werte sind "useSuffix" und "useTimeStamp". || <source lang="php">$GLOBALS['TL_DCA']['tl_example']['fields']['vfuExample']['eval']['overwrite'] = 'useSuffix';</source><br />
|-<br />
| resize || ''array'' || Durch Setzen der breite und höhe in einem Array wird das Bild beim Upload auf diese Werte runter skaliert. || <source lang="php">$GLOBALS['TL_DCA']['tl_example']['fields']['vfuExample']['eval']['resize'] = array('800', '800');</source><br />
|-<br />
| debug || ''bool'' || Durch setzen dieses Wertes wird der Debug Modus aktiviert oder deaktiviert. || <source lang="php">$GLOBALS['TL_DCA']['tl_example']['fields']['vfuExample']['eval']['debug'] = true;</source><br />
|-<br />
| dropTextLabel || ''string'' || Legt das Label für die Drop Zone des Uploaders Fest. || <source lang="php">$GLOBALS['TL_DCA']['tl_example']['fields']['vfuExample']['eval']['dropTextLabel'] = 'Drop text label';</source><br />
|-<br />
|}</div>Andreasisaakhttps://de.contaowiki.org/SyncCtoSyncCto2012-03-06T11:05:29Z<p>Andreasisaak: </p>
<hr />
<div>[[Category:Extensions]]<br />
Mit '''syncCto''' kann der Benutzer im Backend mehrere Contao-Installationen miteinander synchronisieren.<br />
{{ExtInfo<br />
| DevSite=http://www.men-at-work.de<br />
| ExtVersion=2.0.0<br />
| Version=2.9 - 2.10.4<br />
| ERLink=http://www.contao.org/erweiterungsliste/view/syncCto.html<br />
| TrackerLink=https://github.com/menatwork/syncCto<br />
}}<br />
<br />
==Was ist syncCto?==<br />
<br />
syncCto bietet die Möglichkeit mehrere Contao-Installationen auf Basis einer Grund-Installation zu synchronisieren. Alle Aktionen können bequem im Backend durchgeführt werden. Durch die Integration in das Contao Rechtesystem können auch Redakteure eine Auswahl vorher definierter Datenbank-Tabellen und Dateien synchronisieren.<br />
<br />
Ein integrierter Backup-Manager sichert ausgewählte Datenbank-Tabellen, wahlweise die gesamte Contao-Installation oder nur die persönlichen Daten. Angelegte Backups können durch den Backup-Manager auch wieder importiert werden.<br />
<br />
Durch die Verwendung von syncCto können Redakteure schnell und einfach in einem Preview-System arbeiten und bei Vollendung der Arbeit den aktuellen und freigegebenen Stand zum Live-System synchronisieren.<br />
<br />
==Konfiguration==<br />
<br />
===Systemcheck===<br />
<br />
Für eine reibungslose und fehlerfreie Synchronisation ist es wichtig als erstes alle Installationen zu kontrollieren. Dafür steht der neue Menüpunkt Systemcheck zur Verfügung, denn dort werden alle für syncCto wichtigen Funktionen und Ressourcen des Servers aufgelistet. Sind alle Zellen grün, ist der erste Schritt getan. Sollte dies nicht der Fall sein, kann syncCto womöglich nicht erfolgreich funktionieren.<br />
<br />
===Einstellungen===<br />
<br />
Bevor man die erste Installation synchronisieren kann, muss zwingend bei allen Installationen auf denen syncCto installiert ist, der Menüpunkt Einstellungen (Contao Einstellungen) aufgerufen und gespeichert werden. Bei diesem Vorgang wird der ctoCommunication API Key generiert. Den ctoCommunication API Key aus den Einstellungen der Clientinstallation benötigt man später bei der Erstellung des zuvor erwähnten Clients.<br />
<br />
Zu beachten: Der von syncCto verwendete ctoCommunication API Key ist nicht der Contao-Installations-Schlüssel.<br />
<br />
==Clients verwalten==<br />
<br />
Um einen neuen Client anzulegen, klickt man im Menüpunkt Clients einfach auf den Button "Neuer Client".<br />
<br />
* '''ctoCommunication API Key:''' Dieser Schlüssel sichert die Kommunikation zwischen den Contao-Installationen ab.<br />
* '''Titel:''' z.B. der Kundenname und der Name des Servers<br />
* '''Beschreibung:''' Eine aussagekräftige Beschreibung des Servers<br />
* '''Domain:''' Die Domain des Clients, ohne Unterverzeichnis<br />
* '''Serverpfad:''' Falls sich die Installation in einem Unterverzeichnis befindet<br />
* '''Portnummer:''' Standardmäßig ist es der Port 80<br />
* '''Verschlüsselungs-Engine:''' Es stehen drei Möglichkeiten zur Verfügung, in der Regel genügt "Blowfish"<br />
* '''HTTP-Authentifizierung aktivieren:''' Falls der Client mit einer .htaccess abgesichert ist, kann man hier den Benutzernamen und das Passwort eingeben und die gesicherte Installation synchronisieren<br />
<br />
==Synchronisation==<br />
<br />
Um den Client mit dem Server zu synchronisieren, klickt man beim entsprechenden Client auf den rechten Button "Client synchronisieren". Im nächsten Fenster wählt man die Synchronisationsart aus.<br />
<br />
* '''Contao-Installation:''' Die gesamte Contao-Installation, Dateien und Ordner in den tl_files müssen seperat ausgewählt werden<br />
* '''Persönliche Daten:''' Nur ausgewählte Dateien und Ordner im tl_files Ordner. Core-Dateien werden nicht berücksichtigt<br />
<br />
Standardmäßig ist die Option '''Persönliche Daten''' ausgewählt.<br /><br />
Danach kann man die DB-Tabellen auswählen. Man muss in diesem Schritt wissen welche Tabellen welche Daten enthält. Zum Schluss wählt man bei Bedarf noch Dateien und Ordner im tl_files aus und klickt für den Start der Synchronisation auf den Button "Client synchronisieren".<br />
<br />
==Backups==<br />
<br />
Backups können im Backend unter dem Menüpunkt Backups angelegt und wiederhergestellt werden. Alle Backups werden im automatisch angelegten Ordner "syncCto_backups" in den tl_files abgelegt. Datenbanken finden sich im Ordner "database" und Dateien im Ordner "files". Wenn man Backups wieder einspielen möchte, klickt man im Menüpunkt auf Backups und wählt die Art der Wiederherstellung. Im nächsten Schritt wählt man die entsprechende Datei aus und klickt auf "Wiederherstellen". Die Dateien oder die Datenbank auf dem Server werden danach mit den Daten aus dem Backup überschrieben.<br />
<br />
===Backups automatisiert löschen===<br />
<br />
Ab der Version 1.1.0 liegen der Extension zwei neue Cronjobs bei. Die Cronjobs löschen in Verbindung mit der Extension [http://www.contao.org/erweiterungsliste/view/cron.html Cron] automatisiert die Backups aus dem jeweiligen Ordner. Bei der Konfiguration der Cronjobs muss man den Link zum PHP-Script eingeben und den Intervall einstellen.<br />
<br />
Zur Verfügung stehen folgende zwei PHP-Skripte:<br />
<br />
* '''SyncCtoDeleteDbBackups.php''' Löscht alle Datenbank-Backups<br />
* '''SyncCtoDeleteFileBackups.php''' Löscht alle Datei-Backups<br />
<br />
[[Datei:SyncCto-konfiguration-cronjobs.jpg|Konfiguration der Cronjobs|frame|center]]<br />
<br />
Die Backups werden mit dieser Einstellung alle 7 Tage um genau 0:00 gelöscht. Möchte man den Zeitraum erhöhen, muss man */7 einfach gegen die Zahl austauschen. */14 löscht die Backups beispielsweise alle 14 Tage.<br />
<br />
[[Datei:SyncCto-konfiguration-cronjobs-2.jpg|Konfiguration zum Ausführen der Cronjobs|frame|center]]<br />
<br />
Nach Fertigstellung könnten die Cronjobs folgendermaßen aussehen:<br />
<br />
[[Datei:SyncCto-Cronjob.jpg|Übersicht Cronjobs|frame|center]]<br />
<br />
==Anwendungsfall 1==<br />
<br />
Auf dem Webserver laufen zwei Contao-Installationen.<br />
<br />
* Die Adresse der 1. Webseite heißt ''<nowiki>http://192.168.0.100/server/</nowiki>''<br />
* Die Adresse der 2. Webseite heißt ''<nowiki>http://192.168.0.100/client/</nowiki>''<br />
<br />
Der Server, bei syncCto, beschreibt immer die Installation die alle Informationen hat, die man auf eine andere Installation übertragen will. Dieses Ziel wird bei syncCto als Client beschrieben. Server und Client laufen also auf der gleichen Maschine auf den gleichen Webserver. <br />
<br />
==Anwendungsfall 2==<br />
<br />
Es gibt 2 Seiten die auf zwei verschiedenen Maschinen laufen. Beide Maschinen sind verbunden; egal ob nun im lokalen Netzwerk oder über das Internet. Dabei ist es wichtig das der Server den Client erreichen kann. Der Server kann lokal zuhause auf dem internen Webserver laufen. Der Client allerdings muss von außen erreichbar sein.<br />
<br />
* Server läuft lokal zuhause die Adresse ist ''<nowiki>http://192.168.0.100/server</nowiki>''<br />
* Der Client liegt im Internet und hat die Adresse ''<nowiki>http://www.example.com</nowiki>''<br />
<br />
So wird im Server für den Client einfach die Adresse ''<nowiki>http://www.example.com</nowiki>'' eingetragen.<br />
<br />
==Mögliche Problemfälle==<br />
<br />
Der SMH ist keine Lösung da die Daten via HTTP versendet werden. Ein ordentlich konfigurierter Server ist daher Pflicht.<br />
<br />
Um möglichen Problemfällen auf die Spur zu kommen kann man den Debugmodus in den Einstellungen aktivieren. Dabei wird die Dauer der Synchronisation und die Speicherauslastung während der Synchronisation ausgegeben. Zusätzlich werden Debugdateien im Tempordner von Contao abgelegt. Diese sind bei Problemen immer im Forum anzuhängen.<br />
<br />
==Weiterführende Links==<br />
<br />
* [http://www.contao-tutorials.de/tutorial/contao-installationen-synchronisieren.html Tutorial zu syncCto2]</div>Andreasisaakhttps://de.contaowiki.org/MultiColumnWizardMultiColumnWizard2012-01-05T20:25:28Z<p>Andreasisaak: </p>
<hr />
<div>[[en:MultiSelectWizard]]<br />
[[Category:Extensions]]<br />
{{ExtInfo<br />
| DevSite=http://www.men-at-work.de<br />
| ExtVersion=2.0.0<br />
| Version=2.9+<br />
| ERLink=http://www.contao.org/erweiterungsliste/view/MultiColumnWizard.html<br />
| TrackerLink=https://github.com/menatwork/MultiColumnWizard/issues<br />
}}<br />
<br />
Der MultiColumnWizard ist ein Widget zur Abbildung von mehreren Feldern ''gleichen'' und/oder ''unterschiedlichen'' Typs (''Inputtype'') in einem DCA-Element. Die einzelnen Felder des MCW werden im Backend spaltenweise geführt und sind als Gruppe zeilenweise erweiterbar. Die Anordnung entspricht einem multidimensionalen Array der Form ''array[Zeilen][Felder]'', das als serialisiertes Array in der Datenbank abgelegt wird. Das Widget ist quasi identisch zu [[MultiTextWizard]] oder [[MultiSelectWizard]]. Es erweitert die Funktionalitäten für beliebige Widgets.<br />
<br />
=Aussehen=<br />
Die Extension kann für jede Art von Inputtype verwendet werden, eine Mischung der einzelnen Typen ist kein Problem.<br />
[[Datei:MultiColumnWizard.jpg|MultiColumnWizard|frame|center]]<br />
<br />
=Verwendung=<br />
Es gibt zwei Verwendungsmöglichkeiten. Entweder direkt mit der Angabe von "columnFields" im "eval"-Array oder mit einem Callback.<br />
<br />
==Angabe mit columnFields==<br />
<br />
<source lang="php"><br />
$GLOBALS['TL_DCA']['tl_theme']['fields']['templateSelection'] = array<br />
(<br />
'label' => &$GLOBALS['TL_LANG']['tl_theme']['templateSelection'],<br />
'exclude' => true,<br />
'inputType' => 'multiColumnWizard',<br />
'eval' => array<br />
(<br />
'columnFields' => array<br />
(<br />
'ts_client_os' => array<br />
(<br />
'label' => &$GLOBALS['TL_LANG']['tl_theme']['ts_client_os'],<br />
'exclude' => true,<br />
'inputType' => 'select',<br />
'options' => array<br />
(<br />
'option1' => 'Option 1',<br />
'option2' => 'Option 2',<br />
),<br />
'eval' => array('style' => 'width:250px', 'includeBlankOption'=>true)<br />
),<br />
'ts_client_browser' => array<br />
(<br />
'label' => &$GLOBALS['TL_LANG']['tl_theme']['ts_client_browser'],<br />
'exclude' => true,<br />
'inputType' => 'text',<br />
'eval' => array('style'=>'width:180px')<br />
),<br />
'ts_client_mobile' => array<br />
(<br />
'label' => &$GLOBALS['TL_LANG']['tl_theme']['ts_client_mobile'],<br />
'exclude' => true,<br />
'inputType' => 'checkbox',<br />
'eval' => array('style'=>'width:40px')<br />
<br />
),<br />
'ts_extension' => array<br />
(<br />
'label' => &$GLOBALS['TL_LANG']['tl_theme']['ts_extension'],<br />
'inputType' => 'text',<br />
'eval' => array('mandatory'=>true, 'style'=>'width:115px')<br />
),<br />
)<br />
)<br />
);<br />
</source><br />
<br />
==Angabe mit Callback==<br />
<source lang="php"><br />
$GLOBALS['TL_DCA']['tl_table']['fields']['anything'] = array<br />
(<br />
'label' => &$GLOBALS['TL_LANG']['tl_table']['anything'],<br />
'exclude' => true,<br />
'inputType' => 'multiColumnWizard',<br />
'eval' => array('mandatory'=>true,'columnsCallback'=>array('Class', 'Method'))<br />
<br />
);<br />
</source><br />
<br />
Wobei natürlich der Return-Wert genau das selbe Array sein muss, wie bei der "columnFields"-Variante.<br />
<br />
==Verfügbare MultiColumnWizard Eval-Optionen==<br />
<br />
{| cellpadding="20" cellspacing="0"<br />
|-<br />
| '''Schlüssel''' || '''Wert''' || '''Beschreibung''' || '''Beispiel'''<br />
|-<br />
| columnPos || Gruppenname<br />''string'' || Gruppiert Felder und zeigt Sie untereinander an. || <br />
|-<br />
| maxCount || Menge<br />''integer'' || Legt die maximale Anzahl an Felder fest, die angelegt werden dürfen. || <source lang="php">$GLOBALS['TL_DCA']['tl_example']['fields']['mcwExample']['eval']['maxCount'] = 4;</source><br />
|-<br />
| minCount || Menge<br />''integer'' || Legt die minimale Anzahl an Felder fest, die angelegt werden dürfen. || <source lang="php">$GLOBALS['TL_DCA']['tl_example']['fields']['mcwExample']['eval']['minCount '] = 2;</source><br />
|-<br />
| valign || Position<br />''string'' || Legt die vertikale Position der Zelle in der Tabelle fest. || <source lang="php">$GLOBALS['TL_DCA']['tl_example']['fields']['mcwExample']['eval']['valign'] = 'top';</source><br />
|-<br />
| buttonPos || Position<br />''string'' || Legt die vertikale Position der Zelle, in der sich die Buttons befinden, fest. ||<br />
|-<br />
| buttons || Buttonnamen<br />''associative array'' || Legt fest, mit welchem Icon die 4 Buttons "up", "down", "copy", "delete" dargestellt werden. Dabei ist der Buttonname der Schlüssel und der Pfad zum Icon der Wert. Wird ein Wert für einen Button explizit auf ''false'' gesetzt, so wird dieser versteckt. || <source lang="php">$GLOBALS['TL_DCA']['tl_example']['fields']['mcwExample']['eval']['buttons'] = array('copy' => false, 'delete' => false, 'up' => 'myUpIcon.png');</source><br />
|}<br />
<br />
==Unterstützte Contao Eval-Optionen==<br />
Diese Eval-Optionen werden für die "Kindwidgets" - oder besser "komponierten Widgets" - unterstützt.<br />
<br />
{|<br />
|-<br />
| '''Schlüssel''' || '''Status'''<br />
|-<br />
| nospace || ''Ungetestet''<br />
|-<br />
| multiple || Unterstützt<br />
|-<br />
| size || Unterstützt<br />
|-<br />
| rgxp || Unterstützt<br />
|-<br />
| style || Unterstützt<br />
|-<br />
| tl_class || Unterstützt<br />
|-<br />
| preserveTags || Unterstützt<br />
|-<br />
| allowHtml || Unterstützt<br />
|-<br />
| trailingSlash || ''Ungetestet''<br />
|-<br />
| mandatory || Unterstützt<br />
|-<br />
| spaceToUnderscore || Unterstützt<br />
|-<br />
| includeBlankOption || Unterstützt<br />
|-<br />
| maxlength || Unterstützt<br />
|-<br />
| minlength || Unterstützt<br />
|}</div>Andreasisaakhttps://de.contaowiki.org/PiwikTrackingTagPiwikTrackingTag2012-01-03T10:33:20Z<p>Andreasisaak: </p>
<hr />
<div>[[Category:Extensions]]<br />
{{ExtInfo<br />
| Dev=MEN AT WORK<br />
| ExtVersion=2.0.7<br />
| Version=2.9.0<br />
| TLVersion=2.6.0 - 2.8.x<br />
| ERLink=http://www.contao.org/erweiterungsliste/view/PiwikTrackingTag.html<br />
| DonateLink=[https://www.paypal.com/de/cgi-bin/webscr?cmd=_flow&SESSION=iCNMVLUkUFpFAaxy_i_7gZcH2-BKYkj7vcnAnom1iWcpXVqp7ioMTz3B9Ra&dispatch=5885d80a13c0db1f8e263663d3faee8d66edfb0b39be7838e3b204755610594d Paypal]<br />
| TrackerLink=http://www.contao-community.de/showthread.php?1929-PiwikTrackingTag-Piwik-Tracking-Tag-%28ab-Version-2.0.0%29&p=11405<br />
}}<br />
<br />
Die Installation und Verwendung von Piwik kann [[Piwik|hier]] nachgelesen werden<br />
=Piwik in Contao einbinden=<br />
Sobald diese Erweiterung über den Erweiterungskatalog in Contao installiert ist, stehen die Optionen im Seitenlayout unter ''Layout'' -> ''Themes'' -> ''Seitenlayout'' -> Rubrik ''Piwik'' zur Verfügung.<br />
<br />
'''Backend -> Seitenlayout''':<br />
<br />
[[Datei:piwik-seitenlayout.jpg|Seitenlayout]]<br />
<br />
Im Feld '''URL der Piwik-Installation''' wird der absolute Pfad zur Piwik-Installation eingeben.<br />
<br />
Im Feld '''Seiten-ID''' wird die Seiten-ID eingetragen. Diese kann aus dem Tracking-Code ermittelt werden (siehe [[Piwik#Mit_dem_Tracking_Code|Piwik Tracking Code]]). Dazu sucht man sich die Zeile mit der ID; z.B.<br />
<br />
var piwikTracker = Piwik.getTracker(pkBaseURL + "piwik.php", '''11''');<br />
<br />
In diesem Beispiel ist '''11''' die ID, die in dem Feld ''Seiten-ID'' eingetragen werden muss.<br />
<br />
=Weitere Optionen=<br />
<br />
Option '''Benutzer zählen''': Ist diese Option aktiv, werden Backend-Benutzer mitgezählt.<br />
<br />
Option '''Mitglieder zählen''': Ist diese Option aktiv, werden Frontend-Benutzer mitgezählt.<br />
<br />
Option '''Seiten-Titel verwenden''': zeigt in der Statistik dann den Seitentitel anstatt der Seiten-URL an.<br />
<br />
Option '''Verweis auf 404 Seite nicht gefunden gesondert anzeigen''':nicht gefundenen Seiten werden gesondert in der Piwik-Statistik angezeigt und können helfen, die Fehler leichter zu beseitigen.<br />
<br />
Option '''Dateiendungen für Download-Liste''': Hier sind alle Endungen aufgeführt, die als Download in der Statistik angezeigt werden. Nicht aufgeführte Dateieiendungen lassen sich hier hinzufügen. Achtung: In Contao unter '''''Einstellungen''''' müssen die Dateiendungen für Downloads auch eingetragen und freigegeben sein!</div>Andreasisaakhttps://de.contaowiki.org/InKuerzeVerfuegbarInKuerzeVerfuegbar2012-01-02T16:17:14Z<p>Andreasisaak: </p>
<hr />
<div>[[Category:Development]]<br />
[[Category:Extensions]]<br />
<br />
Um zu vermeiden, dass parallele Entwicklung unnötige Ressourcen benötigt, können Entwickler hier Erweiterung eintragen, die "in Kürze verfügbar" sein sollen.<br />
<br />
== ETES GmbH ==<br />
<br />
Entwickler: Jan Theofel, Marc Schneider, Sebastian Leitz<br />
<br />
Entwicklerkontakt: [mailto:contao@etes.de E-Mail] [http://www.etes.de/ Webseite]<br />
<br />
* (Neues) Trackback-Modul für News (andere Features als das bestehende)<br />
* (Neues) Gravatar-Modul (Gravatare auch für Kommentare etc.)<br />
* Wordpress-Import (basiert auf den oberen beiden)<br />
* htaccess-Erweiterung zur Konfiguration der zentralen .htaccess mit der Möglichkeit, dass Module dort per Hook eigene Definitionen einfügen können<br />
* Erweiterungen für unsere Jobbörse (Onlinebewerbung/Bewertung von Bewerbern/Anbindung an Paymentsysteme)<br />
<br />
== certo web & design GmbH ==<br />
<br />
Entwickler: Yanick Witschi (aka Toflar)<br />
<br />
Entwicklerkontakt: [mailto:yanick.witschi@certo-net.ch E-Mail] [http://www.certo-net.ch Webseite]<br />
<br />
* Votebox, Prinzip der Votebox von Dropbox<br />
<br />
== InfinitySoft - Innovative Softwarelösungen ==<br />
<br />
Entwickler: Tristan Lins (aka tril)<br />
<br />
Entwicklerkontakt: [mailto:tristan.lins@infinitysoft.de E-Mail] [http://www.infinitysoft.de Webseite]<br />
<br />
* .htaccess Editor [https://github.com/InfinitySoft/contao-htaccess github] [http://www.contao.org/erweiterungsliste/view/htaccess.20000008.de.html ER]<br />
Editor zum bequemen Einrichten der .htaccess Datei aus dem Backend heraus.<br />
* Open ER2 Client [https://github.com/InfinitySoft/contao-open-er2-client github]<br />
Client Library um Extensions innerhalb einer Contao Installation zu verwalten. Dies ist '''nur''' eine Library ohne grafische Oberfläche, die dazu genutzt werden kann einen neuen ER Client für das aktuelle Extension Repository zu entwickeln.<br />
<br />
== BugBuster ==<br />
<br />
Entwickler: Glen Langer<br />
<br />
Entwicklerkontakt: [http://www.contao-community.de/ Forum] | [http://www.contao.Glen-Langer.de/ Webseite]<br />
<br />
* [http://de.contaowiki.org/Replace_Language Replace Language] - mittlerweile fertig.<br />
* Idee: moopeel - diese nette Ecke auf Mootoolsbasis (no Flash!)<br />
* Idee: BotDetection Add-on: Suchmaschinen Statistik<br />
* Idee: Mitglieder Gruppe erweitern, automatisch Enddatum setzen bei den Mitgliedern, Zeitraum wählbar für Gruppe<br />
<br />
== MEN AT WORK ==<br />
<br />
Entwickler: Andreas Isaak, David Maack<br />
<br />
Entwicklerkontakt: [mailto:cms@men-at-work.de E-Mail]<br />
<br />
* recursiveDownload: Rekursive Downloads basierend auf dem Benutzerverzeichnis<br />
* recursiveGallery: Rekursive Galerie basierend auf dem Benutzerverzeichnis<br />
* [http://www.contao-forge.org/projects/language4translation/issues language4translation]: Exportierte Sprachtexte im Frontend übersetzen und später wieder via language2file importieren<br />
* dashboard: Erweiterung der Dashboard Extension von Andreas Schempp<br />
* [http://www.contao-forge.org/projects/backendfavourites backendFavourites] Favouriten/Sprungmarker für das Backend definieren<br />
<br />
* [https://github.com/menatwork Übersicht all unserer Entwicklungen]<br />
<br />
== Andreas Schempp ==<br />
<br />
Entwickler: Andreas Schempp<br />
<br />
Entwicklerkontakt: [mailto:andreas@schempp.ch andreas@schempp.ch]<br />
<br />
* ajaxform: Formular per Ajax senden und Antwort per Ajax laden<br />
* aliascompiler: Seitenalias aus Prefix und Postfix zusammenfügen (z.B. damit der Anwender nur Postfix bearbeiten kann)<br />
* articlelanguage: Artikel in einer zweiten Sprache zur Verfügung stellen<br />
* autocompletetextfield: Feld das Vorschläge für Eingabe (z.B. Tags) macht<br />
* barcode: Generierung von QRcode und MS Tag Bildern<br />
* blog: Umfangreiche Blog-Funktionen (ProofOfConcept)<br />
* documentsearch: Dokumente (PDF, DOC, PPT, XLS) in die Contao-Suche aufnehmen (erfordert Server-Binaries)<br />
* e2photogallery: Contao Extension für die [http://www.e2interactive.com/e2_photo_gallery/ e2 Photo Gallery]<br />
* exams: Ein- oder mehrseitige Prüfungen mit Punkte-System und Resultat-Auswertung<br />
* fancyavatar: Avatar mittels Ajax hochladen und zuschneiden<br />
* folderpage: Ordner-Seiten zur Gruppierung der Seitenstruktur<br />
* htmlpurifier: Integration des [http://htmlpurifier.org/ HTML Purifier] in Contao<br />
* importoption: Options-Daten für Formularfelder (Select, Radio, Checkbox) aus CSV importieren<br />
* joomlaboard_import: JoomlaBoard in Contao Helpdesk Erweiterung migrieren<br />
* member_album: Fotoalbum für Mitglieder anlegen<br />
* memberfiles: Zeigt im Backend die Dateien aus dem Benutzerverzeichnis zum Download an<br />
* mobile_stylesheets: Stylesheet-Targeting für iPhone, iPad und Co<br />
* news_loader: Lädt beim Scrollen der Seite automatisch die nächsten News nach<br />
* newsalert: Automatische Newsletter aus News-Archiven<br />
* newscategories: Kategorisierung und Auflistung von News-Beiträgen (über Archive hinweg)<br />
* newsletter-article: Newsletter aus Artikel generieren<br />
* openid-consumer: Anmelden bei Contao mittels OpenID (sehr altes Modul...)<br />
* pagepdf: PDF aus Seite generieren, oder Seiten im Backend direkt als PDF ausgeben (via kostenpflichtigem [http://html2pdf.seven49.net/ HTML2PDF]<br />
* previewdownload: Download-Datei mit Vorschau. Kann automatisch aus PDF ein Bild generieren, wenn imagemagick verfügbar ist.<br />
* qtplayer: Quicktime-Video und -Audio Dateien einbinden<br />
* rootsearch: Suche über mehrere Root-Seiten<br />
* shibboleth: Anmeldung an Contao mittels [http://de.wikipedia.org/wiki/Shibboleth_(Internet) Shibboleth]<br />
* singlegallery: Gibt das erste Galeriebild aus, erlaubt die Navigation in der lightbox/mediabox zu den restlichen Bildern<br />
* siximages: Galerie-Modul von [http://www.soleil-royal.ch/lage.html Soleil Royal]<br />
* z_modulealias: Alias-Modul welches andere Module automatisch entsprechend der aktiven Seite einbindet (praktisch für mehrsprachige Seiten)<br />
* zz_compressor: Automatische Komprimierung und Zusammeführung ALLER lokalen CSS- und JS-Dateien auf der Seite<br />
<br />
== Küstenschmiede - Ideen, Software & Design ==<br />
<br />
Entwickler: Jürgen Witte, Matthias Eilers<br />
<br />
Entwicklerkontakt: [mailto:info@kuestenschmiede.de E-Mail] [http://www.kuestenschmiede.info Webseite]<br />
<br />
* cfs_forum: Diskussionsforum mit themebarem jQuery UI und jQuery Mobile Frontend<br />
<br />
== hofemich ==<br />
<br />
Entwickler: Michael Hofer<br />
<br />
Entwicklerkontakt: [http://www.contao-community.de/ Forum]<br />
<br />
* isotope_request: Ermöglicht die Verknüpfung mit einem Formular, für Produkt-Anfragen<br />
<br />
== Cliff Parnitzky ==<br />
<br />
Entwickler: Cliff Parnitzky<br />
<br />
Entwicklerkontakt: [mailto:contao@cliff-parnitzky.de contao@cliff-parnitzky.de]<br />
<br />
* [http://www.contao.org/erweiterungsliste/view/BirthdayMailer.html BirthdayMailer]: fertig als Beta Release<br />
* ExtendedListing: Erweitert das Listing Modul um die Möglichkeit, Tabellen miteinander zu verknüpfen (SQL JOIN)<br />
<br />
== IMS Internet Marketing Solutions Ltd. ==<br />
<br />
Entwickler: Dominik Zogg<br />
<br />
Entwicklerkontakt: [mailto:dz@erfolgreiche-internetseiten.ch E-Mail]<br />
<br />
* calendarextended: Erweiterung des Standardkalenders, von einer Kontaktperson bis hin zu einer Registrierung ist alles dabei</div>Andreasisaakhttps://de.contaowiki.org/SyncCtoSyncCto2011-12-12T20:53:41Z<p>Andreasisaak: </p>
<hr />
<div>[[Category:Extensions]]<br />
Mit '''syncCto''' kann der Benutzer im Backend mehrere Contao-Installationen miteinander synchronisieren.<br />
{{ExtInfo<br />
| DevSite=http://www.men-at-work.de<br />
| ExtVersion=2.0.0<br />
| Version=2.9 - 2.11.0<br />
| ERLink=http://www.contao.org/erweiterungsliste/view/syncCto.html<br />
| TrackerLink=http://contao-forge.de/projects/synccto/issues<br />
}}<br />
<br />
==Was ist syncCto?==<br />
<br />
syncCto bietet die Möglichkeit mehrere Contao-Installationen auf Basis einer Grund-Installation zu synchronisieren. Alle Aktionen können bequem im Backend durchgeführt werden. Durch die Integration in das Contao Rechtesystem können auch Redakteure eine Auswahl vorher definierter Datenbank-Tabellen und Dateien synchronisieren.<br />
<br />
Ein integrierter Backup-Manager sichert ausgewählte Datenbank-Tabellen, wahlweise die gesamte Contao-Installation oder nur die persönlichen Daten. Angelegte Backups können durch den Backup-Manager auch wieder importiert werden.<br />
<br />
Durch die Verwendung von syncCto können Redakteure schnell und einfach in einem Preview-System arbeiten und bei Vollendung der Arbeit den aktuellen und freigegebenen Stand zum Live-System synchronisieren.<br />
<br />
==Konfiguration==<br />
<br />
===Systemcheck===<br />
<br />
Für eine reibungslose und fehlerfreie Synchronisation ist es wichtig als erstes alle Installationen zu kontrollieren. Dafür steht der neue Menüpunkt Systemcheck zur Verfügung, denn dort werden alle für syncCto wichtigen Funktionen und Ressourcen des Servers aufgelistet. Sind alle Zellen grün, ist der erste Schritt getan. Sollte dies nicht der Fall sein, kann syncCto womöglich nicht erfolgreich funktionieren.<br />
<br />
===Einstellungen===<br />
<br />
Bevor man die erste Installation synchronisieren kann, muss zwingend bei allen Installationen auf denen syncCto installiert ist, der Menüpunkt Einstellungen (Contao Einstellungen) aufgerufen und gespeichert werden. Bei diesem Vorgang wird der ctoCommunication API Key generiert. Den ctoCommunication API Key aus den Einstellungen der Clientinstallation benötigt man später bei der Erstellung des zuvor erwähnten Clients.<br />
<br />
Zu beachten: Der von syncCto verwendete ctoCommunication API Key ist nicht der Contao-Installations-Schlüssel.<br />
<br />
==Clients verwalten==<br />
<br />
Um einen neuen Client anzulegen, klickt man im Menüpunkt Clients einfach auf den Button "Neuer Client".<br />
<br />
* '''ctoCommunication API Key:''' Dieser Schlüssel sichert die Kommunikation zwischen den Contao-Installationen ab.<br />
* '''Titel:''' z.B. der Kundenname und der Name des Servers<br />
* '''Beschreibung:''' Eine aussagekräftige Beschreibung des Servers<br />
* '''Domain:''' Die Domain des Clients, ohne Unterverzeichnis<br />
* '''Serverpfad:''' Falls sich die Installation in einem Unterverzeichnis befindet<br />
* '''Portnummer:''' Standardmäßig ist es der Port 80<br />
* '''Verschlüsselungs-Engine:''' Es stehen drei Möglichkeiten zur Verfügung, in der Regel genügt "Blowfish"<br />
* '''HTTP-Authentifizierung aktivieren:''' Falls der Client mit einer .htaccess abgesichert ist, kann man hier den Benutzernamen und das Passwort eingeben und die gesicherte Installation synchronisieren<br />
<br />
==Synchronisation==<br />
<br />
Um den Client mit dem Server zu synchronisieren, klickt man beim entsprechenden Client auf den rechten Button "Client synchronisieren". Im nächsten Fenster wählt man die Synchronisationsart aus.<br />
<br />
* '''Contao-Installation:''' Die gesamte Contao-Installation, Dateien und Ordner in den tl_files müssen seperat ausgewählt werden<br />
* '''Persönliche Daten:''' Nur ausgewählte Dateien und Ordner im tl_files Ordner. Core-Dateien werden nicht berücksichtigt<br />
<br />
Standardmäßig ist die Option '''Persönliche Daten''' ausgewählt.<br /><br />
Danach kann man die DB-Tabellen auswählen. Man muss in diesem Schritt wissen welche Tabellen welche Daten enthält. Zum Schluss wählt man bei Bedarf noch Dateien und Ordner im tl_files aus und klickt für den Start der Synchronisation auf den Button "Client synchronisieren".<br />
<br />
==Backups==<br />
<br />
Backups können im Backend unter dem Menüpunkt Backups angelegt und wiederhergestellt werden. Alle Backups werden im automatisch angelegten Ordner "syncCto_backups" in den tl_files abgelegt. Datenbanken finden sich im Ordner "database" und Dateien im Ordner "files". Wenn man Backups wieder einspielen möchte, klickt man im Menüpunkt auf Backups und wählt die Art der Wiederherstellung. Im nächsten Schritt wählt man die entsprechende Datei aus und klickt auf "Wiederherstellen". Die Dateien oder die Datenbank auf dem Server werden danach mit den Daten aus dem Backup überschrieben.<br />
<br />
===Backups automatisiert löschen===<br />
<br />
Ab der Version 1.1.0 liegen der Extension zwei neue Cronjobs bei. Die Cronjobs löschen in Verbindung mit der Extension [http://www.contao.org/erweiterungsliste/view/cron.html Cron] automatisiert die Backups aus dem jeweiligen Ordner. Bei der Konfiguration der Cronjobs muss man den Link zum PHP-Script eingeben und den Intervall einstellen.<br />
<br />
Zur Verfügung stehen folgende zwei PHP-Skripte:<br />
<br />
* '''SyncCtoDeleteDbBackups.php''' Löscht alle Datenbank-Backups<br />
* '''SyncCtoDeleteFileBackups.php''' Löscht alle Datei-Backups<br />
<br />
[[Datei:SyncCto-konfiguration-cronjobs.jpg|Konfiguration der Cronjobs|frame|center]]<br />
<br />
Die Backups werden mit dieser Einstellung alle 7 Tage um genau 0:00 gelöscht. Möchte man den Zeitraum erhöhen, muss man */7 einfach gegen die Zahl austauschen. */14 löscht die Backups beispielsweise alle 14 Tage.<br />
<br />
[[Datei:SyncCto-konfiguration-cronjobs-2.jpg|Konfiguration zum Ausführen der Cronjobs|frame|center]]<br />
<br />
Nach Fertigstellung könnten die Cronjobs folgendermaßen aussehen:<br />
<br />
[[Datei:SyncCto-Cronjob.jpg|Übersicht Cronjobs|frame|center]]<br />
<br />
==Anwendungsfall 1==<br />
<br />
Auf dem Webserver laufen zwei Contao-Installationen.<br />
<br />
* Die Adresse der 1. Webseite heißt ''<nowiki>http://192.168.0.100/server/</nowiki>''<br />
* Die Adresse der 2. Webseite heißt ''<nowiki>http://192.168.0.100/client/</nowiki>''<br />
<br />
Der Server, bei syncCto, beschreibt immer die Installation die alle Informationen hat, die man auf eine andere Installation übertragen will. Dieses Ziel wird bei syncCto als Client beschrieben. Server und Client laufen also auf der gleichen Maschine auf den gleichen Webserver. <br />
<br />
==Anwendungsfall 2==<br />
<br />
Es gibt 2 Seiten die auf zwei verschiedenen Maschinen laufen. Beide Maschinen sind verbunden; egal ob nun im lokalen Netzwerk oder über das Internet. Dabei ist es wichtig das der Server den Client erreichen kann. Der Server kann lokal zuhause auf dem internen Webserver laufen. Der Client allerdings muss von außen erreichbar sein.<br />
<br />
* Server läuft lokal zuhause die Adresse ist ''<nowiki>http://192.168.0.100/server</nowiki>''<br />
* Der Client liegt im Internet und hat die Adresse ''<nowiki>http://www.example.com</nowiki>''<br />
<br />
So wird im Server für den Client einfach die Adresse ''<nowiki>http://www.example.com</nowiki>'' eingetragen.<br />
<br />
==Mögliche Problemfälle==<br />
<br />
Der SMH ist keine Lösung da die Daten via HTTP versendet werden. Ein ordentlich konfigurierter Server ist daher Pflicht.<br />
<br />
Um möglichen Problemfällen auf die Spur zu kommen kann man den Debugmodus in den Einstellungen aktivieren. Dabei wird die Dauer der Synchronisation und die Speicherauslastung während der Synchronisation ausgegeben. Zusätzlich werden Debugdateien im Tempordner von Contao abgelegt. Diese sind bei Problemen immer im Forum anzuhängen.<br />
<br />
==Weiterführende Links==<br />
<br />
* [http://www.contao-tutorials.de/tutorial/contao-installationen-synchronisieren.html Tutorial zu syncCto2]</div>Andreasisaakhttps://de.contaowiki.org/SyncCtoSyncCto2011-12-12T20:51:38Z<p>Andreasisaak: </p>
<hr />
<div>[[Category:Extensions]]<br />
Mit '''syncCto''' kann der Benutzer im Backend mehrere Contao-Installationen miteinander synchronisieren.<br />
{{ExtInfo<br />
| DevSite=http://www.men-at-work.de<br />
| ExtVersion=2.0.0<br />
| Version=2.9 - 2.11.0<br />
| ERLink=http://www.contao.org/erweiterungsliste/view/syncCto.html<br />
| TrackerLink=http://contao-forge.de/projects/synccto/issues<br />
}}<br />
<br />
==Was ist syncCto?==<br />
<br />
syncCto bietet die Möglichkeit mehrere Contao-Installationen auf Basis einer Grund-Installation zu synchronisieren. Alle Aktionen können bequem im Backend durchgeführt werden. Durch die Integration in das Contao Rechtesystem können auch Redakteure eine Auswahl vorher definierter Datenbank-Tabellen und Dateien synchronisieren.<br />
<br />
Ein integrierter Backup-Manager sichert ausgewählte Datenbank-Tabellen, wahlweise die gesamte Contao-Installation oder nur die persönlichen Daten. Angelegte Backups können durch den Backup-Manager auch wieder importiert werden.<br />
<br />
Durch die Verwendung von syncCto können Redakteure schnell und einfach in einem Preview-System arbeiten und bei Vollendung der Arbeit den aktuellen und freigegebenen Stand zum Live-System synchronisieren.<br />
<br />
==Konfiguration==<br />
<br />
===Systemcheck===<br />
<br />
Für eine reibungslose und fehlerfreie Synchronisation ist es wichtig als erstes alle Installationen zu kontrollieren. Dafür steht der neue Menüpunkt Systemcheck zur Verfügung, denn dort werden alle für syncCto wichtigen Funktionen und Ressourcen des Servers aufgelistet. Sind alle Zellen grün, ist der erste Schritt getan. Sollte dies nicht der Fall sein, kann syncCto womöglich nicht erfolgreich funktionieren.<br />
<br />
===Einstellungen===<br />
<br />
Bevor man die erste Installation synchronisieren kann, muss zwingend bei allen Installationen auf denen syncCto installiert ist, der Menüpunkt Einstellungen (Contao Einstellungen) aufgerufen und gespeichert werden. Bei diesem Vorgang wird der ctoCommunication API Key generiert. Den ctoCommunication API Key aus den Einstellungen der Clientinstallation benötigt man später bei der Erstellung des zuvor erwähnten Clients.<br />
<br />
Zu beachten: Der von syncCto verwendete ctoCommunication API Key ist nicht der Contao-Installations-Schlüssel.<br />
<br />
==Clients verwalten==<br />
<br />
Um einen neuen Client anzulegen, klickt man im Menüpunkt Clients einfach auf den Button "Neuer Client".<br />
<br />
* '''ctoCommunication API Key:''' Dieser Schlüssel sichert die Kommunikation zwischen den Contao-Installationen ab.<br />
* '''Titel:''' z.B. der Kundenname und der Name des Servers<br />
* '''Beschreibung:''' Eine aussagekräftige Beschreibung des Servers<br />
* '''Domain:''' Die Domain des Clients, ohne Unterverzeichnis<br />
* '''Serverpfad:''' Falls sich die Installation in einem Unterverzeichnis befindet<br />
* '''Portnummer:''' Standardmäßig ist es der Port 80<br />
* '''Verschlüsselungs-Engine:''' Es stehen drei Möglichkeiten zur Verfügung, in der Regel genügt "Blowfish"<br />
* '''HTTP-Authentifizierung aktivieren:''' Falls der Client mit einer .htaccess abgesichert ist, kann man hier den Benutzernamen und das Passwort eingeben und die gesicherte Installation synchronisieren<br />
<br />
==Synchronisation==<br />
<br />
Um den Client mit dem Server zu synchronisieren, klickt man beim entsprechenden Client auf den rechten Button "Client synchronisieren". Im nächsten Fenster wählt man die Synchronisationsart aus.<br />
<br />
* '''Contao-Installation:''' Die gesamte Contao-Installation, Dateien und Ordner in den tl_files müssen seperat ausgewählt werden<br />
* '''Persönliche Daten:''' Nur ausgewählte Dateien und Ordner im tl_files Ordner. Core-Dateien werden nicht berücksichtigt<br />
<br />
Standardmäßig ist die Option '''Persönliche Daten''' ausgewählt.<br /><br />
Danach kann man die DB-Tabellen auswählen. Man muss in diesem Schritt wissen welche Tabellen welche Daten enthält. Zum Schluss wählt man bei Bedarf noch Dateien und Ordner im tl_files aus und klickt für den Start der Synchronisation auf den Button "Client synchronisieren".<br />
<br />
==Backups==<br />
<br />
Backups können im Backend unter dem Menüpunkt Backups angelegt und wiederhergestellt werden. Alle Backups werden im automatisch angelegten Ordner "syncCto_backups" in den tl_files abgelegt. Datenbanken finden sich im Ordner "database" und Dateien im Ordner "files". Wenn man Backups wieder einspielen möchte, klickt man im Menüpunkt auf Backups und wählt die Art der Wiederherstellung. Im nächsten Schritt wählt man die entsprechende Datei aus und klickt auf "Wiederherstellen". Die Dateien oder die Datenbank auf dem Server werden danach mit den Daten aus dem Backup überschrieben.<br />
<br />
===Backups automatisiert löschen===<br />
<br />
Ab der Version 1.1.0 liegen der Extension zwei neue Cronjobs bei. Die Cronjobs löschen in Verbindung mit der Extension [http://www.contao.org/erweiterungsliste/view/cron.html Cron] automatisiert die Backups aus dem jeweiligen Ordner. Bei der Konfiguration der Cronjobs muss man den Link zum PHP-Script eingeben und den Intervall einstellen.<br />
<br />
Zur Verfügung stehen folgende zwei PHP-Skripte:<br />
<br />
* '''SyncCtoDeleteDbBackups.php''' Löscht alle Datenbank-Backups<br />
* '''SyncCtoDeleteFileBackups.php''' Löscht alle Datei-Backups<br />
<br />
[[Datei:SyncCto-konfiguration-cronjobs.jpg|Konfiguration der Cronjobs|frame|center]]<br />
<br />
Die Backups werden mit dieser Einstellung alle 7 Tage um genau 0:00 gelöscht. Möchte man den Zeitraum erhöhen, muss man */7 einfach gegen die Zahl austauschen. */14 löscht die Backups beispielsweise alle 14 Tage.<br />
<br />
[[Datei:SyncCto-konfiguration-cronjobs-2.jpg|Konfiguration zum Ausführen der Cronjobs|frame|center]]<br />
<br />
Nach Fertigstellung könnten die Cronjobs folgendermaßen aussehen:<br />
<br />
[[Datei:SyncCto-Cronjob.jpg|Übersicht Cronjobs|frame|center]]<br />
<br />
==Anwendungsfall 1==<br />
<br />
Auf dem Webserver laufen zwei Contao-Installationen.<br />
<br />
* Die Adresse der 1. Webseite heißt ''<nowiki>http://192.168.0.100/server/</nowiki>''<br />
* Die Adresse der 2. Webseite heißt ''<nowiki>http://192.168.0.100/client/</nowiki>''<br />
<br />
Der Server, bei syncCto, beschreibt immer die Installation die alle Informationen hat, die man auf eine andere Installation übertragen will. Dieses Ziel wird bei syncCto als Client beschrieben. Server und Client laufen also auf der gleichen Maschine auf den gleichen Webserver. <br />
<br />
==Anwendungsfall 2==<br />
<br />
Es gibt 2 Seiten die auf zwei verschiedenen Maschinen laufen. Beide Maschinen sind verbunden; egal ob nun im lokalen Netzwerk oder über das Internet. Dabei ist es wichtig das der Server den Client erreichen kann. Der Server kann lokal zuhause auf dem internen Webserver laufen. Der Client allerdings muss von außen erreichbar sein.<br />
<br />
* Server läuft lokal zuhause die Adresse ist ''<nowiki>http://192.168.0.100/server</nowiki>''<br />
* Der Client liegt im Internet und hat die Adresse ''<nowiki>http://www.example.com</nowiki>''<br />
<br />
So wird im Server für den Client einfach die Adresse ''<nowiki>http://www.example.com</nowiki>'' eingetragen.<br />
<br />
==Mögliche Problemfälle==<br />
<br />
Der SMH ist keine Lösung da die Daten via HTTP versendet werden. Ein ordentlich konfigurierter Server ist daher Pflicht.<br />
<br />
Um möglichen Problemfällen auf die Spur zu kommen kann man den Debugmodus in den Einstellungen aktivieren. Dabei wird die Dauer der Synchronisation und die Speicherauslastung während der Synchronisation ausgegeben. Zusätzlich werden Debugdateien im Tempordner von Contao abgelegt. Diese sind bei Problemen immer im Forum anzuhängen.</div>Andreasisaakhttps://de.contaowiki.org/MultiColumnWizardMultiColumnWizard2011-11-22T15:42:16Z<p>Andreasisaak: </p>
<hr />
<div>[[en:MultiSelectWizard]]<br />
[[Category:Extensions]]<br />
{{ExtInfo<br />
| DevSite=http://www.men-at-work.de<br />
| ExtVersion=2.0.0<br />
| Version=2.9+<br />
| ERLink=http://www.contao.org/erweiterungsliste/view/MultiColumnWizard.html<br />
| TrackerLink=http://contao-forge.org/projects/multicolumnwizard/issues<br />
}}<br />
<br />
Der MultiColumnWizard ist ein Widget zur Abbildung von mehreren Feldern ''gleichen'' und/oder ''unterschiedlichen'' Typs (''Inputtype'') in einem DCA-Element. Die einzelnen Felder des MCW werden im Backend spaltenweise geführt und sind als Gruppe zeilenweise erweiterbar. Die Anordnung entspricht einem multidimensionalen Array der Form ''array[Zeilen][Felder]'', das als serialisiertes Array in der Datenbank abgelegt wird. Das Widget ist quasi identisch zu [[MultiTextWizard]] oder [[MultiSelectWizard]]. Es erweitert die Funktionalitäten für beliebige Widgets.<br />
<br />
=Aussehen=<br />
Die Extension kann für jede Art von Inputtype verwendet werden, eine Mischung der einzelnen Typen ist kein Problem.<br />
[[Datei:MultiColumnWizard.jpg|MultiColumnWizard|frame|center]]<br />
<br />
=Verwendung=<br />
Es gibt zwei Verwendungsmöglichkeiten. Entweder direkt mit der Angabe von "columnFields" im "eval"-Array oder mit einem Callback.<br />
<br />
==Angabe mit columnFields==<br />
<br />
<source lang="php"><br />
$GLOBALS['TL_DCA']['tl_theme']['fields']['templateSelection'] = array<br />
(<br />
'label' => &$GLOBALS['TL_LANG']['tl_theme']['templateSelection'],<br />
'exclude' => true,<br />
'inputType' => 'multiColumnWizard',<br />
'eval' => array<br />
(<br />
'columnFields' => array<br />
(<br />
'ts_client_os' => array<br />
(<br />
'label' => &$GLOBALS['TL_LANG']['tl_theme']['ts_client_os'],<br />
'exclude' => true,<br />
'inputType' => 'select',<br />
'options' => array<br />
(<br />
'option1' => 'Option 1',<br />
'option2' => 'Option 2',<br />
),<br />
'eval' => array('style' => 'width:250px', 'includeBlankOption'=>true)<br />
),<br />
'ts_client_browser' => array<br />
(<br />
'label' => &$GLOBALS['TL_LANG']['tl_theme']['ts_client_browser'],<br />
'exclude' => true,<br />
'inputType' => 'text',<br />
'eval' => array('style'=>'width:180px')<br />
),<br />
'ts_client_mobile' => array<br />
(<br />
'label' => &$GLOBALS['TL_LANG']['tl_theme']['ts_client_mobile'],<br />
'exclude' => true,<br />
'inputType' => 'checkbox',<br />
'eval' => array('style'=>'width:40px')<br />
<br />
),<br />
'ts_extension' => array<br />
(<br />
'label' => &$GLOBALS['TL_LANG']['tl_theme']['ts_extension'],<br />
'inputType' => 'text',<br />
'eval' => array('mandatory'=>true, 'style'=>'width:115px')<br />
),<br />
)<br />
)<br />
);<br />
</source><br />
<br />
==Angabe mit Callback==<br />
<source lang="php"><br />
$GLOBALS['TL_DCA']['tl_table']['fields']['anything'] = array<br />
(<br />
'label' => &$GLOBALS['TL_LANG']['tl_table']['anything'],<br />
'exclude' => true,<br />
'inputType' => 'multiColumnWizard',<br />
'eval' => array('mandatory'=>true,'columnsCallback'=>array('Class', 'Method'))<br />
<br />
);<br />
</source><br />
<br />
Wobei natürlich der Return-Wert genau das selbe Array sein muss, wie bei der "columnFields"-Variante.<br />
<br />
==Verfügbare MultiColumnWizard Eval-Optionen==<br />
<br />
{| cellpadding="20" cellspacing="0"<br />
|-<br />
| '''Schlüssel''' || '''Wert''' || '''Beschreibung'''<br />
|-<br />
| columnPos || Gruppenname<br />''string'' || Gruppiert Felder und zeigt Sie untereinander an.<br />
|-<br />
| maxCount || Menge<br />''integer'' || Legt die maximale Anzahl an Felder fest, die angelegt werden dürfen.<br />
|-<br />
| minCount || Menge<br />''integer'' || Legt die minimale Anzahl an Felder fest, die angelegt werden dürfen.<br />
|-<br />
| valign || Position<br />''string'' || Legt die vertikale Position der Zelle in der Tabelle fest.<br />
|-<br />
| buttonPos || Position<br />''string'' || Legt die vertikale Position der Zelle, in der sich die Buttons befinden, fest.<br />
|}<br />
<br />
==Unterstützte Contao Eval-Optionen==<br />
<br />
{|<br />
|-<br />
| '''Schlüssel''' || '''Status'''<br />
|-<br />
| nospace || ''Ungetestet''<br />
|-<br />
| multiple || Unterstützt<br />
|-<br />
| size || Unterstützt<br />
|-<br />
| rgxp || Unterstützt<br />
|-<br />
| style || Unterstützt<br />
|-<br />
| tl_class || Unterstützt<br />
|-<br />
| preserveTags || Unterstützt<br />
|-<br />
| allowHtml || Unterstützt<br />
|-<br />
| trailingSlash || ''Ungetestet''<br />
|-<br />
| mandatory || Unterstützt<br />
|-<br />
| spaceToUnderscore || Unterstützt<br />
|-<br />
| includeBlankOption || Unterstützt<br />
|-<br />
| maxlength || Unterstützt<br />
|-<br />
| minlength || Unterstützt<br />
|}</div>Andreasisaakhttps://de.contaowiki.org/MultiColumnWizardMultiColumnWizard2011-11-22T15:42:10Z<p>Andreasisaak: </p>
<hr />
<div>[[en:MultiSelectWizard]]<br />
[[Category:Extensions]]<br />
{{ExtInfo<br />
| DevSite=http://www.men-at-work.de<br />
| ExtVersion=1.0.0<br />
| Version=2.9+<br />
| ERLink=http://www.contao.org/erweiterungsliste/view/MultiColumnWizard.html<br />
| TrackerLink=http://contao-forge.org/projects/multicolumnwizard/issues<br />
}}<br />
<br />
Der MultiColumnWizard ist ein Widget zur Abbildung von mehreren Feldern ''gleichen'' und/oder ''unterschiedlichen'' Typs (''Inputtype'') in einem DCA-Element. Die einzelnen Felder des MCW werden im Backend spaltenweise geführt und sind als Gruppe zeilenweise erweiterbar. Die Anordnung entspricht einem multidimensionalen Array der Form ''array[Zeilen][Felder]'', das als serialisiertes Array in der Datenbank abgelegt wird. Das Widget ist quasi identisch zu [[MultiTextWizard]] oder [[MultiSelectWizard]]. Es erweitert die Funktionalitäten für beliebige Widgets.<br />
<br />
=Aussehen=<br />
Die Extension kann für jede Art von Inputtype verwendet werden, eine Mischung der einzelnen Typen ist kein Problem.<br />
[[Datei:MultiColumnWizard.jpg|MultiColumnWizard|frame|center]]<br />
<br />
=Verwendung=<br />
Es gibt zwei Verwendungsmöglichkeiten. Entweder direkt mit der Angabe von "columnFields" im "eval"-Array oder mit einem Callback.<br />
<br />
==Angabe mit columnFields==<br />
<br />
<source lang="php"><br />
$GLOBALS['TL_DCA']['tl_theme']['fields']['templateSelection'] = array<br />
(<br />
'label' => &$GLOBALS['TL_LANG']['tl_theme']['templateSelection'],<br />
'exclude' => true,<br />
'inputType' => 'multiColumnWizard',<br />
'eval' => array<br />
(<br />
'columnFields' => array<br />
(<br />
'ts_client_os' => array<br />
(<br />
'label' => &$GLOBALS['TL_LANG']['tl_theme']['ts_client_os'],<br />
'exclude' => true,<br />
'inputType' => 'select',<br />
'options' => array<br />
(<br />
'option1' => 'Option 1',<br />
'option2' => 'Option 2',<br />
),<br />
'eval' => array('style' => 'width:250px', 'includeBlankOption'=>true)<br />
),<br />
'ts_client_browser' => array<br />
(<br />
'label' => &$GLOBALS['TL_LANG']['tl_theme']['ts_client_browser'],<br />
'exclude' => true,<br />
'inputType' => 'text',<br />
'eval' => array('style'=>'width:180px')<br />
),<br />
'ts_client_mobile' => array<br />
(<br />
'label' => &$GLOBALS['TL_LANG']['tl_theme']['ts_client_mobile'],<br />
'exclude' => true,<br />
'inputType' => 'checkbox',<br />
'eval' => array('style'=>'width:40px')<br />
<br />
),<br />
'ts_extension' => array<br />
(<br />
'label' => &$GLOBALS['TL_LANG']['tl_theme']['ts_extension'],<br />
'inputType' => 'text',<br />
'eval' => array('mandatory'=>true, 'style'=>'width:115px')<br />
),<br />
)<br />
)<br />
);<br />
</source><br />
<br />
==Angabe mit Callback==<br />
<source lang="php"><br />
$GLOBALS['TL_DCA']['tl_table']['fields']['anything'] = array<br />
(<br />
'label' => &$GLOBALS['TL_LANG']['tl_table']['anything'],<br />
'exclude' => true,<br />
'inputType' => 'multiColumnWizard',<br />
'eval' => array('mandatory'=>true,'columnsCallback'=>array('Class', 'Method'))<br />
<br />
);<br />
</source><br />
<br />
Wobei natürlich der Return-Wert genau das selbe Array sein muss, wie bei der "columnFields"-Variante.<br />
<br />
==Verfügbare MultiColumnWizard Eval-Optionen==<br />
<br />
{| cellpadding="20" cellspacing="0"<br />
|-<br />
| '''Schlüssel''' || '''Wert''' || '''Beschreibung'''<br />
|-<br />
| columnPos || Gruppenname<br />''string'' || Gruppiert Felder und zeigt Sie untereinander an.<br />
|-<br />
| maxCount || Menge<br />''integer'' || Legt die maximale Anzahl an Felder fest, die angelegt werden dürfen.<br />
|-<br />
| minCount || Menge<br />''integer'' || Legt die minimale Anzahl an Felder fest, die angelegt werden dürfen.<br />
|-<br />
| valign || Position<br />''string'' || Legt die vertikale Position der Zelle in der Tabelle fest.<br />
|-<br />
| buttonPos || Position<br />''string'' || Legt die vertikale Position der Zelle, in der sich die Buttons befinden, fest.<br />
|}<br />
<br />
==Unterstützte Contao Eval-Optionen==<br />
<br />
{|<br />
|-<br />
| '''Schlüssel''' || '''Status'''<br />
|-<br />
| nospace || ''Ungetestet''<br />
|-<br />
| multiple || Unterstützt<br />
|-<br />
| size || Unterstützt<br />
|-<br />
| rgxp || Unterstützt<br />
|-<br />
| style || Unterstützt<br />
|-<br />
| tl_class || Unterstützt<br />
|-<br />
| preserveTags || Unterstützt<br />
|-<br />
| allowHtml || Unterstützt<br />
|-<br />
| trailingSlash || ''Ungetestet''<br />
|-<br />
| mandatory || Unterstützt<br />
|-<br />
| spaceToUnderscore || Unterstützt<br />
|-<br />
| includeBlankOption || Unterstützt<br />
|-<br />
| maxlength || Unterstützt<br />
|-<br />
| minlength || Unterstützt<br />
|}</div>Andreasisaakhttps://de.contaowiki.org/SlideItMooSlideItMoo2011-11-10T10:44:46Z<p>Andreasisaak: </p>
<hr />
<div>[[Category:Extensions]]<br />
slideItMoo ist ein Mootools-basierter Content/Elementslider mit dem Inhaltselemente aller Art in einer Slideshow gezeigt werden können. Eine Online Demo ist direkt auf der [http://www.php-help.ro/examples/slideitmoo_1.1/ Originalseite] zu finden.<br />
{{ExtInfo<br />
| DevSite=http://www.men-at-work.de<br />
| ExtVersion=1.0.0<br />
| Version=2.9.0 - 2.10.2<br />
| ERLink=http://www.contao.org/erweiterungsliste/view/slideItMoo.html<br />
| TrackerLink=http://contao-forge.org/projects/slideitmoo/issues<br />
}}<br />
<br />
== Installation ==<br />
Wie bei allen Erweiterungen, kann diese über die Erweiterungsverwaltung installiert werden. Falls diese nicht verfügbar sein sollte gibt es noch die Möglichkeit der [http://www.contao-community.de/showthread.php?76-Third-Party-Erweiterungen-manuell-installieren manuellen Installation]. Sollte die Erweiterung manuell installiert werden müssen auch alle Abhängigkeiten mit installiert werden. Diese sind im Extension Repositority ersichtlich.<br />
<br />
== Verwendung ==<br />
Nach der Installation ist am Ende der Elementgruppen eine neue slideItMoo Gruppe verfügbar. Hier gibt es zwei Elemente:<br />
[[Datei:slideitmoo_ce.png|center]]<br />
<br />
Beim Anlegen eines '''Startelements''' wird zusätzlich auch das '''Endelement''' erzeugt. Alle Inhaltselemente welche sich zwischen Start und Ende befinden werden geslidet. Beim Anlegen des Startelementes gibt es diverse Einstellungsmöglichkeiten.<br />
<br />
=== SlideItMoo Startelement Einstellungen ===<br />
* Allgemein<br />
** '''Anzahl der sichtbaren Elemente:''' Hier kann man angeben wieviele Elemente angezeigt werden soll. <br />
** '''Anzahl der zu verschiebenden Elemente: ''' Hier kann die Anzahl der zu verschiebenden Elemente angegeben werden. <br />
** '''Startindex:''' Hier wird angegeben bei welchem Element gestartet werden soll.<br />
** '''Optionale CSS-Klasse:''' Jedes Inhaltselement bei Contao erhält die Klasse ".block", slideItMoo reagiert standardmäßig drauf. Möchte man nur Inhaltselemente sliden, die die Klasse ".special" behinhalten, so muss diese Klasse ohne Punkt in das Feld geschrieben werden. In den meisten Fällen kann das Feld aber leer gelassen werden.<br />
* Abmessungen<br />
** '''Breite und Höhe:''' Es muss definiert werden wie breit und hoch der Slider sein muss (in Pixel).<br />
** '''Elementabstand:''' Hier wird der Abstand zwischen den einzelnen Elementen definiert.<br />
* Effekte<br />
** '''Effektdauer:''' Die Effektdauer in Millisekunden (2000 = 2 Sek)<br />
** '''Effektbewegung aktivieren:''' Effekte können aktiviert werden, diese bassieren auf [http://mootools.net/docs/core/Fx/Fx.Transitions Fx.Transition]<br />
** '''Effektbewegung:''' Hier kann die Effektbewegung ausgewählt werden. Beispiele findet man [http://mootools.net/docs/core/Fx/Fx.Transitions direkt auf MooTools]<br />
** '''Ease:''' Slideshow weicher darstellen<br />
* Elementbewegung<br />
** '''Slideshow umkehren:''' Die Slideshow wird rückwerts abgespielt.<br />
** '''Vertikal sliden:''' Die Slideshow vertikal ablaufen lassen.<br />
** '''Autoplay aktivieren:''' Die Slideshow wird automatisch abgespielt.<br />
** '''Einblendungsdauer:''' Wie lange dauert der Effekt des Slides. Angabe in Millisekunden (2000 = 2 Sek)<br />
* Navigation<br />
** '''Navigation aktivieren:''' Ermöglicht dem Nutzer zwischen den Slides zu navigieren.<br />
** '''Scroll-Navigation aktivieren:''' Die Slideshow mithilfe der mittleren Maustaste steuern.<br />
* Template<br />
** '''Template aktivien:''' Das mitgelieferte Standarddesign verwenden<br />
** '''CSS Template''' Die Gestaltung der Slideshow kann über Templates angepasst werden.<br />
<br />
<br>'''Wichtig''' Mit dem Standardtemplate von slideItMoo funktioniert der Slider ohne zusätzliche CSS-Anweisungen. Optional ist es auch möglich eine eigene CSS-Datei in den Ordner des slideItMooFrameworks abzulegen (plugins/slideitmoo/css) und dieses dann im Backend auszuwählen ODER die CSS-Anweisungen in die eigene style.css zu übernehmen. In diesem Fall sind viele Wege möglich.</div>Andreasisaakhttps://de.contaowiki.org/SlideItMooSlideItMoo2011-11-09T08:07:50Z<p>Andreasisaak: Die Seite wurde neu angelegt: „Category:Extensions slideItMoo ist ein Mootools-basierter Content/Elementslider mit dem Inhaltselemente aller Art in einer Slideshow gezeigt werden können. {…“</p>
<hr />
<div>[[Category:Extensions]]<br />
slideItMoo ist ein Mootools-basierter Content/Elementslider mit dem Inhaltselemente aller Art in einer Slideshow gezeigt werden können.<br />
{{ExtInfo<br />
| DevSite=http://www.men-at-work.de<br />
| ExtVersion=1.0.0<br />
| Version=2.9.0 - 2.10.2<br />
| ERLink=http://www.contao.org/erweiterungsliste/view/slideItMoo.html<br />
| TrackerLink=http://contao-forge.org/projects/slideitmoo/issues<br />
}}</div>Andreasisaakhttps://de.contaowiki.org/InKuerzeVerfuegbarInKuerzeVerfuegbar2011-11-02T15:31:13Z<p>Andreasisaak: </p>
<hr />
<div>[[Category:Development]]<br />
[[Category:Extensions]]<br />
<br />
Um zu vermeiden, dass parallele Entwicklung unnötige Ressourcen benötigt, können Entwickler hier Erweiterung eintragen, die "in Kürze verfügbar" sein sollen.<br />
<br />
== ETES GmbH ==<br />
<br />
Entwickler: Jan Theofel, Marc Schneider, Sebastian Leitz<br />
<br />
Entwicklerkontakt: [mailto:contao@etes.de E-Mail] [http://www.etes.de/ Webseite]<br />
<br />
* (Neues) Trackback-Modul für News (andere Features als das bestehende)<br />
* (Neues) Gravatar-Modul (Gravatare auch für Kommentare etc.)<br />
* Wordpress-Import (basiert auf den oberen beiden)<br />
* htaccess-Erweiterung zur Konfiguration der zentralen .htaccess mit der Möglichkeit, dass Module dort per Hook eigene Definitionen einfügen können<br />
* Erweiterungen für unsere Jobbörse (Onlinebewerbung/Bewertung von Bewerbern/Anbindung an Paymentsysteme)<br />
<br />
== certo web & design GmbH ==<br />
<br />
Entwickler: Yanick Witschi (aka Toflar)<br />
<br />
Entwicklerkontakt: [mailto:yanick.witschi@certo-net.ch E-Mail] [http://www.certo-net.ch Webseite]<br />
<br />
* Votebox, Prinzip der Votebox von Dropbox<br />
<br />
== InfinitySoft - Innovative Softwarelösungen ==<br />
<br />
Entwickler: Tristan Lins (aka tril)<br />
<br />
Entwicklerkontakt: [mailto:tristan.lins@infinitysoft.de E-Mail] [http://www.infinitysoft.de Webseite]<br />
<br />
zur Zeit nur Projektpflege oder kleine Erweiterungen. Große Projekte sind zur Zeit nicht in Entwicklung.<br />
<br />
== BugBuster ==<br />
<br />
Entwickler: Glen Langer<br />
<br />
Entwicklerkontakt: [http://www.contao-community.de/ Forum] | [http://www.contao.Glen-Langer.de/ Webseite]<br />
<br />
* [http://de.contaowiki.org/Replace_Language Replace Language] - mittlerweile fertig.<br />
* Idee: moopeel - diese nette Ecke auf Mootoolsbasis (no Flash!)<br />
* Idee: BotDetection Add-on: Suchmaschinen Statistik<br />
* Idee: Mitglieder Gruppe erweitern, automatisch Enddatum setzen bei den Mitgliedern, Zeitraum wählbar für Gruppe<br />
<br />
== MEN AT WORK ==<br />
<br />
Entwickler: Andreas Isaak, David Maack<br />
<br />
Entwicklerkontakt: [mailto:cms@men-at-work.de E-Mail]<br />
<br />
* recursiveDownload: Rekursive Downloads basierend auf dem Benutzerverzeichnis<br />
* recursiveGallery: Rekursive Galerie basierend auf dem Benutzerverzeichnis<br />
* [http://www.contao-forge.org/projects/language2file/issues language2file]: Wrapper für den Export von Sprachtexten<br />
* [http://www.contao-forge.org/projects/language3csv/issues language3csv]: Sprachtexte als CSV-Datei exportieren<br />
* [http://www.contao-forge.org/projects/language3xml/issues language3xml]: Sprachtexte als XML-Datei exportieren<br />
* [http://www.contao-forge.org/projects/language4translation/issues language4translation]: Exportierte Sprachtexte im Frontend übersetzen und später wieder via language2file importieren<br />
* dashboard: Erweiterung der Dashboard Extension von Andreas Schempp<br />
* [http://www.contao-forge.org/projects/backendfavourites backendFavourites] Favouriten/Sprungmarker für das Backend definieren<br />
<br />
* [https://github.com/menatwork Übersicht all unserer Entwicklungen]<br />
<br />
== Andreas Schempp ==<br />
<br />
Entwickler: Andreas Schempp<br />
<br />
Entwicklerkontakt: [mailto:andreas@schempp.ch andreas@schempp.ch]<br />
<br />
* ajaxform: Formular per Ajax senden und Antwort per Ajax laden<br />
* aliascompiler: Seitenalias aus Prefix und Postfix zusammenfügen (z.B. damit der Anwender nur Postfix bearbeiten kann)<br />
* articlelanguage: Artikel in einer zweiten Sprache zur Verfügung stellen<br />
* autocompletetextfield: Feld das Vorschläge für Eingabe (z.B. Tags) macht<br />
* barcode: Generierung von QRcode und MS Tag Bildern<br />
* blog: Umfangreiche Blog-Funktionen (ProofOfConcept)<br />
* documentsearch: Dokumente (PDF, DOC, PPT, XLS) in die Contao-Suche aufnehmen (erfordert Server-Binaries)<br />
* e2photogallery: Contao Extension für die [http://www.e2interactive.com/e2_photo_gallery/ e2 Photo Gallery]<br />
* exams: Ein- oder mehrseitige Prüfungen mit Punkte-System und Resultat-Auswertung<br />
* fancyavatar: Avatar mittels Ajax hochladen und zuschneiden<br />
* folderpage: Ordner-Seiten zur Gruppierung der Seitenstruktur<br />
* htmlpurifier: Integration des [http://htmlpurifier.org/ HTML Purifier] in Contao<br />
* importoption: Options-Daten für Formularfelder (Select, Radio, Checkbox) aus CSV importieren<br />
* joomlaboard_import: JoomlaBoard in Contao Helpdesk Erweiterung migrieren<br />
* member_album: Fotoalbum für Mitglieder anlegen<br />
* memberfiles: Zeigt im Backend die Dateien aus dem Benutzerverzeichnis zum Download an<br />
* mobile_stylesheets: Stylesheet-Targeting für iPhone, iPad und Co<br />
* news_loader: Lädt beim Scrollen der Seite automatisch die nächsten News nach<br />
* newsalert: Automatische Newsletter aus News-Archiven<br />
* newscategories: Kategorisierung und Auflistung von News-Beiträgen (über Archive hinweg)<br />
* newsletter-article: Newsletter aus Artikel generieren<br />
* openid-consumer: Anmelden bei Contao mittels OpenID (sehr altes Modul...)<br />
* pagepdf: PDF aus Seite generieren, oder Seiten im Backend direkt als PDF ausgeben (via kostenpflichtigem [http://html2pdf.seven49.net/ HTML2PDF]<br />
* previewdownload: Download-Datei mit Vorschau. Kann automatisch aus PDF ein Bild generieren, wenn imagemagick verfügbar ist.<br />
* qtplayer: Quicktime-Video und -Audio Dateien einbinden<br />
* rootsearch: Suche über mehrere Root-Seiten<br />
* shibboleth: Anmeldung an Contao mittels [http://de.wikipedia.org/wiki/Shibboleth_(Internet) Shibboleth]<br />
* singlegallery: Gibt das erste Galeriebild aus, erlaubt die Navigation in der lightbox/mediabox zu den restlichen Bildern<br />
* siximages: Galerie-Modul von [http://www.soleil-royal.ch/lage.html Soleil Royal]<br />
* z_modulealias: Alias-Modul welches andere Module automatisch entsprechend der aktiven Seite einbindet (praktisch für mehrsprachige Seiten)<br />
* zz_compressor: Automatische Komprimierung und Zusammeführung ALLER lokalen CSS- und JS-Dateien auf der Seite<br />
<br />
== Küstenschmiede - Ideen, Software & Design ==<br />
<br />
Entwickler: Jürgen Witte, Matthias Eilers<br />
<br />
Entwicklerkontakt: [mailto:info@kuestenschmiede.de E-Mail] [http://www.kuestenschmiede.info Webseite]<br />
<br />
* cfs_maps: OpenLayers-Integration zur Anzeige von OpenStreetMap und Bing-Maps (u.a.) als Inhaltselement und Frontend-Modul - fertig seit 07/2011 ab Contao 2.10 RC1<br />
<br />
== hofemich ==<br />
<br />
Entwickler: Michael Hofer<br />
<br />
Entwicklerkontakt: [http://www.contao-community.de/ Forum]<br />
<br />
* isotope_request: Ermöglicht die Verknüpfung mit einem Formular, für Produkt-Anfragen<br />
<br />
== Cliff Parnitzky ==<br />
<br />
Entwickler: Cliff Parnitzky<br />
<br />
Entwicklerkontakt: [mailto:contao@cliff-parnitzky.de contao@cliff-parnitzky.de]<br />
<br />
* BirthdayMailer: Schickt eine Geburtstagsmail an die Mitglieder konfigurierter Mitgliedergruppen, die am aktuellen Tag Geburtstag haben.<br />
* ExtendedListing: Erweitert das Listing Modul um die Möglichkeit, Tabellen miteinander zu verknüpfen (SQL JOIN)</div>Andreasisaak