Seite 1 von 1

Layoutproblem bei Newsletter-Modul

Verfasst: Di 8. Nov 2005, 12:49
von sabsab
hi, zusammen!

habe ein kleines layoutproblem mit dem standard newslettermodul für version 4.4.5.

nur output:

Code: Alles auswählen

<?php

/* Workflow is as follows:
 *
 * - Each action needs to be confirmed by the user
 * - The action "subscribe" subscribes an user
 * - The action "unsubscribe" unsubscribes an user
 * - The action "stop" temporarly removes delivery to the user
 * - The action "goon" resumes the newsletter delivery to that user
*/

/* Der Workflow funktioniert folgenderma?en:
 *
 * - Jede Aktion mu? vom Benutzer best?tigt werden
 * - Die Aktion "subscribe" meldet einen Benutzer an
 * - Die Aktion "unsubscribe" meldet einen Benutzer ab
 * - Die Aktion "stop" deaktiviert die Newsletterverteilung an den Benutzer
 * - Die Aktion "goon" nimmt die Newsletterverteilung an den Benutzer wieder auf
*/

$_news_lang["nosuchlastaction"] = "Konnte gewählte Newsletter-Aktion nicht ausführen.";
$_news_lang["hashdoesntmatch"] = "Hash stimmt nicht überein. Bitte Newsletter-Aktion erneut ausführen.";
$_news_lang["subscribe"] = "Sie wurden in den Newsletterverteiler eingetragen.";
$_news_lang["unsubscribe"] = "Sie wurden aus dem Newsletterverteiler entfernt.";
$_news_lang["stop"] = "Sie wurden temporär aus dem Newsletterverteiler entfernt, können sich aber jederzeit wieder anmelden.";
$_news_lang["goon"] = "Sie wurden wieder in den Newsletterverteiler eingetragen.";
$_news_lang["alreadyexists"] = "Diese E-Mail-Addresse ist bereits für den Newsletter eingetragen.";
$_news_lang["confirm"]["subject"] = "Newsletter-Bestätigung";
$_news_lang["confirm"]["couldnotsend"] = "Konnte Bestätigung nicht versenden.";
$_news_lang["confirm"]["confirmsent"] = "Bestätigung versendet. Bitte rufen Sie die E-Mail ab und klicken Sie auf den Bestätigungslink.";
$_news_lang["confirm"]["alreadyconfirmed"] = "Diese E-Mail-Addresse wurde bereits bestätigt.";
$_news_lang["confirm"]["subscribe"] = 
"Sehr geehrter Interessent,\n\n
Sie möchten sich für unseren Newsletter eintragen. Hierzu benötigen wir\n
eine Bestätigung, die Sie mit dem Klick auf folgenden Link ausführen:\n\n
%s\n\n
Sollte der Link nicht funktionieren, kopieren Sie diesen bitte komplett\n
in die Addressleiste Ihres Browsers."; 
$_news_lang["confirm"]["stop"] = 
"Sehr geehrter Newsletter-Abonnent,\n\n
Sie möchten sich vorrübergehend für unseren Newsletter abmelden.\n
Bitte klicken Sie auf folgenden Link, um diese Aktion zu bestätigen:\n\n
%s\n\n
Sollte der Link nicht funktionieren, kopieren Sie diesen bitte komplett\n
in die Addressleiste Ihres Browsers."; 
$_news_lang["confirm"]["goon"] = 
"Sehr geehrter Newsletter-Abonnent,\n\n
Sie möchten unseren Newsletter wieder beziehen.\n
Bitte klicken Sie auf folgenden Link, um diese Aktion zu bestätigen:\n\n
%s\n\n
Sollte der Link nicht funktionieren, kopieren Sie diesen bitte komplett\n
in die Addressleiste Ihres Browsers."; 
$_news_lang["confirm"]["unsubscribe"] = 
"Sehr geehrter Newsletter-Abonnent,\n\n
Sie möchten unseren Newsletter abmelden.\n
Bitte klicken Sie auf folgenden Link, um diese Aktion zu bestätigen:\n\n
%s\n\n
Sollte der Link nicht funktionieren, kopieren Sie diesen bitte komplett\n
in die Addressleiste Ihres Browsers."; 
$_news_lang["subscribtion"] = "Newsletteranmeldung";

function _news_confirm ($hash, $email)
{
    global $db, $client, $lang, $_news_lang, $cfg;
    
    /* Check if the hashcode matches the db one */
    $sql = "SELECT idnewsrcp, lastaction, hash FROM ".$cfg["tab"]["news_rcp"]."
            WHERE email='$email' AND idclient='$client' AND idlang='$lang'";
    $db->query($sql);
    
    if ($db->next_record())
    {
        if ($db->f("hash") != $hash)
        {
            echo $_news_lang["hashdoesntmatch"];
            
        } else {
            $idnewsrcp = $db->f("idnewsrcp");
            
            if ($db->f("lastaction") == "")
            {
            	echo $_news_lang["confirm"]["alreadyconfirmed"];
            	return;
            }
            
            switch ($db->f("lastaction"))
            {
                case "subscribe":
                    $sql = "UPDATE ".$cfg["tab"]["news_rcp"]." SET deactivated='0', confirmed='1', lastaction='' WHERE idnewsrcp = '$idnewsrcp'";
                    break;
                case "unsubscribe":
                	$sql = "DELETE FROM ".$cfg["tab"]["news_rcp"]." WHERE idnewsrcp = '$idnewsrcp'";
                	break;
                case "stop":
                	$sql = "UPDATE ".$cfg["tab"]["news_rcp"]." SET deactivated='1', confirmed='1', lastaction='' WHERE idnewsrcp = '$idnewsrcp'";
                	break;
                case "goon":
                	$sql = "UPDATE ".$cfg["tab"]["news_rcp"]." SET deactivated='0', confirmed='1', lastaction='' WHERE idnewsrcp = '$idnewsrcp'";                	
                    break;                        
                default: 
                	$sql = "";
            }
            
            $db->query($sql);
            
            echo $_news_lang[$db->f("lastaction")];
        
        
        }
        
    } else {
        echo $_news_lang["nosuchlastaction"];
    }
    //switch ($action)
}


