Jawor Posted August 19, 2013 Share Posted August 19, 2013 Witam, Przerabiam czyjś projekt sklepu (bardzo niewdzięczna robota ) i natknąłem się na pewien problem. Cron'em pobierane są pewne wartości zmiennych z witryny zewnętrznej i zapisywane w bazie danych w osobnej tabeli. Dane te po przeliczeniu powinny być wyświetlane na stronie. Moi poprzednicy zrobili to umieszczając kod php w składni smarty w pliku footer.tpl , czego ja ze względów bezpieczeństwa chciałby uniknąć i zrobić to porządnie. Przejrzałem już kilka stron na temat tworzenia modułów i w sumie większość rzeczy tam się znajduje, poza pobieraniem danych z bazy. Już sam sposób budowania zapytań wewnątrz modułu mnie poratuje, ale nie ukrywam że nie pogardziłbym gotowym modułem, który by pobierał dane z bazy i je wyświetlał Będę bardzo wdzięczny za wszelką pomoc. Pozdrawiam! Link to comment Share on other sites More sharing options...
vekia Posted August 19, 2013 Share Posted August 19, 2013 takiego modułu nie ma, i wcale do tego nie musisz tworzyć modułu. możesz wyedytować frontcontroller, dodając do niego odpowiednią funkcję pobierającą dane, a następnie przekazującą te dane do tablicy ze zmiennymi w szablonu. Link to comment Share on other sites More sharing options...
Jawor Posted August 19, 2013 Author Share Posted August 19, 2013 Vekia, dzięki za szybką odpowiedź 1. Ale czy zwykłe odwołanie do bazy zadziała? Nie ma jakiegoś specjalnego wzoru postępowania? 2. Frontcontroller jakikolwiek? 3. Mówiąc o tablicy zmiennych w szablonu masz na myśsli tablicę "ps_theme_specific" ? Z Prestą mam do czynienia pierwszy raz w życiu, dlatego wszystkiego muszę się uczyć od nowa. Link to comment Share on other sites More sharing options...
vekia Posted August 19, 2013 Share Posted August 19, 2013 pozwól, że wprowadzę Cię w temat swój wywód oprę o tutorial który utworzyłem jakiś czas temu (jest bardzo powiązany z tematyką tutaj: front controller) otwierasz plik classes/controller/FrontController.php utwórz tam funkcję nazwaną np. mojafunkcja public static function mojafunkcja(){ return 'jakas zawartosc' } teraz gdy w footer.tpl użyjesz {FrontController::mojafunkcja()} w efekcie na stronie zobaczysz tekst: 'jakaś zawartosc' jesteśmy coraz bliżej rozwiązania teraz czas na pobranie zawartości tabeli. Naszą funkcję powyżej wzbogacamy o dodatkowy kod: return Db::getInstance()->executeS('SELECT * FROM moja_tabela'); powinieneś mieć taki kod funkcji mojafunkcja: public static function mojafunkcja(){ return Db::getInstance()->executeS('SELECT * FROM moja_tabela'); } tym oto sposobem do templatki trafi tablica z wynikami pochodzącymi z zapytania. dalej już standardowa procedura, robisz pętlę foreach na FrontController::mojafunkcja() i masz dostęp do poszczególnych elementów zwróconej tablicy 1 Link to comment Share on other sites More sharing options...
Jawor Posted August 19, 2013 Author Share Posted August 19, 2013 Prościej wytłumaczyć nie mogłeś A propos FrontControllera zupełnie pomyliłem pojęcia... Dziękuję Ci bardzo! Pozdrawiam Link to comment Share on other sites More sharing options...
Recommended Posts