Newsletter Schönheitsfehler

Gesperrt
Dinkel
Beiträge: 565
Registriert: Di 22. Mär 2005, 14:52
Kontaktdaten:

Newsletter Schönheitsfehler

Beitrag von Dinkel »

Also es ist sicher schon anderen aufgefallen... Wenn man im Newsletter ist (und der Newsletter Handler konfiguriert ist), dann hat man in der Übersicht über die Newsletter ja diese Briefchen (links neben dem Newsletter und rechts daneben). Ebenso hat man das Briefchen neben "Newsletter erzeugen".

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().'&nbsp;'.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>&nbsp;</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>&nbsp;</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();
?>
Dann muss man noch das Bildchen in den Ordner contenido/images/ laden und tataaaa, fertig:

Bild

Wer was auszusetzen hat, gerne ;) Bin immer offen für Verbesserungsvorschläge.

So long,
Dinkel
selbstentwickelte Module:
Downloads und Infos zu den Modulen: gibt es hier.
Modul: Forum | Version 0.9 | getestet: 4.6.24 MR, 4.8.11, 4.8.11 AMR
Modul: Galleriffic | Version: 0.3.4 BETA | getestet: 4.8.11, 4.8.11 AMR, 4.8.12, 4.8.12 AMR
Modul: Metadata | Version: 2.0 | getestet: 4.9.7, 4.9.7 AMR
Modul: Slider Gallery | Version: 1.0 | getestet: 4.9.12 AMR
Modul: Up- & Download | Version: 4.1 | getestet: 4.9.12 AMR
emergence
Beiträge: 10653
Registriert: Mo 28. Jul 2003, 12:49
Wohnort: Austria
Kontaktdaten:

Beitrag von emergence »

das ist was für HerrB...

verschoben..
*** make your own tools (wishlist :: thx)
HerrB
Beiträge: 6935
Registriert: Do 22. Mai 2003, 12:44
Wohnort: Berlin
Kontaktdaten:

Beitrag von HerrB »

Ich schau mal ... weitere Änderungen im Newsletter-Code sind z.Z. nicht zu empfehlen, da er sich grundlegend ändert (so zur Info).

Gruß
HerrB
Bitte keine unaufgeforderten PMs oder E-Mails -> use da Forum!

Newsletter: V4.4.x | V4.6.0-15 (Module, Backend) | V4.6.22+
Standardartikelliste: V4.4.x | V4.6.x
http://www.contenido.org/forum/search.php | http://faq.contenido.org | http://www.communido.net
Dinkel
Beiträge: 565
Registriert: Di 22. Mär 2005, 14:52
Kontaktdaten:

Beitrag von Dinkel »

aha, interessant ;) gibt es einen vorläufigen Termin?

Falls Interesse besteht, was ich geändert habe, einfach im Code mal nach newsletter_edit.gif suchen ;)
selbstentwickelte Module:
Downloads und Infos zu den Modulen: gibt es hier.
Modul: Forum | Version 0.9 | getestet: 4.6.24 MR, 4.8.11, 4.8.11 AMR
Modul: Galleriffic | Version: 0.3.4 BETA | getestet: 4.8.11, 4.8.11 AMR, 4.8.12, 4.8.12 AMR
Modul: Metadata | Version: 2.0 | getestet: 4.9.7, 4.9.7 AMR
Modul: Slider Gallery | Version: 1.0 | getestet: 4.9.12 AMR
Modul: Up- & Download | Version: 4.1 | getestet: 4.9.12 AMR
HerrB
Beiträge: 6935
Registriert: Do 22. Mai 2003, 12:44
Wohnort: Berlin
Kontaktdaten:

Beitrag von HerrB »

Nö, aber es gibt eine Preview:
http://contenido.org/forum/viewtopic.php?t=13543

Nur zum Test, nicht produktiv nutzen!

Gruß
HerrB
Bitte keine unaufgeforderten PMs oder E-Mails -> use da Forum!

Newsletter: V4.4.x | V4.6.0-15 (Module, Backend) | V4.6.22+
Standardartikelliste: V4.4.x | V4.6.x
http://www.contenido.org/forum/search.php | http://faq.contenido.org | http://www.communido.net
kptkip
Beiträge: 192
Registriert: Mi 8. Jun 2005, 18:02
Kontaktdaten:

Case-Sensitivity Problem im Newsletter

Beitrag von kptkip »

Ich hätte da noch eine Anregung für eine neue Newsletter-Applikation.

Der jetzige Newsletter (sowohl per Backend als auch über das FE-Formular) transformiert fälschlicherweise Email-Adressen automatisch in Kleinbuchstaben.
Dies ist allerdings nicht korrekt, da der String vor dem @ case-sensitiv definiert ist. (s. hierzu: http://www.faqs.org/rfcs/rfc2821.html).

Wenn das in zukünftigen Versionen durch das Weglassen der strtolower()-Anweisung in
  • /classes/class.newsletter.recipients.php
    /includes/include.newsletter.edit.php
geschehn könnte, wäre das klasse.

So long!
HerrB
Beiträge: 6935
Registriert: Do 22. Mai 2003, 12:44
Wohnort: Berlin
Kontaktdaten:

Beitrag von HerrB »

Ich sage mal nein.

1.) RFC2821, 2.4:
However, exploiting the case sensitivity of mailbox local-parts impedes interoperability and is discouraged.
(local-parts aus local-parts@domain.tld).

"Das Ausnutzen der Groß-/Kleinschreibungsunterscheidung erschwert die Interoperabilität und wird nicht empfohlen."

2.) Für mySQL (<=4 und >= 5 im Kompatibilitätsmodus) gibt es keinen Unterschied zwischen Mail@MaIl.de und mail@mail.de ("select * from con_news_rcp where email = 'Mail@MaIl.de'" und "select * from con_news_rcp where email = 'mail@mail.de'" liefert exakt das gleiche Ergebnis).

Daher kann man E-Mails in unterschiedlicher Schreibweise gar nicht via Anmeldung eintragen. Da die E-Mail-Adresse des Newsletter-Empfängers als eindeutige Kennung auch für Frontend-Accounts genutzt werden kann, wäre das auch echt ungünstig... (schematisch: "... where rcp.email = account.name ... ").

Damit man den Code ggf. auch auf anderen DBs (z.B. Oracle) verwenden kann (wenn Contenido es denn unterstützen würde), wird die Schreibweise der E-Mail-Adressen eingeebnet, um hier Probleme zu vermeiden.

Ich bin für Argumente offen, würde es aber für die Mehrheit der Nutzer, Datenbanken und Anwendungen in der jetzigen Form belassen.

Gruß
HerrB
Bitte keine unaufgeforderten PMs oder E-Mails -> use da Forum!

Newsletter: V4.4.x | V4.6.0-15 (Module, Backend) | V4.6.22+
Standardartikelliste: V4.4.x | V4.6.x
http://www.contenido.org/forum/search.php | http://faq.contenido.org | http://www.communido.net
HerrB
Beiträge: 6935
Registriert: Do 22. Mai 2003, 12:44
Wohnort: Berlin
Kontaktdaten:

Beitrag von HerrB »

Closed.

Gruß
HerrB
Bitte keine unaufgeforderten PMs oder E-Mails -> use da Forum!

Newsletter: V4.4.x | V4.6.0-15 (Module, Backend) | V4.6.22+
Standardartikelliste: V4.4.x | V4.6.x
http://www.contenido.org/forum/search.php | http://faq.contenido.org | http://www.communido.net
Gesperrt