Ich möchte wissen wie ich den Rückgabewert der Funktion:
lcb.menuwidth.userFunc = user_functions->multiplyTest
in der Wrap-Zeile:
subparts.LEFTNAV.1.wrap = | <tr><td><img src="{$lcb.image.dir}#####HIER#####.gif" width="1" height="50"></td></tr>
Geht das irgendwie?
natürlich geht sowas, vergiss nicht die Datei mit der user_functions auch per includeLibs einzubinden.
Ok, ist schon beruhigend dass so etwas geht.
Die Frage ist nur wie?
Hast du evt eine Lösung für das obige Beispiel?
Hier ein Beispiel von der Extension RDF News Import:
plugin.user_rdfimport = USER_INT
plugin.user_rdfimport {
userFunc = user_rdfNewsFeedImport->main_newsFeed
allowCaching = 1
imageWrapIfAny =
renderObj = COA
renderObj {
10 = HTML
10.value.wrap = <tr><td style="padding:8px">|</td></tr>
10.value.wrap2 = <table border=0 cellpadding=0 cellspacing=0 width=200><tr height=1><td bgcolor="#888888"><img src="clear.gif" height=1 width=1 border=0></td></tr>|<tr height=1><td bgcolor="#888888"><img src="clear.gif" height=1 width=1 border=0></td></tr></table><br>
10.value (
<p class="mtni"><b>###CHANNEL_TITLE###</b></p>
<p class="mtni">###CHANNEL_DESCRIPTION###</p>
###CHANNEL_ITEMS###
)
}
renderItemObj = COA
renderItemObj {
10 = HTML
10.value = <p class="st_list"><a class="light" href="###CH_ITEM_URL###" target="_blank">###CH_ITEM_TITLE###</a></p>
}
}
Merci, soweit hat es geklappt.
Jetzt würde mich aber noch interessieren, wie ich das Plugin in das Menü reinbringe:
Plugin:
includeLibs.UserFunctions = fileadmin/UserFunctions.php
plugin.user_rdfimport >
plugin.user_rdfimport = USER_INT
plugin.user_rdfimport {
userFunc = user_userFunctions->calculateWidth
renderObj = COA
renderObj {
10 = HTML
10.value = Breite normal: ###SIZE_NORMAL### - Breite aktiv: ###SIZE_ACTIVE###
}
}
Die Ausgabe dieses Blockes ist soweit korrekt.
Jetzt möchte ich aber das ###SIZE_NORMAL### und ###SIZE_ACTIVE### in den folgenden Code einsetzen:
page.1 {
template = FILE
...
subparts.TOPNAV = HMENU
subparts.TOPNAV.1 = TMENU
subparts.TOPNAV.1 {
special = directory
NO.allWrap = <td width="###SIZE_NORMAL###%">|</td>
ACT = 1
ACT.allWrap = <td width="###SIZE_ACTIVE###%">|</td>
}
...
}
Geht das irgendwie? und wie?
Habs selber rausgekriegt:
plugin.user_rdfimport >
plugin.user_rdfimport = USER_INT
plugin.user_rdfimport {
userFunc = user_userFunctions->calculateWidth
renderObj = COA
renderObj {
10 = HMENU
10.1 = TMENU
10.1 {
special = directory
NO.allWrap = <td width="###SIZE_NORMAL###%">|</td>
ACT = 1
ACT.allWrap = <td width="###SIZE_ACTIVE###%">|</td>
}
}
}
...
page.1.subparts.TOPNAV < plugin.user_rdfimport
...
Merci für die Hilfe...
steffenK schrieb
Hier ein Beispiel von der Extension RDF News Import:
plugin.user_rdfimport = USER_INT
plugin.user_rdfimport {
userFunc = user_rdfNewsFeedImport->main_newsFeed
...
Ich habs noch nicht ganz verstanden, wie und wo wird denn da der Returnwert der userFunc verwendet?
Kleiner Hinweis?
Vielleicht hilft dieses, zur obigen Lösung gehörendes, PHP Script:
<?php
class user_userFunctions {
var $cObj;
function calculateWidth($content, $conf) {
$result = $GLOBALS["TYPO3_DB"]->exec_SELECTquery("count(*)", "pages", "pid=3 AND nav_hide=0 AND doktype IN (1,2,3,4)".tslib_cObj::enableFields("pages"));
$row = mysql_fetch_row($result);
$size = round(100 / $row[0]);
$renderCode = $this->cObj->cObjGetSingle ($conf["renderObj"], $conf["renderObj."]);
$markerArray = array();
$markerArray["###SIZE_NORMAL###"] = $size;
$markerArray["###SIZE_ACTIVE###"] = 100 - $size * ($row[0] - 1);
$content .= $this->cObj->substituteMarkerArray($renderCode, $markerArray);
return $content;
}
}
?>