* @license http://www.contenido.org/license/LIZENZ.txt * @link http://www.4fb.de * @link http://www.contenido.org * @since file available since contenido release <= 4.6 * * {@internal * created 2004-08-01, Bj�rn Behrens (HerrB) * modified 2008-06-27, Dominik Ziegler, add security fix * * $Id: include.recipients.group_edit.php 128 2019-07-03 11:58:28Z oldperl $: * }} * */ if (!defined('CON_FRAMEWORK')) { die('Illegal call'); } // Initialization $oPage = new cPage; $oRGroups = new RecipientGroupCollection; $oRGroupMembers = new RecipientGroupMemberCollection; $oRGroup = new RecipientGroup; $aFields = array(); $aFields["name"] = array("field" => "name", "caption" => i18n("Name", "cl_newsletter"), "type" => "base,sort,search"); $aFields["email"] = array("field" => "email", "caption" => i18n("E-Mail", "cl_newsletter"), "type" => "base,sort,search"); $aFields["confirmed"] = array("field" => "confirmed", "caption" => i18n("Confirmed", "cl_newsletter"), "type" => "base"); $aFields["deactivated"] = array("field" => "deactivated", "caption" => i18n("Deactivated", "cl_newsletter"), "type" => "base"); if ($action == "recipientgroup_create" && $perm->have_perm_area_action($area, $action)) { $oRGroup = $oRGroups->create(" " . i18n("-- new group --", "cl_newsletter")); $_REQUEST["idrecipientgroup"] = $oRGroup->get("idnewsgroup"); $oPage->setReload(); $sRefreshLeftTopScript = ''; $oPage->addScript('refreshlefttop', $sRefreshLeftTopScript); } elseif ($action == "recipientgroup_delete" && $perm->have_perm_area_action($area, $action)) { $oRGroups->delete($_REQUEST["idrecipientgroup"]); $sRefreshLeftTopScript = ''; $oPage->addScript('refreshlefttop', $sRefreshLeftTopScript); $_REQUEST["idrecipientgroup"] = 0; $oRGroup = new RecipientGroup; $oPage->setReload(); } else { $oRGroup->loadByPrimaryKey($_REQUEST["idrecipientgroup"]); } if ($oRGroup->virgin == false && $oRGroup->get("idclient") == $client && $oRGroup->get("idlang") == $lang) { if ($action == "recipientgroup_save_group" && $perm->have_perm_area_action($area, $action)) { // Saving changes $aMessages = array(); $bReload = false; $sGroupName = stripslashes($_REQUEST["groupname"]); if ($oRGroup->get("groupname") != $sGroupName) { $oRGroups->resetQuery(); $oRGroups->setWhere("groupname", $sGroupName); $oRGroups->setWhere("idclient", $client); $oRGroups->setWhere("idlang", $lang); $oRGroups->setWhere($oRGroup->primaryKey, $oRGroup->get($oRGroup->primaryKey), "!="); $oRGroups->query(); if ($oRGroups->next()) { $aMessages[] = i18n("Could not set new group name: Group already exists", "cl_newsletter"); } else { $bReload = true; $oRGroup->set("groupname", $sGroupName); } } if (count($_REQUEST["adduser"]) > 0) { foreach ($_REQUEST["adduser"] as $iRcpID) { if (is_numeric($iRcpID)) { $oRGroupMembers->create($_REQUEST["idrecipientgroup"], $iRcpID); } } } if ($oRGroup->get("defaultgroup") != (int) $_REQUEST["defaultgroup"]) { $bReload = true; $oRGroup->set("defaultgroup", $_REQUEST["defaultgroup"]); } $oRGroup->store(); if ($bReload) { $oPage->setReload(); } // Removing users from group (if specified) //print_r ($_REQUEST["deluser"]); if ($perm->have_perm_area_action($area, "recipientgroup_recipient_delete") && is_array($_REQUEST["deluser"])) { foreach ($_REQUEST["deluser"] as $iRcpID) { if (is_numeric($iRcpID)) { echo "yo: " . $iRcpID; $oRGroupMembers->remove($_REQUEST["idrecipientgroup"], $iRcpID); } } } $sRefreshLeftTopScript = ''; $oPage->addScript('refreshlefttop', $sRefreshLeftTopScript); } if (count($aMessages) > 0) { $sNotis = $notification->returnNotification("warning", implode("
", $aMessages)) . "
"; } // Set default values $oUser = new cApiUser($auth->auth["uid"]); if (!isset($_REQUEST["member_elemperpage"]) || !is_numeric($_REQUEST["member_elemperpage"]) || $_REQUEST["member_elemperpage"] < 0) { $_REQUEST["member_elemperpage"] = $oUser->getProperty("itemsperpage", $area . "_edit_member"); } if (!is_numeric($_REQUEST["member_elemperpage"])) { $_REQUEST["member_elemperpage"] = 25; } if ($_REQUEST["member_elemperpage"] > 0) { // -- All -- will not be stored, as it may be impossible to change this back to something more useful $oUser->setProperty("itemsperpage", $area . "_edit_member", $_REQUEST["member_elemperpage"]); } if (!isset($_REQUEST["outsider_elemperpage"]) || !is_numeric($_REQUEST["outsider_elemperpage"]) || $_REQUEST["outsider_elemperpage"] < 0) { $_REQUEST["outsider_elemperpage"] = $oUser->getProperty("itemsperpage", $area . "_edit_outsider"); } if (!is_numeric($_REQUEST["outsider_elemperpage"])) { $_REQUEST["outsider_elemperpage"] = 25; } if ($_REQUEST["outsider_elemperpage"] > 0) { // -- All -- will not be stored, as it may be impossible to change this back to something more useful $oUser->setProperty("itemsperpage", $area . "_edit_outsider", $_REQUEST["outsider_elemperpage"]); } unset($oUser); if (!isset($_REQUEST["member_page"]) || !is_numeric($_REQUEST["member_page"]) || $_REQUEST["member_page"] <= 0 || $_REQUEST["member_elemperpage"] == 0) { $_REQUEST["member_page"] = 1; } if ($_REQUEST["member_sortorder"] != "DESC") { $_REQUEST["member_sortorder"] = "ASC"; } if (!isset($_REQUEST["outsider_page"]) || !is_numeric($_REQUEST["outsider_page"]) || $_REQUEST["outsider_page"] <= 0 || $_REQUEST["outsider_elemperpage"] == 0) { $_REQUEST["outsider_page"] = 1; } if ($_REQUEST["outsider_sortorder"] != "DESC") { $_REQUEST["outsider_sortorder"] = "ASC"; } // Output form $oForm = new UI_Table_Form("properties", "main.php?1", "get"); // Use "get" for folding rows... $oForm->setVar("frame", $frame); $oForm->setVar("area", $area); $oForm->setVar("action", "recipientgroup_save_group"); $oForm->setVar("idrecipientgroup", $_REQUEST["idrecipientgroup"]); $oForm->setSubmitJS("append_registered_parameters(this);"); $oForm->addHeader(i18n("Edit group", "cl_newsletter")); $oTxtGroupName = new cHTMLTextbox("groupname", $oRGroup->get("groupname"), 40); $oForm->add(i18n("Group name", "cl_newsletter"), $oTxtGroupName->render()); $oCkbDefault = new cHTMLCheckbox("defaultgroup", "1"); $oCkbDefault->setChecked($oRGroup->get("defaultgroup")); $oForm->add(i18n("Default group", "cl_newsletter"), $oCkbDefault->toHTML(false)); // Member list options folding row $oMemberListOptionRow = new cFoldingRow("a91f5540-52db-11db-b0de-0800200c9a66", i18n("Member list options", "cl_newsletter")); $oSelItemsPerPage = new cHTMLSelectElement("member_elemperpage"); $oSelItemsPerPage->autoFill(array(0 => i18n("-- All --", "cl_newsletter"), 25 => 25, 50 => 50, 75 => 75, 100 => 100)); $oSelItemsPerPage->setDefault($_REQUEST["member_elemperpage"]); $oSelSortBy = new cHTMLSelectElement("member_sortby"); foreach ($aFields as $sKey => $aData) { if (strpos($aData["type"], "sort") !== false) { if ($_REQUEST["member_sortby"] == "") { $_REQUEST["member_sortby"] = $aData["field"]; } $oOption = new cHTMLOptionElement($aData["caption"], $aData["field"]); $oSelSortBy->addOptionElement($aData["field"], $oOption); } } $oSelSortBy->setDefault($_REQUEST["member_sortby"]); $oSelSortOrder = new cHTMLSelectElement("member_sortorder"); $oSelSortOrder->autoFill(array("ASC" => i18n("Ascending", "cl_newsletter"), "DESC" => i18n("Descending", "cl_newsletter"))); $oSelSortOrder->setDefault($_REQUEST["member_sortorder"]); $oTxtFilter = new cHTMLTextbox("member_filter", $_REQUEST["member_filter"], 16); $oSelSearchIn = new cHTMLSelectElement("member_searchin"); $oOption = new cHTMLOptionElement(i18n("-- All fields --", "cl_newsletter"), "--all--"); $oSelSearchIn->addOptionElement("all", $oOption); foreach ($aFields as $sKey => $aData) { if (strpos($aData["type"], "search") !== false) { $oOption = new cHTMLOptionElement($aData["caption"], $aData["field"]); $oSelSearchIn->addOptionElement($aData["field"], $oOption); } } $oSelSearchIn->setDefault($_REQUEST["member_searchin"]); $oSubmit = new cHTMLButton("submit", i18n("Apply", "cl_newsletter")); $sContent = '
' . chr(10); $sContent .= ' ' . chr(10); $sContent .= ' ' . chr(10); $sContent .= ' ' . chr(10); $sContent .= ' ' . chr(10); $sContent .= ' ' . chr(10); $sContent .= ' ' . chr(10); $sContent .= ' ' . chr(10); $sContent .= ' ' . chr(10); $sContent .= ' ' . chr(10); $sContent .= ' ' . chr(10); $sContent .= ' ' . chr(10); $sContent .= ' ' . chr(10); $sContent .= ' ' . chr(10); $sContent .= ' ' . chr(10); $sContent .= ' ' . chr(10); $sContent .= ' ' . chr(10); $sContent .= ' ' . chr(10); $sContent .= ' ' . chr(10); $sContent .= ' ' . chr(10); $sContent .= ' ' . chr(10); $sContent .= ' ' . chr(10); $sContent .= ' ' . chr(10); $sContent .= ' ' . chr(10); $sContent .= ' ' . chr(10); $sContent .= ' ' . chr(10); $sContent .= '
' . i18n("Items / page", "cl_newsletter") . '' . $oSelItemsPerPage->render() . '
' . i18n("Sort by", "cl_newsletter") . '' . $oSelSortBy->render() . '
' . i18n("Sort order", "cl_newsletter") . '' . $oSelSortOrder->render() . '
' . i18n("Search for", "cl_newsletter") . '' . $oTxtFilter->render() . '
' . i18n("Search in", "cl_newsletter") . '' . $oSelSearchIn->render() . '
 ' . $oSubmit->render() . '
' . chr(10); $sContent .= '
' . chr(10); $oMemberListOptionRow->setContentData($sContent); // Members $oAddedRecipientList = new UI_List; $oAddedRecipientList->setWidth("100%"); $oAddedRecipientList->setBorder(1); $oAddedRecipientList->setCell(0, 1, "" . i18n("Name", "cl_newsletter") . ""); $oImgDel = new cHTMLImage("images/but_invert_selection.gif"); $sLnkDelIcon = '' . $oImgDel->render() . ''; $oAddedRecipientList->setCell(0, 2, $sLnkDelIcon); $oAddedRecipientList->setCellAlignment(0, 2, "right"); $oInsiders = new RecipientCollection; $oInsiders->link("RecipientGroupMemberCollection"); $oInsiders->setWhere("recipientcollection.idclient", $client); $oInsiders->setWhere("recipientcollection.idlang", $lang); $oInsiders->setWhere("RecipientGroupMemberCollection.idnewsgroup", $_REQUEST["idrecipientgroup"]); // Get insiders for outsiders list (*sigh!*) // TODO: Ask user to have at least mySQL 4.1... $oInsiders->query(); $aInsiders = array(); if ($oInsiders->count() > 0) { while ($oInsider = $oInsiders->next()) { $aInsiders[] = $oInsider->get($oInsider->primaryKey); } } // Filter if ($_REQUEST["member_filter"] != "") { if ($_REQUEST["member_searchin"] == "--all--" || $_REQUEST["member_searchin"] == "") { foreach ($aFields as $sKey => $aData) { if (strpos($aData["type"], "search") !== false) { $oInsiders->setWhereGroup("filter", "recipientcollection." . $aData["field"], $_REQUEST["member_filter"], "LIKE"); } } $oInsiders->setInnerGroupCondition("filter", "OR"); } else { $oInsiders->setWhere("recipientcollection." . $_REQUEST["member_searchin"], $_REQUEST["member_filter"], "LIKE"); } } // If elemperpage is something else than "all", get item count based on filters if ($_REQUEST["member_elemperpage"] > 0) { $oInsiders->query(); $iMembers = $oInsiders->count(); // Getting item count without limit (for page function) - better idea anybody (performance)? $oInsiders->setLimit($_REQUEST["member_elemperpage"] * ($_REQUEST["member_page"] - 1), $_REQUEST["member_elemperpage"]); } else { $iMembers = 0; } // Get data $sSortSQL = "recipientcollection." . $_REQUEST["member_sortby"] . " " . $_REQUEST["member_sortorder"]; if ($_REQUEST["member_sortby"] == "name") { // Name field may be empty, add email as sort criteria $sSortSQL .= ", email " . $_REQUEST["member_sortorder"]; } $oInsiders->setOrder($sSortSQL); $oInsiders->query(); $iItems = $oInsiders->count(); if ($iItems == 0 && $_REQUEST["member_filter"] == "" && ($_REQUEST["member_elemperpage"] == 0 || $iMembers == 0)) { $oAddedRecipientList->setCell(1, 1, i18n("No recipients are added to this group yet", "cl_newsletter")); $oAddedRecipientList->setCell(1, 2, ' '); } else if ($iItems == 0) { $oAddedRecipientList->setCell(1, 1, i18n("No recipients found", "cl_newsletter")); $oAddedRecipientList->setCell(1, 2, ' '); } else { while ($oRcp = $oInsiders->next()) { $iID = $oRcp->get("idnewsrcp"); $sName = $oRcp->get("name"); $sEMail = $oRcp->get("email"); if (empty($sName)) { $sName = $sEMail; } $oAddedRecipientList->setCell($iID, 1, $sName . " (" . $sEMail . ")"); if ($perm->have_perm_area_action($area, "recipientgroup_recipient_delete")) { $oCkbDel = new cHTMLCheckbox("deluser[]", $iID); $oAddedRecipientList->setCell($iID, 2, $oCkbDel->toHTML(false)); } else { $oAddedRecipientList->setCell($iID, 2, " "); } $oAddedRecipientList->setCellAlignment($iID, 2, "right"); } } // Member list pager (-> below data, as iMembers is needed) $oPagerLink = new cHTMLLink; $oPagerLink->setLink("main.php"); $oPagerLink->setCustom("member_elemperpage", $_REQUEST["member_elemperpage"]); $oPagerLink->setCustom("member_filter", $_REQUEST["member_filter"]); $oPagerLink->setCustom("member_sortby", $_REQUEST["member_sortby"]); $oPagerLink->setCustom("member_sortorder", $_REQUEST["member_sortorder"]); $oPagerLink->setCustom("member_searchin", $_REQUEST["member_searchin"]); $oPagerLink->setCustom("outsider_elemperpage", $_REQUEST["outsider_elemperpage"]); $oPagerLink->setCustom("outsider_filter", $_REQUEST["outsider_filter"]); $oPagerLink->setCustom("outsider_sortby", $_REQUEST["outsider_sortby"]); $oPagerLink->setCustom("outsider_sortorder", $_REQUEST["outsider_sortorder"]); $oPagerLink->setCustom("outsider_searchin", $_REQUEST["outsider_searchin"]); $oPagerLink->setCustom("idrecipientgroup", $_REQUEST["idrecipientgroup"]); $oPagerLink->setCustom("frame", $frame); $oPagerLink->setCustom("area", $area); #$oPagerLink->enableAutomaticParameterAppend(); $oPagerLink->setCustom("contenido", $sess->id); $oMemberPager = new cObjectPager("d82a3ff0-52d9-11db-b0de-0800200c9a66", $iMembers, $_REQUEST["member_elemperpage"], $_REQUEST["member_page"], $oPagerLink, "member_page"); $oMemberPager->setCaption(i18n("Member navigation", "cl_newsletter")); $oForm->add(i18n("Recipients in group", "cl_newsletter"), '' . $oMemberListOptionRow->render() . $oMemberPager->render() . '
' . $oAddedRecipientList->render() . '
'); unset($oInsiders); unset($oMemberListOptionRow); unset($oMemberPager); unset($oAddedRecipientList); // Outsiders // Outsider list options folding row $oOutsiderListOptionRow = new cFoldingRow("ca633b00-52e9-11db-b0de-0800200c9a66", i18n("Outsider list options", "cl_newsletter")); $oSelItemsPerPage = new cHTMLSelectElement("outsider_elemperpage"); $oSelItemsPerPage->autoFill(array(0 => i18n("-- All --", "cl_newsletter"), 25 => 25, 50 => 50, 75 => 75, 100 => 100)); $oSelItemsPerPage->setDefault($_REQUEST["outsider_elemperpage"]); $oSelSortBy = new cHTMLSelectElement("outsider_sortby"); foreach ($aFields as $sKey => $aData) { if (strpos($aData["type"], "sort") !== false) { if ($_REQUEST["outsider_sortby"] == "") { $_REQUEST["outsider_sortby"] = $aData["field"]; } $oOption = new cHTMLOptionElement($aData["caption"], $aData["field"]); $oSelSortBy->addOptionElement($aData["field"], $oOption); } } $oSelSortBy->setDefault($_REQUEST["outsider_sortby"]); $oSelSortOrder = new cHTMLSelectElement("outsider_sortorder"); $oSelSortOrder->autoFill(array("ASC" => i18n("Ascending", "cl_newsletter"), "DESC" => i18n("Descending", "cl_newsletter"))); $oSelSortOrder->setDefault($_REQUEST["outsider_sortorder"]); $oTxtFilter = new cHTMLTextbox("outsider_filter", $_REQUEST["outsider_filter"], 16); $oSelSearchIn = new cHTMLSelectElement("outsider_searchin"); $oOption = new cHTMLOptionElement(i18n("-- All fields --", "cl_newsletter"), "--all--"); $oSelSearchIn->addOptionElement("all", $oOption); foreach ($aFields as $sKey => $aData) { if (strpos($aData["type"], "search") !== false) { $oOption = new cHTMLOptionElement($aData["caption"], $aData["field"]); $oSelSearchIn->addOptionElement($aData["field"], $oOption); } } $oSelSearchIn->setDefault($_REQUEST["outsider_searchin"]); $oSubmit = new cHTMLButton("submit", i18n("Apply", "cl_newsletter")); $sContent = '
' . chr(10); $sContent .= ' ' . chr(10); $sContent .= ' ' . chr(10); $sContent .= ' ' . chr(10); $sContent .= ' ' . chr(10); $sContent .= ' ' . chr(10); $sContent .= ' ' . chr(10); $sContent .= ' ' . chr(10); $sContent .= ' ' . chr(10); $sContent .= ' ' . chr(10); $sContent .= ' ' . chr(10); $sContent .= ' ' . chr(10); $sContent .= ' ' . chr(10); $sContent .= ' ' . chr(10); $sContent .= ' ' . chr(10); $sContent .= ' ' . chr(10); $sContent .= ' ' . chr(10); $sContent .= ' ' . chr(10); $sContent .= ' ' . chr(10); $sContent .= ' ' . chr(10); $sContent .= ' ' . chr(10); $sContent .= ' ' . chr(10); $sContent .= ' ' . chr(10); $sContent .= ' ' . chr(10); $sContent .= ' ' . chr(10); $sContent .= ' ' . chr(10); $sContent .= '
' . i18n("Items / page", "cl_newsletter") . '' . $oSelItemsPerPage->render() . '
' . i18n("Sort by", "cl_newsletter") . '' . $oSelSortBy->render() . '
' . i18n("Sort order", "cl_newsletter") . '' . $oSelSortOrder->render() . '
' . i18n("Search for", "cl_newsletter") . '' . $oTxtFilter->render() . '
' . i18n("Search in", "cl_newsletter") . '' . $oSelSearchIn->render() . '
 ' . $oSubmit->render() . '
' . chr(10); $sContent .= '
' . chr(10); $oOutsiderListOptionRow->setContentData($sContent); // TODO: Try to enhance genericdb to get this working with the usual objects... $oOutsiders = new RecipientCollection; # This requires mySQL V4.1, at least... # TODO: Add mySQL server version switch #$sSQL = "idclient = '".$client."' AND idlang = '".$lang."' AND ". # "idnewsrcp NOT IN (SELECT idnewsrcp FROM ".$cfg["tab"]["news_groupmembers"]." WHERE idnewsgroup = '".$_REQUEST["idrecipientgroup"]."')"; // TODO: This works with every mySQL version but may be problematic, if a group // contains a lot of members (e.g. Oracle can't handle more than 1000 items in the brackets) $sSQL = "idclient = '" . $client . "' AND idlang = '" . $lang . "' AND " . "idnewsrcp NOT IN ('" . implode("','", $aInsiders) . "')"; if ($_REQUEST["outsider_filter"] != "") { $sSQLSearchIn = ""; if ($_REQUEST["outsider_searchin"] == "--all--" || $_REQUEST["outsider_searchin"] == "") { foreach ($aFields as $sKey => $aData) { if (strpos($aData["type"], "search") !== false) { if ($sSQLSearchIn !== "") { $sSQLSearchIn .= " OR "; } $sSQLSearchIn .= $aData["field"] . " LIKE '%" . urlencode($_REQUEST["outsider_filter"]) . "%'"; } } } else { $sSQLSearchIn .= urlencode($_REQUEST["outsider_searchin"]) . " LIKE '%" . urlencode($_REQUEST["outsider_filter"]) . "%'"; } $sSQL .= " AND (" . $sSQLSearchIn . ")"; } // If elemperpage is something else than "all", get item count based on filters if ($_REQUEST["outsider_elemperpage"] > 0) { $oOutsiders->flexSelect("", "", $sSQL, ""); $iOutsiders = $oOutsiders->count(); // Getting item count without limit (for page function) - better idea anyone (performance)? $sSQLLimit = " LIMIT " . $_REQUEST["outsider_elemperpage"] * ($_REQUEST["outsider_page"] - 1) . ", " . $_REQUEST["outsider_elemperpage"]; } else { $iMembers = 0; $sSQLLimit = ""; } // Get data $sSQLSort = " ORDER BY " . urlencode($_REQUEST["outsider_sortby"]) . " " . $_REQUEST["outsider_sortorder"]; if ($_REQUEST["outsider_sortby"] == "name") { // Name field may be empty, add email as sort criteria $sSQLSort .= ", email " . $_REQUEST["outsider_sortorder"]; } $sSQL .= $sSQLSort . $sSQLLimit; $oOutsiders->flexSelect("", "", $sSQL, ""); $aItems = array(); while ($oRecipient = $oOutsiders->next()) { $sName = $oRecipient->get("name"); $sEMail = $oRecipient->get("email"); if (empty($sName)) { $sName = $sEMail; } $aItems[] = array($oRecipient->get("idnewsrcp"), $sName . " (" . $sEMail . ")"); } $oSelUser = new cHTMLSelectElement("adduser[]"); $oSelUser->setSize(25); $oSelUser->setStyle("width: 100%;"); $oSelUser->setMultiSelect(); $oSelUser->autoFill($aItems); // Outsider list pager (-> below data, as iOutsiders is needed) $oPagerLink = new cHTMLLink; $oPagerLink->setLink("main.php"); $oPagerLink->setCustom("member_elemperpage", $_REQUEST["member_elemperpage"]); $oPagerLink->setCustom("member_filter", $_REQUEST["member_filter"]); $oPagerLink->setCustom("member_sortby", $_REQUEST["member_sortby"]); $oPagerLink->setCustom("member_sortorder", $_REQUEST["member_sortorder"]); $oPagerLink->setCustom("member_searchin", $_REQUEST["member_searchin"]); $oPagerLink->setCustom("outsider_elemperpage", $_REQUEST["outsider_elemperpage"]); $oPagerLink->setCustom("outsider_filter", $_REQUEST["outsider_filter"]); $oPagerLink->setCustom("outsider_sortby", $_REQUEST["outsider_sortby"]); $oPagerLink->setCustom("outsider_sortorder", $_REQUEST["outsider_sortorder"]); $oPagerLink->setCustom("outsider_searchin", $_REQUEST["outsider_searchin"]); $oPagerLink->setCustom("idrecipientgroup", $_REQUEST["idrecipientgroup"]); $oPagerLink->setCustom("frame", $frame); $oPagerLink->setCustom("area", $area); #$oPagerLink->enableAutomaticParameterAppend(); $oPagerLink->setCustom("contenido", $sess->id); $oOutsiderPager = new cObjectPager("4d3a7330-52eb-11db-b0de-0800200c9a66", $iOutsiders, $_REQUEST["outsider_elemperpage"], $_REQUEST["outsider_page"], $oPagerLink, "outsider_page"); $oOutsiderPager->setCaption(i18n("Outsider navigation", "cl_newsletter")); $oForm->add(i18n("Add recipients", "cl_newsletter"), '' . $oOutsiderListOptionRow->render() . $oOutsiderPager->render() . '
' . $oSelUser->render() . '
' . i18n("Note: Hold <Ctrl> to
select multiple items.", "cl_newsletter") . '
'); unset($oOutsiders); unset($oOutsiderListOptionRow); unset($oOutsiderPager); $sDelMarkScript = ' '; $oPage->addScript('DelMarkScript', $sDelMarkScript); $oPage->addScript('cfoldingrow.js', ''); $oPage->addScript('parameterCollector.js', ''); $oPage->setContent($sNotis . $oForm->render(true)); } else { $oPage->setContent($sNotis . ""); } $oPage->render(); ?>