-
Modul Daten im frontend
Hallo,
ich habe mir folgendes gebaut:
ein Erweiterung zum Modul Registrierung, eine Checkbox.
Und ein Modul das ich im Frontend Aufrufe:
Code:
class ModuleTest extends \Fronted
{
public function generate(){
# nun möchte ich hier aber das Feld abrufen das ich im Modul angecheckt habe# Wie komm ich da ran?
}
}
ich verwende extends \Frontend will aber das Feld aus Module wie komme ich da ran?
Danke
-
Hi,
warum extendest du von \Frontend? Probiers doch einfach mal mit extends \Module
Und dann solltest du Zugriff über $this->deinCheckboxname haben.
-
Hallo,
ich habe das mal probiert:
Code:
class ModuleTest extends \Module
{
public function generate() {
$this->import('Frontend');
// get the member
$objMember = \MemberModel::findByActivation($arrData['activation']);
$randFirstLastName = explode('@', $arrData['email']);
// Update the account
$objMember->firstname = $randFirstLastName[0];
$objMember->lastname = $randFirstLastName[1];
$objMember->disable = '';
$objMember->activation = '';
$objMember->username = $arrData['email'];
$objMember->save();
// login the user
$this->import('FrontendUser', 'User');
$_POST['username'] = $arrData['email'];
$_POST['password'] = $arrData['password'];
if ($this->User->login())
{
$this->redirect($strRedirect);
}
$this->reload();
}
}
wenn ich das so mache bekomme ich diese Fehlermeldung:
contains 1 abstract method and must therefore be declared abstract or implement the remaining methods (Contao\Module::compile) in ...
wenn ich die Methode compile nenne und nicht generate bekomme ich diese Fehlermeldung:
Missing argument 1 for Contao\Module::__construct(), called in...
ich weis aber leider nicht welches Argument mir Fehlt?
Danke
-
Hi,
schau dir doch mal an wie es andere Module machen und tipp nicht einfach blind drauf los.
Vorallem "$this->import("Frontend")" ??????????
Normalerweise, so kenne ich es wird der auszuführende Code auch nicht in der generate() platziert, sondern in der Methode compile()
In der generate() ist üblicherweise nur ein "return parent::generate()" enthalten, ggf. auch noch die be_wildcard, aber ansonsten nichts. Zumindest keine Modullogik
Also, erstell dir noch die Methode compile(), entferne das import("Frontend") denn das brauchst du sicherlich nicht.
Woher kommt eigentlich der Inhalt von $strRedirect? Deinem Code zufolge ist der Inhalt immer leer
-
Hi,
so ich hab nujn die lösung gefeunden, das problem war folgendes:
ich habe den HOOK createNewUser verwendet um meine Klasse und Methode aufzurufen
Code:
$GLOBALS['TL_HOOKS']['createNewUser'][] = array('ModulepagesofaEasyRegistration','activateUser');
was ich nicht wusste ist das der callback das Modul an dritter Position mitgibt, also so
Code:
public function activateUser($userId, $arrData, $module) {
in module sthet dann alles vom Module drinnen ;)