[TYPO3-german] Zwei Extensions verknüpfen
Julian Lamberty
julian.lamberty at mytum.de
Mon Nov 19 18:06:18 CET 2007
OK, ich habs jetzt gerade ausprobiert:
require_once(PATH_tslib.'class.tslib_pibase.php');
*require_once(t3lib_extMgm::extPath("sixpack")."pi1/class.tx_sixpack_pi1.php");*
class tx_bzdstaffdirectory_pi1 extends tslib_pibase {
...
function main($content,$conf) {
$this->conf=$conf;
...
*$tx_sixpack_pi1 = new tx_sixpack_pi1();
$tx_sixpack_pi1->extConf['viewMode'] = $tx_sixpack_pi1->AUTHOR_VIEW;
* ...
Weiter unten dann:
$this->setMarkerContent('date_incompany',
*$tx_sixpack_pi1->viewer()*);
Wenn ich jetzt die Seite aufrufe erhalte ich einen Fehler:
Fatal error: Call to undefined method stdClass::viewer() in
/mnt/lb_www/typo3/lsr/typo3conf/ext/bzd_staff_directory/pi1/class.tx_bzdstaffdirectory_pi1.php
on line 796
Da ist wohl irgendwie das Objekt falsch eingebunden, oder?
Wie muss ich das denn machen? Hilfeeeee ;)
Julian
Julian Lamberty schrieb:
> Das "Problem" liegt daran, dass ichs noch ned ausprobiert hab ;) Wohin
> muss ich den Code denn setzen und was macht der genau?
>
> Danke schonmal
> Julian
>
> christian oettinger schrieb:
>> Sorry, zwei Tage nicht gemeldet! Ja, mein Problem war, dass ich
>> dachte, Du hast die Extensions selbst geschrieben. Ändert ja aber
>> eigentlich nichts daran, Du bist ja bereit an den Code zu gehen,
>> richtig?
>>
>> Was ist das Problem, mit der Lösung aus meinem letzten Post:
>> >> Das folgende ist selbst nur gefunden, ich hoffe es funktioniert. Es
>> >> ruft ein anderes Plugin auf:
>> >>
>> >> require_once
>> >> (t3lib_extMgm::extPath("EXTKEY")."pi1/class.tx_EXTKEY_pi1.php");
>> >> $tx_EXTKEY_pi1 =& new tx_EXTKEY_pi1 ();
>> >> $tx_EXTKEY_pi1->main (&$this->content, &configuration_stuff);
>>
>> viele Grüße!
>>
>> oe
>>
>>
>>
>>> Ich weiß nicht, ob wir nicht aneinander vorbeireden ;) Vielleicht
>>> hab ichs etwas umständlich geschildert, daher noch ein Versuch :)
>>>
>>> OK, also mein Grund, die Plugins zu verschachteln ist:
>>>
>>> Sixpack bietet eine hervorragende Publikationsverwaltung, BZD Staff
>>> Directory selbiges für Mitarbeiter.
>>>
>>> Ich lege also eine "Detail Page" an auf der ein Mitarbeiter
>>> dargestellt wird (durch das platzieren des BZD Plugins). Das Problem
>>> ist, dass das BZD Plugin eben nicht jedem Mitarbeiter eine eigenene
>>> Seite zuordnet, sondern alle auf EINER festen Typo3 Page darstellt.
>>> Wenn ich das Sixpack Plugin auf der selben Seite platziere und den
>>> "AuthorView" auswähle, muss ich da einen festen Autor wählen (ob das
>>> nun ein Name oder eien UID ist, ist erstmal egal).
>>>
>>> Deswegen war meine Idee, die Ausgabe des Sixpack Plugins aus dem BZD
>>> Plugin aufzurufen und dabei dynamisch den Autor zu übergeben und
>>> dann nur das BZD Plugin auf der "Detail Page" zu platzieren.
>>>
>>> Schwierig zu schildern, aber das Problem besteht also darin, die
>>> Funktion zum generieren des Sixpack Authorviews in das BZD Plugin zu
>>> integrieren. Das müsste doch möglich sein, oder?
>>>
>>> Gruß
>>> Julian
>>>
>>> christian oettinger schrieb:
>>>
>>>
>>>> Wenn auf einer Seite ein plugin liegt, kannst Du diesem wie unten
>>>> beschrieben gezielt eine Variable übergeben. Wenn ein anderes
>>>> Plugin da auch liegt, dann gilt für dieses das selbe. Daraus
>>>> ergeben sich ganz viele Möglichkeiten. Du könntest etwa beide
>>>> plugins auf der Seite liegen haben und das eine gibt nichts aus,
>>>> AUSSER es bekommt eine spezielle Variable übergeben. Könnte das die
>>>> Lösung für Dich sein? Wahrscheinlich wäre das auch nur ein Umweg.
>>>>
>>>> Wenn Du innerhalb des einen plugins etwas ausgeben möchtest, ist es
>>>> für mich verwirrend das mit einem anderen Plugin zu machen. Aber Du
>>>> hast vermutlich einen Grund.
>>>>
>>>> Das folgende ist selbst nur gefunden, ich hoffe es funktioniert. Es
>>>> ruft ein anderes Plugin auf:
>>>>
>>>> require_once
>>>> (t3lib_extMgm::extPath("EXTKEY")."pi1/class.tx_EXTKEY_pi1.php");
>>>> $tx_EXTKEY_pi1 =& new tx_EXTKEY_pi1 ();
>>>> $tx_EXTKEY_pi1->main (&$this->content, &configuration_stuff);
>>>>
>>>>
>>>> viele Grüße!
>>>>
>>>> oe
>>>>
>>>>
>>>>
>>>>
>>>>
>>>>> Das hilft schonmal etwas weiter, danke! Aber ich möchte keinen
>>>>> Link auf die Publikationen setzen sondern den AuthorView direkt
>>>>> auf der Seite ausgeben. Kann ich dir Funktion aus dem Sixpack
>>>>> Plugin, die für die Ausgabe verantwortlich ist, aus dem anderen
>>>>> Plugin aufrufen? Wenn ja, wie?
>>>>>
>>>>> Danke!
>>>>> Julian
>>>>>
>>>>> christian oettinger schrieb:
>>>>>
>>>>>
>>>>>
>>>>>> Hallo Julian,
>>>>>>
>>>>>> ich weiß nicht, ob ich ganz verstanden habe, ich versuch's mal:
>>>>>> Die Author view von sixpack wird über den Namen des Autors
>>>>>> aufgerufen? Das wäre ungewöhnlich, normalerweise geht man über
>>>>>> die uid, das ist sicher. So oder so machst Du in sixpack eine
>>>>>> DB-Abfrage auf der Basis eines Werts, der übergeben wird. Und das
>>>>>> kannst Du auch von Deiner anderen Extension aus machen.
>>>>>>
>>>>>> Normalerweise wird so ein Wert übergeben als GET-Variable, Bsp:
>>>>>> index.php?id=36&tx_sixpack_pi1[pubOfAuthor]=18
>>>>>>
>>>>>> im plugin ist $this->piVars['showUid'] in dem Fall "18" und das
>>>>>> wird benutzt um die Datenbankabfrage zu machen und nur die
>>>>>> gewünschten Resultate anzuzeigen
>>>>>>
>>>>>>
>>>>>> So einen Link wie oben kannst Du auch aus dem anderen Plugin mit
>>>>>> den typo3-funktionen generieren, kein Problem.
>>>>>>
>>>>>> // HIER werden nur die zusätzlichen GET-Parameter festgelegt
>>>>>> $additional_url = array();
>>>>>> $additional_url[ 'tx_sixpack_pi1[showUid]' ] = GEWÜNSCHTE UID;
>>>>>>
>>>>>> // NUN wird der eigentliche Link generiert
>>>>>> $oe_book2magazine_ausgabe .= $this->pi_linkToPage( TEXT DES LINKS
>>>>>> , PID DER SEITE , '' , $additional_url );
>>>>>>
>>>>>> Ebenso kannst Du auch den Namen statt der uid übergeben, unüblich
>>>>>> (wegen nicht automatisch unique, länger und eventuell nicht
>>>>>> URL-tauglich) aber möglich.
>>>>>>
>>>>>> hilft das irgendwie?
>>>>>> ich hoffe!
>>>>>>
>>>>>> oe
>>>>>>
>>>>>>
>>>>>>
>>>>>>
>>>>>>
>>>>>>
>>>>>>> Hi!
>>>>>>>
>>>>>>> Ich nutze zwei Extensions um ein Verzeichnis von Mitarbeitern
>>>>>>> auszugeben: "bzd_staff_directory" für die persönlichen Seiten
>>>>>>> jedes Mitarbeiters und "sixpack" um Publikationen der
>>>>>>> Mitarbeiter zu verwalten/anzuzeigen.
>>>>>>>
>>>>>>> Jetzt würde ich gern auf jeder Seite eines Mitarbeiters dessen
>>>>>>> Publikationen ausgeben (nennt sich "Author View" bei Sixpack).
>>>>>>> Das Problem ist, dass es nicht für jeden Mitarbeiter eine eigene
>>>>>>> Seite gibt, sondern nur eine einzige "Detailseite", auf der der
>>>>>>> ausgewählte Mitarbeiter dargestellt wird. Wenn ich auf dieser
>>>>>>> Detailseite jetzt aber den Author View auswähle, muss ich einen
>>>>>>> festen Namen eingeben (in der Sixpack-Konfiguration) und somit
>>>>>>> würden auf jeder Seite nur die Publikationen eines bestimmten
>>>>>>> Mitarbeiters dargestellt.
>>>>>>>
>>>>>>> Ich brauche also irgendwie eine Möglichkeit, den Namen des
>>>>>>> Autors dynamisch an das Sixpack Plugin zu übergeben. Hat jemand
>>>>>>> eine Idee, wie man das angehen könnte? Evtl. die
>>>>>>> Sixpack-Funktionen aus dem Plugin für die persönlichen Seiten
>>>>>>> aufrufen mit entsprechenden Parametern?
>>>>>>>
>>>>>>> Oder hat vielleicht jemand ne ganz andere Lösung?
>>>>>>>
>>>>>>> Danke für eure Hilfe!
>>>>>>> Gruß
>>>>>>> Julian
>>>>>>>
>>>>>>>
>>>>>>>
>>>>>> _______________________________________________
>>>>>> TYPO3-german mailing list
>>>>>> TYPO3-german at lists.netfielders.de
>>>>>> http://lists.netfielders.de/cgi-bin/mailman/listinfo/typo3-german
>>>>>>
>>>>>
>>>> _______________________________________________
>>>> TYPO3-german mailing list
>>>> TYPO3-german at lists.netfielders.de
>>>> http://lists.netfielders.de/cgi-bin/mailman/listinfo/typo3-german
>>>>
>>>
>>>
>> _______________________________________________
>> TYPO3-german mailing list
>> TYPO3-german at lists.netfielders.de
>> http://lists.netfielders.de/cgi-bin/mailman/listinfo/typo3-german
>>
>
>
> ------------------------------------------------------------------------
>
> _______________________________________________
> TYPO3-german mailing list
> TYPO3-german at lists.netfielders.de
> http://lists.netfielders.de/cgi-bin/mailman/listinfo/typo3-german
More information about the TYPO3-german
mailing list