Skip to content
Projects
Groups
Snippets
Help
Loading...
Sign in
Toggle navigation
B
beego
Project
Project
Details
Activity
Cycle Analytics
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Charts
Issues
0
Issues
0
List
Board
Labels
Milestones
Merge Requests
0
Merge Requests
0
Wiki
Wiki
Snippets
Snippets
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Charts
Create a new issue
Commits
Issue Boards
Open sidebar
go
beego
Commits
f502f844
Commit
f502f844
authored
Sep 12, 2013
by
astaxie
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
fix #189
parent
e788fb72
Hide whitespace changes
Inline
Side-by-side
Showing
2 changed files
with
66 additions
and
8 deletions
+66
-8
controller.go
controller.go
+59
-2
template.go
template.go
+7
-6
No files found.
controller.go
View file @
f502f844
...
...
@@ -17,6 +17,7 @@ import (
"net/url"
"os"
"path"
"regexp"
"strconv"
"strings"
"time"
...
...
@@ -133,14 +134,52 @@ func (c *Controller) RenderBytes() ([]byte, error) {
panic
(
"can't find templatefile in the path:"
+
c
.
TplNames
)
return
[]
byte
{},
errors
.
New
(
"can't find templatefile in the path:"
+
c
.
TplNames
)
}
BeeTemplates
[
subdir
]
.
ExecuteTemplate
(
newbytes
,
file
,
c
.
Data
)
err
:=
BeeTemplates
[
subdir
]
.
ExecuteTemplate
(
newbytes
,
file
,
c
.
Data
)
if
err
!=
nil
{
LayoutTplErrDeal
:
if
terr
,
ok
:=
err
.
(
*
template
.
Error
);
ok
{
if
terr
.
ErrorCode
==
template
.
ErrNoSuchTemplate
{
reg
:=
regexp
.
MustCompile
(
"
\"
(.+)
\"
"
)
a
:=
reg
.
FindStringSubmatch
(
terr
.
Description
)
if
len
(
a
)
>
1
{
missfile
:=
path
.
Join
(
ViewsPath
,
subdir
,
a
[
1
])
AllTemplateFiles
.
files
[
subdir
]
=
append
(
AllTemplateFiles
.
files
[
subdir
],
missfile
)
for
k
,
v
:=
range
AllTemplateFiles
.
files
{
BeeTemplates
[
k
]
=
template
.
Must
(
template
.
New
(
"beegoTemplate"
+
k
)
.
Delims
(
TemplateLeft
,
TemplateRight
)
.
Funcs
(
beegoTplFuncMap
)
.
ParseFiles
(
v
...
))
}
err
=
BeeTemplates
[
subdir
]
.
ExecuteTemplate
(
newbytes
,
file
,
c
.
Data
)
if
err
!=
nil
{
goto
LayoutTplErrDeal
}
}
}
}
}
tplcontent
,
_
:=
ioutil
.
ReadAll
(
newbytes
)
c
.
Data
[
"LayoutContent"
]
=
template
.
HTML
(
string
(
tplcontent
))
subdir
=
path
.
Dir
(
c
.
Layout
)
_
,
file
=
path
.
Split
(
c
.
Layout
)
ibytes
:=
bytes
.
NewBufferString
(
""
)
err
:
=
BeeTemplates
[
subdir
]
.
ExecuteTemplate
(
ibytes
,
file
,
c
.
Data
)
err
=
BeeTemplates
[
subdir
]
.
ExecuteTemplate
(
ibytes
,
file
,
c
.
Data
)
if
err
!=
nil
{
LayoutErrDeal
:
if
terr
,
ok
:=
err
.
(
*
template
.
Error
);
ok
{
if
terr
.
ErrorCode
==
template
.
ErrNoSuchTemplate
{
reg
:=
regexp
.
MustCompile
(
"
\"
(.+)
\"
"
)
a
:=
reg
.
FindStringSubmatch
(
terr
.
Description
)
if
len
(
a
)
>
1
{
missfile
:=
path
.
Join
(
ViewsPath
,
subdir
,
a
[
1
])
AllTemplateFiles
.
files
[
subdir
]
=
append
(
AllTemplateFiles
.
files
[
subdir
],
missfile
)
for
k
,
v
:=
range
AllTemplateFiles
.
files
{
BeeTemplates
[
k
]
=
template
.
Must
(
template
.
New
(
"beegoTemplate"
+
k
)
.
Delims
(
TemplateLeft
,
TemplateRight
)
.
Funcs
(
beegoTplFuncMap
)
.
ParseFiles
(
v
...
))
}
err
=
BeeTemplates
[
subdir
]
.
ExecuteTemplate
(
ibytes
,
file
,
c
.
Data
)
if
err
!=
nil
{
goto
LayoutErrDeal
}
}
}
}
Trace
(
"template Execute err:"
,
err
)
}
icontent
,
_
:=
ioutil
.
ReadAll
(
ibytes
)
...
...
@@ -161,6 +200,24 @@ func (c *Controller) RenderBytes() ([]byte, error) {
}
err
:=
BeeTemplates
[
subdir
]
.
ExecuteTemplate
(
ibytes
,
file
,
c
.
Data
)
if
err
!=
nil
{
ErrDeal
:
if
terr
,
ok
:=
err
.
(
*
template
.
Error
);
ok
{
if
terr
.
ErrorCode
==
template
.
ErrNoSuchTemplate
{
reg
:=
regexp
.
MustCompile
(
"
\"
(.+)
\"
"
)
a
:=
reg
.
FindStringSubmatch
(
terr
.
Description
)
if
len
(
a
)
>
1
{
missfile
:=
path
.
Join
(
ViewsPath
,
subdir
,
a
[
1
])
AllTemplateFiles
.
files
[
subdir
]
=
append
(
AllTemplateFiles
.
files
[
subdir
],
missfile
)
for
k
,
v
:=
range
AllTemplateFiles
.
files
{
BeeTemplates
[
k
]
=
template
.
Must
(
template
.
New
(
"beegoTemplate"
+
k
)
.
Delims
(
TemplateLeft
,
TemplateRight
)
.
Funcs
(
beegoTplFuncMap
)
.
ParseFiles
(
v
...
))
}
err
=
BeeTemplates
[
subdir
]
.
ExecuteTemplate
(
ibytes
,
file
,
c
.
Data
)
if
err
!=
nil
{
goto
ErrDeal
}
}
}
}
Trace
(
"template Execute err:"
,
err
)
}
icontent
,
_
:=
ioutil
.
ReadAll
(
ibytes
)
...
...
template.go
View file @
f502f844
...
...
@@ -13,9 +13,10 @@ import (
)
var
(
beegoTplFuncMap
template
.
FuncMap
BeeTemplates
map
[
string
]
*
template
.
Template
BeeTemplateExt
[]
string
beegoTplFuncMap
template
.
FuncMap
BeeTemplates
map
[
string
]
*
template
.
Template
BeeTemplateExt
[]
string
AllTemplateFiles
*
templatefile
)
func
init
()
{
...
...
@@ -100,18 +101,18 @@ func BuildTemplate(dir string) error {
return
errors
.
New
(
"dir open err"
)
}
}
self
:=
templatefile
{
AllTemplateFiles
=
&
templatefile
{
root
:
dir
,
files
:
make
(
map
[
string
][]
string
),
}
err
:=
filepath
.
Walk
(
dir
,
func
(
path
string
,
f
os
.
FileInfo
,
err
error
)
error
{
return
self
.
visit
(
path
,
f
,
err
)
return
AllTemplateFiles
.
visit
(
path
,
f
,
err
)
})
if
err
!=
nil
{
fmt
.
Printf
(
"filepath.Walk() returned %v
\n
"
,
err
)
return
err
}
for
k
,
v
:=
range
self
.
files
{
for
k
,
v
:=
range
AllTemplateFiles
.
files
{
BeeTemplates
[
k
]
=
template
.
Must
(
template
.
New
(
"beegoTemplate"
+
k
)
.
Delims
(
TemplateLeft
,
TemplateRight
)
.
Funcs
(
beegoTplFuncMap
)
.
ParseFiles
(
v
...
))
}
return
nil
...
...
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment