Zum Inhalt springen

rlmp_eventdb + TemplaVoila installieren

Erstellt am 4. August 2008 · 19 Antworten · letzte Antwort am 13. August 2008

Tags: Kalender & Termine, Frage

ikkez ·

also wenn ich weiteren inhalt der veranstaltung hinzufüge, funzt auch die anmeldung... wenn ich dort eine karte kaufe, seh ich auch im backend das eine gekauft wurde, also 1/100 verfügbaren. Features funktionieren also.
Mein problem ist gerade, das ich erstmal TV deaktivieren musste, weil die Ladys die gerade an Texten arbeiten, mit der neuen Darstellungsweise in der Seitenansicht nicht klar kommen :-\
zwar gab es in der Konfiguration von TV nen Button mit dem man anscheinend die alte Ansicht wieder aktivieren kann - dies hat aber nicht funktioniert :-\

ich glaub auch das es notwendig sein wird am quelltext rumzuspielen um die Ausgabe der Währung und der Englischen Wochentage zu berichtigen .hmpf

edit: okay nach erneutem aktiveren/installieren funktioniert jetzt parallel auch die alte Seitenansicht. sehr schön

ikkez ·

okay ich konnte jetzt den Fehler beheben, dass auf der Übersichtsseite mit der Listendarstellung dieser Fehler erscheint:
"[rlmp_eventdb] Error: Event does not exist (0)"

musste dazu manuell in der Datenbank tx_rlmpeventdb_events einen neuen leeren Datensatz mit uid=0 erstellen,... nun ist der Fehler weg.

aber an sich total behindert. Bleibt immer noch der Fehler, der erscheint wenn ich im Menü auf Veranstaltungen klicke, um zur Übersichtsseite zurück zu kommen:

[rlmp_eventdb] Error: Content Element with uid "185" does not exist.

die uid 185 gibts ja auch nicht, richtig... aber woher nimmt er sich diesen Wert? mein Flexible Content Textbaustein mit dem eventdb FCE hat auch ja uid 260 ... ändere ich diesen wert aber im GET parameter der URL, tut sich erstmal nicht viel und die seite braucht ewig zum laden, bis er mir dann 20-30mal das eventdb menü ausgibts und keine events.
Und das soll eine stable version sein? *narf*

nomawie ·

jo das problem das mir das menü nach ewiger ladezeit 100x augegeben wird hab ich auch und bisher nicht lösen können. ebenso die per backend einstellbaren anzahlen..
Das "[rlmp_eventdb] Error: Event does not exist (0)" hatte ich bisher noch nie. Aber als stable würd ich das ganze auch nicht bezeichnen. Es sei denn wir machen irgendwas grundlegendes falsch aber bei dem manual ist das ja auch nicht verwunderlich

edit:
wenn du allerdings eine beschreibung samt funktionierender anmeldung willst kannst du es so machen:
du erstellst eine seite außerhalb des page trees, z.B. im sysfolder der event, fügst dort ein ganz normales content element hinzu, z.B. text mit bild, gehst dann in das event und fügst den text mit bild als weiteren inhalt hinzu. allerdings hab ich es noch nicht geschafft, ein fce als zusätzlichen inhalt inzuzufügen. Das das mit dem menü nicht klappt kann ich mir auch vorstellen: Das Menü wird geladen, hat als weiteren Inhalt wieder das Menü, das hat wieder das Menü usw... aber eine Lösung ist mir bisher nicht eingefallen. Das Menü weglassen hat bei mir zur Folge das nichts von dem FCE angezeigt wird

ikkez ·

also das mit dem weiteren Inhalt hinzufügen funktioniert soweit recht gut. Sieht auch alles recht gut aus. Nur beim stylen einiger input-Felder könnt ich mir schon wieder die Haare rausreißen..
z.b hat mein input-Feld für die Kartenanzahl die
id="tx_frontendformslib[data][tx_rlmpeventdb_registrations_featuresflex][amount-1]"

Wie soll man das bitte mit css ansprechen? Kann unmöglich gefunden werden. Soll das echt so, oder ist das einfach nur kaputt?!

