package models import ( "bytes" "fmt" ) // Контекст страницы type Page struct { AccessLvl int //уровень доступа юзера Title string // тайтл странциы PostsSublist Posts Number int // номер страницы Data string // строка с данными (например искомая строка для поиска) SiteCtx *Site } // Возвращает контекст страницы по списку постов (которые на ней должны быть), // номеру страницы, метадаты func NewPage(s *Site, postsSublist Posts, pageNumber int, accessLvl int, data string) *Page { return &Page{ AccessLvl: accessLvl, Title: "hikan.ru", PostsSublist: postsSublist, Number: pageNumber, Data: data, SiteCtx: s, } } func (p *Page) RenderPage(s *Site, tmplname string) (string, error) { var buffer bytes.Buffer if err := s.Tmpl.ExecuteTemplate( &buffer, fmt.Sprintf("%s.gohtml", tmplname), p); err != nil { return "", err } return buffer.String(), nil }