Add files via upload
Dieser Commit ist enthalten in:
Ursprung
a185d2db52
Commit
faa2e43e37
34 geänderte Dateien mit 9581 neuen und 0 gelöschten Zeilen
246
includes/include.recipients_edit.php
Normale Datei
246
includes/include.recipients_edit.php
Normale Datei
|
|
@ -0,0 +1,246 @@
|
|||
<?php
|
||||
|
||||
/**
|
||||
* Project:
|
||||
* Contenido Content Management System
|
||||
*
|
||||
* Description:
|
||||
* Frontend user editor
|
||||
*
|
||||
* Requirements:
|
||||
* @con_php_req 5.0
|
||||
*
|
||||
*
|
||||
* @package Contenido Backend includes
|
||||
* @version 1.1.7
|
||||
* @author Bj<EFBFBD>rn Behrens (HerrB)
|
||||
* @copyright four for business AG <www.4fb.de>
|
||||
* @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 2007-01-01, Bj<EFBFBD>rn Behrens (HerrB)
|
||||
* modified 2008-06-27, Dominik Ziegler, add security fix
|
||||
*
|
||||
* $Id: include.recipients_edit.php 128 2019-07-03 11:58:28Z oldperl $:
|
||||
* }}
|
||||
*
|
||||
*/
|
||||
if (!defined('CON_FRAMEWORK')) {
|
||||
die('Illegal call');
|
||||
}
|
||||
|
||||
|
||||
$oPage = new cPage;
|
||||
$oRecipients = new RecipientCollection;
|
||||
|
||||
if (is_array($cfg['plugins']['recipients'])) {
|
||||
foreach ($cfg['plugins']['recipients'] as $plugin) {
|
||||
plugin_include("recipients", $plugin . "/" . $plugin . ".php");
|
||||
}
|
||||
}
|
||||
|
||||
// Note, that the object name has to be $recipient for plugins
|
||||
if ($action == "recipients_create" && $perm->have_perm_area_action($area, $action)) {
|
||||
$recipient = $oRecipients->create("mail@domain.tld", " " . i18n("-- new recipient --", "cl_newsletter"));
|
||||
$oPage->setReload();
|
||||
} elseif ($action == "recipients_delete" && $perm->have_perm_area_action($area, $action)) {
|
||||
$oRecipients->delete($idrecipient);
|
||||
$recipient = new Recipient;
|
||||
$oPage->setReload();
|
||||
} elseif ($action == "recipients_purge" && $perm->have_perm_area_action($area, "recipients_delete")) {
|
||||
$oClient = new cApiClient($client);
|
||||
$timeframe = $oClient->getProperty("newsletter", "purgetimeframe");
|
||||
if (!$timeframe) {
|
||||
$timeframe = 30;
|
||||
}
|
||||
$purgedrecipients = $oRecipients->purge($timeframe);
|
||||
/* backslashdollar: There is a problem translating \$ - it is either not recognized or translated correctly (using poEdit) */
|
||||
if ($purgedrecipients > 0) {
|
||||
$sNotis = $notification->messageBox("info", sprintf(str_replace("backslashdollar", "\$", i18n("%1backslashdollard recipients, which hasn't been confirmed since more than %2backslashdollard days has been removed.", "cl_newsletter")), $purgedrecipients, $timeframe), 0);
|
||||
} else {
|
||||
$sNotis = $notification->messageBox("info", sprintf(str_replace("backslashdollar", "\$", i18n("There are no recipients, which hasn't been confirmed since more than %2backslashdollard days has been removed.", "cl_newsletter")), 0, $timeframe), 0);
|
||||
}
|
||||
|
||||
$recipient = new Recipient;
|
||||
$oPage->setReload();
|
||||
} else {
|
||||
$recipient = new Recipient($idrecipient);
|
||||
}
|
||||
|
||||
if ($recipient->virgin == false && $recipient->get("idclient") == $client && $recipient->get("idlang") == $lang) {
|
||||
if ($action == "recipients_save" && $perm->have_perm_area_action($area, $action)) {
|
||||
$oPage->setReload();
|
||||
$aMessages = array();
|
||||
|
||||
$name = stripslashes($name);
|
||||
$email = stripslashes($email);
|
||||
$confirmed = (int) $confirmed;
|
||||
$deactivated = (int) $deactivated;
|
||||
$newstype = (int) $newstype;
|
||||
|
||||
$recipient->set("name", $name);
|
||||
|
||||
if (!isValidMail($email)) {
|
||||
$aMessages[] = i18n("Please specify a valid e-mail address", "cl_newsletter");
|
||||
} else {
|
||||
$email = strtolower($email); // e-mail always in lower case
|
||||
if ($recipient->get("email") != $email) {
|
||||
$oRecipients->resetQuery();
|
||||
$oRecipients->setWhere("email", $email);
|
||||
$oRecipients->setWhere("idclient", $client);
|
||||
$oRecipients->setWhere("idlang", $lang);
|
||||
$oRecipients->setWhere($recipient->primaryKey, $recipient->get($recipient->primaryKey), "!=");
|
||||
$oRecipients->query();
|
||||
|
||||
if ($oRecipients->next()) {
|
||||
$aMessages[] = i18n("Could not set new e-mail adress: Other recipient with same e-mail address already exists", "cl_newsletter");
|
||||
} else {
|
||||
$recipient->set("email", $email);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
if ($recipient->get("confirmed") != $confirmed && $confirmed) {
|
||||
$recipient->set("confirmeddate", date("Y-m-d H:i:s"), false);
|
||||
} elseif (!$confirmed) {
|
||||
$recipient->set("confirmeddate", "0000-00-00 00:00:00", false);
|
||||
}
|
||||
$recipient->set("confirmed", $confirmed);
|
||||
$recipient->set("deactivated", $deactivated);
|
||||
$recipient->set("news_type", $newstype);
|
||||
|
||||
// Check out if there are any plugins
|
||||
if (is_array($cfg['plugins']['recipients'])) {
|
||||
foreach ($cfg['plugins']['recipients'] as $plugin) {
|
||||
if (function_exists("recipients_" . $plugin . "_wantedVariables") && function_exists("recipients_" . $plugin . "_store")) {
|
||||
$wantVariables = call_user_func("recipients_" . $plugin . "_wantedVariables");
|
||||
|
||||
if (is_array($wantVariables)) {
|
||||
$varArray = array();
|
||||
|
||||
foreach ($wantVariables as $value) {
|
||||
$varArray[$value] = stripslashes($GLOBALS[$value]);
|
||||
}
|
||||
}
|
||||
$store = call_user_func("recipients_" . $plugin . "_store", $varArray);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
$recipient->store();
|
||||
|
||||
// Remove group associations
|
||||
if (isset($_REQUEST["ckbRemove"])) {
|
||||
$oGroupMembers = new RecipientGroupMemberCollection;
|
||||
|
||||
foreach ($_REQUEST["ckbRemove"] as $iGroupMemberID) {
|
||||
if (is_numeric($iGroupMemberID)) {
|
||||
$oGroupMembers->delete($iGroupMemberID);
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
if (count($aMessages) > 0) {
|
||||
$sNotis = $notification->returnNotification("warning", implode("<br>", $aMessages)) . "<br>";
|
||||
}
|
||||
|
||||
$oForm = new UI_Table_Form("properties");
|
||||
$oForm->setVar("frame", $frame);
|
||||
$oForm->setVar("area", $area);
|
||||
$oForm->setVar("action", "recipients_save");
|
||||
$oForm->setVar("idrecipient", $recipient->get("idnewsrcp"));
|
||||
|
||||
$oForm->addHeader(i18n("Edit recipient", "cl_newsletter"));
|
||||
|
||||
$oTxtName = new cHTMLTextbox("name", $recipient->get("name"), 40);
|
||||
$oTxtEMail = new cHTMLTextbox("email", $recipient->get("email"), 40);
|
||||
$oCkbConfirmed = new cHTMLCheckbox("confirmed", "1");
|
||||
$oCkbConfirmed->setChecked($recipient->get("confirmed"));
|
||||
$oCkbDeactivated = new cHTMLCheckbox("deactivated", "1");
|
||||
$oCkbDeactivated->setChecked($recipient->get("deactivated"));
|
||||
|
||||
$oSelNewsType = new cHTMLSelectElement("newstype");
|
||||
$oOption = new cHTMLOptionElement(i18n("Text only", "cl_newsletter"), "0");
|
||||
$oSelNewsType->addOptionElement(0, $oOption);
|
||||
$oOption = new cHTMLOptionElement(i18n("HTML and text", "cl_newsletter"), "1");
|
||||
$oSelNewsType->addOptionElement(1, $oOption);
|
||||
$oSelNewsType->setDefault($recipient->get("news_type"));
|
||||
|
||||
$oForm->add(i18n("Name", "cl_newsletter"), $oTxtName->render());
|
||||
$oForm->add(i18n("E-Mail", "cl_newsletter"), $oTxtEMail->render());
|
||||
$oForm->add(i18n("Confirmed", "cl_newsletter"), $oCkbConfirmed->toHTML(false) . " (" . $recipient->get("confirmeddate") . ")");
|
||||
$oForm->add(i18n("Deactivated", "cl_newsletter"), $oCkbDeactivated->toHTML(false));
|
||||
$oForm->add(i18n("Message type", "cl_newsletter"), $oSelNewsType->render());
|
||||
|
||||
$aPluginOrder = trim_array(explode(",", getSystemProperty("plugin", "recipients-pluginorder")));
|
||||
|
||||
// Check out if there are any plugins
|
||||
if (is_array($aPluginOrder)) {
|
||||
foreach ($aPluginOrder as $sPlugin) {
|
||||
if (function_exists("recipients_" . $sPlugin . "_getTitle") &&
|
||||
function_exists("recipients_" . $sPlugin . "_display")) {
|
||||
$aPluginTitle = call_user_func("recipients_" . $sPlugin . "_getTitle");
|
||||
$aPluginDisplay = call_user_func("recipients_" . $sPlugin . "_display", $recipient);
|
||||
|
||||
if (is_array($aPluginTitle) && is_array($aPluginDisplay)) {
|
||||
foreach ($aPluginTitle as $sKey => $sValue) {
|
||||
$oForm->add($sValue, $aPluginDisplay[$sKey]);
|
||||
}
|
||||
} else {
|
||||
if (is_array($aPluginTitle) || is_array($aPluginDisplay)) {
|
||||
$oForm->add(i18n("WARNING", "cl_newsletter"), sprintf(i18n("The plugin %s delivered an array for the displayed titles, but did not return an array for the contents.", "cl_newsletter"), $sPlugin));
|
||||
} else {
|
||||
$oForm->add($aPluginTitle, $aPluginDisplay);
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
$oGroupList = new UI_List;
|
||||
$oGroupList->setWidth("100%");
|
||||
$oGroupList->setBorder(1);
|
||||
|
||||
$oAssocGroups = new RecipientGroupMemberCollection;
|
||||
$oAssocGroups->link("RecipientGroupCollection");
|
||||
$oAssocGroups->setWhere("recipientgroupmembercollection.idnewsrcp", $recipient->get("idnewsrcp"));
|
||||
$oAssocGroups->setOrder("recipientgroupcollection.groupname");
|
||||
$oAssocGroups->query();
|
||||
|
||||
if ($oAssocGroups->count() == 0) {
|
||||
$oGroupList->setCell(0, 1, i18n("Recipient is not member of any group", "cl_newsletter"));
|
||||
} else {
|
||||
// Headline
|
||||
$oGroupList->setCell(0, 1, "<strong>" . i18n("Groupname", "cl_newsletter") . "</strong>");
|
||||
$oImgDel = new cHTMLImage("images/delete.gif");
|
||||
$oGroupList->setCell(0, 2, $oImgDel->render());
|
||||
$oGroupList->setCellAlignment(0, 2, "right");
|
||||
|
||||
// Data
|
||||
while ($oAssocGroup = $oAssocGroups->next()) {
|
||||
$oGroup = $oAssocGroups->fetchObject("RecipientGroupCollection");
|
||||
|
||||
$oCkbRemove = new cHTMLCheckbox("ckbRemove[]", $oAssocGroup->get("idnewsgroupmember"));
|
||||
echo ($oGroup->get("idnewsgroupmember"));
|
||||
$oGroupList->setCell($oAssocGroup->get("idnewsgroupmember"), 1, $oGroup->get("groupname"));
|
||||
$oGroupList->setCell($oAssocGroup->get("idnewsgroupmember"), 2, $oCkbRemove->toHTML(false));
|
||||
$oGroupList->setCellAlignment($oAssocGroup->get("idnewsgroupmember"), 2, "right");
|
||||
}
|
||||
}
|
||||
|
||||
$oForm->add(i18n("Associated Groups", "cl_newsletter"), $oGroupList->render());
|
||||
|
||||
$oForm->add(i18n("Author", "cl_newsletter"), $classuser->getUserName($recipient->get("author")) . " (" . $recipient->get("created") . ")");
|
||||
$oForm->add(i18n("Last modified by", "cl_newsletter"), $classuser->getUserName($recipient->get("modifiedby")) . " (" . $recipient->get("lastmodified") . ")");
|
||||
|
||||
$oPage->setContent($sNotis . $oForm->render(true));
|
||||
} else {
|
||||
$oPage->setContent($sNotis . "");
|
||||
}
|
||||
|
||||
$oPage->render();
|
||||
?>
|
||||
Laden …
Tabelle hinzufügen
Einen Link hinzufügen
In neuem Issue referenzieren