From ddb09fec48847afd80a5d72aa62936ff784d9f54 Mon Sep 17 00:00:00 2001 From: YuCheng Hu Date: Sat, 12 Jun 2010 18:57:37 +0000 Subject: [PATCH] =?UTF-8?q?=E6=B7=BB=E5=8A=A0=E5=88=B0=20trunk?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit +YUCHENG HU+ git-svn-id: https://svn.code.sf.net/p/hawebs/svn@163 a2543c7e-f6e9-4f8a-8bff-1ffc34733512 --- .../editors/xstandard/attachmentlibrary.php | 322 ++++++++++++++++ .../cms-directory-xhtml-entities.xml | Bin 0 -> 1380 bytes .../xstandard/cms-directory-xhtml-latin1.xml | Bin 0 -> 18440 bytes .../xstandard/cms-directory-xhtml-special.xml | Bin 0 -> 4978 bytes .../xstandard/cms-directory-xhtml-symbol.xml | Bin 0 -> 22454 bytes .../plugins/editors/xstandard/directory.php | 169 +++++++++ .../editors/xstandard/imagelibrary.php | 356 ++++++++++++++++++ .../plugins/editors/xstandard/index.html | 1 + .../plugins/editors/xstandard/preview.xsl | Bin 0 -> 14408 bytes .../plugins/editors/xstandard/xstandard.js | 49 +++ 10 files changed, 897 insertions(+) create mode 100644 oss/joomla/trunk/plugins/editors/xstandard/attachmentlibrary.php create mode 100644 oss/joomla/trunk/plugins/editors/xstandard/cms-directory-xhtml-entities.xml create mode 100644 oss/joomla/trunk/plugins/editors/xstandard/cms-directory-xhtml-latin1.xml create mode 100644 oss/joomla/trunk/plugins/editors/xstandard/cms-directory-xhtml-special.xml create mode 100644 oss/joomla/trunk/plugins/editors/xstandard/cms-directory-xhtml-symbol.xml create mode 100644 oss/joomla/trunk/plugins/editors/xstandard/directory.php create mode 100644 oss/joomla/trunk/plugins/editors/xstandard/imagelibrary.php create mode 100644 oss/joomla/trunk/plugins/editors/xstandard/index.html create mode 100644 oss/joomla/trunk/plugins/editors/xstandard/preview.xsl create mode 100644 oss/joomla/trunk/plugins/editors/xstandard/xstandard.js diff --git a/oss/joomla/trunk/plugins/editors/xstandard/attachmentlibrary.php b/oss/joomla/trunk/plugins/editors/xstandard/attachmentlibrary.php new file mode 100644 index 00000000..f95ed369 --- /dev/null +++ b/oss/joomla/trunk/plugins/editors/xstandard/attachmentlibrary.php @@ -0,0 +1,322 @@ + 0 and strlen($n) > 0) { + if (substr($p, strlen($p) - 1, 1) == "/") { + $return = $p . $n; + } else { + $return = $p . "/" . $n; + } + } else { + $return = $p . $n; + } + + //make sure return is above $path + $realreturn = realpath($return); + $realpath = realpath($path); + if(strpos($realreturn, $realpath) !== 0) { + //the returned path does not start with the given path. Default to path + return $realpath; + } else { + return $realreturn; + } +} + +function xs_is_accepted_file_type($file_name) { + $pos = strrpos($file_name, "."); + $ext = ""; + if ($pos !== false) { + $ext = strtolower(substr($file_name, $pos + 1)); + } + + $accepted_file_types = explode(" ", strtolower(XS_ACCEPTED_FILE_TYPES)); + foreach ($accepted_file_types as $accepted_file_type) { + if ($accepted_file_type == $ext or $accepted_file_type == "*") { + return true; + } + } + + return false; +} + + +function xs_xhtml_escape($text) { + return str_replace(array("&", "<", ">", "\""), array("&", "<", ">", """), $text); +} + +function xs_urlencode($text) { + $parts = explode("/", $text); + $count = count($parts); + + for($i = 0; $i < $count; $i++) { + $parts[$i] = str_replace("+", "%20", urlencode($parts[$i])); + } + + return implode("/", $parts); +} + + + +//Process request +$rootFolderPath = ""; +$rootFilePath = ""; + +//Get sub-folder to browse +if (isset($_SERVER["HTTP_X_CMS_LIBRARY_PATH"])) { + if ($_SERVER["HTTP_X_CMS_LIBRARY_PATH"] == "") { + $rootFolderPath = XS_LIBRARY_FOLDER; + $rootFilePath = XS_LIBRARY_FOLDER; + } else { + $rootFolderPath = xs_build_path(XS_LIBRARY_FOLDER, $_SERVER["HTTP_X_CMS_LIBRARY_PATH"]); + $rootFilePath = xs_build_path(XS_LIBRARY_FOLDER, $_SERVER["HTTP_X_CMS_LIBRARY_PATH"]); + } +} else { + $rootFolderPath = XS_LIBRARY_FOLDER; + $rootFilePath = XS_LIBRARY_FOLDER; +} + + +$hidden_folders = explode(",", XS_HIDDEN_FOLDERS); +$hidden_files = explode(",", XS_HIDDEN_FILES); + + + +// Respond +if (get_magic_quotes_runtime() != 0) { + set_magic_quotes_runtime(0); +} + +header("Content-Type: text/xml"); +echo ""; +echo ""; + echo ""; + // Process folders + $folder_list = array(); + if (file_exists($rootFolderPath)) { + if (false !== ($handle = @opendir($rootFolderPath))) { + while (false !== ($fs_object = readdir($handle))) { + if ($fs_object != "." && $fs_object != "..") { + $found = false; + foreach($hidden_folders as $hidden_folder) { + if(strtolower($fs_object) == strtolower(trim($hidden_folder))) { + $found = true; + } + } + + if (is_dir(xs_build_path($rootFolderPath, $fs_object))) { + if ($found === false) { + $folder_list[] = $fs_object; + } + } + } + } + closedir($handle); + } + } + natcasesort($folder_list); + reset($folder_list); + foreach ($folder_list as $key => $fs_object) { + echo ""; + //Folder name + echo "" . xs_xhtml_escape($fs_object) . ""; + + //Path to parent folder + echo ""; + if (isset($_SERVER["HTTP_X_CMS_LIBRARY_PATH"])) { + if ($_SERVER["HTTP_X_CMS_LIBRARY_PATH"] != "") { + echo xs_xhtml_escape($_SERVER["HTTP_X_CMS_LIBRARY_PATH"]); + } + } + echo ""; + + //Display label + echo ""; + + //Base URL to this folder + echo ""; + $temp = $fs_object; + + if (isset($_SERVER["HTTP_X_CMS_LIBRARY_PATH"])) { + if ($_SERVER["HTTP_X_CMS_LIBRARY_PATH"] != "") { + $temp = $_SERVER["HTTP_X_CMS_LIBRARY_PATH"] . "/" . $fs_object; + } + } + + $url = xs_build_path(XS_BASE_URL, xs_urlencode($temp)) . "/"; + + echo $url; + echo ""; + + //Is folder empty (not implemented yet) + echo "false"; + + //Icon ID defined in icons.xml + echo "folder"; + + //Reserved for future use + echo ""; + + //Reserved for future use + echo "0"; + echo ""; + } + echo ""; + echo ""; + // Process files + $file_list = array(); + if (file_exists($rootFilePath)) { + if (false !== ($handle = @opendir($rootFilePath))) { + while (false !== ($fs_object = readdir($handle))) { + if ($fs_object != "." && $fs_object != "..") { + $found = false; + foreach($hidden_files as $hidden_file) { + if(strtolower($fs_object) == strtolower(trim($hidden_file))) { + $found = true; + } + } + + if (is_file(xs_build_path($rootFilePath, $fs_object))) { + if (xs_is_accepted_file_type($fs_object)) { + if ($found === false) { + $file_list[] = $fs_object; + } + } + } + } + } + closedir($handle); + } + } + natcasesort($file_list); + reset($file_list); + foreach ($file_list as $key => $fs_object) { + echo ""; + //Folder name + echo "" . xs_xhtml_escape($fs_object) . ""; + + //Path to parent folder + echo ""; + if (isset($_SERVER["HTTP_X_CMS_LIBRARY_PATH"])) { + if ($_SERVER["HTTP_X_CMS_LIBRARY_PATH"] != "") { + echo xs_xhtml_escape($_SERVER["HTTP_X_CMS_LIBRARY_PATH"]); + } + } + echo ""; + + //Display label + echo ""; + + //Icon ID defined in icons.xml + echo "document"; + + //Reserved for future use + echo ""; + + //Reserved for future use + echo "0"; + + //Attributes + echo ""; + //src attribute + echo ""; + echo "href"; + echo ""; + if (isset($_SERVER["HTTP_X_CMS_LIBRARY_PATH"])) { + if ($_SERVER["HTTP_X_CMS_LIBRARY_PATH"] == "") { + echo xs_build_path(XS_BASE_URL, xs_urlencode($fs_object)); + } else { + echo xs_build_path(xs_build_path(XS_BASE_URL, $_SERVER["HTTP_X_CMS_LIBRARY_PATH"]), xs_urlencode($fs_object)); + } + } else { + echo xs_build_path(XS_BASE_URL, xs_urlencode($fs_object)); + } + echo ""; + echo ""; + echo ""; + + //Properties + echo ""; + //File size + if (XS_GET_FILE_SIZE) { + echo ""; + echo "size"; + echo "" . filesize(xs_build_path($rootFilePath, $fs_object)) . ""; + echo ""; + } + + //Last modified date + if (XS_GET_DATE_LAST_MODIFIED) { + echo ""; + echo "date"; + echo "" . date("Y-m-d H:i:s", filemtime(xs_build_path($rootFilePath, $fs_object))) . ""; + echo ""; + } + echo ""; + echo ""; + } + echo ""; +echo ""; +?> diff --git a/oss/joomla/trunk/plugins/editors/xstandard/cms-directory-xhtml-entities.xml b/oss/joomla/trunk/plugins/editors/xstandard/cms-directory-xhtml-entities.xml new file mode 100644 index 0000000000000000000000000000000000000000..c640c7f5b4ede409e3a4df3978ab6506f70641bf GIT binary patch literal 1380 zcmd5+v2KGv41H@Vce+8n3L=EQGH-~I69H{8-bb{dNNdj3oA@Ln{7+pD6w?>g-*6^^(^wigm9H)H75 Fy8!3z*!KVc literal 0 HcmV?d00001 diff --git a/oss/joomla/trunk/plugins/editors/xstandard/cms-directory-xhtml-latin1.xml b/oss/joomla/trunk/plugins/editors/xstandard/cms-directory-xhtml-latin1.xml new file mode 100644 index 0000000000000000000000000000000000000000..a3a80bb627a75de8e34e4018cc9f3852f6817ef5 GIT binary patch literal 18440 zcmcJX*H2tW6o=>4k@7#R5-D#a&P!f`u@b-vk}(L92S2U>8xmLu%R2DqxcAncjnISg~-v)nek6(VR!Gn%lDl-=bX6(h6XFmSkrI1OsC11siw{Jn!M>S-6m(o zm~YIF=6f?5KQma8Gc9<(6-#qwid|YTeP*($z*;|How26Mn6JMwm3Ez8Y|(<{-T1@- zw`3HS$!Fy7e%5|Y^7}I8hhb}Un@Q$Rw{^bszHB>uN%Ff!8TqONeHL4_;b)bZV1Gje zUJFCk{N;!>hiNqO>5jY_ys}3nz8x4DIZv|bG_o0v ztP%UB03L~^j%@~wZDuKI1&mJ_p^{evYQmW`!dZ@RqGi)YZWfJew&VI0QR~L|m&g@s zRv$)Q3$jG2*d+YywG`zud^U}Cj-zb`r_{k>_Ugvr92(!;5?@jild7JvwL1%D8JWVG z_l)FR8tFVoT8+KlgG}kQRi-_l;>@El&UcLC5VbDwGc^r3V7a$FY#-`5LM>gh56`lACL>v9Au{jK zc7(+=_9c$J!OfgH?RfQ_-7TSUEp=QqHl`9wiJz|WFQw5fb99Z!<^rfHY>ldLbxYpS zvM!^sE_bZW=5Mgd_>*zzmov+0R4W`+HJIe6!lP9wXy9PP+anr}|5q!F%i zg!RZ#sfyirt;>j2G`7`_t^&HN)c9iV-KBSY~U|{rvJ_4UKKB zV{3ND*Tq?b9BIp3N9GM#Ps+74%5^2m0yvX14>A%v@JeP7LMk0lp36B3-<(-TBVO-_ z>k&PfOB4`CiS3u1SFWegZ*cTYHm=Eh{macPH_*5@I_`0{3JgDXOGZVe)Qggtl3(_1 zr15Sl%iE6e(}}sgAL%9<>E{0>?L)0C&XbCrK8ddH@#kh5^%h56hs+y!hE7Q3D7iSl zPv^*fk={aM-s+ggW6vi?aT(MP>1k5mk|R;+Abt3fN|-Uf;PH=LDqSz>fMV-svXy4C zEz(3g1KLJ2*&b=qg1ysgyFeFmS@vGP=ib>)bJ`K;bF|~_63yhY+C*l+4W{+axjvj5@y-KsV7Ga^yfon92>k$^= z_4Yc==SGB&cBXrSW^psZBD7=Nq}kkxunE6ra*O73Tj}F_E$%jr_>PLW1#71jH{@E$ z9h%8qm5JQflbUFI$6cDmy$B0!@3=>^xF2B=-aGEod>%yjgjU@LG@FMin+~iUo+%G$ z7LOt$D$2*lr0c(d>)^{|E_YoG_%KDyW@gc$@ zyt00v`FxD<39U&VX*Qo!HUn5Y%@pkz`$V%CR9VOjR{oAYXL-ucV+U#6Ln`i((GML< cLrNRD)-(Kn(iH!Pj=V1n@^?1>{m(rA0w{FMz5oCK literal 0 HcmV?d00001 diff --git a/oss/joomla/trunk/plugins/editors/xstandard/cms-directory-xhtml-special.xml b/oss/joomla/trunk/plugins/editors/xstandard/cms-directory-xhtml-special.xml new file mode 100644 index 0000000000000000000000000000000000000000..67e5ee480ebb0e9adf4b1b7dfdfcd2cf44ccca47 GIT binary patch literal 4978 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", "\""), array("&", "<", ">", """), $text); +} + +function read_from_file($path) { + return @file_get_contents($path); +} + + + +//Process request +$id = ""; +$metadata = ""; + +if (isset($_SERVER["HTTP_X_CMS_DIRECTORY_ID"])) { + $id = $_SERVER["HTTP_X_CMS_DIRECTORY_ID"]; +} + +if (isset($_SERVER["HTTP_X_CMS_DIRECTORY_METADATA"])) { + $metadata = $_SERVER["HTTP_X_CMS_DIRECTORY_METADATA"]; +} + + +// Respond +if (get_magic_quotes_runtime() != 0) { + set_magic_quotes_runtime(0); +} + +header("Content-Type: text/xml"); +echo ""; +echo ""; + echo ""; + // Process folders + if ($id == "") { + echo (""); + echo (""); + echo ("a"); + echo (""); + echo (""); + echo (""); + echo (""); + echo (""); + echo (""); + echo ("c"); + echo (""); + echo ("cms-directory-xhtml-entities.xml"); + echo (""); + echo (""); + /*echo (""); + echo (""); + echo ("d"); + echo (""); + echo (""); + echo ("flag"); + echo ("");*/ + } + /*echo (""); + echo (""); + echo ("".xs_xhtml_escape('
')."
"); + echo ("pagebreak"); + echo ("
"); + echo (""); + echo (""); + echo ("".xs_xhtml_escape('
')."
"); + echo ("readmore"); + echo ("
");*/ + echo ("
"); + echo (""); + + // Process items + if ($id == "a") + { + echo (""); + echo (""); + echo ("test"); + echo ("test"); + echo (""); + } + else if ($id == "b") + { + //This is an example of how to read XHTML from a file. + echo (""); + echo (""); + echo ("" . xs_xhtml_escape(read_from_file("cms-directory-example-product-1.txt")) . ""); + echo (""); + echo (""); + + echo (""); + echo (""); + echo ("" . xs_xhtml_escape(read_from_file("cms-directory-example-product-2.txt")) . ""); + echo (""); + echo (""); + + echo (""); + echo (""); + echo ("" . xs_xhtml_escape(read_from_file("cms-directory-example-product-3.txt")) . ""); + echo (""); + echo (""); + + echo (""); + echo (""); + echo ("" . xs_xhtml_escape(read_from_file("cms-directory-example-product-4.txt")) . ""); + echo (""); + echo (""); + } + else if ($id == "d") + { + //This is an example of how create XHTML on the fly. + echo (""); + echo (""); + echo ("<p>The current temperature in Vancouver is <temperature location="Vancouver, BC, Canada" title="Placeholder for temperature."/>.</p>"); + echo ("thermometer"); + echo (""); + echo (""); + echo (""); + echo ("<p>The current stock price for IBM is <stock symbol="IBM" exchange="NYSE" title="Placeholder for stock price." />.</p>"); + echo ("certificate"); + echo (""); + } + echo ""; +echo "
"; +?> diff --git a/oss/joomla/trunk/plugins/editors/xstandard/imagelibrary.php b/oss/joomla/trunk/plugins/editors/xstandard/imagelibrary.php new file mode 100644 index 00000000..8e3a0466 --- /dev/null +++ b/oss/joomla/trunk/plugins/editors/xstandard/imagelibrary.php @@ -0,0 +1,356 @@ + 0 and strlen($n) > 0) { + if (substr($p, strlen($p) - 1, 1) == "/") { + $return = $p . $n; + } else { + $return = $p . "/" . $n; + } + } else { + $return = $p . $n; + } + + //make sure return is above $path + $realreturn = realpath($return); + $realpath = realpath($path); + if(strpos($realreturn, $realpath) !== 0) { + //the returned path does not start with the given path. Default to path + return $realpath; + } else { + return $realreturn; + } +} + +function xs_is_accepted_file_type($file_name) { + $pos = strrpos($file_name, "."); + $ext = ""; + if ($pos !== false) { + $ext = strtolower(substr($file_name, $pos + 1)); + } + + $accepted_file_types = explode(" ", strtolower(XS_ACCEPTED_FILE_TYPES)); + foreach ($accepted_file_types as $accepted_file_type) { + if ($accepted_file_type == $ext or $accepted_file_type == "*") { + return true; + } + } + + return false; +} + + +function xs_xhtml_escape($text) { + return str_replace(array("&", "<", ">", "\""), array("&", "<", ">", """), $text); +} + +function xs_urlencode($text) { + $parts = explode("/", $text); + $count = count($parts); + + for($i = 0; $i < $count; $i++) { + $parts[$i] = str_replace("+", "%20", urlencode($parts[$i])); + } + + return implode("/", $parts); +} + + + +//Process request +$rootFolderPath = ""; +$rootFilePath = ""; + +//Get sub-folder to browse +if (isset($_SERVER["HTTP_X_CMS_LIBRARY_PATH"])) { + if ($_SERVER["HTTP_X_CMS_LIBRARY_PATH"] == "") { + $rootFolderPath = XS_LIBRARY_FOLDER; + $rootFilePath = XS_LIBRARY_FOLDER; + } else { + $rootFolderPath = xs_build_path(XS_LIBRARY_FOLDER, $_SERVER["HTTP_X_CMS_LIBRARY_PATH"]); + $rootFilePath = xs_build_path(XS_LIBRARY_FOLDER, $_SERVER["HTTP_X_CMS_LIBRARY_PATH"]); + } +} else { + $rootFolderPath = XS_LIBRARY_FOLDER; + $rootFilePath = XS_LIBRARY_FOLDER; +} + + +$hidden_folders = explode(",", XS_HIDDEN_FOLDERS); +$hidden_files = explode(",", XS_HIDDEN_FILES); + + + +// Respond +if (get_magic_quotes_runtime() != 0) { + set_magic_quotes_runtime(0); +} + +header("Content-Type: text/xml"); +echo ""; +echo ""; + echo ""; + // Process folders + $folder_list = array(); + if (file_exists($rootFolderPath)) { + if (false !== ($handle = @opendir($rootFolderPath))) { + while (false !== ($fs_object = readdir($handle))) { + if ($fs_object != "." && $fs_object != "..") { + $found = false; + foreach($hidden_folders as $hidden_folder) { + if(strtolower($fs_object) == strtolower(trim($hidden_folder))) { + $found = true; + } + } + + if (is_dir(xs_build_path($rootFolderPath, $fs_object))) { + if ($found === false) { + $folder_list[] = $fs_object; + } + } + } + } + closedir($handle); + } + } + natcasesort($folder_list); + reset($folder_list); + foreach ($folder_list as $key => $fs_object) { + echo ""; + //Folder name + echo "" . xs_xhtml_escape($fs_object) . ""; + + //Path to parent folder + echo ""; + if (isset($_SERVER["HTTP_X_CMS_LIBRARY_PATH"])) { + if ($_SERVER["HTTP_X_CMS_LIBRARY_PATH"] != "") { + echo xs_xhtml_escape($_SERVER["HTTP_X_CMS_LIBRARY_PATH"]); + } + } + echo ""; + + //Display label + echo ""; + + //Base URL to this folder + echo ""; + $temp = $fs_object; + + if (isset($_SERVER["HTTP_X_CMS_LIBRARY_PATH"])) { + if ($_SERVER["HTTP_X_CMS_LIBRARY_PATH"] != "") { + $temp = $_SERVER["HTTP_X_CMS_LIBRARY_PATH"] . "/" . $fs_object; + } + } + + $url = xs_build_path(XS_BASE_URL, xs_urlencode($temp)) . "/"; + + echo $url; + echo ""; + + //Is folder empty (not implemented yet) + echo "false"; + + //Icon ID defined in icons.xml + echo "folder"; + + //Reserved for future use + echo ""; + + //Reserved for future use + echo "0"; + echo ""; + } + echo ""; + echo ""; + // Process files + $file_list = array(); + if (file_exists($rootFilePath)) { + if (false !== ($handle = @opendir($rootFilePath))) { + while (false !== ($fs_object = readdir($handle))) { + if ($fs_object != "." && $fs_object != "..") { + $found = false; + foreach($hidden_files as $hidden_file) { + if(strtolower($fs_object) == strtolower(trim($hidden_file))) { + $found = true; + } + } + + if (is_file(xs_build_path($rootFilePath, $fs_object))) { + if (xs_is_accepted_file_type($fs_object)) { + if ($found === false) { + $file_list[] = $fs_object; + } + } + } + } + } + closedir($handle); + } + } + natcasesort($file_list); + reset($file_list); + foreach ($file_list as $key => $fs_object) { + echo ""; + //Folder name + echo "" . xs_xhtml_escape($fs_object) . ""; + + //Path to parent folder + echo ""; + if (isset($_SERVER["HTTP_X_CMS_LIBRARY_PATH"])) { + if ($_SERVER["HTTP_X_CMS_LIBRARY_PATH"] != "") { + echo xs_xhtml_escape($_SERVER["HTTP_X_CMS_LIBRARY_PATH"]); + } + } + echo ""; + + //Display label + echo ""; + + //Icon ID defined in icons.xml + echo "image"; + + //Reserved for future use + echo ""; + + //Reserved for future use + echo "0"; + + //Attributes + echo ""; + //src attribute + echo ""; + echo "src"; + echo ""; + if (isset($_SERVER["HTTP_X_CMS_LIBRARY_PATH"])) { + if ($_SERVER["HTTP_X_CMS_LIBRARY_PATH"] == "") { + echo xs_build_path(XS_BASE_URL, xs_urlencode($fs_object)); + } else { + echo xs_build_path(xs_build_path(XS_BASE_URL, $_SERVER["HTTP_X_CMS_LIBRARY_PATH"]), xs_urlencode($fs_object)); + } + } else { + echo xs_build_path(XS_BASE_URL, xs_urlencode($fs_object)); + } + echo ""; + echo ""; + + //Image dimensions + if (XS_GET_IMAGE_DIMENSIONS) { + if (false === (list($width, $height) = @getimagesize(xs_build_path($rootFilePath, $fs_object)))) { + + } else { + //Width + echo ""; + echo "width"; + echo "" . $width . ""; + echo ""; + + //Height + echo ""; + echo "height"; + echo "" . $height . ""; + echo ""; + } + + } + echo ""; + + //Properties + echo ""; + //File size + if (XS_GET_FILE_SIZE) { + echo ""; + echo "size"; + echo "" . filesize(xs_build_path($rootFilePath, $fs_object)) . ""; + echo ""; + } + + //Last modified date + if (XS_GET_DATE_LAST_MODIFIED) { + echo ""; + echo "date"; + echo "" . date("Y-m-d H:i:s", filemtime(xs_build_path($rootFilePath, $fs_object))) . ""; + echo ""; + } + + //Decorative image flag + echo ""; + echo "decorative"; + echo ""; + if (XS_DEFAULT_IMAGE_IS_DECORATIVE) { + echo "true"; + } else { + echo "false"; + } + echo ""; + echo ""; + echo ""; + echo ""; + } + echo ""; +echo ""; +?> diff --git a/oss/joomla/trunk/plugins/editors/xstandard/index.html b/oss/joomla/trunk/plugins/editors/xstandard/index.html new file mode 100644 index 00000000..fa6d84e8 --- /dev/null +++ b/oss/joomla/trunk/plugins/editors/xstandard/index.html @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/oss/joomla/trunk/plugins/editors/xstandard/preview.xsl b/oss/joomla/trunk/plugins/editors/xstandard/preview.xsl new file mode 100644 index 0000000000000000000000000000000000000000..0b0a95b57d419fbc7d1dc9efec3eaa1ed521ee13 GIT binary patch literal 14408 zcmeHOTUT2}6rR_*mjB@tu?3e2rRakQT_T`Zsh3J^E2|HO1VRLom{OjuX&CX^n zCm}h>DG!j9B|Vp!J$v@`+k1}x{kvu^O~;&?Rs8LmD_kAo>KK0yai8Gr8J;!pY_&gf z-OS;A7rz#sE#Y@ze`Wk#F=f*-cZWrea5u!XY@TfXkk#;<|)YxQ8B|baB_R_eZ9VQG8CiJ|$8($D20Z)j_ji zM=WC}PcZVC`Ph799+)-r5VT4dyMAYWva?O>xdqL)vHP0UY+@E5&qeI@DP-`(e1WUP zdKcc%n!J)KyDnpf#;|A*HPs>(F|oxiB~aJc(^+6kjgdUzx8N0aDm1wN<3&HqAk9 zZN(As9Go#*rJzL=6vo9KEFpzI9NO5mfo!;Gw#>Hq&U|lnkolgQAAxaRn4iqg<`?s; zc?rz3XI`1#&1>MFx8{!^lE!Og<7qr1$JF$C8zd%pzXWtiiFD7?*&9lNWRwU1hm`&2#;`bccwN`C_q-Z1-p48eDT)3%_4O}u*xO>ARbqE({U1oy9? zxn1aM6L)j)8RFO1z^$A1Y74Wr@a7G4x(99U;#!bk0(~-$*TG}gj@^c?nXkt~!+Wp@ zW>V#48F#W;__Sm-rR$U-vu;0Ms$_MSf<~EB1WP662>cNvB#>(x`&|c)BYt~|JuKRl z9cHI?B(_&Up^Y^ZQ7>V>k6^goJN%pu{LHP|b#IkVX8|d!hIVrWy0H~?AP1cr)Ag-Q z#;8r+9V{+8^6QaR*cd&l29J=pcL5!THsx$1wud;X43mtj%;@u!SPgdDfhAXLf}vplzOHKTC7-)Ep|OXBxT+@wNIbJ%d|@U)YeG5xUbWf3eqt?-Ty_2=H!p5;t{NNVyuhcxo-*`NC%_RO9WYcR$V-`0KGy|A?q5vL#N zs10^kSYs_9_OKh@weg7OT|B*cj9)A@pYAB1a1==;pWIvw%_lYT=gw(#=ffn^#Ew}f zw$Tk_M=qA(ZSB^V)HM6Oc|X2nhS`nN(zv~m7s&e38DWZ~?3K&64SI5$H`2HhN$ut@KtFN{yntTu=g`+YP@A54 z$h|vtSi}xukBzxkFYu#D7Jd z|2F@u2JC@nNU>xE#p)@6oaXWjn}~?t3!PyOzj@)cUqSJ0eD*)-;k)GDW7OTDnFqM2e#FLY0F;|GHLd5m=H6CCU z^G{G`X%2S#itTuYWYi)@d9CPNN6(Oq!=WKYbEsjujOgghkc`IEVKTqpNJgbo2eK!& zj8EwXMMxJBN9Qz$H(b9tyJnb46m7W~lVS`%gM~3@{Jw3Ln=qqpuP#QYAucHZHv@s|Gqxg~Nw literal 0 HcmV?d00001 diff --git a/oss/joomla/trunk/plugins/editors/xstandard/xstandard.js b/oss/joomla/trunk/plugins/editors/xstandard/xstandard.js new file mode 100644 index 00000000..e90789ee --- /dev/null +++ b/oss/joomla/trunk/plugins/editors/xstandard/xstandard.js @@ -0,0 +1,49 @@ +/** + * @version $Id: xstandard.js 10714 2008-08-21 10:10:14Z eddieajau $ + * @package Joomla + * @copyright Copyright (C) 2005 - 2008 Open Source Matters. All rights reserved. + * @license GNU/GPL, see LICENSE.php + * Joomla! is free software. This version may have been modified pursuant + * to the GNU General Public License, and as distributed it includes or + * is derivative of works licensed under the GNU General Public License or + * other free or open source software licenses. + * See COPYRIGHT.php for copyright notices and details. + */ + +/** + * JXStandard javascript behavior + * + * @package Joomla + * @since 1.5 + * @version 1.0 + */ +var JXStandard = new Class({ + + instances : null, + + initialize: function() + { + this.instances = $ES('object[type=application/x-xstandard]'); + + var self = this; + document.adminForm.onsubmit = function() { + self.save(); + } + }, + + save: function() + { + this.instances.each(function(instance) + { + instance.EscapeUnicode = false; + var contents = instance.value; + $(instance.className).value = contents; + }); + } +}) + +document.xstandard = null +window.addEvent('domready', function(){ + var xstandard = new JXStandard(); + document.xstandard = xstandard; +}); \ No newline at end of file