[B]Es hat geklappt. Vielen Dank euch beiden!!![/B]
Folgendes habe ich gemacht:
class meineKlasse_oxcmp_utils extends meineKlasse_oxcmp_utils_parent
{
public function render()
{
parent::render();
return $this;
}
public function meineFunktion()
{
...
}
}
Damit wäre die Funktion schon mal aufrufbar in allen Views. Da aber noch einige Parameter fehlen ab und an noch schnell eine zweite Funktion gebastelt (siehe logoutlink in der loginbox.tpl). Da [{$oxcmp_utils->meineFunktion()}] leider nicht funktioniert (siehe leofonic’s Link) mussen wir die 2. Funktion per oxviewconfig verfügbar machen
[B]NACHTRAG es Funktioneirt doch!!! Da wir ja die Render Methode in der extendeten Klasse hinzugefügt haben siehe weiter unten:[/B]
class zweiteKlasse_oxviewconfig extends zweiteKlasse_oxviewconfig_parent
{
public function getMyLink($fnc)
{
$sClass = $this->getTopActionClassName();
$sCatnid = $this->getActCatId();
$sMnfid = $this->getActManufacturerId();
$sArtnid = $this->getActArticleId();
$sTplName = $this->getActTplName();
$sContentLoadId = $this->getActContentLoadId();
$sSearchParam = $this->getActSearchParam();
$sSearchTag = $this->getActSearchTag();
$sRecommId = $this->getActRecommendationId();
$sListType = $this->getActListType();
$oConfig = $this->getConfig();
return ( $oConfig->isSsl()? $oConfig->getShopSecureHomeUrl() : $oConfig->getShopHomeUrl() )
."cl={$sClass}"
. ( $sCatnid ? "&cnid={$sCatnid}" : '' )
. ( $sArtnid ? "&anid={$sArtnid}" : '' )
. ( $sMnfid ? "&mnid={$sMnfid}" : '' )
. ( $sSearchParam ? "&searchparam={$sSearchParam}" : '' )
. ( $sSearchTag ? "&searchtag={$sSearchTag}" : '' )
. ( $sRecommId ? "&recommid={$sRecommId}" : '' )
. ( $sListType ? "&listtype={$sListType}" : '' )
. "&fnc=".$fnc
. ( $sTplName ? "&tpl=".basename( $sTplName ) : '' )
. ( $sContentLoadId ? "&oxloadid=" . $sContentLoadId : '' )
. "&redirect=1";
}
}
NACHTRAG:
Wer nicht oxviewconfig extenden will kann auch folgende Funktion in die Klasse meineKlasse_oxcmp_utils hinzufügem:
public function getMyLink($fnc)
{
$oConfig = $this->getConfig();
$sLogoutLink = $oConfig->isSsl()? $oConfig->getShopSecureHomeUrl() : $oConfig->getShopHomeUrl();
$sLogoutLink .= 'cl='.$oConfig->getRequestParameter('cl').$this->getParent()->getDynUrlParams();
if ( $sParam = $oConfig->getRequestParameter('anid') ) {
$sLogoutLink .= '&anid='.$sParam;
}
if ( $sParam = $oConfig->getRequestParameter('cnid') ) {
$sLogoutLink .= '&cnid='.$sParam;
}
if ( $sParam = $oConfig->getRequestParameter('mnid') ) {
$sLogoutLink .= '&mnid='.$sParam;
}
if ( $sParam = $oConfig->getRequestParameter('tpl') ) {
$sLogoutLink .= '&tpl='.$sParam;
}
if ( $sParam = $oConfig->getRequestParameter('oxloadid') ) {
$sLogoutLink .= '&oxloadid='.$sParam;
}
if ( $sParam = $oConfig->getRequestParameter('recommid') ) {
$sLogoutLink .= '&recommid='.$sParam;
}
return $sLogoutLink.'&fnc='.$fnc;
}
in der metadata.php sollte dann folgendes stehen:
'extend' => array(
'oxviewconfig' => 'mein_Modul/zweiteKlasse_oxviewconfig',
'oxcmp_utils' => 'mein_Modul/application/controllers/meineKlasse_oxcmp_utils', /* nicht benötigt wenn oxviewconfig nicht extended wird*/
),
Im Template ist dann folgendes möglich:
<a href="[{ $oViewConf->getMyLink(meineFunktion) }]¶meter1=value1¶meter2=value2">mein Link</a>
bzw wenn oxviewconfig nicht extendet wurde un die Funktion in unsere Komponente hinzugefügt wurde auch folgendes:
<a href="[{ $oxcmp_utils->getMyLink(meineFunktion) }]¶meter1=value1¶meter2=value2">mein Link</a>
Die Funktion wird nun aufgerufen und die Parameter können abgerufen und verarbeitet werden.
(mittels: $param1 = oxConfig::getParameter( ‘Parameter1’ ); usw…) 
P.S. ich hoffe da sind keine Schreibfehler drin in meiner Lösung