Das sind aber verschiedene Bedeutungen (anlegen/bearbeiten und versenden), aber es hat das gleiche Bildchen. Daher habe ich das alles mal etwas umgeändert, damit man da endlich eine klare Trennung, auch wegen der Benutzerfreundlichkeit hat.
Dazu muss man die Datei contenido/includes/include.newsletter_menu.php mit diesem Code ersetzen:
Code: Alles auswählen
<?php
/*****************************************
* File : $RCSfile: include.newsletter_menu.php,v $
* Project : Contenido
* Descr : Frontend user list
* Modified : $Date: 2006/06/15 16:37:03 $
*
* © four for business AG, www.4fb.de, updated by HerrB
*
* $Id: include.newsletter_menu.php,v 1.14 2006/06/15 16:37:03 bjoern.behrens Exp $
******************************************/
cInclude("classes", "widgets/class.widgets.page.php");
cInclude("classes", "widgets/class.widgets.foldingrow.php");
cInclude("classes", "widgets/class.widgets.pager.php");
cInclude("classes", "class.newsletter.php");
cInclude("classes", "class.newsletter.groups.php");
cInclude("classes", "contenido/class.user.php");
cInclude("classes", "contenido/class.client.php");
cInclude("classes", "class.ui.php");
$oPage = new cPage;
$oMenu = new UI_Menu;
$rgroups = new RecipientGroupCollection;
$oNewsletters = new NewsletterCollection;
$oClient = new cApiClient($client);
/* Set default values */
$oUser = new cApiUser($auth->auth["uid"]);
if (!isset($_REQUEST["elemperpage"]) || !is_numeric($_REQUEST['elemperpage']) || $_REQUEST['elemperpage'] < 0) {
$_REQUEST["elemperpage"] = $oUser->getProperty("itemsperpage", $area);
}
if (!is_numeric($_REQUEST['elemperpage'])) {
$_REQUEST['elemperpage'] = 25;
}
if ($_REQUEST["elemperpage"] > 0) {
// -- All -- will not be stored, as it may be impossible to change this back to something more useful
$oUser->setProperty("itemsperpage", $area, $_REQUEST["elemperpage"]);
}
unset ($oUser);
if (!isset($_REQUEST["page"]) || !is_numeric($_REQUEST['page']) || $_REQUEST['page'] <= 0 || $_REQUEST["elemperpage"] == 0) {
$_REQUEST["page"] = 1;
}
if ($_REQUEST["sortorder"] != "DESC") {
$_REQUEST["sortorder"] = "ASC";
}
/* Initialization */
$aFields = array();
$aFields["name"] = array("field" => "name", "caption" => i18n("Name"), "type" => "base,sort,search");
$sDelTitle = i18n("Delete newsletter");
$sDelDescr = i18n("Do you really want to delete the following newsletter:<br>");
$sSendTitle = i18n("Send newsletter");
$sSendDescr = i18n("Do you really want to send the following newsletter:<br>");
$sCopyTitle = i18n("Duplicate newsletter");
/* Actions folding row */
$oListActionRow = new cFoldingRow("28cf9b31-e6d7-4657-a9a7-db31478e7a5c",i18n("Actions"));
/* Create the link to add a newsletter */
$oLink = new cHTMLLink;
$oLink->setMultiLink("news","","news","news_create");
$oLink->setContent('<img style="padding-right: 4px;" src="'.$cfg["path"]["images"] . 'newsletter_edit.gif" align="middle">'.i18n("Create newsletter").'</a>');
$sContent = '<div style="padding: 4px; padding-left: 12px; border-bottom: 1px solid black; background: '.$cfg['color']['table_dark'].';">'.chr(10);
$sContent .= $oLink->render().'</div>'.chr(10);
$oListActionRow->setContentData($sContent);
/* Options folding row */
$oOptionRow = new cFoldingRow("d64baf0a-aea9-47b3-8490-54a00fce02b5",i18n("Options"));
$sSendOption = $oClient->getProperty("newsletter", "sendto");
if (isset($_REQUEST["sendOption"]) && $_REQUEST["sendOption"] != $sSendOption) {
$sSendOption = $_REQUEST["sendOption"];
$oClient->setProperty("newsletter", "sendto", $sSendOption);
}
$oSendToAll = new cHTMLRadiobutton("sendOption", "all");
$oSendToAll->setEvent("Click","checkSelection(this.value)");
$oSendToDefault = new cHTMLRadiobutton("sendOption", "default");
$oSendToDefault->setEvent("Click","checkSelection(this.value)");
$oSendToGroups = new cHTMLRadiobutton("sendOption", "selection");
$oSendToGroups->setEvent("Click","checkSelection(this.value)");
$aSelGroups = array();
$sSelGroups = $oClient->getProperty("newsletter", "sendselgroups");
if (isset($_REQUEST["selectgroup"]) && $sSelGroups != serialize($_REQUEST["selectgroup"])) {
$aSelGroups = $_REQUEST["selectgroup"];
$oClient->setProperty("newsletter", "sendselgroups", serialize($aSelGroups));
} else {
$aSelGroups = unserialize($sSelGroups);
}
$rgroups->select("idclient = '$client' AND idlang = '$lang'","", "groupname ASC");
$aItems = array();
while ($rgroup = $rgroups->next()) {
$aItems[] = array($rgroup->get("idnewsgroup"), $rgroup->get("groupname"));
}
$oSelGroup = new cHTMLSelectElement("selectgroup[]","","groupselect");
$oSelGroup->setSize(8);
$oSelGroup->setStyle("width: 150px;");
$oSelGroup->setMultiSelect();
$oSelGroup->setAlt(i18n("Note: Hold <Ctrl> to<br>select multiple items."));
$oSelGroup->autoFill($aItems);
/* No groups in the list, sendToGroups and group listbox disabled */
if (count($aItems) == 0) {
$oSendToGroups->setDisabled(true);
if ($sSendOption == "selection") {
$sSendOption == "all";
}
} else if (is_array($aSelGroups)) {
foreach ($aSelGroups as $sValue) {
if (array_key_exists($sValue, $oSelGroup->_options)) { // only select, if item still exists
$oSelGroup->_options[$sValue]->setSelected(true);
}
}
}
switch ($sSendOption) {
case "default":
$oSendToDefault->setChecked(true);
$oSelGroup->setDisabled(true);
break;
case "selection":
$oSendToGroups->setChecked(true);
break;
default:
$oSendToAll->setChecked(true);
$oSelGroup->setDisabled(true);
}
$bDispatch = (bool)$oClient->getProperty("newsletter", "dispatch");
if (isset($_REQUEST["ckbChunks"])) {
$bDispatch = true;
$oClient->setProperty("newsletter", "dispatch", true);
} else if ($_REQUEST["optionsaction"] == "save") {
$bDispatch = false;
$oClient->setProperty("newsletter", "dispatch", false);
}
$oCkbChunks = new cHTMLCheckbox("ckbChunks", "enabled", "", $bDispatch);
$iDispatchCount = $oClient->getProperty("newsletter", "dispatchcount");
if (!$iDispatchCount || !is_numeric($iDispatchCount)) {
$iDispatchCount = 50;
}
if (isset($_REQUEST["txtDispatchCount"]) && is_numeric($_REQUEST["txtDispatchCount"]) && $_REQUEST["txtDispatchCount"] > 0 && $_REQUEST["txtDispatchCount"] != $iDispatchCount) {
$iDispatchCount = $_REQUEST["txtDispatchCount"];
$oClient->setProperty("newsletter", "dispatchcount", $iDispatchCount);
}
$otxtDispatchCount = new cHTMLTextbox("txtDispatchCount", $iDispatchCount, 4);
$iDispatchDelay = $oClient->getProperty("newsletter", "dispatchdelay");
if (!is_numeric($iDispatchDelay)) {
$iDispatchDelay = 5;
}
if (isset($_REQUEST["txtDispatchDelay"]) && is_numeric($_REQUEST["txtDispatchDelay"]) && $_REQUEST["txtDispatchDelay"] >= 0 && $_REQUEST["txtDispatchDelay"] != $iDispatchDelay) {
$iDispatchDelay = $_REQUEST["txtDispatchDelay"];
$oClient->setProperty("newsletter", "dispatchdelay", $iDispatchDelay);
}
$otxtDispatchDelay = new cHTMLTextbox("txtDispatchDelay", $iDispatchDelay, 4);
$otxtDispatchDelay->setAlt(i18n("Note: Set to 0 to send chunks manually."));
$bLogToFile = (bool)$oClient->getProperty("newsletter", "logtofile");
if (isset($_REQUEST["ckbLogToFile"])) {
$bLogToFile = true;
$oClient->setProperty("newsletter", "logtofile", true);
} else if ($_REQUEST["optionsaction"] == "save") {
$bLogToFile = false;
$oClient->setProperty("newsletter", "logtofile", false);
}
$oCkbLogToFile = new cHTMLCheckbox("ckbLogToFile", "enabled", "", $bLogToFile);
$oSubmitOptions = new cHTMLButton("submit", i18n("Save"));
$sContent = '<div style="border-bottom: 1px solid black; background: '.$cfg['color']['table_dark'].';">'.chr(10);
$sContent .= '<form onsubmit="append_registered_parameters(this);" id="options" name="options" method="get" action="main.php?1">'.chr(10);
$sContent .= ' <input type="hidden" name="area" value="'.$area.'">'.chr(10);
$sContent .= ' <input type="hidden" name="frame" value="'.$frame.'">'.chr(10);
$sContent .= ' <input type="hidden" name="contenido" value="'.$sess->id.'">'.chr(10);
$sContent .= ' <input type="hidden" name="elemperpage" value="'.$_REQUEST["elemperpage"].'">'.chr(10);
$sContent .= ' <input type="hidden" name="sortby" value="'.$_REQUEST["sortby"].'">'.chr(10);
$sContent .= ' <input type="hidden" name="sortorder" value="'.$_REQUEST["sortorder"].'">'.chr(10);
$sContent .= ' <input type="hidden" name="restrictgroup" value="'.$_REQUEST["restrictgroup"].'">'.chr(10);
$sContent .= ' <input type="hidden" name="filter" value="'.$_REQUEST["filter"].'">'.chr(10);
$sContent .= ' <input type="hidden" name="searchin" value="'.$_REQUEST["searchin"].'">'.chr(10);
$sContent .= ' <input type="hidden" name="optionsaction" value="save">'.chr(10);
$sContent .= ' <table>'.chr(10);
$sContent .= ' <tr>'.chr(10);
$sContent .= ' <td colspan="2">'.i18n("Send to these recipients:").'<br />'.chr(10);
$sContent .= ' '.$oSendToAll->toHTML(false).' '.i18n("all").'<br />'.chr(10);
$sContent .= ' '.$oSendToDefault->toHTML(false).' '.i18n("in default group").'<br />'.chr(10);
$sContent .= ' '.$oSendToGroups->toHTML(false).' '.i18n("in selected group(s):").'<br />'.chr(10);
$sContent .= ' '.$oSelGroup->render().'</td>'.chr(10);
$sContent .= ' </tr>'.chr(10);
$sContent .= ' <tr>'.chr(10);
$sContent .= ' <td>'.i18n("Send in chunks:").'</td>'.chr(10);
$sContent .= ' <td>'.$oCkbChunks->toHTML(false).' '.i18n("Enable").'</td>'.chr(10);
$sContent .= ' </tr>'.chr(10);
$sContent .= ' <tr>'.chr(10);
$sContent .= ' <td>'.i18n("Dispatch count:").'</td>'.chr(10);
$sContent .= ' <td>'.$otxtDispatchCount->render().'</td>'.chr(10);
$sContent .= ' </tr>'.chr(10);
$sContent .= ' <tr>'.chr(10);
$sContent .= ' <td>'.i18n("Dispatch delay:").'</td>'.chr(10);
$sContent .= ' <td>'.$otxtDispatchDelay->render().' '.i18n("sec.").'</td>'.chr(10);
$sContent .= ' </tr>'.chr(10);
$sContent .= ' <tr>'.chr(10);
$sContent .= ' <td>'.i18n("Log to file:").'</td>'.chr(10);
$sContent .= ' <td>'.$oCkbLogToFile->toHTML(false).' '.i18n("Enable").'</td>'.chr(10);
$sContent .= ' </tr>'.chr(10);
$sContent .= ' <tr>'.chr(10);
$sContent .= ' <td> </td>'.chr(10);
$sContent .= ' <td>'.$oSubmitOptions->render().'</td>'.chr(10);
$sContent .= ' </tr>'.chr(10);
$sContent .= ' </table>'.chr(10);
$sContent .= '</form>'.chr(10);
$sContent .= '</div>'.chr(10);
$oOptionRow->setContentData($sContent);
/* List options folding row */
$oListOptionRow = new cFoldingRow("9d0968be-601d-44f8-a666-99d51c9c777d",i18n("List options"));
$oSelectItemsPerPage = new cHTMLSelectElement("elemperpage");
$oSelectItemsPerPage->autoFill(array(0 => i18n("-- All --"), 25 => 25, 50 => 50, 75 => 75, 100 => 100));
$oSelectItemsPerPage->setDefault($_REQUEST["elemperpage"]);
$oSelectSortBy = new cHTMLSelectElement("sortby");
foreach ($aFields as $sKey => $aData) {
if (strpos($aData["type"], "sort") !== false) {
if ($_REQUEST["sortby"] == "") {
$_REQUEST["sortby"] = $sKey;
}
$oOption = new cHTMLOptionElement($aData["caption"], $sKey);
$oSelectSortBy->addOptionElement($sKey, $oOption);
}
}
$oSelectSortBy->setDefault($_REQUEST["sortby"]);
$oSelectSortOrder = new cHTMLSelectElement("sortorder");
$oSelectSortOrder->autoFill(array("ASC" => i18n("Ascending"), "DESC" => i18n("Descending")));
$oSelectSortOrder->setDefault($_REQUEST["sortorder"]);
$oTextboxFilter = new cHTMLTextbox("filter", $_REQUEST["filter"], 16);
$oSelectSearchIn = new cHTMLSelectElement("searchin");
$oOption = new cHTMLOptionElement(i18n("-- All fields --"), "--all--");
$oSelectSearchIn->addOptionElement("all", $oOption);
foreach ($aFields as $sKey => $aData) {
if (strpos($aData["type"], "search") !== false) {
$oOption = new cHTMLOptionElement($aData["caption"], $sKey);
$oSelectSearchIn->addOptionElement($sKey, $oOption);
}
}
$oSelectSearchIn->setDefault($_REQUEST["searchin"]);
$oSubmit = new cHTMLButton("submit", i18n("Apply"));
$sContent = '<div style="border-bottom: 1px solid black; background: '.$cfg['color']['table_dark'].';">'.chr(10);
$sContent .= '<form onsubmit="append_registered_parameters(this);" id="filterform" name="filterform" method="get" action="main.php?1">'.chr(10);
$sContent .= ' <input type="hidden" name="area" value="'.$area.'">'.chr(10);
$sContent .= ' <input type="hidden" name="frame" value="'.$frame.'">'.chr(10);
$sContent .= ' <input type="hidden" name="contenido" value="'.$sess->id.'">'.chr(10);
$sContent .= ' <table>'.chr(10);
$sContent .= ' <tr>'.chr(10);
$sContent .= ' <td>'. i18n("Items / page").'</td>'.chr(10);
$sContent .= ' <td>'.$oSelectItemsPerPage->render().'</td>'.chr(10);
$sContent .= ' </tr>'.chr(10);
$sContent .= ' <tr>'.chr(10);
$sContent .= ' <td>'. i18n("Sort by").'</td>'.chr(10);
$sContent .= ' <td>'.$oSelectSortBy->render().'</td>'.chr(10);
$sContent .= ' </tr>'.chr(10);
$sContent .= ' <tr>'.chr(10);
$sContent .= ' <td>'. i18n("Sort order").'</td>'.chr(10);
$sContent .= ' <td>'.$oSelectSortOrder->render().'</td>'.chr(10);
$sContent .= ' </tr>'.chr(10);
$sContent .= ' <tr>'.chr(10);
$sContent .= ' <td>'. i18n("Search for").'</td>'.chr(10);
$sContent .= ' <td>'.$oTextboxFilter->render().'</td>'.chr(10);
$sContent .= ' </tr>'.chr(10);
$sContent .= ' <tr>'.chr(10);
$sContent .= ' <td>'. i18n("Search in").'</td>'.chr(10);
$sContent .= ' <td>'.$oSelectSearchIn->render().'</td>'.chr(10);
$sContent .= ' </tr>'.chr(10);
$sContent .= ' <tr>'.chr(10);
$sContent .= ' <td> </td>'.chr(10);
$sContent .= ' <td>'.$oSubmit->render().'</td>'.chr(10);
$sContent .= ' </tr>'.chr(10);
$sContent .= ' </table>'.chr(10);
$sContent .= '</form>'.chr(10);
$sContent .= '</div>'.chr(10);
$oListOptionRow->setContentData($sContent);
/* Getting data */
$oNewsletters->setWhere("idclient", $client);
$oNewsletters->setWhere("idlang", $lang);
// $oNewsletters->setOrder("welcome DESC, name ASC");
$oNewsletters->query();
$aDataTable = array();
while ($oNewsletter = $oNewsletters->next()) {
foreach ($aFields as $sKey => $aData) {
$aDataTable[$oNewsletter->get("idnews")]["id"] = $oNewsletter->get("idnews");
if (strpos($aData["type"], "base") !== false) {
if ($sKey == "name") {
$name = $oNewsletter->get("name");
if ($oNewsletter->get("welcome")) {
$name = $name . "*";
}
$aDataTable[$oNewsletter->get("idnews")][$sKey] = $name;
} else {
$aDataTable[$oNewsletter->get("idnews")][$sKey] = $oNewsletter->get($aData["field"]);
}
} else {
$aDataTable[$oNewsletter->get("idnews")][$sKey] = call_user_func("newsletter_".$aData["field"]."_getvalue", $sKey);
}
}
if ($_REQUEST["filter"] != "") {
if ($_REQUEST["searchin"] == "--all--" || $_REQUEST["searchin"] == "") {
$found = false;
foreach ($aDataTable[$oNewsletter->get("idnews")] as $key => $value) {
if (strpos($value, htmlentities($_REQUEST["filter"])) !== false) {
$found = true;
}
}
if ($found == false) {
unset($aDataTable[$oNewsletter->get("idnews")]);
}
} else {
if (strpos($aDataTable[$oNewsletter->get("idnews")][$_REQUEST["searchin"]], htmlentities($_REQUEST["filter"])) === false) {
unset($aDataTable[$oNewsletter->get("idnews")]);
}
}
}
}
if ($_REQUEST["sortorder"] == "ASC") {
$sortorder = SORT_ASC;
} else {
$sortorder = SORT_DESC;
}
$aDataTable = array_csort($aDataTable, $_REQUEST["sortby"], $sortorder);
/* Content */
$mPage = $_REQUEST["page"];
$elemperpage = $_REQUEST["elemperpage"];
$mList = new UI_Menu;
$iMenu = 0;
$iItemCount = 0;
if ($elemperpage == 0) {
$elemperpage = $oNewsletters->count();
}
$lIdCatArt = $oClient->getProperty("newsletter", "idcatart");
foreach ($aDataTable as $mkey => $params) { // $idnewsletter
/* Create the link to show/edit the newsletter */
$idnewsletter = $params["id"];
$oLink = new cHTMLLink;
$oLink->setMultiLink($area, "", $area, "");
$oLink->setCustom("idnewsletter", $idnewsletter);
$iItemCount++;
if ($iItemCount > ($elemperpage * ($mPage - 1)) && $iItemCount < (($elemperpage * $mPage) + 1)) {
$iMenu++;
$copy = new Link;
$copy->setMultiLink("news","","news","news_duplicate");
$copy->setCustom("idnewsletter",$idnewsletter);
$copy->setAlt($sCopyTitle);
$copy->setContent('<img src="'.$cfg['path']['images'].'but_copy.gif" border="0" title="'.$sCopyTitle.'" alt="'.$sCopyTitle.'">');
$sDelete = '<a title="'.$sDelTitle.'" href="javascript://" onclick="showDelMsg('.$idnewsletter.',\''.addslashes($params["name"]).'\')"><img src="'.$cfg['path']['images'].'delete.gif" border="0" title="'.$sDelTitle.'" alt="'.$sDelTitle.'"></a>';
$mList->setTitle($iMenu, $params["name"]);
$mList->setLink($iMenu, $oLink);
if ($lIdCatArt) {
$sSend = '<a title="'.$sSendTitle.'" href="javascript://" onclick="showSendMsg('.$idnewsletter.',\''.addslashes($params["name"]).'\')"><img src="'.$cfg['path']['images'].'newsletter.gif" border="0" title="'.$sSendTitle.'" alt="'.$sSendTitle.'"></a>';
$mList->setActions($iMenu, 'send', $sSend);
}
$mList->setActions($iMenu, 'copy', $copy->render());
$mList->setActions($iMenu, "delete", $sDelete);
$mList->setImage($iMenu, "images/newsletter_edit.gif");
}
}
$oPagerLink = new cHTMLLink;
$oPagerLink->setLink("main.php");
$oPagerLink->setCustom("elemperpage", $elemperpage);
$oPagerLink->setCustom("filter", $_REQUEST["filter"]);
$oPagerLink->setCustom("restrictgroup", $_REQUEST["restrictgroup"]);
$oPagerLink->setCustom("sortby", $_REQUEST["sortby"]);
$oPagerLink->setCustom("sortorder", $_REQUEST["sortorder"]);
$oPagerLink->setCustom("searchin", $_REQUEST["searchin"]);
$oPagerLink->setCustom("restrictgroup", $_REQUEST["restrictgroup"]);
$oPagerLink->setCustom("frame", $frame);
$oPagerLink->setCustom("area", $area);
$oPagerLink->enableAutomaticParameterAppend();
$oPagerLink->setCustom("contenido", $sess->id);
$oPager = new cObjectPager("0ed6d632-6adf-4f09-a0c6-1e38ab60e301", $iItemCount, $elemperpage, $mPage, $oPagerLink, "page");
$markscript = '<script language="javascript">
function getReference() {
return parent.frames[\'left_top\'].cfg;
}
if ( cfg = getReference() ) {
var sRowId = cfg.getRowId();
var oRow = document.getElementById( sRowId );
if ( oRow ) {
con.over( oRow );
con.click( oRow );
}
}
</script>';
$execScript = '
<script type="text/javascript">
/* Session-ID */
var sid = "'.$sess->id.'";
/* Create messageBox instance */
box = new messageBox("", "", "", 0, 0);
function showSendMsg(lngId, strElement) {
box.confirm("'.$sSendTitle.'", "'.$sSendDescr.'<b>" + strElement + "</b>", "sendNewsletter(\'" + lngId + "\')");
}
function showDelMsg(lngId, strElement) {
box.confirm("'.$sDelTitle.'", "'.$sDelDescr.'<b>" + strElement + "</b>", "deleteNewsletter(\'" + lngId + "\')");
}
/* Enabled/Disable group box */
function checkSelection(strValue) {
if (strValue == "selection") {
document.getElementById("groupselect").disabled = false;
} else {
document.getElementById("groupselect").disabled = true;
}
}
/* Function for sending newsletters */
function sendNewsletter(idnewsletter) {
oForm = document.getElementById("filterform");
url = "main.php?area=news_send";
url += "&action=news_send";
url += "&frame=4";
url += "&idnewsletter=" + idnewsletter;
url += "&contenido=" + sid;
url += get_registered_parameters();
url += "&sortby=" + oForm.sortby.value;
url += "&sortorder=" + oForm.sortorder.value;
url += "&filter=" + oForm.filter.value;
url += "&elemperpage=" + oForm.elemperpage.value;
parent.parent.right.right_bottom.location.href = url;
}
/* Function for deleting newsletters */
function deleteNewsletter(idnewsletter) {
oForm = document.getElementById("filterform");
url = "main.php?area=news";
url += "&action=news_delete";
url += "&frame=4";
url += "&idnewsletter=" + idnewsletter;
url += "&contenido=" + sid;
url += get_registered_parameters();
url += "&sortby=" + oForm.sortby.value;
url += "&sortorder=" + oForm.sortorder.value;
url += "&filter=" + oForm.filter.value;
url += "&elemperpage=" + oForm.elemperpage.value;
parent.parent.right.right_bottom.location.href = url;
}
</script>';
$oPage->setMargin(0);
$oPage->addScript('messagebox', '<script type="text/javascript" src="scripts/messageBox.js.php?contenido='.$sess->id.'"></script>');
$oPage->addScript('exec', $execScript);
$oPage->addScript('cfoldingrow.js', '<script language="JavaScript" src="scripts/cfoldingrow.js"></script>');
$oPage->addScript('parameterCollector.js', '<script language="JavaScript" src="scripts/parameterCollector.js"></script>');
$oPage->setContent(array('<table border="0" cellspacing="0" cellpadding="0" width="100%">', $oListActionRow, $oOptionRow, $oListOptionRow, $oPager, '</table>', $mList->render(false)));
$oPage->render();
?>

Wer was auszusetzen hat, gerne

So long,
Dinkel