[phpBB Debug] PHP Warning: in file [ROOT]/ext/tas2580/seourls/event/listener.php on line 213: Undefined array key "FORUM_NAME"
Groupletter Modul Fehler - REDAXO Forum
Hallo,

Wir haben in letzter Zeit festgestellt, dass die Kommunikation via Slack viel schneller und zielführender ist als ein Beitrag im Forum. Aufgrund der neuen und besseren Möglichkeiten der Kommunikation haben wir uns entschlossen das Forum nur noch als Archiv zur Verfügung zu stellen. Somit bleibt es weiterhin möglich hier nach Lösungen zu suchen. Neue Beiträge können nicht mehr erstellt werden.

Wir empfehlen, für deine Fragen/Probleme Slack zu nutzen. Dort sind viele kompetente Benutzer aktiv und beantworten jegliche Fragen, gerne auch von REDAXO-Anfängern! Slack wird von uns sehr intensiv und meistens "rund um die Uhr" benutzt :-)
Selbst einladen kannst Du dich hier: https://redaxo.org/slack/
ven
Beiträge: 46
Registriert: 27. Aug 2007, 12:00

Groupletter Modul Fehler

30. Sep 2008, 12:56

Hallo,

habe das Addon Groupletter installiert und es funktioniert auch.

Jetzt wollte ich das Modul hinzufügen zum an/abmelden. Habe den Code aus der modul.inc.php kopiert und in mein neues Modul in die Ausgabe eingefügt.

Problem:
Ich erhalte auf meiner Modulseite (Frontend) folgenden Fehler:

Code: Alles auswählen

Fatal error: Call to a member function msg() on a non-object in /home/www/web33/html/neu/redaxo/include/classes/class.rex_article.inc.php(250) : eval()'d code on line 358
Und im Backend bei dem entsprechenden Artikel:
Fatal error: Call to a member function msg() on a non-object in /home/www/web33/html/neu/redaxo/include/classes/class.rex_article.inc.php(596) : eval()'d code on line 412
Nutze die neue Redaxoversion. Kann mir da jemand weiterhelfen?

Viele Grüße,
ven

mr.pink
Beiträge: 36
Registriert: 28. Feb 2008, 21:31
Kontaktdaten: ICQ

30. Sep 2008, 13:20

hi,

ich benutze persönlich das normale newsletter addon. dazu gibt es ein an- und abmeldeformular bei module zum runterladen: http://www.redaxo.de/165-Moduldetails.html?module_id=32

vielleicht funktioniert das ja besser, aber kein gewähr :wink:

gruß
pink

ven
Beiträge: 46
Registriert: 27. Aug 2007, 12:00

1. Okt 2008, 09:38

Danke für den Tipp, funktioniert aber leider nicht.

Benutzeravatar
ciss
Beiträge: 359
Registriert: 8. Feb 2008, 05:24
Wohnort: Berlin

1. Okt 2008, 14:24

Nur um Fehler diesbezüglich ausschliessen zu können: du benutzt Groupletter Version 1.1 für Redaxo 4?

guest07
Beiträge: 17
Registriert: 20. Feb 2007, 15:40
Wohnort: köln

Das richtige Modul mit der Eingabe-Ausgabe

1. Okt 2008, 15:29

ist in Deiner Installation so abrufbar:
../redaxo/index.php?page=groupletter&subpage=module
(Der Tip stand schon irgend-wo im Forum)

talbrecht
Beiträge: 4
Registriert: 15. Okt 2008, 22:28

15. Okt 2008, 22:39

Ich bekomme genau die gleichen Fehler wie ven.

Die Eingabe von...
../redaxo/index.php?page=groupletter&subpage=module
...wirft mich auf die Startseite der Installation.

Der Tipp aus den Kommentaren im Addon Download, die de_de.lang Datei als de_de_utf8.lang zu verwenden führt zu keiner Veränderung.

Über Hilfe oder dem Hinweis wo das Problem wohl liegen mag wäre ich sehr dankbar. Ich bin leider mehr Designer denn Programmierer. :wink:

Benutzeravatar
ciss
Beiträge: 359
Registriert: 8. Feb 2008, 05:24
Wohnort: Berlin

15. Okt 2008, 23:50

Das sollte funktionieren. Welche Redaxo-Version? Welche Groupletter-Version?

Der Hinweis in den Kommentaren bezieht sich nur auf das Problem, dass bei einer UTF8-Installation von Redaxo die Bezeichner nicht übersetzt werden. Stattdessen steht dann überall [translate:bezeichner].

talbrecht
Beiträge: 4
Registriert: 15. Okt 2008, 22:28

16. Okt 2008, 00:07

Das Eintragen für den Newsletter funktioniert wie bei ven auch, nur die Fehler (bestimmt 50 mal der gleiche nur mit anderer Line-Angabe) stehen permanent im Frontend.

Redaxo ist 4.1.0 und der Groupletter erst kürzlich heruntergeladen "groupletter_20080212". PHP Version 5.2.6. Mysql 5.0.45.

Benutzeravatar
ciss
Beiträge: 359
Registriert: 8. Feb 2008, 05:24
Wohnort: Berlin

16. Okt 2008, 00:46

Ich vermute mal, dass ihr das Modul falsch übernommen habt. Kann ich mal den Quelltext deiner Modulausgabe sehen?

talbrecht
Beiträge: 4
Registriert: 15. Okt 2008, 22:28

16. Okt 2008, 01:03

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>&nbsp;</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>&nbsp;</label>
          <input type="submit" class="submit" name="unsubscribe_newsletter" 
                 value="Abmelden" />
        </li>
      </ul>
    </form>
  </div>
<?php
  }
}
?>

Benutzeravatar
ciss
Beiträge: 359
Registriert: 8. Feb 2008, 05:24
Wohnort: Berlin

16. Okt 2008, 01:11

Ein Wunder, dass es überhaupt im Ansatz funktioniert, bei dem was da alles escaped ist.
Hab hier mal das richtige bereitgestellt: http://www.redaxo.de/165-Moduldetails.h ... ule_id=416

Gruß, Fabian

talbrecht
Beiträge: 4
Registriert: 15. Okt 2008, 22:28

16. Okt 2008, 01:39

Irgend sowas hab ich mir schon gedacht. Mir könnte man fast alles als PHP-Code unterjubeln. :lol:

Auf jeden Fall schaut nun alles sehr positiv aus. Fehler weg, Eingabeformular ok.

Vielen vielen Dank für deine Hilfe!

Zurück zu „Allgemeines [R4]“