Projekt: StaRT - Shopfinder
Hinweise zum Projekt[Bearbeiten]
Änderungen[Bearbeiten]
Folgendes bei Update von locatorparking beachten:
Änderung in ext_tables.php
// for tx_locator_locations table $tempColumns = Array ( "tx_locatorparking_trademark" => Array ( "exclude" => 1, "label" => "LLL:EXT:locatorparking/locallang_db.xml:tx_locatorparking.trademark", "config" => Array ( "type" => "input", "size" => "30", "eval" => "trim", ) ), //...
wird zu
// for tx_locator_locations table $tempColumns = Array ( "tx_locatorparking_trademark" => Array ( "exclude" => 1, "label" => "LLL:EXT:locatorparking/locallang_db.xml:tx_locatorparking.trademark", "config" => Array ( "type" => "text", "cols" => "50", "rows" => "6", "eval" => "trim", ) ), //...
Kategorisierung der Läden über
Sortiment, Branche, Marken, Hauptbranchen (Kategorien)
Felder die zur Verfügung stehen sind:
products (nicht durchsucht), tx_locatorparking_assortment (durchsucht), tx_locatorparking_trademark (durchsucht)
Mapping:
Sortiment -> products weil dieses Feld nicht durchsucht wird.
Suchbegriffe + Branche -> tx_locatorparking_assortment weil dies durchsuchtwird (zeigen wir nicht an)
Sortiment -> products
Marken -> tx_locatorparking_trademark
Hauptbranchen incategoryuid als kommagetrennte Werte in
Attribute (nur Barrierefreier Zugang und Eigener_Parkplatz)
automatische Geocodierung[Bearbeiten]
Die funktioniert nur zuverläßig wenn in der Datenbank im Feld geocode eine 1 steht (eingeschaltet für diesen Datensatz) und wenn in country das Land steht.
Dies kann im Zweifel auch als Standardwert gesetzt werden (bei geocode ist das normalerweise der Fall)
Anzeige der Parkhäuser im Shopfinder und anderen Objekten[Bearbeiten]
Parken Seite[Bearbeiten]
Auf der Parken-Seite werden über JS die passenden Parkhausinfos eingeblendet. Dies wird entweder über Klick auf die Imagemap oder über eine GET Variable in der URL aktiviert. (z.B.: p=c1853 wobei c1853 die ID des zu öffnenden Inhaltselements).
Link Generierung[Bearbeiten]
Dazu braucht man im Template des Shopfinders zwei anpassungen: Im Shopfinder selbst wird das Feld Contentelemente genutzt. Die passenden Contentelemente werden dazu geladen und über die Klasse .invisible versteckt.
Im Template sieht das so aus:
<div id="mapDiv"> <div id="parking-head"></div> <div id="parking-info"> <div class="addContent invisible">###CONTENTV###</div> </div> <div id="map" class="tx_locator_map" style=""></div> ... </div>
Das parking-head div wird über das JavaScript mit den passenden Links befüllt. Der Marker CONTENTV wird mit den Parkhausinfos gefüllt (komplette Content Elemente). Durch die Klasse invisible sind diese nicht sichtbar und durch die Klasse addContent weiß das JavaScript (s.u.) das es hieraus die Links generieren soll.
Ein (jQuery) JavaScript sucht nach Elementen mit der Klasse .addContent liest die Content ID aus und generiert daraus einen Link. Der Link wird dann im Div #parking-head angehängt.
<script type="text/javascript">
( function($) {
// we can now rely on $ within the safety of our “bodyguard” function
$(document).ready( function() {
//get id
i=0;
//each content element
$('.addContent').children().each(function(){
var arrPid = [];
var pid = 0;
arrPid = $(this).attr('class').match(/additionalContent([0-9]+)/);
if ( arrPid instanceof Array ){
pid = parseInt(arrPid[1]);
} else pid = 0;
if(pid > 0) {
if(i==0) $('#parking-head').append("<h3>Parken</h3>");
// content info
contentClass = "." + arrPid[0];
pname = $(this).find('h1').text();
// Set Link
$('#parking-head').append('<a class="parking-info" href="index.php?id=228&p=c' + pid +'">'+ pname + "</a><br>");
i++;
//console.log(contentClass,pname);
}
});
} );
} ) ( jQuery );
</script>