[TYPO3-UG Denmark] Extende en enkelt metode i en extension
Sune
nospam_sune at talefod.dk
Wed Jun 28 13:49:25 CEST 2006
Hej Stefan,
Jeg har nu siddet og rodet med det de sidste par timer, og fandt ud af at
hvis jeg udkommenteredede nedenstående fra min nye extension, så virkede
det:
var $prefixId = 'tx_fbextendedsurvey_pi1'; // Same as class name
var $scriptRelPath = 'pi1/class.tx_fbextendedsurvey_pi1.php'; // Path to
this script relative to the extension dir.
var $extKey = 'fb_extendedsurvey'; // The extension key.
Det giver jo også god mening, da jeg jo risikerer at den gamle extension
bruger disse internt.
Nå men anyways, så virker det nu. Mange tak for hjælpen :)
/Sune
"Sune" <nospam_sune at talefod.dk> skrev i en meddelelse
news:mailman.1.1151491262.4030.typo3-ug-denmark at lists.netfielders.de...
> Hej Stefan,
>
> jeg har forsøgt at lave en debug($conf) og kan se at settings for plugin
> fint ryger igennem, som forventet. Jeg kan også fint ændre i FlexForms og
> det virker også fint.
>
> Men kan se at den ikke loader dk.locallang.xml fra det oprindelige plugin.
> Eller den skriver i hvert fald ikke labels derfra.
>
> Hmm..
> Jeg kigger videre på det....
>
> /Sune
>
> "Stefan Kreisberg" <stefan at linkfactory.dk> skrev i en meddelelse
>
news:mailman.6025.1151487416.30412.typo3-ug-denmark at lists.netfielders.de...
> Onsdag den 28. juni 2006 10:46 skrev Sune:
> > Hej S,
> >
> > Nu har jeg fået det til at virke delvist:
> >
> > TS:
> > plugin.tx_pbsurvey_pi1.includeLibs =
> > typo3conf/ext/fb_extendedsurvey/pi1/class.tx_fbextendedsurvey_pi1.php
> > plugin.tx_pbsurvey_pi1.userFunc = tx_fbextendedsurvey_pi1->main
> >
> > Herved benytter jeg min nye klasse.
> >
> > PHP:
> >
>
require_once('/var/www/talefod/htdocs/typo3conf/ext/pbsurvey/pi1/class.tx_p
> >b survey_pi1.php');
> > ....
> > function main($content,$conf) {
> > //t3lib_div::debug($conf);
> > return parent::main($content,$conf);
> > }
> >
> >
> > Dette virker sådan set også fint nok, men der er bare nogle ting i
plugin
> > som ikke virker, f.eks kan den ikke hente værdier fra LL, hvilket
betyder
> > plugin'et ikke virker.
>
> ? Er det ikke bare din TS for det oprindelige plugin der måske er røget?
Den
> funktionalitet du får ud af det, burde jo kun adskille sig ved den
funktion
> du har overskrevet. Du behøver f.eks. ikke overskrive main som du gør i
> eksemplet medmindre det er i main funktionen du vil ændre noget (og det
gør
> du ikke her).
>
> > Kan det virkelig være rigtigt at det er så svært at overskrive en enkelt
> > metode i en extension? Det er jo ligefør det er nemmere for mig bare at
> > overskrive i den originale extension, selvom det vil være slammet at
gøre.
>
> tjaa ... endelig er der hooks - en fed måde at udvide uafhængigt af hvad
> andre
> måtte opdatere originalen med. Men ikke alle ext har de rette hooks eller
> hooks overhovedet.
>
> > Eller gør jeg noget helt forkert?
>
> Måske kan du i stedet for at overskrive din eksisterende "kopier" den ind
i
> din nye udvidelse?
>
> Altså noget i retning af
>
> plugin.minye < plugin.mingamle
>
> ... men nu gætter jeg. Ellers tag en søgning på XCLASS ...
>
> vh Stefan :-)
>
> > /Sune
> >
> > "Stefan Kreisberg" <stefan at linkfactory.dk> skrev i en meddelelse
> >
>
news:mailman.5955.1151482941.30412.typo3-ug-denmark at lists.netfielders.de...
> > Hej Sune,
> >
> > Onsdag den 28. juni 2006 09:57 skrev Sune:
> > > Hej S,
> > >
> > > Jeg kan ikke se stavefejl (bruger faktisk selv TSOB hvis jeg kan
slippe
> > > afsted med det), men kan det være fordi jeg ikke includer den nye
klasse
> > > nogle steder, men alligevel peger userFunc til den?
> > >
> > > Problemet er bare at jeg kun kan include et script pr extension så
vidt
> >
> > jeg
> >
> > > kan se. Men så skal jeg måske bare lave en require_once i min
phpklasse?
> >
> > Men du kan jo godt inkludere din nye som jo er en class xxx extend
> original
> > og
> > derved selv henter den?
> >
> > > /Sune
> > >
> > >
> > > "Stefan Kreisberg" <stefan at linkfactory.dk> skrev i en meddelelse
> >
> >
>
news:mailman.5906.1151480026.30412.typo3-ug-denmark at lists.netfielders.de...
> >
> > > Hej igen,
> > >
> > > Template --> TSOB = TypoScript Object Browseren er fantastisk til at
> > > finde stavefejl i det man peger hen på. Et stærkt men noget overset
> > > værktøj for TypoScriptere - det er ikke kønt, men det virker.
> > >
> > > Tjek i TSOB om dit setup slår igennem ... den viser sat TS for hver
side
> >
> > du
> >
> > > vælger.
> > >
> > > vh Stefan
> > >
> > > Onsdag den 28. juni 2006 09:17 skrev Sune:
> > > > Hej Stefan,
> > > >
> > > > Det giver meget godt mening :)
> > > >
> > > > Men jeg kan bare ikke helt få det til at virke. Jeg har prøvet
> > > > følgende:
> > > >
> > > > plugin.tx_pbsurvey_pi1.userFunc = tx_fbextendedsurvey_pi1->main
> > > > og
> > > > plugin.tx_pbsurvey_pi1.userFunc = EXT:tx_fbextendedsurvey_pi1->main
> > > >
> > > > Ingen af delene virker. Går ud fra det er fordi jeg peger på den
anden
> > > > måde, for jeg kan sagtens se logikken i at det burde virke på den
måde
>
> >
> > du
> >
> > > > forklarer. Så det må vel være fordi jeg peger forkert!
> > > >
> > > > /Sune
> > > >
> > > >
> > > >
> > > > "Stefan Kreisberg" <stefan at linkfactory.dk> skrev i en meddelelse
> >
> >
>
news:mailman.5242.1151415513.30412.typo3-ug-denmark at lists.netfielders.de...
> >
> > > > Hej Sune,
> > > >
> > > > Tirsdag den 27. juni 2006 15:22 skrev Sune:
> > > > > Hej liste,
> > > > >
> > > > > Jeg vil gerne ændre i metoden "setUserName()" i klasse
> > >
> > > "tx_pbsurvey_pi1".
> > >
> > > > > Det er jo ligetil, da jeg bare kan ændre direkte i plugin'ets
kode.
> >
> > Men
> >
> > > > > nu er mit spørgsmål så om jeg ikke kan extende denne metode
istedet
> >
> > for
> >
> > > > > at ændre i det oprindelige plugin. På den måde kan jeg jo opdatere
> > > > > "pbsurvey" uden hver gang at skulle redigerer i filerne.
> > > > >
> > > > > Jeg er helt sikker på jeg har set en guide til dette på et
> tidspunkt,
> > >
> > > men
> > >
> > > > > kan ikke finde den mere. Er der nogen der kan hjælpe her.
> > > > >
> > > > > Jeg har forsøgt blot at oprette en ny extension og gjort følgende:
> > > > >
> > > > > class tx_fbextendedsurvey_pi1 extends tx_pbsurvey_pi1 {
> > > > > var $prefixId = 'tx_fbextendedsurvey_pi1'; // Same as class name
> > > > > var $scriptRelPath = 'pi1/class.tx_fbextendedsurvey_pi1.php'; //
> > > > > Path
> > >
> > > to
> > >
> > > > > this script relative to the extension dir.
> > > > > var $extKey = 'fb_extendedsurvey'; // The extension key.
> > > > >
> > > > > /**
> > > > > * The main method of the PlugIn
> > > > > *
> > > > > * @param string $content: The PlugIn content
> > > > > * @param array $conf: The PlugIn configuration
> > > > > * @return The content that is displayed on the website
> > > > > */
> > > > > function main($content,$conf) {
> > > > > parent::main();
> > > > > echo "extended";
> > > > > }
> > > > > }
> > > > >
> > > > > Dette er på sin vis fint nok, problemet er bare at jeg skal
> > > > > installere "min" extension på siden før det virker, og ikke have
> > > > > pbsurvey på siden. Dermed mister jeg mulighederne for at
konfigurere
> > > > > i BE.
> > > >
> > > > Du er helt på rette vej og det eneste jeg kan se du mangler er blot
at
> > > > definere den funktion du vil udvide og så via TS pege dit plugin hen
> på
> > >
> > > din
> > >
> > > > nye klassefil. På den måde bevarer du BE konfiguration fra dit gamle
> > >
> > > plugin
> > >
> > > > som jeg ser det.
> > > >
> > > > altså noget i retning af
> > > >
> > > > plugin.pgsurvey_pi1 {
> > > > userfunc = peg på din ext i stedet for pbsurvey
> > > > }
> > > >
> > > > Håber _det_ giver mening, og håber det kan lade sig gi' sig :-)
> > > >
> > > > > Håber det giver mening....
> > > > >
> > > > > /Sune
>
> --
> Venlig hilsen
> Stefan Kreisberg
> LinkFactory | + 45 70 22 23 22
> stefan at linkfactory.dk
> TYPO3 Open Source CMS - Enterprise CMS uden licensomkostninger, læs mere
> på www.linkfactory.dk
>
>
More information about the TYPO3-UG-denmark
mailing list