PageRenderTime 8ms CodeModel.GetById 6ms app.highlight 1ms RepoModel.GetById 0ms app.codeStats 0ms

/EQT_V1/EQTWebApp/fckeditor/_samples/perl/sample02.cgi

http://sgsoft-las.googlecode.com/
Perl | 182 lines | 123 code | 22 blank | 37 comment | 16 complexity | 462d4ccdc4d163749b091612c62b81ba MD5 | raw file
Possible License(s): LGPL-2.1
  1#!/usr/bin/env perl
  2
  3#####
  4#  FCKeditor - The text editor for Internet - http://www.fckeditor.net
  5#  Copyright (C) 2003-2009 Frederico Caldeira Knabben
  6#
  7#  == BEGIN LICENSE ==
  8#
  9#  Licensed under the terms of any of the following licenses at your
 10#  choice:
 11#
 12#   - GNU General Public License Version 2 or later (the "GPL")
 13#     http://www.gnu.org/licenses/gpl.html
 14#
 15#   - GNU Lesser General Public License Version 2.1 or later (the "LGPL")
 16#     http://www.gnu.org/licenses/lgpl.html
 17#
 18#   - Mozilla Public License Version 1.1 or later (the "MPL")
 19#     http://www.mozilla.org/MPL/MPL-1.1.html
 20#
 21#  == END LICENSE ==
 22#
 23#  Sample page.
 24#####
 25
 26## START: Hack for Windows (Not important to understand the editor code... Perl specific).
 27if(Windows_check()) {
 28	chdir(GetScriptPath($0));
 29}
 30
 31sub Windows_check
 32{
 33	# IIS,PWS(NT/95)
 34	$www_server_os = $^O;
 35	# Win98 & NT(SP4)
 36	if($www_server_os eq "") { $www_server_os= $ENV{'OS'}; }
 37	# AnHTTPd/Omni/IIS
 38	if($ENV{'SERVER_SOFTWARE'} =~ /AnWeb|Omni|IIS\//i) { $www_server_os= 'win'; }
 39	# Win Apache
 40	if($ENV{'WINDIR'} ne "") { $www_server_os= 'win'; }
 41	if($www_server_os=~ /win/i) { return(1); }
 42	return(0);
 43}
 44
 45sub GetScriptPath {
 46	local($path) = @_;
 47	if($path =~ /[\:\/\\]/) { $path =~ s/(.*?)[\/\\][^\/\\]+$/$1/; } else { $path = '.'; }
 48	$path;
 49}
 50## END: Hack for IIS
 51
 52require '../../fckeditor.pl';
 53
 54# When $ENV{'PATH_INFO'} cannot be used by perl.
 55# $DefRootPath = "/XXXXX/_samples/perl/sample02.cgi"; Please write in script.
 56
 57my $DefServerPath = "";
 58my $ServerPath;
 59
 60	$ServerPath = &GetServerPath();
 61
 62	if($ENV{'REQUEST_METHOD'} eq "POST") {
 63		read(STDIN, $buffer, $ENV{'CONTENT_LENGTH'});
 64	} else {
 65		$buffer = $ENV{'QUERY_STRING'};
 66	}
 67	@pairs = split(/&/,$buffer);
 68	foreach $pair (@pairs) {
 69		($name,$value) = split(/=/,$pair);
 70		$value =~ tr/+/ /;
 71		$value =~ s/%([a-fA-F0-9][a-fA-F0-9])/pack("C", hex($1))/eg;
 72		$value =~ s/\t//g;
 73		$value =~ s/\r\n/\n/g;
 74		$FORM{$name} .= "\0"			if(defined($FORM{$name}));
 75		$FORM{$name} .= $value;
 76	}
 77
 78	print "Content-type: text/html\n\n";
 79	print <<"_HTML_TAG_";
 80<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
 81<html>
 82	<head>
 83		<title>FCKeditor - Sample</title>
 84		<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
 85		<meta name="robots" content="noindex, nofollow">
 86		<link href="../sample.css" rel="stylesheet" type="text/css" />
 87		<script type="text/javascript">
 88
 89function FCKeditor_OnComplete( editorInstance )
 90{
 91	var oCombo = document.getElementById( 'cmbLanguages' ) ;
 92	for ( code in editorInstance.Language.AvailableLanguages )
 93	{
 94		AddComboOption( oCombo, editorInstance.Language.AvailableLanguages[code] + ' (' + code + ')', code ) ;
 95	}
 96	oCombo.value = editorInstance.Language.ActiveLanguage.Code ;
 97}
 98
 99function AddComboOption(combo, optionText, optionValue)
100{
101	var oOption = document.createElement("OPTION") ;
102
103	combo.options.add(oOption) ;
104
105	oOption.innerHTML = optionText ;
106	oOption.value	  = optionValue ;
107
108	return oOption ;
109}
110
111function ChangeLanguage( languageCode )
112{
113	window.location.href = window.location.pathname + "?Lang=" + languageCode ;
114}
115		</script>
116	</head>
117	<body>
118		<h1>FCKeditor - Perl - Sample 2</h1>
119		This sample shows the editor in all its available languages.
120		<hr>
121		<table cellpadding="0" cellspacing="0" border="0">
122			<tr>
123				<td>
124					Select a language:&nbsp;
125				</td>
126				<td>
127					<select id="cmbLanguages" onchange="ChangeLanguage(this.value);">
128					</select>
129				</td>
130			</tr>
131		</table>
132		<br>
133		<form action="sampleposteddata.cgi" method="post" target="_blank">
134_HTML_TAG_
135
136	#// Automatically calculates the editor base path based on the _samples directory.
137	#// This is usefull only for these samples. A real application should use something like this:
138	#// $oFCKeditor->BasePath = '/fckeditor/' ;	// '/fckeditor/' is the default value.
139	$sBasePath = $ServerPath;
140	$sBasePath = substr( $sBasePath, 0, index($sBasePath,"_samples"));
141
142	&FCKeditor('FCKeditor1');
143	$BasePath = $sBasePath;
144
145	if($FORM{'Lang'} ne "") {
146		$Config{'AutoDetectLanguage'}	= "false";
147		$Config{'DefaultLanguage'}		= $FORM{'Lang'};
148	} else {
149		$Config{'AutoDetectLanguage'}	= "true";
150		$Config{'DefaultLanguage'}		= 'en' ;
151	}
152	$Value = '<p>This is some <strong>sample text</strong>. You are using <a href="http://www.fckeditor.net/">FCKeditor</a>.</p>' ;
153	&Create();
154
155	print <<"_HTML_TAG_";
156			<br>
157			<input type="submit" value="Submit">
158		</form>
159	</body>
160</html>
161_HTML_TAG_
162
163################
164#Please use this function, rewriting it depending on a server's environment.
165################
166sub GetServerPath
167{
168my $dir;
169
170	if($DefServerPath) {
171		$dir = $DefServerPath;
172	} else {
173		if($ENV{'PATH_INFO'}) {
174			$dir  = $ENV{'PATH_INFO'};
175		} elsif($ENV{'FILEPATH_INFO'}) {
176			$dir  = $ENV{'FILEPATH_INFO'};
177		} elsif($ENV{'REQUEST_URI'}) {
178			$dir  = $ENV{'REQUEST_URI'};
179		}
180	}
181	return($dir);
182}