Anmeldemodul Eingabe:
Code: Alles auswählen
<?php
$lang=REXbabelfish::getLanguageForModule('groupletter');
if("REX_VALUE[2]" != "")
$reply = "REX_VALUE[2]";
else // Default Absender
$reply = $REX["ADDON"]["settings"]["groupletter"]["REPLY_TO"];
?>
<strong><?php echo $lang['requiredfields']; ?></strong>
<br /><br />
<strong><?php echo $lang['subject']; ?></strong>:<br />
<input type="text" name="VALUE[1]" value="REX_VALUE[1]" size="50" class="inp100" />
<br /><br />
Ausgabe:
<strong><?php echo $lang['sender']; ?></strong>:<br />
<input type="text" name="VALUE[2]" value="<?php echo $reply; ?>" size="50" class="inp100" />
<br /><br />
<!--<strong>Text für Anrede Feld</strong>:<br />
<input type="text" name="VALUE[4]" value="REX_VALUE[4]" size="50" class="inp100" />
<br /><br />-->
<strong><?php echo $lang['firstname']; ?></strong>:<br />
<input type="text" name="VALUE[5]" value="REX_VALUE[5]" size="50" class="inp100" />
<br /><br />
<strong><?php echo $lang['lastname']; ?></strong>:<br />
<input type="text" name="VALUE[6]" value="REX_VALUE[6]" size="50" class="inp100" />
<br /><br />
<strong><?php echo $lang['country']; ?></strong>:<br />
<input type="text" name="VALUE[11]" value="REX_VALUE[11]" size="50" class="inp100" />
<br /><br />
<strong><?php echo $lang['gender']; ?></strong>:<br />
<input type="text" name="VALUE[13]" value="REX_VALUE[13]" size="50" class="inp100" />
<br /><br />
<strong><?php echo $lang['email']; ?></strong>:<br />
<input type="text" name="VALUE[7]" value="REX_VALUE[7]" size="50" class="inp100" />
<br /><br />
<strong><?php echo $lang['send']; ?></strong>:<br />
<input type="text" name="VALUE[8]" value="REX_VALUE[8]" size="50" class="inp100" />
<br /><br />
<strong><?php echo $lang['error']; ?></strong>:<br />
<input type="text" name="VALUE[9]" value="REX_VALUE[9]" size="50" class="inp100" />
<br /><br />
<strong><?php echo $lang['success']; ?></strong>:<br />
<textarea name="VALUE[10]" cols="80" rows="4" class="inp100" >REX_HTML_VALUE[10]</textarea>
<br /><br />
<strong><?php echo $lang['groups']; ?></strong>:<br />
<input type="text" name="VALUE[12]" value="REX_VALUE[12]" size="50" class="inp100" />
<br /><br />
Ausgabe:
Code: Alles auswählen
<?php
/** *************************************************************
* Group Newsletter Double-opt-in
* based on the checkbox module from dancefan
**/
//hier anpassen.
$confirmarticle=2; //Redaxo Artikel, wo Sie das Modul "Newsletter bestätigung" hinzugefügt haben.
if ($REX['REDAXO'])
{
//BackEnd
echo "<div><h2>REX_VALUE[1]</h2><br/>";
echo "Absender: REX_HTML_VALUE[2]<br />";
//echo "Gesendet: <a href='index.php?page=content&article_id=REX_LINK_ID[1]&mode=edit' target='_blank'>Artikel REX_LINK[1]</a><br/>";
//echo "Bestätigung: <a href='index.php?page=content&article_id=REX_LINK_ID[2]&mode=edit' target='_blank'>Artikel REX_LINK[2]</a>";
}
else
{ if (!function_exists('cleanup'))
{ function cleanup ($string)
{
// falls magic quotes on
if (get_magic_quotes_gpc())
{
$string = stripslashes($string);
}
$string = addslashes($string);
$string = strip_tags($string);
// "--","#";";","`","/" Ausfiltern von SQL-Statements
$string = str_replace(array("--","- -","#",";","`","/","<",">","{","}","[","]"),array("","","","","","","","","","","",""),$string);
// - mit Leerzeichen dazwischen (SQL-Kommentare!)
$string = preg_replace('#-\s+-#i',"",$string);
return $string;
} // end function cleanup
function checkName ($string)
{
// $name am Anfang Buchstabe; keine Zahlen und Nicht-Wortzeichen; dann
// beliebig viele Buchstaben, Bindestriche, Leerzeichen und Punkte
if (preg_match("/^[^\W\d_]([^\W\d_]|[\-\'\s\.\ä\ö\ü\Ä\Ö\Ü\ß])*$/", stripslashes($string)))
{
return true; // OK
}
else
{
return false; // falsche Eingabe
}
} // end function checkName
function checkEmail ($string)
{
// $email mindestens a@a.aa
if (ereg("^[_a-zA-Z0-9-]+(\.[_a-zA-Z0-9-]+)*@([_a-zA-Z0-9-]+\.)+([a-zA-Z]{2,4})$", stripslashes($string)))
{
return true; // OK
}
else
{
return false; // falsche Eingabe
}
} // end function checkEmail
}
//------------------------------> Formularauswerten
$message = '';
if(isset($_POST["newsletter_name"])) $name = $_POST["newsletter_name"]; else $name = "";
if(isset($_POST["newsletter_firstname"])) $vorname = $_POST["newsletter_firstname"]; else $vorname = "";
if(isset($_POST["newsletter_email"])) $email = $_POST["newsletter_email"]; else $email = "";
if(isset($_POST["newsletter_land"])) $land = $_POST["newsletter_land"]; else $land = "";
if(isset($_POST["newsletter_gender"])) $gender = $_POST["newsletter_gender"]; else $gender = "";
if ( !empty($_POST['newsletter_anmelden']))
{
$name = cleanup($name);
$vorname = cleanup($vorname);
$email = cleanup($email);
if( $_POST['newsletter_title'] == ''
|| ($vorname == '') || (checkName($vorname)!=1)
|| ($name == '') || (checkName($name)!=1)
|| ($email == '') || (checkEmail($email)!=1)
)
{
$message ="REX_VALUE[9]";
}
else
{
$id=0;
//this horrible code needs a rewrite....
$_POST["newsletter_groups"]=array(0=>$_POST['signupgroup']);
$gids =$_POST["newsletter_groups"];
$result=CGroupLetter::AddNewsletterUser($_POST['newsletter_title'], $vorname
, $name, $email
, $REX['CUR_CLANG'], $gids,$id);
if($result===true)
{ $sql=new sql;
$sql->setQuery('SELECT id,email,firstname,name from '.$REX['TABLE_PREFIX'].'229_gl_user
WHERE email="'.mysql_real_escape_string($email).'"');
//update the land and gender, CGroupLetter::AddNewsletter doesn't do this.
$usql=new sql;
$usql->setTable($REX['TABLE_PREFIX'].'229_gl_user');
$usql->setValue('land',$land);
$usql->setValue('title',$gender);
$usql->wherevar=' WHERE id='.$sql->getValue('id');
$usql->update();
$mail=new CGroupLetter();
$mail->SetLanguage($REX['CUR_CLANG'],$REX['INCLUDE_PATH']."/addons/groupletter/lang/");
$content="Newsletteranmeldung:\n";
$params=array('email'=>$email,'id'=>$sql->getValue('id'));
$params=serialize($params);
$params=base64_encode($params);
$content.='Bitte bestätigen Sie Ihre Bestellung des Newsletters mit Klick auf diesen Link: <a href="http://'.$REX['SERVER'].'/index.php?article_id='.$confirmarticle.'&data='.$params.'">Bestätigen</a>';
// Bestätigungsmail nur für erste Gruppe
$mail->SendNewsletter($email,$_POST['newsletter_title']
,$vorname,$name,$REX['CUR_CLANG']
,$id,$gids[0],""
,"REX_VALUE[2]","REX_VALUE[1]",$content);
if($mail->IsError() > 0)
{ $message = $mail->ErrorInfo;
$sent=false;
}
else
{ $message ="REX_VALUE[10]";
$sent=true;
}
}
else
{
$message = "Die Anmeldung konnte leider <u>nicht</u> durchgeführt werden!".$result;
// . 'Die Anmeldung konnte leider<u>nicht</u> durchgeführt werden!';
}
}
}
?>
<div class="nl-form">
<h2>Anmelden</h2>
<?php
if ( $message != '')
{
echo '<p class="warning" id="GlMessage">'. $message .'</p>';
unset($message);
}
?>
<?php if ($sent==false) {?>
<form action="index.php" method="post" id="anmelden" class="formation">
<input type="hidden" name="article_id" value="REX_ARTICLE_ID"/>
<input type="hidden" name="clang" value="<?php echo $REX['CUR_CLANG']; ?>"/>
<select size="1" name="newsletter_title" style="display:none;">
<?php
CGroupLetter::TitleTypeOptions($_POST['newsletter_title'],$REX['CUR_CLANG']);
?>
</select>
<p>
<label for="newsletter_firstname">REX_VALUE[5]:</label>
<input type="text" class="text" name="newsletter_firstname" id="newsletter_firstname" value="<?php echo $vorname; ?>"/>
</p>
<p>
<label for="newsletter_name">REX_VALUE[6]:</label>
<input type="text" class="text" name="newsletter_name" id="newsletter_name" value="<?php echo $name; ?>"/>
</p>
<p>
<label for="newsletter_gender">REX_VALUE[13]:</label>
<select name="newsletter_gender" id="newsletter_gender">
<option value="0"<?php if ($gender=="0") { echo ' selected="selected"';} ?>>Herr</option>
<option value="1"<?php if ($gender=="1") { echo ' selected="selected"';} ?>>Frau</option>
</select>
</p>
<p>
<label for="newsletter_email">REX_VALUE[7]:</label>
<input type="text" class="text" name="newsletter_email" id="newsletter_email" value="<?php echo $email; ?>"/>
</p>
<?php
$sql = new rex_sql;
$sql->setQuery("SELECT * FROM `".$REX['TABLE_PREFIX']."229_gl_groups` ORDER BY `gruppe`");
$rows = $sql->getArray();
if(count($rows)>0)
{
?>
<p style="display:none;">
<label for="signupgroup">REX_VALUE[12]:</label>
<?php
$select = new rex_select;
$select->setSize(1);
$select->setAttribute("name","signupgroup");
$select->setAttribute("id","signupgroup");
$select->setAttribute('style','display:none;'); // auskommentieren um die auswahlliste wieder einzublenden
$select->setSelected($_POST['signupgroup']);
//$select->addOption('Auswahlliste auf der Seite','-1');
foreach($rows as $row)
$select->addOption($row['gruppe'],$row['id']);
echo $select->show();
}
else
{
echo 'Keine Gruppe angelegt.
<a href="index.php?page=groupletter&subpage=groups" target="_blank">zum GroupLetter</a>.';
}
?>
</p>
<p class="send">
<input type="submit" class="submit" name="newsletter_anmelden" value="REX_VALUE[8]" />
</form>
</p>
<?php
}
}
unset($message);$email="";
?>
</div>
Abmeldung Eingabe:
Code: Alles auswählen
<?php
$lang=REXbabelfish::getLanguageForModule('groupletter');
?>
<fieldset>
<legend><strong><?php echo $lang['cancel']; ?></strong></legend>
<label style="width: 25%; display: bock; float: left;"><?php echo $lang['heading']; ?></label>
<input name="VALUE[6]" value="REX_VALUE[6]" style="width: 70%; float: left;" /><br /><br />
<label style="width: 25%; display: bock; float: left;"><?php echo $lang['bysuccess']; ?></label>
<input name="VALUE[3]" value="REX_VALUE[3]" style="width: 70%; float: left;" /><br /><br />
<label style="width: 25%; display: bock; float: left;"><?php echo $lang['byerror']; ?></label>
<input name="VALUE[4]" value="REX_VALUE[4]" style="width: 70%; float: left;" /><br /><br />
</fieldset>
Ausgabe:
Code: Alles auswählen
<?php
$hide_subscription_form=1;
if($REX['REDAXO'])
{
echo '<p>Newsletterabmeldung</p>';
}
else
{
$style = ' style="color:#ba333f;"'; # Style for a wrong parameter-field
if ( !function_exists( 'add_newsletter_user')):
function add_newsletter_user( $vorname, $name, $email) {
global $REX;
$sql = new rex_sql();
$qry = "SELECT `id` FROM `".$REX['TABLE_PREFIX']."229_gl_user`
WHERE `email` = '".$email ."'";
$sql->setQuery($qry);
if ( $sql->getRows() > 0)
{
$userid = $sql->getValue('id');
$qry = "UPDATE `".$REX['TABLE_PREFIX']."229_gl_user`
SET `firstname`='".$vorname . "', `name`='". $name ."',
`status`='1', `updatedate`='".time()."'
WHERE `email` = '". $email ."'";
$sql->setQuery($qry);
# delete grouptable-links
$qry = "DELETE FROM `".$REX['TABLE_PREFIX']."229_gl_links`
WHERE `userid`='".$userid."'";
$sql->setQuery($qry);
}
else
{
$qry = "INSERT INTO `".$REX['TABLE_PREFIX']."229_gl_user`
SET `firstname`='". $vorname . "', `name`='". $name ."',
`clang` = '". $REX['CUR_CLANG'] ."', `email` = '". $email ."' ,
`status`='1', `updatedate` = '".time()."'";
}
$sql->setQuery($qry);
# update grouptables
$qry = "SELECT `id` FROM `".$REX['TABLE_PREFIX']."229_gl_user`
WHERE `email` = '". $email ."'";
$sql->setQuery($qry);
$userid = $sql->getValue('id');
if(isset($_POST['lettergroup']) && intval($_POST['lettergroup'])>0)
{
$qry = "INSERT INTO `".$REX['TABLE_PREFIX']."229_gl_links`
SET `userid` ='". $userid . "', `groupid`='".trim($_POST['lettergroup'])."'";
# die($qry);
}
else
{
die("keine gruppe");
$qry = "INSERT INTO `".$REX['TABLE_PREFIX']."229_gl_links`
SET `userid` ='". $userid . "', `groupid`='0'";
}
$sql->setQuery($qry);
return $sql->getError() == '';
}
endif;
if (!function_exists( 'valid_email')):
function valid_email( $email) {
# $reg_allowed = "^A-Za-z0-9](([_\.\-]?[a-zA-Z0-9]+)*)@([A-Za-z0-9]+)(([\.\-]?[a-zA-Z0-9]+)*)\.([A-Za-z]{2,})$";
# if(ereg($reg_allowed, $email))
if(!ereg("^[A-Za-z0-9](([_\.\-]?[a-zA-Z0-9]+)*)@([A-Za-z0-9]+)(([\.\-]?[a-zA-Z0-9]+)*)\.([A-Za-z]{2,})$",$email))
return false;
else
return true;
}
endif;
if (!function_exists( 'remove_newsletter_user')):
function remove_newsletter_user( $email) {
global $REX;
$qry = "UPDATE `".$REX['TABLE_PREFIX']."229_gl_user`
SET `status`='2' WHERE `email` = '". $email ."'";
$sql = new sql();
$sql->setQuery($qry);
return $sql->getError() == '';
}
endif;
//------------------------------> Formularauswerten
$warningstyles = array('surname'=>'','lastname'=>'','email'=>'','signoff_email'=>'');
if ( !empty($_POST['subscribe']) && $_POST['subscribe']=='true')
{
if($_POST['newsletter_firstname']!='' && $_POST['newsletter_name']!='' && valid_email($_POST['newsletter_email']))
$result = add_newsletter_user($_POST['newsletter_firstname'],$_POST['newsletter_name'],$_POST['newsletter_email']);
else
$result = false;
if($_POST['newsletter_firstname']=='')
$warningstyles['surname'] = $style;
if($_POST['newsletter_name']=='')
$warningstyles['lastname'] = $style;
if(!valid_email($_POST['newsletter_email']))
$warningstyles['email'] = $style;
if ( $result === true)
{
$message .= "REX_VALUE[1]";
$hide_subscription_form = true;
} else {
$message .= "REX_VALUE[2]";
$hide_subscription_form = false;
}
}
else if( !empty($_POST['subscribe']) && $_POST['subscribe']=='false')
{
if(valid_email($_POST['newsletter_email']))
$result = remove_newsletter_user( $_POST['newsletter_email']);
else
{
$warningstyles['signoff_email'] = $style;
}
if ($result === true)
{
$message .= "REX_VALUE[3]";
$hide_unsubscription_form = true;
}
else
{
$message .= "REX_VALUE[4]";
$hide_unsubscription_form = false;
}
}
//------------------------------> Formular
?>
<?php
if($hide_unsubscription_form)
{ if ($message!="")
{
echo '
<div class="nl-form">
<p class="warning">'. $message .'</p>
</div>';
}
}
?>
<?php if(!$hide_subscription_form) {
} // ENDIF $hide_subscription_form
if(!$hide_unsubscription_form) { ?>
<div class="nl-form">
<h2>REX_VALUE[6]</h2>
<form id="abmelden" class="formation" action="<?= rex_getURL($this->article_id,$REX['CUR_CLANG']); ?>"
method="post" name="sign_newsletter">
<?php
if ($message != '') {
echo '
<p class="warning">'. $message .'</p>';
}
?>
<input type="hidden" name="article_id" value="REX_ARTICLE_ID"/>
<input type="hidden" name="clang" value="REX_CLANG_ID"/>
<input type="hidden" name="subscribe" value="false"/>
<p>
<label for="newsletter_email2">E-Mail</label>
<input type="text" class="text" name="newsletter_email"
id="newsletter_email2" value="<?php echo $_POST['newsletter_email']; ?>" />
</p>
<p>
<input type="submit" class="submit" name="unsubscribe_newsletter"
value="Newsletter abbestellen" />
</p>
</form>
</div>
<?php
}
}
unset($message);
?>
Anmreldebestätigung Eingabe:
Code: Alles auswählen
Newsletter Opt-in. Account aktivieren
<br />
Das Modul soll aufgerufen werden wenn ein Benutzer die Newsletter-Bestätigungsmail erhält.
Ausgabe:
Code: Alles auswählen
<?php
if (!$REX['REDAXO'])
{
if ($_GET['data']!="")
{ $data=$_GET['data'];
$data=base64_decode($data);
$data=unserialize($data);
}
$sql=new sql;
$sql->setQuery('SELECT id,email,firstname,name from '.$REX['TABLE_PREFIX'].'229_gl_user
WHERE email="'.mysql_real_escape_string($data['email']).'"
&& id="'.mysql_real_escape_string($data['id']).'"
');
if ($sql->getRows()>0)
{ $usql=new sql;
$usql->setTable($REX['TABLE_PREFIX']."229_gl_user");
$usql->setValue('status',1);
$usql->wherevar=' WHERE id="'.mysql_real_escape_string($sql->getValue('id')).'"';
$usql->update();
echo '<p>Vielen Dank für Ihre Anmeldung!<br />Die E-Mailadresse '.htmlentities($data['email']).' ist nun in unserer Mailingliste eingetragen.</p>';
}
else
{ echo '<p>Ein Fehler ist aufgetreten. Bitte melden Sie sich noch einmal an.</p>';
}
}
?>
http://gn2-netwerk.de/download/groupletter.zip +
http://gn2-netwerk.de/download/rexbabelfish.zip (nutzen wir für Mehrsprachigkeit im Backend, kann man aber natürlich auch rausnehmen)
Bei uns funktioniert es, aber wie immer ohne Garantie.