function _news_createconfirm ($idnewsrcp, $action)
{
	global $db, $lang, $client, $_news_lang, $cfg, $cfgClient;
   	
   	$sql = "SELECT email, hash FROM ".$cfg["tab"]["news_rcp"]." WHERE idnewsrcp = '$idnewsrcp'";
   	$db->query($sql);
   
   if (!$db->next_record())
   {
   	return;
   }
   
   $hash = $db->f("hash");
   $email = $db->f("email");
   
   $path = $cfgClient[$client]["path"]["htmlpath"]."news.php?mode=confirm&hash=$hash&email=$email";
   
   $sql = "UPDATE ".$cfg["tab"]["news_rcp"]." SET lastaction='$action' WHERE idnewsrcp = '$idnewsrcp'";
   $db->query($sql);
   
   $mailtext = sprintf($_news_lang["confirm"][$action], $path);

	if (!mail($db->f("email"), $_news_lang["confirm"]["subject"], $mailtext, "X-Mailer: Contenido [PHP/" . phpversion())) {
		echo $_news_lang["confirm"]["couldnotsend"];
	} else {
		echo $_news_lang["confirm"]["confirmsent"];	
	}
}

if ($mode == "subscribe")
{
  /* Check if the recipient already exists */
  $sql = "SELECT idnewsrcp FROM ".$cfg["tab"]["news_rcp"]." WHERE idclient='$client' and idlang='$lang' and email='$email'";
  $db->query($sql);

  if ($db->next_record())
  {
  	echo $_news_lang["alreadyexists"];
  } else {
    $newsrcpid = $db->nextid($cfg["tab"]["news_rcp"]);
    $timestamp = date("Y-m-d H:i:s"); 

    /* Create a new hash */
    for ($i=0;$i<10;$i++)
    {
            $r .= rand();
    }
    
    $hash = md5($r);
	
	if ($name == "")
	{
		$name = $email;	
	}
	
    $sql = 'INSERT INTO
             '.$cfg["tab"]["news_rcp"].'
            SET
              name="'.$name.'",
              email="'.$email.'",
              deactivated="0",
              created="'.$timestamp.'",
              lastmodified="'.$timestamp.'",
              idclient="'.$client.'",
			  confirmed="0",
              idlang="'.$lang.'",
              hash="'.$hash.'",
              idnewsrcp = "'.$newsrcpid.'"';
 
    $db->query($sql);
    
    _news_createconfirm($newsrcpid, "subscribe");
  	
  }
}

if ($mode == "stop" || $mode == "goon" || $mode == "unsubscribe")
{
	$sql = "SELECT idnewsrcp FROM ".$cfg["tab"]["news_rcp"]." WHERE email='$email' and idclient='$client' and idlang='$lang'";
	$db->query($sql);
	
	if ($db->next_record())
	{
		$idnewsrcp = $db->f("idnewsrcp");
		
		_news_createconfirm($idnewsrcp, $mode);	
	} 
}

if ($mode == "confirm")
{
	_news_confirm($hash, $email);
}

if ($mode == "")
{
	?>
	<form action="front_content.php" method="post">
	<input type="hidden" name="idcatart" value="<?php echo $idcatart; ?>">
	<input type="hidden" name="mode" value="subscribe">
	<table border="0" style=" border: 1px; border-top:1px;border-left:0px;border-right:0px;  border-color: #0099FF;  border-style: solid">
		<tr>
			<td class="punkte"><?php echo $_news_lang["subscribtion"]; ?></td>
		</tr>
		<tr>
			<td class="location">Ihre E-Mail-Adresse: <input type="text" name="email" value="" class="location" size="22"><input type="submit" class="location" value="Go!"></td>
		</tr>	
	</table>
        </form>
	<?php	
}
?>
ich würde gerne auch dem bestätigungstext (jener text, der nach eingabe der e-mail-adr auf der homepage erscheint) einen css-style zuweisen, hierbei stehe ich aber auf dem schlauch.

weiß da einer einen rat?

danke und gruß
sabsab

Verfasst: Di 8. Nov 2005, 12:53
von rezeptionist
meinst du zb solch einen text ??
$_news_lang["subscribe"] = "Sie wurden in den Newsletterverteiler eingetragen.";
würde ich mal so versuchen

Code: Alles auswählen

$_news_lang["subscribe"] = "<p class="xyz">Sie wurden in den Newsletterverteiler eingetragen.</p>";

Verfasst: Di 8. Nov 2005, 13:04
von sabsab
hi blackmeetswhite,

vielen dank!
<p class="xyz">
nur die anführungszeichen mußten noch weg <p class=xyz> dann klappts!

danke und gruß
sabsab

Verfasst: Di 8. Nov 2005, 13:06
von rezeptionist
ok verstehe ich nicht ganz aber wenns klappt ok

so würd ich es noch verstehen

Code: Alles auswählen

<p class=\"xyz\"> 
grins aber weiter so

Verfasst: Di 8. Nov 2005, 13:13
von sabsab
hmm, das funktioniert auch!
na ja, der fachmann wundert sich und der laie freut sich.

nochmals danke.