Das kann gut möglich sein. Ich habe nämlich das Modul ebenfalls versucht aus der modul.inc.php zu extrahieren, da beim install des Addons kein Demomodul installiert wurde.
Hier der Code der Ausgabe:
Code: Alles auswählen
<?php
if(\$REX['REDAXO'])
{
echo '<p>Zeigt ein Formular zur An- und Abmeldung an einem Newsletter.</p>';
}
else
{
\$style = ' style="color:#c39379;"'; # 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`='0' 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 (\$message != '') {
echo '
<div class="text">
<span class="warning">'. \$message .'</span>
</div>';
}
?>
<?php if(!\$hide_subscription_form) { ?>
<div class="text">
<form action="<?= rex_getURL(\$this->article_id,\$REX['CUR_CLANG']); ?>"
method="post" name="sign_newsletter">
<h3>REX_VALUE[5]</h3>
<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="true"/>
<ul>
<li class="clearfix">
<label<?php echo \$warningstyles['surname']; ?> for="newsletter_firstname">
Vorname
</label>
<input class="text" type="text" name="newsletter_firstname"
id="newsletter_firstname" value="<?php echo \$_POST['newsletter_firstname']; ?>" />
</li>
<li class="clearfix">
<label<?php echo \$warningstyles['lastname']; ?> for="newsletter_name">
Nachname
</label>
<input class="text" type="text" name="newsletter_name"
id="newsletter_name" value="<?php echo \$_POST['newsletter_name']; ?>" />
</li>
<li class="clearfix">
<label<?php echo \$warningstyles['email']; ?> for="newsletter_email">
E-Mail
</label>
<input class="text" type="text" name="newsletter_email"
id="newsletter_email" value="<?php echo \$_POST['newsletter_email']; ?>" />
</li>
<?php
if(intval("REX_VALUE[10]")<=0)
{
?>
<li class="clearfix">
<?php
\$sql = new rex_sql;
\$sql->setQuery("SELECT * FROM `".\$REX['TABLE_PREFIX']."229_gl_groups` ORDER BY `gruppe`");
\$rows = \$sql->getArray();
if(count(\$rows)>1)
{
?>
<label>Anmeldung für</label>
<?php
\$select = new rex_select;
\$select->setSize(1);
\$select->setAttribute("name","lettergroup");
\$select->setStyle('class="select"');
foreach(\$rows as \$row)
\$select->addOption(\$row['gruppe'],\$row['id']);
echo \$select->show();
?>
</li>
<?php
}
else if(count(\$rows)==1)
{
echo '<input type="hidden" name="lettergroup" value="'.\$rows[0]['id'].'" />';
}
}
else
{
echo '
<input type="hidden" name="lettergroup" value="REX_VALUE[10]" />';
}
?>
<li class="clearfix">
<label> </label>
<input type="submit" class="submit"
value="Anmelden" />
</li>
</ul>
</form>
</div>
<?php
} // ENDIF \$hide_subscription_form
if(!\$hide_unsubscription_form) { ?>
<div class="text">
<form action="<?= rex_getURL(\$this->article_id,\$REX['CUR_CLANG']); ?>"
method="post" name="sign_newsletter">
<h3>REX_VALUE[6]</h3>
<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"/>
<ul>
<li class="clearfix">
<label<?php echo \$warningstyles['signoff_email']; ?> for="newsletter_email2">
E-Mail
</label>
<input type="text" class="text" name="newsletter_email"
id="newsletter_email2" value="<?php echo \$_POST['newsletter_email']; ?>" />
</li>
<li class="clearfix">
<label> </label>
<input type="submit" class="submit" name="unsubscribe_newsletter"
value="Abmelden" />
</li>
</ul>
</form>
</div>
<?php
}
}
?>