Odeslání vygenerované stránky jako přílohy v mailu
- Maekoboss
- Člen | 36
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
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)