Jump to content

Moduł wyświetlający dane pobrane z bazy danych


Recommended Posts

Witam,

 

Przerabiam czyjś projekt sklepu (bardzo niewdzięczna robota :P) 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

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

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

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

  • Like 1
Link to comment
Share on other sites

×
×
  • Create New...