00001 <?php
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020
00021
00022
00023
00024
00035 class ilTinyMCE
00036 {
00037 function ilTinyMCE ()
00038 {
00039 return;
00040 }
00041
00042 function _buildAdvancedBlockformatsFromHTMLTags($a_html_tags)
00043 {
00044 $blockformats = array();
00045
00046 if (in_array("p", $a_html_tags))
00047 {
00048 array_push($blockformats, "p");
00049 }
00050 if (in_array("div", $a_html_tags))
00051 {
00052 array_push($blockformats, "div");
00053 }
00054 if (in_array("pre", $a_html_tags))
00055 {
00056 array_push($blockformats, "pre");
00057 }
00058 if (in_array("code", $a_html_tags))
00059 {
00060 array_push($blockformats, "code");
00061 }
00062 if (in_array("h1", $a_html_tags))
00063 {
00064 array_push($blockformats, "h1");
00065 }
00066 if (in_array("h2", $a_html_tags))
00067 {
00068 array_push($blockformats, "h2");
00069 }
00070 if (in_array("h3", $a_html_tags))
00071 {
00072 array_push($blockformats, "h3");
00073 }
00074 if (in_array("h4", $a_html_tags))
00075 {
00076 array_push($blockformats, "h4");
00077 }
00078 if (in_array("h5", $a_html_tags))
00079 {
00080 array_push($blockformats, "h5");
00081 }
00082 if (in_array("h6", $a_html_tags))
00083 {
00084 array_push($blockformats, "h6");
00085 }
00086 if (count($blockformats))
00087 {
00088 return join(",", $blockformats);
00089 }
00090 else
00091 {
00092 return "";
00093 }
00094 }
00095
00096 function _buildAdvancedButtonsFromHTMLTags($a_html_tags)
00097 {
00098 $theme_advanced_buttons = array();
00099 if (in_array("strong", $a_html_tags))
00100 {
00101 array_push($theme_advanced_buttons, "bold");
00102 }
00103 if (in_array("em", $a_html_tags))
00104 {
00105 array_push($theme_advanced_buttons, "italic");
00106 }
00107 if (in_array("u", $a_html_tags))
00108 {
00109 array_push($theme_advanced_buttons, "underline");
00110 }
00111 if (in_array("strike", $a_html_tags))
00112 {
00113 array_push($theme_advanced_buttons, "strikethrough");
00114 }
00115 if (count($theme_advanced_buttons))
00116 {
00117 array_push($theme_advanced_buttons, "separator");
00118 }
00119 if (in_array("p", $a_html_tags))
00120 {
00121 array_push($theme_advanced_buttons, "justifyleft");
00122 array_push($theme_advanced_buttons, "justifycenter");
00123 array_push($theme_advanced_buttons, "justifyright");
00124 array_push($theme_advanced_buttons, "justifyfull");
00125 array_push($theme_advanced_buttons, "separator");
00126 }
00127 if (strlen(ilTinyMCE::_buildAdvancedBlockformatsFromHTMLTags($a_html_tags)))
00128 {
00129 array_push($theme_advanced_buttons, "formatselect");
00130 }
00131 if (in_array("hr", $a_html_tags))
00132 {
00133 array_push($theme_advanced_buttons, "hr");
00134 }
00135 array_push($theme_advanced_buttons, "removeformat");
00136 array_push($theme_advanced_buttons, "separator");
00137 if (in_array("sub", $a_html_tags))
00138 {
00139 array_push($theme_advanced_buttons, "sub");
00140 }
00141 if (in_array("sup", $a_html_tags))
00142 {
00143 array_push($theme_advanced_buttons, "sup");
00144 }
00145 array_push($theme_advanced_buttons, "charmap");
00146 if ((in_array("ol", $a_html_tags)) && (in_array("li", $a_html_tags)))
00147 {
00148 array_push($theme_advanced_buttons, "bullist");
00149 }
00150 if ((in_array("ul", $a_html_tags)) && (in_array("li", $a_html_tags)))
00151 {
00152 array_push($theme_advanced_buttons, "numlist");
00153 }
00154 array_push($theme_advanced_buttons, "separator");
00155 if (in_array("cite", $a_html_tags))
00156 {
00157 array_push($theme_advanced_buttons, "cite");
00158 }
00159 if (in_array("abbr", $a_html_tags))
00160 {
00161 array_push($theme_advanced_buttons, "abbr");
00162 }
00163 if (in_array("acronym", $a_html_tags))
00164 {
00165 array_push($theme_advanced_buttons, "acronym");
00166 }
00167 if (in_array("del", $a_html_tags))
00168 {
00169 array_push($theme_advanced_buttons, "del");
00170 }
00171 if (in_array("ins", $a_html_tags))
00172 {
00173 array_push($theme_advanced_buttons, "ins");
00174 }
00175 if (in_array("blockquote", $a_html_tags))
00176 {
00177 array_push($theme_advanced_buttons, "indent");
00178 array_push($theme_advanced_buttons, "outdent");
00179 }
00180 if (in_array("a", $a_html_tags))
00181 {
00182 array_push($theme_advanced_buttons, "link");
00183 array_push($theme_advanced_buttons, "unlink");
00184 array_push($theme_advanced_buttons, "anchor");
00185 }
00186 array_push($theme_advanced_buttons, "separator");
00187 array_push($theme_advanced_buttons, "undo");
00188 array_push($theme_advanced_buttons, "redo");
00189 return join(",", $theme_advanced_buttons);
00190 }
00191
00192 function _getEditorLanguage()
00193 {
00194 global $ilUser;
00195 $lang = $ilUser->getLanguage();
00196 if (file_exists(ilUtil::getJSPath("tiny_mce/langs/$lang.js")))
00197 {
00198 return "$lang";
00199 }
00200 else
00201 {
00202 return "en";
00203 }
00204 }
00205
00206 function _getValidElementsFromHTMLTags($a_html_tags)
00207 {
00208 $valid_elements = array();
00209 foreach ($a_html_tags as $tag)
00210 {
00211 switch ($tag)
00212 {
00213 case "a":
00214 array_push($valid_elements, "a[accesskey|charset|class|coords|dir<ltr?rtl|href|hreflang|id|lang|name"
00215 ."|onblur|onclick|ondblclick|onfocus|onkeydown|onkeypress|onkeyup"
00216 ."|onmousedown|onmousemove|onmouseout|onmouseover|onmouseup|rel|rev"
00217 ."|shape<circle?default?poly?rect|style|tabindex|title|target|type]");
00218 break;
00219 case "abbr":
00220 array_push($valid_elements, "abbr[class|dir<ltr?rtl|id|lang|onclick|ondblclick|onkeydown|onkeypress"
00221 ."|onkeyup|onmousedown|onmousemove|onmouseout|onmouseover|onmouseup|style"
00222 ."|title]");
00223 break;
00224 case "acronym":
00225 array_push($valid_elements, "acronym[class|dir<ltr?rtl|id|id|lang|onclick|ondblclick|onkeydown|onkeypress"
00226 ."|onkeyup|onmousedown|onmousemove|onmouseout|onmouseover|onmouseup|style"
00227 ."|title]");
00228 break;
00229 case "address":
00230 array_push($valid_elements, "address[class|align|dir<ltr?rtl|id|lang|onclick|ondblclick|onkeydown"
00231 ."|onkeypress|onkeyup|onmousedown|onmousemove|onmouseout|onmouseover"
00232 ."|onmouseup|style|title]");
00233 break;
00234 case "applet":
00235 array_push($valid_elements, "applet[align<bottom?left?middle?right?top|alt|archive|class|code|codebase"
00236 ."|height|hspace|id|name|object|style|title|vspace|width]");
00237 break;
00238 case "area":
00239 array_push($valid_elements, "area[accesskey|alt|class|coords|dir<ltr?rtl|href|id|lang|nohref<nohref"
00240 ."|onblur|onclick|ondblclick|onfocus|onkeydown|onkeypress|onkeyup"
00241 ."|onmousedown|onmousemove|onmouseout|onmouseover|onmouseup"
00242 ."|shape<circle?default?poly?rect|style|tabindex|title|target]");
00243 break;
00244 case "base":
00245 array_push($valid_elements, "base[href|target]");
00246 break;
00247 case "basefont":
00248 array_push($valid_elements, "basefont[color|face|id|size]");
00249 break;
00250 case "bdo":
00251 array_push($valid_elements, "bdo[class|dir<ltr?rtl|id|lang|style|title]");
00252 break;
00253 case "big":
00254 array_push($valid_elements, "big[class|dir<ltr?rtl|id|lang|onclick|ondblclick|onkeydown|onkeypress"
00255 ."|onkeyup|onmousedown|onmousemove|onmouseout|onmouseover|onmouseup|style"
00256 ."|title]");
00257 break;
00258 case "blockquote":
00259 array_push($valid_elements, "blockquote[dir|style|cite|class|dir<ltr?rtl|id|lang|onclick|ondblclick"
00260 ."|onkeydown|onkeypress|onkeyup|onmousedown|onmousemove|onmouseout"
00261 ."|onmouseover|onmouseup|style|title]");
00262 break;
00263 case "body":
00264 array_push($valid_elements, "body[alink|background|bgcolor|class|dir<ltr?rtl|id|lang|link|onclick"
00265 ."|ondblclick|onkeydown|onkeypress|onkeyup|onload|onmousedown|onmousemove"
00266 ."|onmouseout|onmouseover|onmouseup|onunload|style|title|text|vlink]");
00267 break;
00268 case "br":
00269 array_push($valid_elements, "br[class|clear<all?left?none?right|id|style|title]");
00270 break;
00271 case "button":
00272 array_push($valid_elements, "button[accesskey|class|dir<ltr?rtl|disabled<disabled|id|lang|name|onblur"
00273 ."|onclick|ondblclick|onfocus|onkeydown|onkeypress|onkeyup|onmousedown"
00274 ."|onmousemove|onmouseout|onmouseover|onmouseup|style|tabindex|title|type"
00275 ."|value]");
00276 break;
00277 case "caption":
00278 array_push($valid_elements, "caption[align<bottom?left?right?top|class|dir<ltr?rtl|id|lang|onclick"
00279 ."|ondblclick|onkeydown|onkeypress|onkeyup|onmousedown|onmousemove"
00280 ."|onmouseout|onmouseover|onmouseup|style|title]");
00281 break;
00282 case "center":
00283 array_push($valid_elements, "center[class|dir<ltr?rtl|id|lang|onclick|ondblclick|onkeydown|onkeypress"
00284 ."|onkeyup|onmousedown|onmousemove|onmouseout|onmouseover|onmouseup|style"
00285 ."|title]");
00286 break;
00287 case "cite":
00288 array_push($valid_elements, "cite[class|dir<ltr?rtl|id|lang|onclick|ondblclick|onkeydown|onkeypress"
00289 ."|onkeyup|onmousedown|onmousemove|onmouseout|onmouseover|onmouseup|style"
00290 ."|title]");
00291 break;
00292 case "code":
00293 array_push($valid_elements, "code[class|dir<ltr?rtl|id|lang|onclick|ondblclick|onkeydown|onkeypress"
00294 ."|onkeyup|onmousedown|onmousemove|onmouseout|onmouseover|onmouseup|style"
00295 ."|title]");
00296 break;
00297 case "col":
00298 array_push($valid_elements, "col[align<center?char?justify?left?right|char|charoff|class|dir<ltr?rtl|id"
00299 ."|lang|onclick|ondblclick|onkeydown|onkeypress|onkeyup|onmousedown"
00300 ."|onmousemove|onmouseout|onmouseover|onmouseup|span|style|title"
00301 ."|valign<baseline?bottom?middle?top|width]");
00302 break;
00303 case "colgroup":
00304 array_push($valid_elements, "colgroup[align<center?char?justify?left?right|char|charoff|class|dir<ltr?rtl"
00305 ."|id|lang|onclick|ondblclick|onkeydown|onkeypress|onkeyup|onmousedown"
00306 ."|onmousemove|onmouseout|onmouseover|onmouseup|span|style|title"
00307 ."|valign<baseline?bottom?middle?top|width]");
00308 break;
00309 case "dd":
00310 array_push($valid_elements, "dd[class|dir<ltr?rtl|id|lang|onclick|ondblclick|onkeydown|onkeypress|onkeyup"
00311 ."|onmousedown|onmousemove|onmouseout|onmouseover|onmouseup|style|title]");
00312 break;
00313 case "del":
00314 array_push($valid_elements, "del[cite|class|datetime|dir<ltr?rtl|id|lang|onclick|ondblclick|onkeydown"
00315 ."|onkeypress|onkeyup|onmousedown|onmousemove|onmouseout|onmouseover"
00316 ."|onmouseup|style|title]");
00317 break;
00318 case "dfn":
00319 array_push($valid_elements, "dfn[class|dir<ltr?rtl|id|lang|onclick|ondblclick|onkeydown|onkeypress"
00320 ."|onkeyup|onmousedown|onmousemove|onmouseout|onmouseover|onmouseup|style"
00321 ."|title]");
00322 break;
00323 case "dir":
00324 array_push($valid_elements, "dir[class|compact<compact|dir<ltr?rtl|id|lang|onclick|ondblclick|onkeydown"
00325 ."|onkeypress|onkeyup|onmousedown|onmousemove|onmouseout|onmouseover"
00326 ."|onmouseup|style|title]");
00327 break;
00328 case "div":
00329 array_push($valid_elements, "div[align<center?justify?left?right|class|dir<ltr?rtl|id|lang|onclick"
00330 ."|ondblclick|onkeydown|onkeypress|onkeyup|onmousedown|onmousemove"
00331 ."|onmouseout|onmouseover|onmouseup|style|title]");
00332 break;
00333 case "dl":
00334 array_push($valid_elements, "dl[class|compact<compact|dir<ltr?rtl|id|lang|onclick|ondblclick|onkeydown"
00335 ."|onkeypress|onkeyup|onmousedown|onmousemove|onmouseout|onmouseover"
00336 ."|onmouseup|style|title]");
00337 break;
00338 case "dt":
00339 array_push($valid_elements, "dt[class|dir<ltr?rtl|id|lang|onclick|ondblclick|onkeydown|onkeypress|onkeyup"
00340 ."|onmousedown|onmousemove|onmouseout|onmouseover|onmouseup|style|title]");
00341 break;
00342 case "em":
00343 array_push($valid_elements, "em/i[class|dir<ltr?rtl|id|lang|onclick|ondblclick|onkeydown|onkeypress"
00344 ."|onkeyup|onmousedown|onmousemove|onmouseout|onmouseover|onmouseup|style"
00345 ."|title]");
00346 break;
00347 case "fieldset":
00348 array_push($valid_elements, "fieldset[class|dir<ltr?rtl|id|lang|onclick|ondblclick|onkeydown|onkeypress"
00349 ."|onkeyup|onmousedown|onmousemove|onmouseout|onmouseover|onmouseup|style"
00350 ."|title]");
00351 break;
00352 case "font":
00353 array_push($valid_elements, "font[class|color|dir<ltr?rtl|face|id|lang|size|style|title]");
00354 break;
00355 case "form":
00356 array_push($valid_elements, "form[accept|accept-charset|action|class|dir<ltr?rtl|enctype|id|lang"
00357 ."|method<get?post|name|onclick|ondblclick|onkeydown|onkeypress|onkeyup"
00358 ."|onmousedown|onmousemove|onmouseout|onmouseover|onmouseup|onreset|onsubmit"
00359 ."|style|title|target]");
00360 break;
00361 case "frame":
00362 array_push($valid_elements, "frame[class|frameborder|id|longdesc|marginheight|marginwidth|name"
00363 ."|noresize<noresize|scrolling<auto?no?yes|src|style|title]");
00364 break;
00365 case "frameset":
00366 array_push($valid_elements, "frameset[class|cols|id|onload|onunload|rows|style|title]");
00367 break;
00368 case "h1":
00369 array_push($valid_elements, "h1[align<center?justify?left?right|class|dir<ltr?rtl|id|lang|onclick"
00370 ."|ondblclick|onkeydown|onkeypress|onkeyup|onmousedown|onmousemove"
00371 ."|onmouseout|onmouseover|onmouseup|style|title]");
00372 break;
00373 case "h2":
00374 array_push($valid_elements, "h2[align<center?justify?left?right|class|dir<ltr?rtl|id|lang|onclick"
00375 ."|ondblclick|onkeydown|onkeypress|onkeyup|onmousedown|onmousemove"
00376 ."|onmouseout|onmouseover|onmouseup|style|title]");
00377 break;
00378 case "h3":
00379 array_push($valid_elements, "h3[align<center?justify?left?right|class|dir<ltr?rtl|id|lang|onclick"
00380 ."|ondblclick|onkeydown|onkeypress|onkeyup|onmousedown|onmousemove"
00381 ."|onmouseout|onmouseover|onmouseup|style|title]");
00382 break;
00383 case "h4":
00384 array_push($valid_elements, "h4[align<center?justify?left?right|class|dir<ltr?rtl|id|lang|onclick"
00385 ."|ondblclick|onkeydown|onkeypress|onkeyup|onmousedown|onmousemove"
00386 ."|onmouseout|onmouseover|onmouseup|style|title]");
00387 break;
00388 case "h5":
00389 array_push($valid_elements, "h5[align<center?justify?left?right|class|dir<ltr?rtl|id|lang|onclick"
00390 ."|ondblclick|onkeydown|onkeypress|onkeyup|onmousedown|onmousemove"
00391 ."|onmouseout|onmouseover|onmouseup|style|title]");
00392 break;
00393 case "h6":
00394 array_push($valid_elements, "h6[align<center?justify?left?right|class|dir<ltr?rtl|id|lang|onclick"
00395 ."|ondblclick|onkeydown|onkeypress|onkeyup|onmousedown|onmousemove"
00396 ."|onmouseout|onmouseover|onmouseup|style|title]");
00397 break;
00398 case "head":
00399 array_push($valid_elements, "head[dir<ltr?rtl|lang|profile]");
00400 break;
00401 case "hr":
00402 array_push($valid_elements, "hr[align<center?left?right|class|dir<ltr?rtl|id|lang|noshade<noshade|onclick"
00403 ."|ondblclick|onkeydown|onkeypress|onkeyup|onmousedown|onmousemove"
00404 ."|onmouseout|onmouseover|onmouseup|size|style|title|width]");
00405 break;
00406 case "html":
00407 array_push($valid_elements, "html[dir<ltr?rtl|lang|version]");
00408 break;
00409 case "iframe":
00410 array_push($valid_elements, "iframe[align<bottom?left?middle?right?top|class|frameborder|height|id"
00411 ."|longdesc|marginheight|marginwidth|name|scrolling<auto?no?yes|src|style"
00412 ."|title|width]");
00413 break;
00414 case "img":
00415 array_push($valid_elements, "img[align<bottom?left?middle?right?top|alt|border|class|dir<ltr?rtl|height"
00416 ."|hspace|id|ismap<ismap|lang|longdesc|name|onclick|ondblclick|onkeydown"
00417 ."|onkeypress|onkeyup|onmousedown|onmousemove|onmouseout|onmouseover"
00418 ."|onmouseup|src|style|title|usemap|vspace|width]");
00419 break;
00420 case "input":
00421 array_push($valid_elements, "input[accept|accesskey|align<bottom?left?middle?right?top|alt"
00422 ."|checked<checked|class|dir<ltr?rtl|disabled<disabled|id|ismap<ismap|lang"
00423 ."|maxlength|name|onblur|onclick|ondblclick|onfocus|onkeydown|onkeypress"
00424 ."|onkeyup|onmousedown|onmousemove|onmouseout|onmouseover|onmouseup|onselect"
00425 ."|readonly<readonly|size|src|style|tabindex|title"
00426 ."|type<button?checkbox?file?hidden?image?password?radio?reset?submit?text"
00427 ."|usemap|value]");
00428 break;
00429 case "ins":
00430 array_push($valid_elements, "ins[cite|class|datetime|dir<ltr?rtl|id|lang|onclick|ondblclick|onkeydown"
00431 ."|onkeypress|onkeyup|onmousedown|onmousemove|onmouseout|onmouseover"
00432 ."|onmouseup|style|title]");
00433 break;
00434 case "isindex":
00435 array_push($valid_elements, "isindex[class|dir<ltr?rtl|id|lang|prompt|style|title]");
00436 break;
00437 case "kbd":
00438 array_push($valid_elements, "kbd[class|dir<ltr?rtl|id|lang|onclick|ondblclick|onkeydown|onkeypress"
00439 ."|onkeyup|onmousedown|onmousemove|onmouseout|onmouseover|onmouseup|style"
00440 ."|title]");
00441 break;
00442 case "label":
00443 array_push($valid_elements, "label[accesskey|class|dir<ltr?rtl|for|id|lang|onblur|onclick|ondblclick"
00444 ."|onfocus|onkeydown|onkeypress|onkeyup|onmousedown|onmousemove|onmouseout"
00445 ."|onmouseover|onmouseup|style|title]");
00446 break;
00447 case "legend":
00448 array_push($valid_elements, "legend[align<bottom?left?right?top|accesskey|class|dir<ltr?rtl|id|lang"
00449 ."|onclick|ondblclick|onkeydown|onkeypress|onkeyup|onmousedown|onmousemove"
00450 ."|onmouseout|onmouseover|onmouseup|style|title]");
00451 break;
00452 case "li":
00453 array_push($valid_elements, "li[class|dir<ltr?rtl|id|lang|onclick|ondblclick|onkeydown|onkeypress|onkeyup"
00454 ."|onmousedown|onmousemove|onmouseout|onmouseover|onmouseup|style|title|type"
00455 ."|value]");
00456 break;
00457 case "link":
00458 array_push($valid_elements, "link[charset|class|dir<ltr?rtl|href|hreflang|id|lang|media|onclick"
00459 ."|ondblclick|onkeydown|onkeypress|onkeyup|onmousedown|onmousemove"
00460 ."|onmouseout|onmouseover|onmouseup|rel|rev|style|title|target|type]");
00461 break;
00462 case "map":
00463 array_push($valid_elements, "map[class|dir<ltr?rtl|id|lang|name|onclick|ondblclick|onkeydown|onkeypress"
00464 ."|onkeyup|onmousedown|onmousemove|onmouseout|onmouseover|onmouseup|style"
00465 ."|title]");
00466 break;
00467 case "menu":
00468 array_push($valid_elements, "menu[class|compact<compact|dir<ltr?rtl|id|lang|onclick|ondblclick|onkeydown"
00469 ."|onkeypress|onkeyup|onmousedown|onmousemove|onmouseout|onmouseover"
00470 ."|onmouseup|style|title]");
00471 break;
00472 case "meta":
00473 array_push($valid_elements, "meta[content|dir<ltr?rtl|http-equiv|lang|name|scheme]");
00474 break;
00475 case "noframes":
00476 array_push($valid_elements, "noframes[class|dir<ltr?rtl|id|lang|onclick|ondblclick|onkeydown|onkeypress"
00477 ."|onkeyup|onmousedown|onmousemove|onmouseout|onmouseover|onmouseup|style"
00478 ."|title]");
00479 break;
00480 case "noscript":
00481 array_push($valid_elements, "noscript[class|dir<ltr?rtl|id|lang|onclick|ondblclick|onkeydown|onkeypress"
00482 ."|onkeyup|onmousedown|onmousemove|onmouseout|onmouseover|onmouseup|style"
00483 ."|title]");
00484 break;
00485 case "object":
00486 array_push($valid_elements, "object[align<bottom?left?middle?right?top|archive|border|class|classid"
00487 ."|codebase|codetype|data|declare|dir<ltr?rtl|height|hspace|id|lang|name"
00488 ."|onclick|ondblclick|onkeydown|onkeypress|onkeyup|onmousedown|onmousemove"
00489 ."|onmouseout|onmouseover|onmouseup|standby|style|tabindex|title|type|usemap"
00490 ."|vspace|width]");
00491 break;
00492 case "ol":
00493 array_push($valid_elements, "ol[class|compact<compact|dir<ltr?rtl|id|lang|onclick|ondblclick|onkeydown"
00494 ."|onkeypress|onkeyup|onmousedown|onmousemove|onmouseout|onmouseover"
00495 ."|onmouseup|start|style|title|type]");
00496 break;
00497 case "optgroup":
00498 array_push($valid_elements, "optgroup[class|dir<ltr?rtl|disabled<disabled|id|label|lang|onclick"
00499 ."|ondblclick|onkeydown|onkeypress|onkeyup|onmousedown|onmousemove"
00500 ."|onmouseout|onmouseover|onmouseup|style|title]");
00501 break;
00502 case "option":
00503 array_push($valid_elements, "option[class|dir<ltr?rtl|disabled<disabled|id|label|lang|onclick|ondblclick"
00504 ."|onkeydown|onkeypress|onkeyup|onmousedown|onmousemove|onmouseout"
00505 ."|onmouseover|onmouseup|selected<selected|style|title|value]");
00506 break;
00507 case "p":
00508 array_push($valid_elements, "p[align<center?justify?left?right|class|dir<ltr?rtl|id|lang|onclick"
00509 ."|ondblclick|onkeydown|onkeypress|onkeyup|onmousedown|onmousemove"
00510 ."|onmouseout|onmouseover|onmouseup|style|title]");
00511 break;
00512 case "param":
00513 array_push($valid_elements, "param[id|name|type|value|valuetype<DATA?OBJECT?REF]");
00514 break;
00515 case "pre":
00516 case "listing":
00517 case "plaintext":
00518 case "xmp":
00519 array_push($valid_elements, "pre/listing/plaintext/xmp[align|class|dir<ltr?rtl|id|lang|onclick|ondblclick"
00520 ."|onkeydown|onkeypress|onkeyup|onmousedown|onmousemove|onmouseout"
00521 ."|onmouseover|onmouseup|style|title|width]");
00522 break;
00523 case "q":
00524 array_push($valid_elements, "q[cite|class|dir<ltr?rtl|id|lang|onclick|ondblclick|onkeydown|onkeypress"
00525 ."|onkeyup|onmousedown|onmousemove|onmouseout|onmouseover|onmouseup|style"
00526 ."|title]");
00527 break;
00528 case "s":
00529 array_push($valid_elements, "s[class|dir<ltr?rtl|id|lang|onclick|ondblclick|onkeydown|onkeypress|onkeyup"
00530 ."|onmousedown|onmousemove|onmouseout|onmouseover|onmouseup|style|title]");
00531 break;
00532 case "samp":
00533 array_push($valid_elements, "samp[class|dir<ltr?rtl|id|lang|onclick|ondblclick|onkeydown|onkeypress"
00534 ."|onkeyup|onmousedown|onmousemove|onmouseout|onmouseover|onmouseup|style"
00535 ."|title]");
00536 break;
00537 case "script":
00538 array_push($valid_elements, "script[charset|defer|language|src|type]");
00539 break;
00540 case "select":
00541 array_push($valid_elements, "select[class|dir<ltr?rtl|disabled<disabled|id|lang|multiple<multiple|name"
00542 ."|onblur|onclick|ondblclick|onfocus|onkeydown|onkeypress|onkeyup"
00543 ."|onmousedown|onmousemove|onmouseout|onmouseover|onmouseup|size|style"
00544 ."|tabindex|title]");
00545 break;
00546 case "small":
00547 array_push($valid_elements, "small[class|dir<ltr?rtl|id|lang|onclick|ondblclick|onkeydown|onkeypress"
00548 ."|onkeyup|onmousedown|onmousemove|onmouseout|onmouseover|onmouseup|style"
00549 ."|title]");
00550 break;
00551 case "span":
00552 array_push($valid_elements, "span[align<center?justify?left?right|class|dir<ltr?rtl|id|lang|onclick|ondblclick|onkeydown"
00553 ."|onkeypress|onkeyup|onmousedown|onmousemove|onmouseout|onmouseover"
00554 ."|onmouseup|style|title]");
00555 break;
00556 case "strike":
00557 array_push($valid_elements, "strike[class|class|dir<ltr?rtl|id|lang|onclick|ondblclick|onkeydown"
00558 ."|onkeypress|onkeyup|onmousedown|onmousemove|onmouseout|onmouseover"
00559 ."|onmouseup|style|title]");
00560 break;
00561 case "strong":
00562 array_push($valid_elements, "strong/b[class|dir<ltr?rtl|id|lang|onclick|ondblclick|onkeydown|onkeypress"
00563 ."|onkeyup|onmousedown|onmousemove|onmouseout|onmouseover|onmouseup|style"
00564 ."|title]");
00565 break;
00566 case "style":
00567 array_push($valid_elements, "style[dir<ltr?rtl|lang|media|title|type]");
00568 break;
00569 case "sub":
00570 array_push($valid_elements, "sub[class|dir<ltr?rtl|id|lang|onclick|ondblclick|onkeydown|onkeypress"
00571 ."|onkeyup|onmousedown|onmousemove|onmouseout|onmouseover|onmouseup|style"
00572 ."|title]");
00573 break;
00574 case "sup":
00575 array_push($valid_elements, "sup[class|dir<ltr?rtl|id|lang|onclick|ondblclick|onkeydown|onkeypress"
00576 ."|onkeyup|onmousedown|onmousemove|onmouseout|onmouseover|onmouseup|style"
00577 ."|title]");
00578 break;
00579 case "table":
00580 array_push($valid_elements, "table[align<center?left?right|bgcolor|border|cellpadding|cellspacing|class"
00581 ."|dir<ltr?rtl|frame|height|id|lang|onclick|ondblclick|onkeydown|onkeypress"
00582 ."|onkeyup|onmousedown|onmousemove|onmouseout|onmouseover|onmouseup|rules"
00583 ."|style|summary|title|width]");
00584 break;
00585 case "tbody":
00586 array_push($valid_elements, "tbody[align<center?char?justify?left?right|char|class|charoff|dir<ltr?rtl|id"
00587 ."|lang|onclick|ondblclick|onkeydown|onkeypress|onkeyup|onmousedown"
00588 ."|onmousemove|onmouseout|onmouseover|onmouseup|style|title"
00589 ."|valign<baseline?bottom?middle?top]");
00590 break;
00591 case "td":
00592 array_push($valid_elements, "td[abbr|align<center?char?justify?left?right|axis|bgcolor|char|charoff|class"
00593 ."|colspan|dir<ltr?rtl|headers|height|id|lang|nowrap<nowrap|onclick"
00594 ."|ondblclick|onkeydown|onkeypress|onkeyup|onmousedown|onmousemove"
00595 ."|onmouseout|onmouseover|onmouseup|rowspan|scope<col?colgroup?row?rowgroup"
00596 ."|style|title|valign<baseline?bottom?middle?top|width]");
00597 break;
00598 case "textarea":
00599 array_push($valid_elements, "textarea[accesskey|class|cols|dir<ltr?rtl|disabled<disabled|id|lang|name"
00600 ."|onblur|onclick|ondblclick|onfocus|onkeydown|onkeypress|onkeyup"
00601 ."|onmousedown|onmousemove|onmouseout|onmouseover|onmouseup|onselect"
00602 ."|readonly<readonly|rows|style|tabindex|title]");
00603 break;
00604 case "tfoot":
00605 array_push($valid_elements, "tfoot[align<center?char?justify?left?right|char|charoff|class|dir<ltr?rtl|id"
00606 ."|lang|onclick|ondblclick|onkeydown|onkeypress|onkeyup|onmousedown"
00607 ."|onmousemove|onmouseout|onmouseover|onmouseup|style|title"
00608 ."|valign<baseline?bottom?middle?top]");
00609 break;
00610 case "th":
00611 array_push($valid_elements, "th[abbr|align<center?char?justify?left?right|axis|bgcolor|char|charoff|class"
00612 ."|colspan|dir<ltr?rtl|headers|height|id|lang|nowrap<nowrap|onclick"
00613 ."|ondblclick|onkeydown|onkeypress|onkeyup|onmousedown|onmousemove"
00614 ."|onmouseout|onmouseover|onmouseup|rowspan|scope<col?colgroup?row?rowgroup"
00615 ."|style|title|valign<baseline?bottom?middle?top|width]");
00616 break;
00617 case "thead":
00618 array_push($valid_elements, "thead[align<center?char?justify?left?right|char|charoff|class|dir<ltr?rtl|id"
00619 ."|lang|onclick|ondblclick|onkeydown|onkeypress|onkeyup|onmousedown"
00620 ."|onmousemove|onmouseout|onmouseover|onmouseup|style|title"
00621 ."|valign<baseline?bottom?middle?top]");
00622 break;
00623 case "title":
00624 array_push($valid_elements, "title[dir<ltr?rtl|lang]");
00625 break;
00626 case "tr":
00627 array_push($valid_elements, "tr[abbr|align<center?char?justify?left?right|bgcolor|char|charoff|class"
00628 ."|rowspan|dir<ltr?rtl|id|lang|onclick|ondblclick|onkeydown|onkeypress"
00629 ."|onkeyup|onmousedown|onmousemove|onmouseout|onmouseover|onmouseup|style"
00630 ."|title|valign<baseline?bottom?middle?top]");
00631 break;
00632 case "tt":
00633 array_push($valid_elements, "tt[class|dir<ltr?rtl|id|lang|onclick|ondblclick|onkeydown|onkeypress|onkeyup"
00634 ."|onmousedown|onmousemove|onmouseout|onmouseover|onmouseup|style|title]");
00635 break;
00636 case "u":
00637 array_push($valid_elements, "u[class|dir<ltr?rtl|id|lang|onclick|ondblclick|onkeydown|onkeypress|onkeyup"
00638 ."|onmousedown|onmousemove|onmouseout|onmouseover|onmouseup|style|title]");
00639 break;
00640 case "ul":
00641 array_push($valid_elements, "ul[class|compact<compact|dir<ltr?rtl|id|lang|onclick|ondblclick|onkeydown"
00642 ."|onkeypress|onkeyup|onmousedown|onmousemove|onmouseout|onmouseover"
00643 ."|onmouseup|style|title|type]");
00644 break;
00645 case "var":
00646 array_push($valid_elements, "var[class|dir<ltr?rtl|id|lang|onclick|ondblclick|onkeydown|onkeypress"
00647 ."|onkeyup|onmousedown|onmousemove|onmouseout|onmouseover|onmouseup|style"
00648 ."|title]");
00649 break;
00650 }
00651 }
00652 return join(",", $valid_elements);
00653 }
00654 }
00655 ?>