Einbinden von anderen Contao Tabellen
Hallo Matthias,
vielen Dank für deine nette Unterstützung.
Zu einen: Im Source Code habe ich es jetzt 'Raw' hinbekommen. Es liegt meines Erachtens in der LayerContentApi.php um die Zeile 241.
Code:
if ($arrConfig['ptable']) {
$sourcePid = $objLayer->tab_pid;
$pidOption = "WHERE `pid` = '$sourcePid' ";
}
if ($arrConfig['sqlwhere']) {
$whereClause = ' AND ' . $arrConfig['sqlwhere'];
}
// $query = "SELECT * FROM `$sourceTable`" . $pidOption . $whereClause;
$query = "SELECT * FROM `$sourceTable`" . " WHERE `published` = '1'";
Sobald keine ptable angesprochen wird entfällt in der SQL Query das WHERE. Im weiteren scheint die Notation "Anführungsstriche" bzw 'Hochkomma' ebenfalls wichtig.
Dazu versuche ich mal einen kleinen Workarround zu generieren.
Zum anderen komme ich in der Kartenstruktur nicht weiter. Für mich persönlich der wichtigere Part, da dort direkt im Backend manipuliert werden kann.
Augenblicklich finde ich nicht heraus, wo die Hinterlegung der Bedingung in der Kartenstruktur im C4G abgearbeitet wird.
..
Exkurs:
Vor dem Hintergrund fiel mir auf, dass a. in der DB der Eintrag in der tab_whereclause Spalte im HTML Code generiert wird -> mm_xxx.published = ; 1 und
b. das in der DCA Config der einschaltbare Debugmodus keinerlei Auswirkungen hat.
--
Vielleicht hast du eine Idee, oder einen Ansatz, wo ich genau suchen oder prüfen kann.
Viele Grüße
Uwe
Einbinden von anderen Contao Tabellen
Hallo Matthias,
danke für die Nachricht.
Wo kommt denn dein Code her?
Viele Grüße
Uwe
Einbinden von anderen Contao Tabellen
Moin,
ich habe nun zunächst einmal relativ unelegant die in der DCA config.php von c4g_maps sqlwhere in der LayerContentApi.php so umgestrickt, dass es für mich erst einmal funktioniert und weitere Contao Tabellen mit WHERE Klausel eingebunden werden können.
Code:
$sourceTable = $objLayer->tab_source;
$arrConfig = $GLOBALS['con4gis_maps_extension']['sourcetable'][$sourceTable];
$pidOption = '';
$whereClause = '';
$qWhere = '';
$qAnd = '';
if ($arrConfig['ptable']) {
$qWhere = " WHERE ";
$sourcePid = $objLayer->tab_pid;
$pidOption = "`pid` = '$sourcePid' ";
}
if ($arrConfig['sqlwhere']) {
$qWhere = " WHERE ";
if($arrConfig['ptable'])
{ $qAnd = " AND ";}
$whereClause = $arrConfig['sqlwhere'];
}
$query = "SELECT * FROM `$sourceTable`". $qWhere . $pidOption . $qAnd . $whereClause;
$result = \Database::getInstance()->prepare($query)->execute();
In der LayerContentApi.php um die schon erwähnte Zeile 241.
Eventuell findet sich irgendwann jemand, der den Code smarter schreibt.
Viele Grüße
Uwe
Einbinden von anderen Contao Tabellen
So jetzt habe ich auch die Kartenstruktur SQL Bedingung eingebaut. Wen es interessiert, hier der Code in der LayerContentApi.php ab Zeile 237 "case: table"
Code:
case "table":
$sourceTable = $objLayer->tab_source;
$arrConfig = $GLOBALS['con4gis_maps_extension']['sourcetable'][$sourceTable];
$pidOption = '';
$whereClause = '';
$qWhere = '';
$qAnd = '';
$addBeWhereClause = '';
if ($arrConfig['ptable']) {
$qWhere = " WHERE ";
$sourcePid = $objLayer->tab_pid;
$pidOption = "`pid` = '$sourcePid' ";
}
if ($arrConfig['sqlwhere']) {
$qWhere = " WHERE ";
if($arrConfig['ptable'])
{ $qAnd = " AND ";}
$whereClause = $arrConfig['sqlwhere'];
}
if($objLayer->tab_whereclause){
$an = " AND ";
if (!$qWhere){$Where = " WHERE ";$an = '';}
$addBeWhereClause = $an.$objLayer->tab_whereclause;
}
$query = "SELECT * FROM `$sourceTable`". $qWhere . $pidOption . $qAnd . $whereClause . $addBeWhereClause;
$result = \Database::getInstance()->prepare($query)->execute();
$geoxField = $arrConfig['geox'];
$geoyField = $arrConfig['geoy'];
$tooltipField = $arrConfig['tooltip'];
$labelField = $arrConfig['label'];
Der Code kann bestimmt verschlankt und optimiert werden, allerdings in meinem Projekt bekomme ich die Resultate, wie gewünscht.
Vielen Dank an Matthias ala CoastFace für die nette Unterstützung und die guten Tipps, die mich auf den richtigen Weg gebracht haben.
Womit ich, auch unter dem zeitlichen Gesichtspunkt, noch nicht klar komme, ist der Eintrag aus dem Kartenstruktur Bedingungsfeld in die Datenbank. Die Einträge werden permanent und generell im HTML-Entity in die DB geschrieben. Das wirft natürlich in der DB Abfrage Fehler.
Ich behelfe mir momentan damit, dass ich die WHERE Statements direkt in der Datenbank einpflege.
Viele Grüße
Einbinden von anderen Contao Tabellen
So,
das mit den HTML Entities in der Datenbank hatte mir dann doch keine Ruhe gelassen.
Zitat:
Womit ich, auch unter dem zeitlichen Gesichtspunkt, noch nicht klar komme, ist der Eintrag aus dem Kartenstruktur Bedingungsfeld in die Datenbank. Die Einträge werden permanent und generell im HTML-Entity in die DB geschrieben. Das wirft natürlich in der DB Abfrage Fehler.
Das Problem läßt sich in der tl_c4g_maps.php bei Zeile 722 lösen:
Code:
'tab_whereclause' => array
(
'label' => &$GLOBALS['TL_LANG']['tl_c4g_maps']['tab_whereclause'],
'exclude' => true,
'inputType' => 'textarea',
'eval' => array('decodeEntities'=>true), // -> hier werden die HTML Entities deaktiviert
'sql' => "text NULL"
),
Viele Grüße
Verschachtelte Markergruppen
Unter https://con4gis.org/con4gis-maps.html findet sich nach der Überschrift "Strukturelemente" ein schönes Beispiel für verschachtelte Marker, die man gruppenweise oder auch einzeln ausblenden kann.
Beispiel:
Leider ist es mir auch mit dem Handbuch etc. nicht gelungen, diese Struktur nachzubauen. Gibt es hierfür irgendwo eine Anleitung? In welcher Hierarchie muss man welche Art von Elementen anordnen, um dieses Ergebnis zu erzielen?
Danke
Sitting Bull
Liste der Anhänge anzeigen (Anzahl: 1)
con4gis Maps
Moin Allerseits,
mir stellt sich nun das nächste unerklärliche Problem. Sofern ich eine eigene Tabelle mit Geodaten in c4g maps einbinde, erscheinen die Geolocations auf der Karte immer als kleiner Kreis #fff (Rand Blau). Über Locationsstile, Kartenthema, Kartenstruktur oder Kartenprofil läßt sich die Extension nicht dazu bewegen, eine andere Form bzw ein eigenes Icon zu hinterlegen bzw. darzustellen.
Soweit ich die Doku richtig verstanden habe, sollte mindestens per default der beschriebene rote Kreis als Marker erscheinen. -> Leider bei mir bisher nicht.
Eventuell hat jemand einen Lösungsansatz oder hat einen Tipp bei der Config Einstellung .
Mit vielen Dank im Vorraus und Grüßen aus Bremen
System:
PHP 5.6.X
Contao: 3.5.15
C4G Maps: 3.4.0
Liste der Anhänge anzeigen (Anzahl: 3)
con4gis Maps
Moin Matthias,
danke für deine prompte Nachricht.
Bei mir läuft es einfach nicht (siehe Anlagen). Ich vermute ganz stark, dass auch dieses Problem mit den "externen" Tabellen zusammenhängt. Habt ihr in eurer Testumgebung mit einer "externen"; also nicht vorgegebenen externen, Tabelle gearbeitet, oder mt tl_member bzw tl_calendar_events. Bei den Beiden greift das System in der Tat.
Allein ich finde trotz dieser Erkenntnis den Einstieg nicht. Wo werden die Marker in c4g generiert?
Nette Grüße
Uwe
[3.5.24] con4gis/con4gis_maps3 Installation via Composer
Hallo Leute,
Ich versuche gerade mit dem Composer con4gis/con4gis_maps3 in einer neuen Contao-3.5.24 zu installieren und erhalte diese Fehlermeldung:
Code:
Fatal error: Class 'Contao\CoreBundle\Controller\FrontendController' not found in /xxx/xxx/xxx/composer/vendor/con4gis/con4gis_api_bundle/src/Controller/ApiController.php on line 21
Getestet habe ich auch die contao-legacy/con4gis_maps, die sich problemlos installieren lässt.
Welche Maps-Version empfehlt Ihr für Contao-3.5.24, PHP 7.1 ?
Liste der Anhänge anzeigen (Anzahl: 1)
Servus,
habe mit meinen ersten Gehversuchen mit con4gis ebenfalls Probleme und zwar wird meine gewählte Karte nicht angezeigt, sondern nur die beiden Zoom-Buttons; der Rest ist nur weiß; siehe Image.
Anhang 18857
Ich habe die Anleitungen im Handbuch befolgt; als Karte habe ich die OSM-Map von Openstreetmap verwendet. Was läuft da falsch? Danke für jede Hilfe.
Gruß
Schneetiger
Kartenstruktur Popup automatisch öffnen
Hallo,
ich habe ein Kartenstrukturelement erstellt, welches aus einer einzelnen Geo-Koordinate besteht und Inhalt für das Popup-Fenster besitzt.
Gibt es eine Möglichkeit, dieses Popup automatisch nach dem Laden der Karte zu öffnen?
[3.5.25] con4gis/con4gis_maps3 Installation via Composer Fehlerhaft
ich möchte den Fehler von bizon noch einmal bestätigen...
Die Installation von con4gis_maps via Composer unter einer frischen Installation von Contao 3.5.25 mit PHP 5.6 MySQLi schlägt fehl mit dem Fehler:
Code:
Fatal error: Class 'Contao\CoreBundle\Controller\FrontendController' not found in /xxx/xxx/xxx/composer/vendor/con4gis/con4gis_api_bundle/src/Controller/ApiController.php on line 21
Gibt es da schon eine Lösung?
Grüße
Theo
Trotz Forum-Abonnement keine Info über neue Einträge
@bizon, @Schneetiger, @paddy78, @Goviti, @theobald: leider habe ich Eure Beiträge erst jetzt gelesen. Auf die E-Mail-Benachrichtigung kann ich mich scheinbar nicht verlassen ... Sorry!
1. Composer in der 3er-Welt
@bizon, @theobald:
Da die wenigsten Composer mit Contao 3 einsetzen, haben wir dieses Problem auch noch in der neuesten Version 3.6 (von gestern). D.h. die composer.json ist für Contao 4 geschrieben und läuft mit Contao 3 nicht. Bitte zieht Euch die Extensions über das Extension Repository oder über GitHub (https://github.com/kuestenschmiede). Falls Ihr Composer einsetzen müsst, nehmt aus der composer.json von con4gis-Core die API-Bundle-Zeile einfach raus. Sobald wir etwas Zeit finden, werden wir versuchen das für beide Welten in einer composer.json zu lösen. Eine eigene composer.json für Contao 3 wird es aber nicht geben.
2. Leere Basiskare
@Schneetiger, @ Goviti:
Bitte testet das Ganze noch mal mit der neuesten Version. Wir können das Problem nicht nachvollziehen. con4gis setzen wir auf sehr vielen Contao Websites bei verschiedenen Hostern ein und die Basiskarten werden geladen. Falls das Problem weiterhin auftritt, müssen wir den Fehler nachvollziehen können. Meldet Euch am Besten per E-Mail oder Kontaktformular.
3. Popup automatisch öffnen
@paddy78:
Leider gibt es diese Funktion in der aktuellen Version nicht. Ich werde das aber für die nächsten Version mit in die Planung bringen.
Danke Euch allen für das Feedback. Ich gehe davon aus, dass mich die neuen Beiträge jetzt auch wieder erreichen.
Schönes Wochenende
Matthias
Liste der Anhänge anzeigen (Anzahl: 1)
Overlaykarte funktioniert nicht
Ich habe in einem frischen Contao 3.5.27 die con4gis-Maps3 bei Hosteurope installiert und eine Basiskarte gem. Anleitung angelegt.
Erst nach Aktualisierung der maps3 Dateien aus dem GitHub gem dem vorstehenden Beitrag wird die Basiskarte dargestellt.
Wenn die Basiskarte jedoch mit OpenSeamap Titles dargestellt werden soll wird die Grundkarte nicht mehr angezeigt und nur die Seamarks aus OpenSeamaps sind zu sehen.
Alternativ habe ich dann die OpenSeamap Titles mit den OpenStreetmap Titles zusammen in einer neuen Basiskarte angelegt.
Im Ergebnis werden die Seamarks aus OpenSeamap im Wechsel mit der Grundkarte von OpenStreetmap dargestellt.
Anhang 19253
Weiss jemand, woran das liegen könnte?
Grüße
Rudi
congis 4 map wird nicht mehr angezeigt
Hallo habe erstmals congis4/map Version v4.3.7 installiert ( contao 4 ,PHP Version 7.2 , macbook lokal Mamp).
Eine Testmap habe ich angelegt und sie wurde auch im Frontend schon angezeigt .
Inzwischen wird die map aber nicht mehr dargestellt , keine Fehlermeldung nur die Überschrift , habe übr den contao manager auch schon die Installation noch mal ausgeführt .
Ich weiß daher auch nicht wo ich bei der Fehlersuche ansetzen könnte .. hat jemand eine Tipp für mich ?