[phpBB Debug] PHP Warning: in file [ROOT]/ext/tas2580/seourls/event/listener.php on line 213: Undefined array key "FORUM_NAME"
Community AddOn / XForm: E-Mail bei Freischaltung - 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/
derLampe
Beiträge: 32
Registriert: 27. Jun 2006, 18:44
Wohnort: Oldenburg

Community AddOn / XForm: E-Mail bei Freischaltung

4. Jun 2013, 15:25

Ein neu registrierter Community-User erhält zunächst den Status "zugang wurde angefragt" und soll vom Admin im Backend freigeschaltet werden. Lässt sich die dann erfolgende Änderung des Status bzw. allgemein einex XForm-Feldes irgendwie updatesicher abfragen und eine Zusatzprogrammierung durchführen z.B. eine Info-Mail verschicken? Falls nicht, wie wäre euer Ansatz für eine Hardcodierung in XForm?

Benutzeravatar
Xong
Beiträge: 2081
Registriert: 5. Jun 2008, 08:30
Wohnort: Halle (Saale)

Re: Community AddOn / XForm: E-Mail bei Freischaltung

4. Jun 2013, 16:07

Hi!
derLampe hat geschrieben:Lässt sich die dann erfolgende Änderung des Status bzw. allgemein einex XForm-Feldes irgendwie updatesicher abfragen [...]
Was meinst du mit "updatesicher"?
derLampe hat geschrieben:[...] und eine Zusatzprogrammierung durchführen z.B. eine Info-Mail verschicken? Falls nicht, wie wäre euer Ansatz für eine Hardcodierung in XForm?
Ich würde einfach die Listenansicht (rex_list) der User-Tabelle über Extensionpoints so erweitern, dass du eine weitere Spalte einbauen kannst. Über die kannst du dann mit nur einem Klick den User freischalten und eine E-Mail verschicken.
LG,
Xong

[ externes Bild ] Määääääääääääääääääääääääh!

derLampe
Beiträge: 32
Registriert: 27. Jun 2006, 18:44
Wohnort: Oldenburg

Re: Community AddOn / XForm: E-Mail bei Freischaltung

4. Jun 2013, 16:24

Mit "updatesicher" meine ich eben mit sowas wie Extensionpoints zu arbeiten und nicht direkt in dem XForm-Manager-Addon rumzubauen, was beim nächsten XForm-Update verloren wäre.

Danke für den Tipp. Dann werde ich mir mal die Extensionpoints zu Gemüte führen...gibts zufällig ein Addon bei dem man sich was in der Richtung abschauen kann?

Benutzeravatar
Xong
Beiträge: 2081
Registriert: 5. Jun 2008, 08:30
Wohnort: Halle (Saale)

Re: Community AddOn / XForm: E-Mail bei Freischaltung

4. Jun 2013, 17:09

Hi!
derLampe hat geschrieben:gibts zufällig ein Addon bei dem man sich was in der Richtung abschauen kann?
Das ist nicht besonders schwer. Hier mal ein Beispielcode:

Code: Alles auswählen

function rr_extended_list($_params)
{
  global $REX, $I18N;
  
  if(rex_get('func') == 'activate' AND ($id = rex_get('id', 'int')))
  {
    $active = rex_get('active', 'int');
    $sql = rex_sql::factory();
    $sql->setTable($_params['subject']->params['table_name']);
    $sql->setWhere('id='.$id);
    $sql->setValue('active', $active);
    $sql->update();
    
    header('Location: '.str_replace('&', '&', $_params['subject']->getUrl()));
    exit;
  }
  
  $_params['subject']->removeColumn('active');
  $_params['subject']->addColumn('active', '', 50, array('<th class="active">###VALUE###</th>','<td class="active status-###active###">###VALUE###</td>'));
  $_params['subject']->setColumnFormat('active' ,'custom', create_function(
    '$params',
    '$list = $params["list"];
     if($list->getValue("active") == 1)
     {
      $active = 0;
      $color = "#0a0";
      $text = "online";
     }
     else
     {
      $active = 1;
      $color = "#a00";
      $text = "offline";
     }

     return \'<a style="color:\'.$color.\'" href="\'.$list->getUrl(array("func" => "activate", "active" => $active, "id" => "###id###")).\'">\'.$text.\'</a>\';'
  ));
  
  return $_params['subject'];
}
Der Code bindet eine Spalte in einer XForm-Tabelle im Backend ein, mit der man einen Datensatz auf offline oder online setzen kann. Vorrausetzung ist eine Spalte active, die die Werte 0 oder 1 fasst.