Die falsche Darstellung des Euro-Zeichens konnte ich bisher nur in der Druckansicht beheben, indem ich in der Datei "pi1/rlmp_eventdb_print.php" weiter unten den charset im meta-tag mal auf UTF-8 gestellt hab:

<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />

so dachte ich, es hilft sicherlich auch TYPO dann komplett auf UTF-8 umzustellen mittels

page.config.metaCharset = utf-8
page.config.additionalHeaders = Content-Type:text/html;charset=utf-8

in meinem Seitentemplate, aber dem ist nicht so. Ich hab auch mein html eventdb template für TV gecheckt, als UTF-8 gespeichert, neu hochgeladen, header neu gesetzt, aber hilft alles nichts... in der normalen Ansicht will das Euro Zeichen einfach nicht richtig dargestellt werden.

Ich wühl mich jetzt mal durch den Quelltext.

nomawie ·

das problem mit dem eurozeichen konnt ich schon lösen. schau dir mal mit phpMyAdmin die static info tables an. da ist das euro zeichen falsch eingetragen

ikkez ·

ja hab ich eben gerade auch selbst gefunden 😉

für andere hier der query

UPDATE `EUER-DB-NAME`.`static_currencies` SET `cu_symbol_left` = '€',
`cu_sub_symbol_left` = '€' WHERE `static_currencies`.`cu_iso_3` like 'EUR' LIMIT 1 ;

UTF-8 musste ich aber wieder deaktivieren, sonst gibt er nur Fragezeichen aus.

ikkez ·

ich hab jetzt erstmal mitbekommen das dieses Menü mir ja nur die weiteren Elemente liefert die ich der Veranstaltung mit hinzugefügt habe als weitere Inhalte. Das ist ja total dämlich. Warum kann der nicht einfach alles untereinander packen?
Ich werd für jede Veranstaltung nur noch ein Text mit Bild Element verwenden, den Rest rausschmeißen und mir das Menü umbauen, weil erstmal der angezeigt Text ja überhaupt nicht dazu passt und es auch noch alte nicht mehr vorhandene Elemente mit ausspruckt, welche dann nen error erzeugen :-\

In der Funktion "userSingleViewMenu" der Datei "pi1/class.tx_rlmpeventdb_pi1.php" werd ich mal bisschen was rausschmeißen und nen zurück Link auf die Übersichtsseite einhauen, und denn passt das glaub ich.

ikkez ·

so... bei mir läuft es jetzt erstmal, so das man es benutzen kann.

hab das menü jetzt umgebaut in zeile 1343: function userSingleViewMenu ($content, $conf) von File: pi1/class.tx_rlmpeventdb_pi1.php (85 K)

// Create menu items for detail pages:
foreach ($detailsPagesArr as $menuItemUid) {
				$itemRow = $this->pi_getRecord (($useTemplaVoila ? 'tt_content' : 'pages'), $menuItemUid);
				$itemTitle = ($useTemplaVoila ? $itemRow['header'] : $itemRow['title']);

				if ($menuItemUid != $activeItemUid) {
					$menuItemsArr[] = $this->pi_linkTP_keepPIvars (htmlspecialchars($itemTitle), array('activeItemUid' => $menuItemUid));
				} else {
					$menuItemsArr[] = '<strong>'.htmlspecialchars($itemTitle).'</strong>';
				}
				break;
			}
if(!isset($_REQUEST['id'])) $menuItemsArr[] = '<a href="index.php?id=6">Veranstaltungen</a>';

bei zeile 1371 hab ich nen "break;" eingefügt, damit er mir nur die Hauptseite ausgibt, keinen quatsch mehr den er eh nicht anzeigen kann. Gleich dahinter dann 1373: "if(!isset($_REQUEST['id'])) $menuItemsArr[] = '<a href="index.php?id=6">Veranstaltungen</a>';"
Das ist mein Link zurück zur Übersichsseite der Veranstaltungen wenn man auf der Detailansicht ist. Der Anmeldelink erscheint wie gehabt, wenn er verfügbar ist.

Ein FCE als zusätzlichen Inhalt für eine Veranstaltung mit hinzuzufügen hab ich jetzt noch nicht probiert. Test ich morgen mal.

nomawie ·

Sieht ganz gut aus was du da gemacht hast. Lob 😃

