Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [Symfony] szablony, widoki
Forum PHP.pl > Forum > PHP > Frameworki
AxZx
witam

nie za bardzo umiem sprecyzować (nazwać) kategorie problemu.
chciałbym zapisywać w bazie (tabela poczta) listy do użytkowników. listy te, to po prostu informacje o tym, że użytkownik został zaproszony do grupy, do listy kontaktów, że otrzymał nowy komentarz itd.

jak to zorganizować? najlepiej żeby był to taki zwykły widok, w którym mogę normalnie korzystać z PHP oraz ze wszystkiego co oferuje symfony w normalnych widokach. a całą zawartość, żebym mógł zapisywać w bazie danych.

prawdopodobnie będzie to coś takiego jak send_mail ? tam treść widoku przekazywana jest do klasy sfMailer.
Cysiaczek
hehe, ciekawa sprawa, bo właśnie mam w TODO na dziś/jutro takie powiadomienia happy.gif
Użyję pewnie zwykłego systemu PM (podobnego jak na IPB), bo ten mechanizm sfMail jakoś do końca mnie nie przekonuje. Przygotuję w bazie szablony i przepuszczę przez str_replace smile.gif.

Pozdrawiam.
qqrq
Ja ostatnio robiłem coś podobnego (o ile dobrze zrozumiałem) i szablony do wiadomości trzymałem w plikach, jak kolega wyżej używałem str_replace, a do wysyłania SwiftMailer.
AxZx
a ja maili nie chcę wysyłać.
chcę tylko treść widoku, uzupełnionego dynamicznie o odpowiednie treści dla konkretnego użytkownika zapisywać w bazie.

może to będzie coś takiego jak w metodzie sendEmail?

  1. <?php
  2. return $this->getController()->getPresentationFor($module, $action, 'sfMail');
  3. ?>


zamiast sfMail ustawić klase widoku na sfView i może będzie działać ?smile.gif

EDIT:

tak jak pisałem, tak też zrobiłem i działa elegancko:)
szkoda, że sobie nie można dawać opcji pomógłtongue.gif heh

w kontrolerze:
  1. <?php
  2. function executeTest()
  3.    {
  4.        $tresc = $this->getController()->getPresentationFor('default', 'zawartosc', 'sfView');
  5.        $temat = 'jakis temat';
  6.        
  7.        $poczta = new Poczta();
  8.        $poczta->setIdprofilNadawca(4);
  9.        $poczta->setIdprofilOdbiorca(5);
  10.        $poczta->setTemat($temat);
  11.        $poczta->setTresc($tresc);
  12.        $poczta->save();
  13.                
  14.        return sfView::NONE;
  15.    }
  16.    
  17.    function executeZawartosc()
  18.    {
  19.        
  20.        $this->setLayout(false);
  21.        $this->zmienna = 'jakas tresc';
  22.        
  23.    }
  24. ?>


widok zawartoscSuccess.php uzupelniony odpowiednimi danymi będzie w zmiennej $tresc w metodzie executeTest.
w metodzie executeZawartosc można ustawić jakiś inny layout albo go wyłączyć, wtedy w treści będzie tylko to co jest w widoku. wg mnie takie rozwiązanie jest dobre bo do bazy jest zapisywana tylko treść właściwa, która można ubrać w jakiś kod html, który póżniej będzie wysyłany na maila do użytkownika.
To jest wersja lo-fi głównej zawartości. Aby zobaczyć pełną wersję z większą zawartością, obrazkami i formatowaniem proszę kliknij tutaj.
Invision Power Board © 2001-2025 Invision Power Services, Inc.