Zum Inhalt springen

cObjGetSingle ignoriert type bzw. typeNum Parameter

Erstellt am 11. November 2010 · 4 Antworten · letzte Antwort am 12. November 2010

Tags: Links, PHP, Frage

Bordstein ·

Hallo zusammen!

Ich verwende, um einen Button für die Druckansicht zu erzeugen, in einer Extension die Methode

$this->cObj->cObjGetSingle('IMAGE', $params)

wobei $params beispielsweise

$params['stdWrap.'] = Array(
  'typolink' => 1,
  'typolink.' => Array(
    'parameter' => $GlOBALS['TSFE']->id,
    'additionalParams' => '&title=Blubb&type=42'
  )
);

dies entspricht im Typoscript in etwa der Schreibweise

PRINTVIEW = TEXT 
PRINTVIEW { 
  value = Druckansicht
  typolink.parameter.data = page:uid
  typolink.additionalParams.insertData=1
  typolink.additionalParams =&type=42 
}

type=42 entspricht hierbei dem typeNum, der das Drucktemplate für die Seite aktiviert.

Insgesamt funktioniert das auch fast alles. Das einzige Problem ist, das die Methode cObjGetSingle den Parameter "&type=42" zu ignorieren scheint. Ändere ich den Namen in ein beliebig anderen z.B. typie oder typ, generiert er mir den Link auch damit. Nur type scheint aus einem bestimmten Grund reserviert zu sein.
Nun brauche ich aber genau diesen und ich habe keine Möglichkeit gefunden den typeNum, welcher eben für eine Druckansicht wichtig wäre, anders durch diese Methode zu bringen.

Absolute Notlösung wäre den fertigen String noch mal an zufassen und die Fehlenden Zeichen selbst einzufügen aber das sollte nicht sein müssen.

Ich habe bislang aber keinen Hinweis darauf finden können, warum 'type' gesperrt sein sollte.

Vielen Dank an jeden der hier Helfen möchte!

igorshmigor ·

Die Typenum sollte man in einem typolink auch nicht über additionalParams sondern über parameter übergeben. Wenn du nach der Seiten-ID ein Komma machst und dann einen Integer anfügst, wird letzterer als Typenum verstanden.
Beispiel:

'parameter' => $GlOBALS['TSFE']->id.',42',

So sollte es klappen, denke ich.

Bordstein ·

Hallo Igor,

du hast recht. Laut der Beschreibung von typolink stehen kommaseparierte Zahlenpaare für ID/Type-Kombinationen.

Letztendlich wird im Array schon so etwas wie '4711,42' an die Methode übergeben. Am Ergebnis ändert das allerdings nichts.

Die Schlussfolgerung den TypeNum bei 'additionalParams' anzugeben entstand aus der oft gesehenen (und funktionierenden) Praxis bei TypoScript.

Warum die von dir genannte und auch der Dokumentation entsprechende Lösung nicht funktioniert ist mir allerdings ein Rätsel.

Schöne Grüße, Bordstein

Bordstein ·

Ich bin nun auf ein interessantes Phänomen gestoßen. Dieselbe Extension funktioniert auf einem anderen Server tadellos. Derselbe, oben vorgeschlagene Code, erzeugt auf dem einen den "type"_Parameter, auf dem anderen jedoch nicht. Hat das eventuell mit einer mir nicht bewussten TYPO3-Einstellung zu tun?

Schöne Grüße. Bordstein

Bordstein ·

Ich bin wieder ein Stückchen schlauer geworden. Es scheint an RealURL zu liegen, dass der 'type' nicht mit übernommen wird. Mich würde natürlich interessieren, wie es möglich ist RealURL so konfigurieren, dass es den 'type' einfach durchlässt.

Vielen Dank.