Page Menu
Home
Phorge
Search
Configure Global Search
Log In
Files
F6065083
editor_plugin.js
No One
Temporary
Actions
View File
Edit File
Delete File
View Transforms
Subscribe
Flag For Later
Award Token
Size
6 KB
Referenced Files
None
Subscribers
None
editor_plugin.js
View Options
(
function
(){
var
b
=
tinymce
.
each
,
a
=
tinymce
.
html
.
Node
;
tinymce
.
create
(
"tinymce.plugins.FullPagePlugin"
,{
init
:
function
(
c
,
d
){
var
e
=
this
;
e
.
editor
=
c
;
c
.
addCommand
(
"mceFullPageProperties"
,
function
(){
c
.
windowManager
.
open
({
file
:
d
+
"/fullpage.htm"
,
width
:
430
+
parseInt
(
c
.
getLang
(
"fullpage.delta_width"
,
0
)),
height
:
495
+
parseInt
(
c
.
getLang
(
"fullpage.delta_height"
,
0
)),
inline
:
1
},{
plugin_url
:
d
,
data
:
e
.
_htmlToData
()})});
c
.
addButton
(
"fullpage"
,{
title
:
"fullpage.desc"
,
cmd
:
"mceFullPageProperties"
});
c
.
onBeforeSetContent
.
add
(
e
.
_setContent
,
e
);
c
.
onGetContent
.
add
(
e
.
_getContent
,
e
)},
getInfo
:
function
(){
return
{
longname
:
"Fullpage"
,
author
:
"Moxiecode Systems AB"
,
authorurl
:
"http://tinymce.moxiecode.com"
,
infourl
:
"http://wiki.moxiecode.com/index.php/TinyMCE:Plugins/fullpage"
,
version
:
tinymce
.
majorVersion
+
"."
+
tinymce
.
minorVersion
}},
_htmlToData
:
function
(){
var
f
=
this
.
_parseHeader
(),
h
=
{},
c
,
i
,
g
,
e
=
this
.
editor
;
function
d
(
l
,
j
){
var
k
=
l
.
attr
(
j
);
return
k
||
""
}
h
.
fontface
=
e
.
getParam
(
"fullpage_default_fontface"
,
""
);
h
.
fontsize
=
e
.
getParam
(
"fullpage_default_fontsize"
,
""
);
i
=
f
.
firstChild
;
if
(
i
.
type
==
7
){
h
.
xml_pi
=
true
;
g
=
/encoding="([^"]+)"/
.
exec
(
i
.
value
);
if
(
g
){
h
.
docencoding
=
g
[
1
]}}
i
=
f
.
getAll
(
"#doctype"
)[
0
];
if
(
i
){
h
.
doctype
=
"<!DOCTYPE"
+
i
.
value
+
">"
}
i
=
f
.
getAll
(
"title"
)[
0
];
if
(
i
&&
i
.
firstChild
){
h
.
metatitle
=
i
.
firstChild
.
value
}
b
(
f
.
getAll
(
"meta"
),
function
(
m
){
var
k
=
m
.
attr
(
"name"
),
j
=
m
.
attr
(
"http-equiv"
),
l
;
if
(
k
){
h
[
"meta"
+
k
.
toLowerCase
()]
=
m
.
attr
(
"content"
)}
else
{
if
(
j
==
"Content-Type"
){
l
=
/charset\s*=\s*(.*)\s*/gi
.
exec
(
m
.
attr
(
"content"
));
if
(
l
){
h
.
docencoding
=
l
[
1
]}}}});
i
=
f
.
getAll
(
"html"
)[
0
];
if
(
i
){
h
.
langcode
=
d
(
i
,
"lang"
)
||
d
(
i
,
"xml:lang"
)}
i
=
f
.
getAll
(
"link"
)[
0
];
if
(
i
&&
i
.
attr
(
"rel"
)
==
"stylesheet"
){
h
.
stylesheet
=
i
.
attr
(
"href"
)}
i
=
f
.
getAll
(
"body"
)[
0
];
if
(
i
){
h
.
langdir
=
d
(
i
,
"dir"
);
h
.
style
=
d
(
i
,
"style"
);
h
.
visited_color
=
d
(
i
,
"vlink"
);
h
.
link_color
=
d
(
i
,
"link"
);
h
.
active_color
=
d
(
i
,
"alink"
)}
return
h
},
_dataToHtml
:
function
(
g
){
var
f
,
d
,
h
,
j
,
k
,
e
=
this
.
editor
.
dom
;
function
c
(
n
,
l
,
m
){
n
.
attr
(
l
,
m
?
m
:
undefined
)}
function
i
(
l
){
if
(
d
.
firstChild
){
d
.
insert
(
l
,
d
.
firstChild
)}
else
{
d
.
append
(
l
)}}
f
=
this
.
_parseHeader
();
d
=
f
.
getAll
(
"head"
)[
0
];
if
(
!
d
){
j
=
f
.
getAll
(
"html"
)[
0
];
d
=
new
a
(
"head"
,
1
);
if
(
j
.
firstChild
){
j
.
insert
(
d
,
j
.
firstChild
,
true
)}
else
{
j
.
append
(
d
)}}
j
=
f
.
firstChild
;
if
(
g
.
xml_pi
){
k
=
'version="1.0"'
;
if
(
g
.
docencoding
){
k
+=
' encoding="'
+
g
.
docencoding
+
'"'
}
if
(
j
.
type
!=
7
){
j
=
new
a
(
"xml"
,
7
);
f
.
insert
(
j
,
f
.
firstChild
,
true
)}
j
.
value
=
k
}
else
{
if
(
j
&&
j
.
type
==
7
){
j
.
remove
()}}
j
=
f
.
getAll
(
"#doctype"
)[
0
];
if
(
g
.
doctype
){
if
(
!
j
){
j
=
new
a
(
"#doctype"
,
10
);
if
(
g
.
xml_pi
){
f
.
insert
(
j
,
f
.
firstChild
)}
else
{
i
(
j
)}}
j
.
value
=
g
.
doctype
.
substring
(
9
,
g
.
doctype
.
length
-
1
)}
else
{
if
(
j
){
j
.
remove
()}}
j
=
f
.
getAll
(
"title"
)[
0
];
if
(
g
.
metatitle
){
if
(
!
j
){
j
=
new
a
(
"title"
,
1
);
j
.
append
(
new
a
(
"#text"
,
3
)).
value
=
g
.
metatitle
;
i
(
j
)}}
if
(
g
.
docencoding
){
j
=
null
;
b
(
f
.
getAll
(
"meta"
),
function
(
l
){
if
(
l
.
attr
(
"http-equiv"
)
==
"Content-Type"
){
j
=
l
}});
if
(
!
j
){
j
=
new
a
(
"meta"
,
1
);
j
.
attr
(
"http-equiv"
,
"Content-Type"
);
j
.
shortEnded
=
true
;
i
(
j
)}
j
.
attr
(
"content"
,
"text/html; charset="
+
g
.
docencoding
)}
b
(
"keywords,description,author,copyright,robots"
.
split
(
","
),
function
(
m
){
var
l
=
f
.
getAll
(
"meta"
),
n
,
p
,
o
=
g
[
"meta"
+
m
];
for
(
n
=
0
;
n
<
l
.
length
;
n
++
){
p
=
l
[
n
];
if
(
p
.
attr
(
"name"
)
==
m
){
if
(
o
){
p
.
attr
(
"content"
,
o
)}
else
{
p
.
remove
()}
return
}}
if
(
o
){
j
=
new
a
(
"meta"
,
1
);
j
.
attr
(
"name"
,
m
);
j
.
attr
(
"content"
,
o
);
j
.
shortEnded
=
true
;
i
(
j
)}});
j
=
f
.
getAll
(
"link"
)[
0
];
if
(
j
&&
j
.
attr
(
"rel"
)
==
"stylesheet"
){
if
(
g
.
stylesheet
){
j
.
attr
(
"href"
,
g
.
stylesheet
)}
else
{
j
.
remove
()}}
else
{
if
(
g
.
stylesheet
){
j
=
new
a
(
"link"
,
1
);
j
.
attr
({
rel
:
"stylesheet"
,
text
:
"text/css"
,
href
:
g
.
stylesheet
});
j
.
shortEnded
=
true
;
i
(
j
)}}
j
=
f
.
getAll
(
"body"
)[
0
];
if
(
j
){
c
(
j
,
"dir"
,
g
.
langdir
);
c
(
j
,
"style"
,
g
.
style
);
c
(
j
,
"vlink"
,
g
.
visited_color
);
c
(
j
,
"link"
,
g
.
link_color
);
c
(
j
,
"alink"
,
g
.
active_color
);
e
.
setAttribs
(
this
.
editor
.
getBody
(),{
style
:
g
.
style
,
dir
:
g
.
dir
,
vLink
:
g
.
visited_color
,
link
:
g
.
link_color
,
aLink
:
g
.
active_color
})}
j
=
f
.
getAll
(
"html"
)[
0
];
if
(
j
){
c
(
j
,
"lang"
,
g
.
langcode
);
c
(
j
,
"xml:lang"
,
g
.
langcode
)}
h
=
new
tinymce
.
html
.
Serializer
({
validate
:
false
,
indent
:
true
,
apply_source_formatting
:
true
,
indent_before
:
"head,html,body,meta,title,script,link,style"
,
indent_after
:
"head,html,body,meta,title,script,link,style"
}).
serialize
(
f
);
this
.
head
=
h
.
substring
(
0
,
h
.
indexOf
(
"</body>"
))},
_parseHeader
:
function
(){
return
new
tinymce
.
html
.
DomParser
({
validate
:
false
,
root_name
:
"#document"
}).
parse
(
this
.
head
)},
_setContent
:
function
(
g
,
d
){
var
m
=
this
,
i
,
c
,
h
=
d
.
content
,
f
,
l
=
""
,
e
=
m
.
editor
.
dom
,
j
;
function
k
(
n
){
return
n
.
replace
(
/<\/?[A-Z]+/g
,
function
(
o
){
return
o
.
toLowerCase
()})}
if
(
d
.
format
==
"raw"
&&
m
.
head
){
return
}
if
(
d
.
source_view
&&
g
.
getParam
(
"fullpage_hide_in_source_view"
)){
return
}
h
=
h
.
replace
(
/<(\/?)BODY/gi
,
"<$1body"
);
i
=
h
.
indexOf
(
"<body"
);
if
(
i
!=-
1
){
i
=
h
.
indexOf
(
">"
,
i
);
m
.
head
=
k
(
h
.
substring
(
0
,
i
+
1
));
c
=
h
.
indexOf
(
"</body"
,
i
);
if
(
c
==-
1
){
c
=
h
.
length
}
d
.
content
=
h
.
substring
(
i
+
1
,
c
);
m
.
foot
=
k
(
h
.
substring
(
c
))}
else
{
m
.
head
=
this
.
_getDefaultHeader
();
m
.
foot
=
"\n</body>\n</html>"
}
f
=
m
.
_parseHeader
();
b
(
f
.
getAll
(
"style"
),
function
(
n
){
if
(
n
.
firstChild
){
l
+=
n
.
firstChild
.
value
}});
j
=
f
.
getAll
(
"body"
)[
0
];
if
(
j
){
e
.
setAttribs
(
m
.
editor
.
getBody
(),{
style
:
j
.
attr
(
"style"
)
||
""
,
dir
:
j
.
attr
(
"dir"
)
||
""
,
vLink
:
j
.
attr
(
"vlink"
)
||
""
,
link
:
j
.
attr
(
"link"
)
||
""
,
aLink
:
j
.
attr
(
"alink"
)
||
""
})}
e
.
remove
(
"fullpage_styles"
);
if
(
l
){
e
.
add
(
m
.
editor
.
getDoc
().
getElementsByTagName
(
"head"
)[
0
],
"style"
,{
id
:
"fullpage_styles"
},
l
);
j
=
e
.
get
(
"fullpage_styles"
);
if
(
j
.
styleSheet
){
j
.
styleSheet
.
cssText
=
l
}}},
_getDefaultHeader
:
function
(){
var
f
=
""
,
c
=
this
.
editor
,
e
,
d
=
""
;
if
(
c
.
getParam
(
"fullpage_default_xml_pi"
)){
f
+=
'<?xml version="1.0" encoding="'
+
c
.
getParam
(
"fullpage_default_encoding"
,
"ISO-8859-1"
)
+
'" ?>\n'
}
f
+=
c
.
getParam
(
"fullpage_default_doctype"
,
'<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">'
);
f
+=
"\n<html>\n<head>\n"
;
if
(
e
=
c
.
getParam
(
"fullpage_default_title"
)){
f
+=
"<title>"
+
e
+
"</title>\n"
}
if
(
e
=
c
.
getParam
(
"fullpage_default_encoding"
)){
f
+=
'<meta http-equiv="Content-Type" content="text/html; charset='
+
e
+
'" />\n'
}
if
(
e
=
c
.
getParam
(
"fullpage_default_font_family"
)){
d
+=
"font-family: "
+
e
+
";"
}
if
(
e
=
c
.
getParam
(
"fullpage_default_font_size"
)){
d
+=
"font-size: "
+
e
+
";"
}
if
(
e
=
c
.
getParam
(
"fullpage_default_text_color"
)){
d
+=
"color: "
+
e
+
";"
}
f
+=
"</head>\n<body"
+
(
d
?
' style="'
+
d
+
'"'
:
""
)
+
">\n"
;
return
f
},
_getContent
:
function
(
d
,
e
){
var
c
=
this
;
if
(
!
e
.
source_view
||!
d
.
getParam
(
"fullpage_hide_in_source_view"
)){
e
.
content
=
tinymce
.
trim
(
c
.
head
)
+
"\n"
+
tinymce
.
trim
(
e
.
content
)
+
"\n"
+
tinymce
.
trim
(
c
.
foot
)}}});
tinymce
.
PluginManager
.
add
(
"fullpage"
,
tinymce
.
plugins
.
FullPagePlugin
)})();
File Metadata
Details
Attached
Mime Type
text/plain
Expires
Fri, May 22, 4:31 AM (1 d, 22 h)
Storage Engine
blob
Storage Format
Raw Data
Storage Handle
566027
Default Alt Text
editor_plugin.js (6 KB)
Attached To
Mode
R3 roundcubemail
Attached
Detach File
Event Timeline
Log In to Comment