Skip to content
This repository has been archived by the owner on Mar 28, 2021. It is now read-only.

Aufrufen einer ImapClient Funktion aus dem Template? #49

Closed
Spegeli opened this issue Mar 11, 2018 · 6 comments
Closed

Aufrufen einer ImapClient Funktion aus dem Template? #49

Spegeli opened this issue Mar 11, 2018 · 6 comments

Comments

@Spegeli
Copy link

Spegeli commented Mar 11, 2018

Servus,
hab gerade die neusten Änderungen übernommen und hat soweit alles Funktioniert, nur bei einer Funktion hab ich ein kleines Problem.
Ich habe eine reply.template.php (ein klon des normalen fronted templates welche ich für die antwort funktion umgemodded hab), dort habe ich folgende funktion:


$mailSent = mail($mailToAddress, $mailSubject, $mailText, $mailHeader);
if($mailSent == TRUE)
    $imapClient->set_answered_flag($reply_email->id, $user);

und in der imap_client.php habe ich folgenden code:

    public function set_answered_flag(int $mailid, User $user) {
        if ($this->load_one_email($mailid, $user) !== null)
            $this->mailbox->setFlag(array($mailid), '\\ANSWERED');   
    }

allerdings hat er seit der Integration der letzten Änderungen wohl ein Problem auf diese Funktion innerhalb der $imapClient zuzugreifen.

Hast du da zufällig einen Typ wie ich die Funktion aufrufen kann aus dem template herraus?

@synox
Copy link
Owner

synox commented Mar 11, 2018

Spontan würde ich sagen: wird imap connection ordentlich geschlossen? Es hat neu ein paar exit/die Aufrufe mehr...

@Spegeli
Copy link
Author

Spegeli commented Mar 11, 2018

Es geht doch darum wie ich die ImapClient class aus dem Template aus aufrufen kann.
Selbst wenn ich in der imap_client.php in der ImapClient class folgenden Code habe:

    public function set_answered_flag() {
        return 0;  
    }

und im Template folgenden Code benutze:

        echo $imapClient->set_answered_flag();

Spuckt er nix aus bzw. verursacht nen break im code.

@synox
Copy link
Owner

synox commented Mar 11, 2018

Weiss nicht, da müsste ich den ganzen Code sehen...

@Spegeli
Copy link
Author

Spegeli commented Mar 11, 2018

Den ganzen Code hast du doch ;-)

echo $imapClient->set_answered_flag();
im frontend.template.php einbauen so das es dann dort auf

    public function set_answered_flag() {
        return 0;  
    }

zugreift, welches sich in der imap_client.php befindet.

@synox
Copy link
Owner

synox commented Mar 12, 2018

.. ich probiere das bei Gelegenheit mal.

Mir fällt noch auf: Aus dem Template darfst du keine mutierenden Funktionen aufrufen, sondern dein $imapClient->set_answered_flag() muss im Controller aufgerufen werden! (Sonst würde es z.B. beim JSON-API nicht funktionieren. https://github.com/synox/disposable-mailbox/blob/master/src/json-api.php#L13)

See also http://www.phptherightway.com/pages/Design-Patterns.html

@synox
Copy link
Owner

synox commented Jun 17, 2018

closing after inactivity

@synox synox closed this as completed Jun 17, 2018
@synox synox mentioned this issue Jun 17, 2018
Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.
Labels
None yet
Projects
None yet
Development

No branches or pull requests

2 participants