Das Menü find ich eigentlich ganz ok aber dass ich die FCEs nicht darstellen kannst stört mich sehr. Ich bin kurzzeitig auf julle_events umgestiegen. Das kann zwar nicht soviel aber es läuft ohne große Probleme. Das einzige was mich stört, ist dass es keine Überprüfung hat, welche Felder ausgefüllt werden müssen. Weiß nicht ob man das umschreiben kann, hab momentan sehr wenig Zeit

ikkez ·

julle_events hab ich mir noch nicht angeguckt, aber ich brauche die Funktionen von der rlmp_eventdb....wenn sie denn mal funktionieren würden. Ich muss mich nochmals auf die Suche machen, wie man die Pflichtfelder einstellen kann, und das mit "Voreingestellte Anzahl" und "Anzahl nicht änderbar?" funktioniert einfach mal NICHT. Schon doof, wenn man dem Kunden zeigen will, wie man Bearbeitungsgebühren eintragen kann, diese aber nicht richtig funktionieren, da er meine oben genannten Einstellungen ignoriert :-\

nomawie ·
ikkez schrieb

Ich muss mich nochmals auf die Suche machen, wie man die Pflichtfelder einstellen kann, und das mit "Voreingestellte Anzahl" und "Anzahl nicht änderbar?" funktioniert einfach mal NICHT.

Genau das ist auch mein Problem und momentan hab ich einfach nicht die Zeit. Ich werde demnächst wohl anfangen, ein eigene Extension zu schreiben. Aber falls du es hinkriegst, bitte lass es mich wissen 😉 Denn das fehlt Julle_Events leider auch

ikkez ·

Gute Nachrichten!

Ich hab's hinbekommen das er die "Voreingestellte Anzahl" und "Anzahl nicht änderbar" mit auswertet. Die Funktionen waren einfach mal nicht mit eingebaut, erscheinen zwar im Backend, aber werden nicht behandelt.

folgendes muss getan werden:

rlmp_eventdb
Datei "pi1/class.tx_rlmpeventdb_pi1.php (86 K)"

Betrifft die Funktion function createFeaturesStepConf ($eventRow)

Zeile 1037 diese Zwei Zeilen in den 'config'-Array einfügen

'defaultvalue' => $featureArr['defaultamount'],
'disabled' => $featureArr['amountfixed'],

danach sieht die for each Schleife etwa so aus:

foreach ($featuresArr as $id => $featureArr) {
			$label = $featureArr['description'] . (isset($featureArr['priceperunit']) ? ' ('.$this->moneylibObj->format ($featureArr['priceperunit'], $this->currency).')' : '');

			$fieldsArr['tx_rlmpeventdb_registrations_featuresflex|amount-'.$id] = array(
				'mode' => 'manual',
				'config' => array(
					'type' => 'input',
					'size' => 5,
					'tx_frontendformslib_swaphorizontally' => 1,
					'defaultvalue' => $featureArr['defaultamount'],
					'disabled' => $featureArr['amountfixed'],
				),
				'label' => $label,
				'table' => 'tx_rlmpeventdb_registrations_featuresflex',
				'name' => 'amount-'.$id,
			);
		}

Damit diese Werte auch interpretiert werden müssen wir auch noch die extension
Frontend forms code library (frontendformslib) anpassen:

Datei: class.tx_frontendformslib.php (30 K)
Funktion: function getSingleField_typeInput($fieldConf, $tcaFieldConf)

ab Zeile 462 wird ein $params Array erstellt.

folgende Zeile suchen:

'value' => htmlspecialchars($this->sessionData['data'][$fieldConf['table']][$fieldConf['name']]),

und mit dieser ersetzen:

'value' => ($tcaFieldConf['defaultvalue'] ? $tcaFieldConf['defaultvalue'] : (htmlspecialchars($this->sessionData['data'][$fieldConf['table']][$fieldConf['name']]))),

Das wäre für den voreingestellten Wert.

Das man das Feld nicht ändern kann hab ich erstmal nur soweit gelöst, dass das INPUT Feld deaktiviert wird bzw. readonly. Kann zwar jeder Web-ambitionierte Techniker mit Firebug in 5sek. umgehen, da ich jetzt noch keine weitere Abfrage nach der Formularübermittlung drin hab, aber das such ich mir noch, und so ist es jedenfalls schon mal besser als würde es gar nicht funktionieren.

