Odeslání vygenerované stránky jako přílohy v mailu

Upozornění: Tohle vlákno je hodně staré a informace nemusí být platné pro současné Nette.
Maekoboss
Člen | 36
+
0
-

Ahoj pánové programátoři.
Řeším menší problém. Dělám si takový malý generátor cenových nabídek. Mám systém ve kterém si normálně naklikám co má daná cenová nabídka obsahovat a pak si jí hezky můžu zobrazit v pdfku díky knihovně mPDF. všechno běhá super, teď chci ale tu nabídku odeslat mailem klientovi. Mohl bych při dokončení nabídky prostě vygenerovat pdfko a nechat si ho na ftpku, ale to nepotřebuju, protože než se na konečné cenové nabídce s klientem shodneme, tak se může třeba 3× změnit, takže mi přijde zbytečné generovat rovnou pdfko, mnohem lepší mi přijde prostě do přílohy rovnou generovat to pdfko bez nutnosti ukládání na ftpku a vytváření souboru.

Takže otázka je následující, jde to nějak? Mám presenter PrintPresenter, který má akci actionPDF do které pošle údaje a tahle akce vygeneruje v templátě pdfko. Teď bych potřeboval, aby se to nějak dalo vložit do addAttachment().

Snad jste to pochopili a předem Vám díky za rady :)

Maekoboss
Člen | 36
+
0
-

Tady je form, který mi to odesílá

protected function createComponentSendOffer(){
        $form = new Form();
        $form->addHidden('offer_id');
        $form->addRadioList('currency', 'Měna', array('usd' => '$', 'kc' => 'Kč'))
                ->getSeparatorPrototype()->setName(null);
        $form->addRadioList('vat', 'Daně', array('with' => 's daní', 'without' => 'bez daně'))
                ->getSeparatorPrototype()->setName(null);
        $form->addSubmit('send', 'Odeslat');
        $form->onSuccess[] = callback($this, 'SendOfferSubmitted');
        return $form;
    }
    public function SendOfferSubmitted(Form $form){
        $mail = new Message;

        $mail->setFrom('mr@test.cz', 'Pavel');
        $mail->addTo('rt@prijemce.cz');
        $mail->setSubject('Cenová nabídka');
        $mail->setBody("Test s pdf");

        $fileContent = file_get_contents($this->link('Print:pdf', $form->values->offer_id, $form->values->currency, $form->values->vat));
        $mail->addAttachment('nabidka.pdf', $fileContent);
        $mail->send();

        $this->redirect('this');
    }

Potřeboval bych do $fileContent dostat nějak to pdfko. Pokud tam dám natvrdo adresu (http://test.cz/print/pdf?…), tak to jede, jak tam ale dostat adresu co se bude generovat? Toť ta správná otázka, teď už vim, že $this->link to nebude, páč nejede :)

Editoval Maekoboss (12. 4. 2012 20:16)

voda
Člen | 561
+
0
-

Zkus absolutní odkaz

$this->link('//Print:pdf', ...);
Maekoboss
Člen | 36
+
0
-

Super, bylo to tim, taková prkotina :D Moc díky za pomoc