Mit folgendem Code hängt man sich in den EP ein:

Code: Alles auswählen

rex_register_extension('EM_DATA_LIST', 'rr_extended_list');
Beachte, dass dieser Code bei jeder Tabelle Backend die Spalte einbindet. Wenn du das bei einer bestimmten Tabelle haben möchtest, musst du vorher $_params['subject']->params['table_name'] abfragen.

Der Code ist leicht veraltet, weil dieser noch für das Addon Editme, also den Vorgänger von XForm, geschrieben wurde. Der aktuelle EP heißt XFORM_DATA_LIST.

Ein anderes Beispiel, bei dem sich in XForm-EPs eingehängt wird, findest du beim Plugin reindex von RexSearch: https://github.com/xong/rexsearch/blob/ ... ig.inc.php
LG,
Xong

[ externes Bild ] Määääääääääääääääääääääääh!

derLampe
Beiträge: 32
Registriert: 27. Jun 2006, 18:44
Wohnort: Oldenburg

Re: Community AddOn / XForm: E-Mail bei Freischaltung

5. Jun 2013, 13:12

Klasse, danke. Hat bestens funktioniert!

steri
Beiträge: 364
Registriert: 12. Jul 2007, 14:59

Re: Community AddOn / XForm: E-Mail bei Freischaltung

30. Mär 2016, 19:56

Hallo,
bin grad dran so was ähnliches zu machen - nur soll das email per email programm gesendet werden und ich muss vorher an die ID des Eintrags kommen um noch bei einer anderen tabelle die email abrufen zu können.

das mit dem per email programm ist ja kein problem - aber der platzhalter ###id### wird ja erst nach der Funktion getauscht - d.h. in der sql abfrage kommt immer ###id### statt der zahl

Code: Alles auswählen

function format_id($params)
{
  $id = '###id###';
  echo $id;

$sql = "SELECT rex_com_user.user_email, rex_veranstaltungen.veranstalter_email, rex_veranstaltungen.veranstalter_email FROM rex_veranstaltungen JOIN rex_com_user ON rex_veranstaltungen.user_id = rex_com_user.id WHERE rex_veranstaltungen.id=".$id."";
$db->setQuery($sql);


if ($db->getRows() == 0){
    $email = $db->getValue('user_email');
    }
  
  return '<a href="mailto:'.$email.'?subject=Bestaetigung%20Eintrag">Bestaetigung<span style="color:#EFF9F9;">|</span>mailen</a><span style="color:#EFF9F9;">|</span>';
}

rex_register_extension('XFORM_DATA_LIST','my_rex_list_tweaks');
function my_rex_list_tweaks($params)
{
  $list = $params['subject'];
  $list->setColumnFormat('backend','custom','format_id');
}
Gibt es da eine Möglichkeit?

danke!

steri
Beiträge: 364
Registriert: 12. Jul 2007, 14:59

Re: Community AddOn / XForm: E-Mail bei Freischaltung

1. Apr 2016, 15:34

so gehts - der code von xong hat mich auf die spur gebracht

Code: Alles auswählen

function format_id($params)
{     
    $list = $params["list"];
     echo 'id: '.$list->getValue("id").'<br>';
}
 

Zurück zu „Allgemeines [R4]“