Hallo
Wo kann ich das Modul für den Newsletter + Handler downloaden?
danke
Newsletter Handler
-
- Beiträge: 4250
- Registriert: Do 30. Jun 2005, 22:56
- Wohnort: Eltmann, Unterfranken, Bayern
- Kontaktdaten:
Re: Newsletter Handler
Hallo,
entweder aus einem installierten Demomandanten...
...oder direkt hier http://www.conrepo.org/cms/front_conten ... dardmodule
Gruß aus Franken
Ortwin
entweder aus einem installierten Demomandanten...
...oder direkt hier http://www.conrepo.org/cms/front_conten ... dardmodule
Gruß aus Franken
Ortwin
ConLite 2.1, alternatives und stabiles Update von Contenido 4.8.x unter PHP 7.x - Download und Repo auf Gitport.de
phpBO Search Advanced - das Suchwort-Plugin für CONTENIDO 4.9
Mein Entwickler-Blog
phpBO Search Advanced - das Suchwort-Plugin für CONTENIDO 4.9
Mein Entwickler-Blog
Re: Newsletter Handler
danke, leider erhalte ich jedoch bei input code einen fehler in zeile 26....
Code: Alles auswählen
<input> cInclude('classes', 'class.htmlelements.php');
cInclude('classes', 'contenido/class.clientslang.php');
cInclude('classes', 'contenido/class.client.php');
cInclude('classes', 'class.newsletter.groups.php');
cInclude('classes', 'class.newsletter.recipients.php');
cInclude('frontend', 'includes/class.input.helper.php'); # Note, this file is located in <client-path>/includes!
// Initialisation
$oClientLang = new cApiClientLanguage(false, $client, $lang);
$oClient = new cApiClient($client);
/*
* Used variables:
* JoinSel: Selection, which group will be joined (Default, Selected, User specified)
* JoinMultiple: If JoinSel = UserSelected then: More than one group may be selected
* JoinGroups: Selected group(s)
* JoinMessageType: Message type for new recipients: User select (user), text or html
* FrontendLink: Link to Frontend Users enabled?
* FrontendConfirm: Confirmation of newsletter subscription means: Activate frontend account, nothing
* FrontendDel: Cancellation of newsletter subscription means: Delete frontend account, Deactivate account, nothing
* SenderEMail: Sender e-mail address
* HandlerID: ID of handler article
* ChangeEMailID: ID of change e-mail handler article
*/
$aSettings = array();
$aSettings['JoinSel'] = $oClientLang->getProperty('newsletter', 'joinsel');
$aSettings['JoinMultiple'] = $oClientLang->getProperty('newsletter', 'joinmultiple');
$aSettings['JoinGroups'] = $oClientLang->getProperty('newsletter', 'joingroups');
$aSettings['JoinMessageType'] = $oClientLang->getProperty('newsletter', 'joinmessagetype');
$aSettings['FrontendLink'] = $oClient->getProperty('newsletter', 'frontendlink'); # Note: Stored for client, as frontendusers are language independent
$aSettings['FrontendConfirm'] = "CMS_VALUE[5]";
$aSettings['FrontendDel'] = "CMS_VALUE[6]";
$aSettings['SenderEMail'] = $oClient->getProperty('global', 'sender-email'); # This one could be recycled by other modules...
// Setting default values
// If there is no selection option set or if no groups has been selected, activate option Default
if ($aSettings['JoinSel'] == '' || $aSettings['JoinGroups'] == '') {
$aSettings['JoinSel'] = "Default";
}
if ($aSettings['FrontendConfirm'] == '') {
$aSettings['FrontendConfirm'] = "ActivateUser";
}
if ($aSettings['FrontendDel'] == '') {
$aSettings['FrontendDel'] = "DeleteUser";
}
if (!is_numeric($_REQUEST['selHandlerCatArt'.$cnumber]) || $_REQUEST['selHandlerCatArt'.$cnumber] < 0) {
$_REQUEST['selHandlerCatArt'.$cnumber] = 0;
}
// Saving changes, if any
if ($_REQUEST['hidAction'.$cnumber] == 'save')
{
if ($_REQUEST['radJoin'.$cnumber] != '' && $_REQUEST['radJoin'.$cnumber] != $aSettings['JoinSel'])
{
$aSettings['JoinSel'] = $_REQUEST['radJoin'.$cnumber];
$oClientLang->setProperty('newsletter', 'joinsel', $aSettings['JoinSel']);
}
if ($_REQUEST['ckbJoinMultiple'.$cnumber] != $aSettings['JoinMultiple'])
{
$aSettings['JoinMultiple'] = $_REQUEST['ckbJoinMultiple'.$cnumber];
$oClientLang->setProperty('newsletter', 'joinmultiple', $aSettings['JoinMultiple']);
}
if ($_REQUEST['hidJoinGroups'.$cnumber] != '' && $_REQUEST['hidJoinGroups'.$cnumber] != $aSettings['JoinGroups'])
{
$aSettings['JoinGroups'] = $_REQUEST['hidJoinGroups'.$cnumber];
$oClientLang->setProperty('newsletter', 'joingroups', $aSettings['JoinGroups']);
}
if ($_REQUEST['selMessageType'.$cnumber] != $aSettings['JoinMessageType'])
{
$aSettings['JoinMessageType'] = $_REQUEST['selMessageType'.$cnumber];
$oClientLang->setProperty('newsletter', 'joinmessagetype', $aSettings['JoinMessageType']);
}
if ($_REQUEST['ckbFrontendLink'.$cnumber] != $aSettings['FrontendLink'])
{
$aSettings['FrontendLink'] = $_REQUEST['ckbFrontendLink'.$cnumber];
$oClient->setProperty('newsletter', 'frontendlink', $aSettings['FrontendLink']);
}
if ($_REQUEST['ckbUpdateHandlerID'.$cnumber] == 'enabled')
{
// Trick: If UpdateHandlerID is enabled, save id as client setting
$iHandlerCatArt = $_REQUEST['selHandlerCatArt'.$cnumber];
$oClientLang->setProperty('newsletter', 'idcatart', $iHandlerCatArt);
}
if (isValidMail($_REQUEST['txtSender'.$cnumber]) && $_REQUEST['txtSender'.$cnumber] != $aSettings['SenderEMail'])
{
$aSettings['SenderEMail'] = $_REQUEST['txtSender'.$cnumber];
$oClient->setProperty('global', 'sender-email', $aSettings['SenderEMail']);
}
}
// Getting current handler article id
$iHandlerCatArt = $oClientLang->getProperty('newsletter', 'idcatart');
unset ($oClientLang);
unset ($oClient);
// Show options
$oCfgTable = new UI_Config_Table;
$oHidAction = new cHTMLHiddenField('hidAction'.$cnumber, 'save');
$oTxtSender = new cHTMLTextbox("txtSender".$cnumber, $aSettings['SenderEMail'], 30);
$oCfgTable->setCell('sender', 0, mi18n("Sender e-mail:"));
$oCfgTable->setCell('sender', 1, $oHidAction->render().$oTxtSender->render());
$oSelHandlerCatArt = new cHTMLInputSelectElement('selHandlerCatArt'.$cnumber, 1, '', true);
$oOption = new cHTMLOptionElement(mi18n("- Please select -"), '');
$oSelHandlerCatArt->addOptionElement(0, $oOption);
$oSelHandlerCatArt->addCategories(0, true, false, false, true, true);
$oSelHandlerCatArt->setDefault($iHandlerCatArt);
$oCkbUpdate = new cHTMLCheckbox('ckbUpdateHandlerID'.$cnumber, 'enabled');
$oCkbUpdate->setEvent('click', 'if (this.checked) {document.forms[0].selHandlerCatArt'.$cnumber.'.disabled = false;} else {document.forms[0].selHandlerCatArt'.$cnumber.'.disabled = true;}');
$oCfgTable->setCell('handler', 0, mi18n("Handler Article:"));
$oCfgTable->setCell('handler', 1, $oSelHandlerCatArt->render()."\n ".$oCkbUpdate->toHTML(false).mi18n("Update"));
// Getting newsletter groups (if any)
$oRcpGroups = new RecipientGroupCollection;
$oRcpGroups->setWhere('idclient', $client);
$oRcpGroups->setWhere('idlang', $lang);
$oRcpGroups->setWhere('defaultgroup', '0');
$oRcpGroups->setOrder('defaultgroup DESC, groupname ASC');
$oRcpGroups->query();
// Join options
// If newsletter groups are available, provide group options, otherwise show only
// 'Default' option. This is necessary, as there may have been groups specified (and used)
// but they have been deleted, later on.
$oCfgTable->setCell('join_01', 0, mi18n("Join:"));
if ($oRcpGroups->Count() == 0) {
// No groups available, only default group possible
$oRadJoinDefault = new cHTMLRadioButton ('radJoin'.$cnumber, 'Default', '', true);
$oCfgTable->setCell('join_01', 1, $oRadJoinDefault->toHTML(false).mi18n("default group"));
} else {
// Groups available, show different group join options
// Join default group only
if ($aSettings['JoinSel'] == 'Default') {
$oRadJoinDefault = new cHTMLRadioButton ('radJoin'.$cnumber, 'Default', '', true);
} else {
$oRadJoinDefault = new cHTMLRadioButton ('radJoin'.$cnumber, 'Default');
}
$oRadJoinDefault->setEvent('click', "document.forms[0].elements['ckbJoinMultiple".$cnumber."'].disabled = true; document.forms[0].selGroup".$cnumber.".disabled = true;");
$oCfgTable->setCell('join_01', 1, $oRadJoinDefault->toHTML(false).mi18n("default group"));
$oCfgTable->setRowBgColor('join_01', $cfg["color"]["table_dark"]);
// Join admin selected groups automatically
if ($aSettings['JoinSel'] == 'Selected') {
$oRadJoinSelected = new cHTMLRadioButton ('radJoin'.$cnumber, 'Selected', '', true);
} else {
$oRadJoinSelected = new cHTMLRadioButton ('radJoin'.$cnumber, 'Selected');
}
$oRadJoinSelected->setEvent('click', "document.forms[0].elements['ckbJoinMultiple".$cnumber."'].disabled = false; document.forms[0].selGroup".$cnumber.".disabled = false;");
$oCfgTable->setCell('join_02', 0, '');
$oCfgTable->setCell('join_02', 1, $oRadJoinSelected->toHTML(false).mi18n("selected group(s)"));
$oCfgTable->setRowBgColor('join_02', $cfg["color"]["table_dark"]);
// Join the groups the user has selected (-> provide a list for the user), optionally, the user may select more than one group
if ($aSettings['JoinSel'] == 'UserSelected')
{
$oRadJoinUserSel = new cHTMLRadioButton ('radJoin'.$cnumber, 'UserSelected', '', true);
$oCkbJoinMultiple = new cHTMLCheckbox ('ckbJoinMultiple'.$cnumber, 'enabled', '', $aSettings['JoinMultiple']);
} else {
$oRadJoinUserSel = new cHTMLRadioButton ('radJoin'.$cnumber, 'UserSelected');
$oCkbJoinMultiple = new cHTMLCheckbox ('ckbJoinMultiple'.$cnumber, 'enabled', '', false, true);
}
$oRadJoinUserSel->setEvent('click', "document.forms[0].elements['ckbJoinMultiple".$cnumber."'].disabled = false; document.forms[0].selGroup".$cnumber.".disabled = false;");
$oCfgTable->setCell('join_03', 0, '');
$oCfgTable->setCell('join_03', 1, $oRadJoinUserSel->toHTML(false).mi18n("group(s) as selected by user").'<br />'."\n".$oCkbJoinMultiple->toHTML(false).mi18n("Multiple group selection allowed"));
$oCfgTable->setRowBgColor('join_03', $cfg["color"]["table_dark"]);
$oCfgTable->setCell('groups', 0, mi18n("Select group(s):"));
// Show groups
// Trick: To save multiple selections in <select>-Element, add some JS which saves the
// selection, comma separated in a hidden input field on change.
$sSkript = ' <script type="text/javascript"><!--'."\n".
' function fncUpdateSel() {'."\n".
' var strSel = "";'."\n".
' for(i = 0; i < document.forms[0].selGroup'.$cnumber.'.length; i++) {'."\n".
' if(document.forms[0].selGroup'.$cnumber.'.options[i].selected == true) {'."\n".
' if (strSel != "")'."\n".
' strSel = strSel + ",";'."\n".
' strSel = strSel + document.forms[0].selGroup'.$cnumber.'.options[i].value;'."\n".
' }'."\n".
' }'."\n".
' document.forms[0].elements["hidJoinGroups'.$cnumber.'"].value = strSel;'."\n".
' }'."\n".
' //--></script>'."\n";
if ($aSettings['JoinSel'] == 'Default') {
$oSelGroup = new cHTMLSelectElement ('selGroup'.$cnumber, '', '', true);
} else {
$oSelGroup = new cHTMLSelectElement ('selGroup'.$cnumber, '');
}
$oSelGroup->setSize(5);
$oSelGroup->setMultiselect();
$oSelGroup->setEvent('change', "fncUpdateSel()");
$aGroups = explode(',', $aSettings['JoinGroups']);
while ($oRcpGroup = $oRcpGroups->next()) {
$iID = $oRcpGroup->get('idnewsgroup');
if (in_array ($iID, $aGroups)) {
$oOption = new cHTMLOptionElement($oRcpGroup->get('groupname'), $iID, true);
} else {
$oOption = new cHTMLOptionElement($oRcpGroup->get('groupname'), $iID, false);
}
$oSelGroup->addOptionElement($iID, $oOption);
}
$oHidGroups = new cHTMLHiddenField ('hidJoinGroups'.$cnumber, $aSettings['JoinGroups']);
$oCfgTable->setCell('groups', 1, $sSkript.$oSelGroup->render().$oHidGroups->render());
}
// Options: Message type (user [->selectbox], text or html)
$oCfgTable->setCell('options_01', 0, mi18n("Options:"));
$oSelMsgType = new cHTMLSelectElement ('selMessageType'.$cnumber);
$oOption = new cHTMLOptionElement(mi18n("User selected"), "user");
$oSelMsgType->addOptionElement(0, $oOption);
$oOption = new cHTMLOptionElement(mi18n("Text only"), "text");
$oSelMsgType->addOptionElement(1, $oOption);
$oOption = new cHTMLOptionElement(mi18n("HTML and text"), "html");
$oSelMsgType->addOptionElement(2, $oOption);
$oSelMsgType->setDefault($aSettings['JoinMessageType']);
$oCfgTable->setCell('options_01', 1, mi18n("Default message type:").' '.$oSelMsgType->render());
// Frontend Link
$oCfgTable->setCell('link_01', 0, mi18n("Frontend Users:"));
$oCkbLink = new cHTMLCheckbox('ckbFrontendLink'.$cnumber, 'enabled', '', $aSettings['FrontendLink']);
$sSkript = "if (this.checked) {
document.forms[0].elements['CMS_VAR[5]'][0].disabled = false;
document.forms[0].elements['CMS_VAR[5]'][1].disabled = false;
document.forms[0].elements['CMS_VAR[6]'][0].disabled = false;
document.forms[0].elements['CMS_VAR[6]'][1].disabled = false;
document.forms[0].elements['CMS_VAR[6]'][2].disabled = false;
} else {
document.forms[0].elements['CMS_VAR[5]'][0].disabled = true;
document.forms[0].elements['CMS_VAR[5]'][1].disabled = true;
document.forms[0].elements['CMS_VAR[6]'][0].disabled = true;
document.forms[0].elements['CMS_VAR[6]'][1].disabled = true;
document.forms[0].elements['CMS_VAR[6]'][2].disabled = true;}";
$oCkbLink->setEvent("click", $sSkript);
$oCfgTable->setCell('link_01', 1, $oCkbLink->toHTML(false).mi18n("Activate Link"));
$oCfgTable->setRowBgColor('link_01', $cfg["color"]["table_light"]);
// Link: Activation options
$oCfgTable->setCell('link_02', 0, '');
switch ($aSettings['FrontendConfirm'])
{
case "Nothing":
$oRadActivateUser = new cHTMLRadioButton ("CMS_VAR[5]", "ActivateUser", "", false);
$oRadActivateNothing = new cHTMLRadioButton ("CMS_VAR[5]", "Nothing", "", true);
break;
default:
$oRadActivateUser = new cHTMLRadioButton ("CMS_VAR[5]", "ActivateUser", "", true);
$oRadActivateNothing = new cHTMLRadioButton ("CMS_VAR[5]", "Nothing", "", false);
}
switch ($aSettings['FrontendDel'])
{
case "DisableUser":
$oRadDelDelete = new cHTMLRadioButton ("CMS_VAR[6]", "DeleteUser", "", false);
$oRadDelDisable = new cHTMLRadioButton ("CMS_VAR[6]", "DisableUser", "", true);
$oRadDelNothing = new cHTMLRadioButton ("CMS_VAR[6]", "Nothing", "", false);
break;
case "Nothing":
$oRadDelDelete = new cHTMLRadioButton ("CMS_VAR[6]", "DeleteUser", "", false);
$oRadDelDisable = new cHTMLRadioButton ("CMS_VAR[6]", "DisableUser", "", false);
$oRadDelNothing = new cHTMLRadioButton ("CMS_VAR[6]", "Nothing", "", true);
break;
default:
$oRadDelDelete = new cHTMLRadioButton ("CMS_VAR[6]", "DeleteUser", "", true);
$oRadDelDisable = new cHTMLRadioButton ("CMS_VAR[6]", "DisableUser", "", false);
$oRadDelNothing = new cHTMLRadioButton ("CMS_VAR[6]", "Nothing", "", false);
}
if ($aSettings['FrontendLink'] == '')
{
$oRadActivateUser->setDisabled(true);
$oRadActivateNothing->setDisabled(true);
$oRadDelDelete->setDisabled(true);
$oRadDelDisable->setDisabled(true);
$oRadDelNothing->setDisabled(true);
}
$oCfgTable->setCell('link_02', 1, mi18n("Confirmation means:").'<br />'.
$oRadActivateUser->toHTML(false).mi18n("Activate").
$oRadActivateNothing->toHTML(false).mi18n("No changes"));
$oCfgTable->setRowBgColor('link_02', $cfg["color"]["table_light"]);
// Link: Cancellation options
$oCfgTable->setCell('link_03', 0, '');
$oCfgTable->setCell('link_03', 1, mi18n("Cancellation means:").'<br />'.
$oRadDelDelete->toHTML(false).mi18n("Delete").
$oRadDelDisable->toHTML(false).mi18n("Disable").
$oRadDelNothing->toHTML(false).mi18n("No changes"));
$oCfgTable->setRowBgColor('link_03', $cfg["color"]["table_light"]);
$oCfgTable->render(true);
-
- Beiträge: 4250
- Registriert: Do 30. Jun 2005, 22:56
- Wohnort: Eltmann, Unterfranken, Bayern
- Kontaktdaten:
Re: Newsletter Handler
Hallo tradex1,
wenn du die in der zip-Datei enthaltene xml-Datei per Modulimport in dein vorhandenes Contenido holst sollte das Modul eigentlich einwandfrei funktionieren.
Der von dir gepostete Code sieht aber eher aus wie per Copy&Paste aus der xml-Datei herauskopiert. Diesen Code kannst du aber so weder im Input noch im Output direkt verwenden, da er für die xml-Datei speziell aufbereitet ist. Diese Aufbereitung wird beim Import wieder rückgängig gemacht.
Gruß aus Franken
Ortwin
wenn du die in der zip-Datei enthaltene xml-Datei per Modulimport in dein vorhandenes Contenido holst sollte das Modul eigentlich einwandfrei funktionieren.
Der von dir gepostete Code sieht aber eher aus wie per Copy&Paste aus der xml-Datei herauskopiert. Diesen Code kannst du aber so weder im Input noch im Output direkt verwenden, da er für die xml-Datei speziell aufbereitet ist. Diese Aufbereitung wird beim Import wieder rückgängig gemacht.
Gruß aus Franken
Ortwin
ConLite 2.1, alternatives und stabiles Update von Contenido 4.8.x unter PHP 7.x - Download und Repo auf Gitport.de
phpBO Search Advanced - das Suchwort-Plugin für CONTENIDO 4.9
Mein Entwickler-Blog
phpBO Search Advanced - das Suchwort-Plugin für CONTENIDO 4.9
Mein Entwickler-Blog
Re: Newsletter Handler
super, wieder etwas gelernt... herzlichen dank.
gibt es die newsletter form auch zum downloaden?
gibt es die newsletter form auch zum downloaden?
-
- Beiträge: 4250
- Registriert: Do 30. Jun 2005, 22:56
- Wohnort: Eltmann, Unterfranken, Bayern
- Kontaktdaten:
Re: Newsletter Handler
Hallo tradex1,
gern geschehen.
Ich schau mal, wenn ich es die Tage schaffe stelle ich mal noch die anderen Standardmodule der 4.8.12 online.
Gruß aus Franken
Ortwin
gern geschehen.
Ich schau mal, wenn ich es die Tage schaffe stelle ich mal noch die anderen Standardmodule der 4.8.12 online.
Gruß aus Franken
Ortwin
ConLite 2.1, alternatives und stabiles Update von Contenido 4.8.x unter PHP 7.x - Download und Repo auf Gitport.de
phpBO Search Advanced - das Suchwort-Plugin für CONTENIDO 4.9
Mein Entwickler-Blog
phpBO Search Advanced - das Suchwort-Plugin für CONTENIDO 4.9
Mein Entwickler-Blog