Also um <input> Felder zu deaktivieren (readonly) die einen nicht änderbaren Wert enthalten sollen, einfach nach der $params Array Deklaration die Zeile mit dem output suchen (kommt gleich danach), also diese hier:

$output = '<input '.$this->implode_assoc_r('="', '" ', $params).'" />';

und DAVOR einfügen:

if($tcaFieldConf['disabled']) {
	$temp_array = array('readonly' => 'readonly');
	$params = array_merge($params, $temp_array);			
}

musste es leider so lösen, direkt im array ding es so nicht, da sobald <input> ein readonly TAG hat deaktiviert wird. Dann hab ich es auch mit disabled="disabled" versucht, jedoch hat er aus unerfindlichen Gründen mich dann beim "weiter" klicken wieder zurück geschubst und gemeint, mein disabled feld wäre ein Pflichtfeld, welches ausgefüllt werden muss ó0 ? Es hatte doch nen Wert.
Scheinbar konnte er den Wert dann nicht richtig auslesen. var_dump hat es bestätigt. Mit readonly klappt es aber.

So viel Spaß damit.
Vielleicht kann das ja jemand gebrauchen.

Ich frag mich aber immer noch was "Anzahl anzeigen ?" genau bewirken soll. INPUT Feld ein/aus blenden, also type="hidden"??? Oder soll das eher Bezug auf die voreingestellte Anzahl haben? Das geht nämlich auch noch nicht.

ikkez ·

so ich hab nun nochmal etwas an dem "Anzahl anzeigen ?" rumgespielt und mir das nun soweit umgebaut:
Wenn der Haken bei "Anzahl nicht änderbar?" gesetzt ist, zeigt er das Input-Feld nicht an (hidden) und das label bleibt leer. In der Bestellübersicht wird es dann aber mit aufgelistet. Wenn man zusätzlich nun noch "Anzahl anzeigen" aktiviert, wird das Input Feld als readonly mit angezeigt. Ich finde das so eigentlich ganz charmant, weiß zwar nicht ob die Funktion dafür gedacht war, aber ich lass das jetzt so.

Wenns jemand nachbauen will, für version 1.1.2 der rlmp_eventdb die Datei pi1/class.tx_rlmpeventdb_pi1.php (86 K) bearbeiten:

wieder function createFeaturesStepConf ($eventRow) bei mir Zeile 1023.
suche:

'label' => $label,

ersetze durch:

'label' => ($featureArr['amountfixed'])?(($featureArr['displayamount'])?$label:''):$label,

weiter gehts in der function userRegistrationOverviewFeatures ($conf, &$parentObj, &$formObj) bei mir Zeile:1719

suche

<td class="tx-rlmpeventdb-pi1-registrationoverview-features-feature">'.$formObj->getSingleLabel($fieldConf).'</td>

und ersetzt sie mit dieser:

<td class="tx-rlmpeventdb-pi1-registrationoverview-features-feature">'.$featuresArr[$featureId]['description'] .'</td>

Ist dafür da, damit in der Bestellübersicht, die Beschreibung angezeigt wird, von den versteckten Items, sonst steht nur Preis und Anzahl dort. Das Label in der die Beschreibung stand fällt dabei auch gleich raus. Ist auch besser so, das hatte dort in der Tabelle eh nichts zu suchen. So ist es sauber.

Eine weitere Anpassung brauchen wir dann auch noch in der class.tx_frontendformslib.php (30 K) der Frontend forms code library (frontendformslib)
auch wieder in der function getSingleField_typeInput($fieldConf, $tcaFieldConf) Zeile 459.

suche:

'type' => (stristr($tcaFieldConf['eval'], 'password') ? 'password' : 'text'),

und die Zeile ersetzen mit:

'type' => (($tcaFieldConf['display']==0 && $tcaFieldConf['disabled'] ==1)?'hidden':(stristr($tcaFieldConf['eval'], 'password') ? 'password' : 'text')),

So das wars dann auch "schon". Unfassbar, es funktioniert.