Zum Inhalt springen

Content je nach Keyword ausgeben - Codeproblem

Erstellt am 15. Juli 2011 · 1 Antwort · letzte Antwort am 19. Juli 2011

Tags: Frage

Silkea ·

Hallo,

ich habe folgendes Problem: Eine Box mit Daten eines Ansprechpartners soll auf der rechten Seite eingeblendet werden (auf jeder Seite). Der Ansprechpartner ist abhängig von Keywords. Es können auch mehrere Boxen sein. Da das Metatagfeld für die Keywords nicht benutzt wird, habe ich das missbraucht für mein Vorhaben. Ich benutze folgenden Code (s.unter dem Posting).

Mehrere Probleme:

Ich kann nicht sehen, was jeweils ausgegeben wird. Sollte man die Objekte (temp bzw. lib) nicht über debug ausgeben können? Da erscheint aber leider nichts.

Auf News-Seiten kommt die Meldung "Keine News in dieser Ansicht.". Wo kommt das her?

Es gibt keine Ausgabe. Der Code wird aber generell ausgeführt, denn die divs werden (ohne Inhalt) ausgegeben. Wenn ich die Ausgabe direkt mache, indem ich statt "temp" (oder lib) "page.xxx" (xxx ist dann irgendeine Zahl) schreibe bekomme ich eine (passende) Ausgabe.

Kann mir jemand Tipps gebe, wo mein Fehler liegt?

Code:

20 = COA
20.wrap = <div id="rightcontent">|</div>
20 {
	10 < styles.content.getRight

	# Ansprechpartnerbox immer (ganz unten) einblenden
	20 = HTML
	20.value = <div class="contact-box">

	# Titel der Box
	30 = TEXT
	30 {
		#dataWrap = <div class="csc-header csc-header-n2"><h1>{field:title}</h1></div>
		# soll später aus Sprachdatei kommen
		value = <div class="csc-header csc-header-n2"><h1>Ansprechpartner</h1></div>
	}

	# Keywords auslesen aus aktueller Seite
	temp.keywords = COA
	temp.keywords {
		10 = TEXT
		10 {
			field = keywords
			ifEmpty = Sales
			split {
				token = ,
				cObjNum = 1
				1.current = 1
				1.noTrimWrap = | keywords LIKE "%|%" or |
			}
			substring = 0,-4
		}
	}
	
	# Unterseiten mit passendem Keyword auslesen
	lib.contacts = CONTENT
	lib.contacts {
		table = pages
		# 38 ist pid des Ordners Ansprechpartner
		select.pidInList = 38
		select.where.cObject < temp.keywords
		renderObj = COA
		renderObj {
			10 = TEXT
			10 {
				field=uid
				wrap = |,
			}
		}
	}
	
	40 = COA
	40 {
		10 = TEXT
		10.value = <div class="contact-content">
				
		20 = CONTENT
		20.table = tt_content
		20.select {
			pidInList.cObject < lib.contacts
			orderBy = pid
			where = colPos=0
		}
		30 = TEXT
		30.value = <div class="contact-content">
	}
	50 = HTML
	50.value = </div>
}
Silkea ·

Hat denn niemand eine Idee, warum die Übergabe der Daten nicht klappt. Wenn ich die Sachen direkt ausgebe, bekomme ich eine Anzeige (der Seitenids), z.B. wenn ich statt lib/temp das einfach in die page schreibe:

# Unterseiten mit passendem Keyword auslesen
10 = TEXT
10 {
table = pages
# 38 ist pid des Ordners Ansprechpartner
select.pidInList = 38
select.where.cObject < temp.keywords
renderObj = COA
renderObj {
10 = TEXT
10 {
field=uid
wrap = |,
}
}
}
Das Ganze ist eine eine Ausgabe von page eingebunden.

Oder vielleicht eine Idee, wie ich das anders lösen könnte (es darf aber kein Plugin sein, das war meine erste Idee, es soll aber nach den Vorgaben direkt über Inhaltsseiten laufen, nicht über ein separates Plugin)?

Bin für jeden Tipp dankbar...

Viele Grüße,
Silke