[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