diff --git a/initializers/initializers.go b/initializers/initializers.go index a2d4521..250d5e3 100644 --- a/initializers/initializers.go +++ b/initializers/initializers.go @@ -7,7 +7,7 @@ import ( func initializePages() { Pages = make(map[string]Page) - Pages["index"] = Page{Path: "/", Template: "templates/index.html", Data: map[string]interface{}{"test": '1'}} + Pages["index"] = Page{Path: "/", Template: "templates/index.html", Data: map[string]interface{}{"categories": Categories}} } func initializeData() { @@ -22,11 +22,32 @@ func initializeData() { {8, "Klawiatury"}, {9, "Akcesoria"}, } + + Products = []Product { + { + 1, + GetCategoryByName("Laptopy"), + "Apple MacBook Air 128 GB", + "Procesor Intel Core i5
Pamięć 8 GB
Dysk SSD M.2 PCIe 128 GB
Grafika Intel HD Graphics 6000
Typ ekranu Błyszczący, LED
System macOS Sierra", + "https://cdn.x-kom.pl/i/setup/images/prod/big/product-big,apple-macbook-air-i58gb128gbhd-6000mac-os-368639,pr_2016_4_28_12_39_54_140.jpg", + 11, + 3999, + }, + { + 2, + GetCategoryByName("Komputery"), + "Dell Inspiron 3670", + "System Microsoft Windows 10 Home PL
Procesor Intel Core i7-8700
Grafika NVIDIA GeForce GTX 1050Ti, + Intel UHD Graphics 630
Pamięć RAM 8 GB
Dysk SSD PCIe 128 GB
Dysk HDD SATA 7200 obr. 1000 GB
Miejsce na dodatkowy wewnętrzny dysk SATA Możliwość montażu dwóch dysków SATA", + "https://cdn.x-kom.pl/i/setup/images/prod/big/product-big,dell-inspiron-3670-i7-87008gb1281000win10-gtx1050ti-447395,2018/9/pr_2018_9_20_15_45_5_770_00.jpg", + 123, + 4299, + }, + } } func Initialize() { - initializePages() initializeData() + initializePages() for k := range Pages { http.HandleFunc(Pages[k].Path, Pages[k].HandlePage) } diff --git a/models/models.go b/models/models.go index e674199..399205e 100644 --- a/models/models.go +++ b/models/models.go @@ -12,8 +12,8 @@ type Page struct { } func (p Page) HandlePage(w http.ResponseWriter, r *http.Request) { - t, _ := template.ParseFiles(p.Template) - t.Execute(w, p.Data) + t, _ := template.ParseFiles(p.Template, "templates/base.html") + t.ExecuteTemplate(w, "base", p.Data) } type Category struct { @@ -34,3 +34,14 @@ type Product struct { var Pages map[string]Page var Categories []Category var Products []Product + +func GetCategoryByName(name string) Category { + var category Category + for i:= range Categories { + if Categories[i].Name == name { + category = Categories[i] + break + } + } + return category +} diff --git a/templates/base.html b/templates/base.html new file mode 100644 index 0000000..097d5dd --- /dev/null +++ b/templates/base.html @@ -0,0 +1,16 @@ +{{define "base"}} + + + + Elektromarket + + + + + + + [logo] + {{template "content" .}} + + +{{end}} diff --git a/templates/index.html b/templates/index.html index 8f0d151..f3d06d5 100644 --- a/templates/index.html +++ b/templates/index.html @@ -1,3 +1,5 @@ -[logo] -{{ .test }} -[categories] +{{define "content"}} + {{range $.categories}} + {{ .Name }} + {{end}} +{{end}}