1.2.1 update

git-svn-id: http://xe-core.googlecode.com/svn/trunk@6069 201d5d3c-b55e-5fd7-737f-ddc643e51545
This commit is contained in:
ngleader 2009-04-09 09:14:08 +00:00
commit 177a617b2a
715 changed files with 43824 additions and 5939 deletions

110
.htaccess
View file

@ -1,82 +1,64 @@
RewriteEngine On
# image...
RewriteRule ^(.+)/files/attach/images/(.*) ./files/attach/images/$2 [L]
RewriteRule ^(.+)/files/attach/menu_button/(.*) ./files/attach/menu_button/$2 [L]
RewriteRule ^(.+)/files/member_extra_info/(.*) ./files/member_extra_info/$2 [L]
RewriteRule ^(.+)/files/cache/(.*) ./files/cache/$2 [L]
RewriteRule ^(.+)/modules/(.*) ./modules/$2 [L]
RewriteRule ^(.+)/common/css/(.*) ./common/css/$2 [L]
RewriteRule ^(.+)/common/js/(.*) ./common/js/$2 [L]
RewriteRule ^(.+)/common/tpl/(.*) ./common/tpl/$2 [L]
RewriteRule ^(.+)/widgets/(.*) ./widgets/$2 [L]
RewriteRule ^(.+)/layouts/(.*) ./layouts/$2 [L]
RewriteRule ^(.+)/addons/(.*) ./addons/$2 [L]
# static files
RewriteRule ^([a-zA-Z0-9_]+)/files/(.*) ./files/$2 [L]
RewriteRule ^([a-zA-Z0-9_]+)/modules/(.*) ./modules/$2 [L]
RewriteRule ^([a-zA-Z0-9_]+)/common/(.*) ./common/$2 [L]
RewriteRule ^([a-zA-Z0-9_]+)/widgets/(.*) ./widgets/$2 [L]
RewriteRule ^([a-zA-Z0-9_]+)/widgetstyle/(.*) ./widgetstyle/$2 [L]
RewriteRule ^([a-zA-Z0-9_]+)/layouts/(.*) ./layouts/$2 [L]
RewriteRule ^([a-zA-Z0-9_]+)/addons/(.*) ./addons/$2 [L]
RewriteRule ^([a-zA-Z0-9_]+)/entry/files/(.*) ./files/$2 [L]
RewriteRule ^([a-zA-Z0-9_]+)/entry/modules/(.*) ./modules/$2 [L]
RewriteRule ^([a-zA-Z0-9_]+)/entry/common/(.*) ./common/$2 [L]
RewriteRule ^([a-zA-Z0-9_]+)/entry/widgets/(.*) ./widgets/$2 [L]
RewriteRule ^([a-zA-Z0-9_]+)/entry/widgetstyle/(.*) ./widgetstyle/$2 [L]
RewriteRule ^([a-zA-Z0-9_]+)/entry/layouts/(.*) ./layouts/$2 [L]
RewriteRule ^([a-zA-Z0-9_]+)/entry/addons/(.*) ./addons/$2 [L]
RewriteRule ^([a-zA-Z0-9_]+)/([a-zA-Z0-9_]+)/files/(.*) ./files/$2 [L]
RewriteRule ^([a-zA-Z0-9_]+)/([a-zA-Z0-9_]+)/modules/(.*) ./modules/$2 [L]
RewriteRule ^([a-zA-Z0-9_]+)/([a-zA-Z0-9_]+)/common/(.*) ./common/$2 [L]
RewriteRule ^([a-zA-Z0-9_]+)/([a-zA-Z0-9_]+)/widgets/(.*) ./widgets/$2 [L]
RewriteRule ^([a-zA-Z0-9_]+)/([a-zA-Z0-9_]+)/widgetstyle/(.*) ./widgetstyle/$2 [L]
RewriteRule ^([a-zA-Z0-9_]+)/([a-zA-Z0-9_]+)/layouts/(.*) ./layouts/$2 [L]
RewriteRule ^([a-zA-Z0-9_]+)/([a-zA-Z0-9_]+)/addons/(.*) ./addons/$2 [L]
RewriteRule ^([a-zA-Z0-9_]+)/([a-zA-Z0-9_]+)/entry/files/(.*) ./files/$3 [L]
RewriteRule ^([a-zA-Z0-9_]+)/([a-zA-Z0-9_]+)/entry/modules/(.*) ./modules/$3 [L]
RewriteRule ^([a-zA-Z0-9_]+)/([a-zA-Z0-9_]+)/entry/common/(.*) ./common/$3 [L]
RewriteRule ^([a-zA-Z0-9_]+)/([a-zA-Z0-9_]+)/entry/widgets/(.*) ./widgets/$3 [L]
RewriteRule ^([a-zA-Z0-9_]+)/([a-zA-Z0-9_]+)/entry/widgetstyle/(.*) ./widgetstyle/$3 [L]
RewriteRule ^([a-zA-Z0-9_]+)/([a-zA-Z0-9_]+)/entry/layouts/(.*) ./layouts/$3 [L]
RewriteRule ^([a-zA-Z0-9_]+)/([a-zA-Z0-9_]+)/entry/addons/(.*) ./addons/$3 [L]
# page
RewriteRule ^([a-zA-Z0-9_]+)/([[:digit:]]+)page$ ./index.php?mid=$1&page=$2 [L]
# total rss
RewriteRule ^rss/([[:digit:]]+){0,14}/([[:digit:]]+){0,14}/([[:digit:]]+)$ ./index.php?module=rss&act=rss&start_date=$1&end_date=$2&page=$3 [L]
RewriteRule ^rss/([[:digit:]]+)$ ./index.php?module=rss&act=rss&page=$1 [L]
# rss , blogAPI
RewriteRule ^rss$ ./index.php?module=rss&act=rss [L]
RewriteRule ^atom/([[:digit:]]+){0,14}/([[:digit:]]+){0,14}/([[:digit:]]+)$ ./index.php?module=rss&act=atom&start_date=$1&end_date=$2&page=$3 [L]
RewriteRule ^atom/([[:digit:]]+)$ ./index.php?module=rss&act=atom&page=$1 [L]
RewriteRule ^atom$ ./index.php?module=rss&act=atom [L]
RewriteRule ^([a-zA-Z0-9_]+)/rss$ ./index.php?mid=$1&act=rss [L]
RewriteRule ^([a-zA-Z0-9_]+)/atom$ ./index.php?mid=$1&act=atom [L]
RewriteRule ^([a-zA-Z0-9_]+)/api$ ./index.php?mid=$1&act=api [L]
RewriteRule ^([a-zA-Z0-9_]+)/([a-zA-Z0-9_]+)/rss$ ./index.php?vid=$1&mid=$2&act=rss [L]
RewriteRule ^([a-zA-Z0-9_]+)/([a-zA-Z0-9_]+)/atom$ ./index.php?vid=$1&mid=$2&act=atom [L]
RewriteRule ^([a-zA-Z0-9_]+)/([a-zA-Z0-9_]+)/api$ ./index.php?vid=$1&mid=$2&act=api [L]
# administrator page
RewriteRule ^admin/?$ ./index.php?module=admin [L]
# mid + act
RewriteRule ^([a-zA-Z0-9_]+)/api$ ./index.php?mid=$1&act=api [L]
# document permanent link
RewriteRule ^([[:digit:]]+)$ ./index.php?document_srl=$1 [L]
# vid + document permanent link
RewriteRule ^([a-zA-Z0-9_]+)/([[:digit:]]+)$ ./index.php?vid=$1&document_srl=$2 [L]
# document + act link
RewriteRule ^([[:digit:]]+)/([a-zA-Z0-9_]+)$ ./index.php?document_srl=$1&act=$2 [L]
# document + key + act link
RewriteRule ^([[:digit:]]+)/([a-zA-Z0-9_]+)/([a-zA-Z0-9_]+)$ ./index.php?document_srl=$1&act=$3&key=$2 [L]
# mid link
RewriteRule ^([a-zA-Z0-9_]+)(/){0,1}$ ./index.php?mid=$1 [L]
# vid + mid link
RewriteRule ^([a-zA-Z0-9_]+)/([a-zA-Z0-9_]+)(/){0,1}$ ./index.php?vid=$1&mid=$2 [L]
# mid + document link
RewriteRule ^([a-zA-Z0-9_]+)/([[:digit:]]+)$ ./index.php?mid=$1&document_srl=$2 [L]
# mid + act link
RewriteRule ^([a-zA-Z0-9_]+)/([a-zA-Z0-9_]+)$ ./index.php?mid=$1&act=$2 [L]
# mid + page link
RewriteRule ^([a-zA-Z0-9_]+)/page/([[:digit:]]+)$ ./index.php?mid=$1&page=$2 [L]
# vid + mid + document link
RewriteRule ^([a-zA-Z0-9_]+)/([a-zA-Z0-9_]+)/([[:digit:]]+)$ ./index.php?vid=$1&mid=$2&document_srl=$3 [L]
# mid + entry title
RewriteRule ^([a-zA-Z0-9_]+)/entry/(.+)$ ./index.php?mid=$1&entry=$2 [L]
# mid + category link
RewriteRule ^([a-zA-Z0-9_]+)/category/([[:digit:]]+)$ ./index.php?mid=$1&category=$2 [L]
# mid + act + document_Srl
RewriteRule ^([a-zA-Z0-9_]+)/([a-zA-Z])([a-zA-Z0-9_]+)/([[:digit:]]+)$ ./index.php?mid=$1&document_srl=$4&act=$2$3 [L]
# mid + document_Srl + page
RewriteRule ^([a-zA-Z0-9_]+)/([[:digit:]]+)/page/([[:digit:]]+)$ ./index.php?mid=$1&document_srl=$2&page=$3 [L]
# mid + category + page
RewriteRule ^([a-zA-Z0-9_]+)/category/([[:digit:]]+)/page/([[:digit:]]+)$ ./index.php?mid=$1&category=$2&page=$3 [L]
# mid + search target regdate (year+month)
RewriteRule ^([a-zA-Z0-9_]+)/([[:digit:]]+)/([[:digit:]]+)$ ./index.php?mid=$1&search_target=regdate&search_keyword=$2$3 [L]
# mid + search target regdate (year+month+day)
RewriteRule ^([a-zA-Z0-9_]+)/([[:digit:]]+)/([[:digit:]]+)/([[:digit:]]+)$ ./index.php?mid=$1&search_target=regdate&search_keyword=$2$3$4 [L]
# mid + search target tag
RewriteRule ^([a-zA-Z0-9_]+)/tag/(.*)$ ./index.php?mid=$1&search_target=tag&search_keyword=$2 [L]
# mid + search target writer
RewriteRule ^([a-zA-Z0-9_]+)/writer/(.*)$ ./index.php?mid=$1&search_target=nick_name&search_keyword=$2 [L]
# mid + document_Srl + page + act
RewriteRule ^([a-zA-Z0-9_]+)/([a-zA-Z0-9_]+)/([[:digit:]]+)/page/([[:digit:]]+)$ ./index.php?mid=$1&document_srl=$3&page=$4&act=$2 [L]
# module link
RewriteRule ^([a-zA-Z0-9_]+)(/){0,1}$ ./index.php?mid=$1 [L]
# vid + mid + entry title
RewriteRule ^([a-zA-Z0-9_]+)/([a-zA-Z0-9_]+)/entry/(.+)$ ./index.php?vid=$1&mid=$2&entry=$3 [L]

View file

@ -1,12 +1,17 @@
<?xml version="1.0" encoding="UTF-8"?>
<addon version="0.2">
<title xml:lang="ko">Captcha 애드온</title>
<title xml:lang="zh-CN">验证码插件</title>
<title xml:lang="jp">Captchaアドオン</title>
<title xml:lang="zh-TW">Captcha元件</title>
<description xml:lang="ko">
프로그램 글 등록기를 막기 위해 게시판/ issueTracker에서 글/ 댓글을 입력하려 할 때 이미지를 보여주고 글에 해당하는 이미지를 선택하게 하는 애드온입니다.
로그인하지 않은 경우에만 해당됩니다.
</description>
<description xml:lang="zh-CN">
为了解决互联网垃圾而开发的验证码机制。
非登录用户发布话题或评论时将会弹出验证图片选择框,选择正确的图片才可以正常发布(适用于版面/issueTracker)。
</description>
<description xml:lang="jp">
ボット(bot)がプログラムによるスパム行為を防ぐために、掲示板issueTrackerで書き込み・コメントを入力する際、ランダムな文字や数字の列を画面に表示し、表示されたものと同じ情報を入力して、データを登録させるアドオンです。
ログインしてない時だけ、動作します。
@ -20,6 +25,7 @@
<author email_address="zero@zeroboard.com" link="http://blog.nzeo.com">
<name xml:lang="ko">zero</name>
<name xml:lang="zh-CN">zero</name>
<name xml:lang="jp">zero</name>
<name xml:lang="zh-TW">zero</name>
</author>
@ -27,36 +33,44 @@
<extra_vars>
<var name="target" type="select">
<title xml:lang="ko">Captcha 표시 대상</title>
<title xml:lang="zh-CN">应用对象</title>
<title xml:lang="jp">Captchaを表示する対象</title>
<title xml:lang="zh-TW">Captcha顯示的目標</title>
<description xml:lang="ko">글/댓글 등록시 captcha가 동작할 대상을 정할 수 있습니다. 관리자는 무조건 제외됩니다</description>
<description xml:lang="zh-CN">可以指定验证码应用对象(管理员除外)。</description>
<description xml:lang="jp">管理者以外、書き込み・コメントを入力する際captchaを見せる対象を設定します。</description>
<description xml:lang="zh-TW">管理者以外、書き込み・コメントを入力する際captchaを見せる対象を設定します。</description>
<options value="">
<title xml:lang="ko">로그인하지 않은 사용자</title>
<title xml:lang="zh-CN">非登录用户</title>
<title xml:lang="jp">ログインしてないユーザー</title>
<title xml:lang="zh-TW">無法登入的用戶</title>
</options>
<options value="all">
<title xml:lang="ko">모든 사용자</title>
<title xml:lang="zh-CN">所有用户</title>
<title xml:lang="jp">すべてのユーザー</title>
<title xml:lang="zh-TW">所有用戶</title>
</options>
</var>
<var name="act_type" type="select">
<title xml:lang="ko">동작 방식</title>
<title xml:lang="zh-CN">验证方式</title>
<title xml:lang="jp">動作方式</title>
<title xml:lang="zh-TW">行為模式</title>
<description xml:lang="ko">"1번만 동작"을 선택하시면 1번만 동작후 상태를 저장해서 다음부터 물어보지 않고 그렇지 않으면 매번 물어보게 됩니다</description>
<description xml:lang="zh-CN">"一次"就是每个IP只出现一次验证。</description>
<description xml:lang="jp">"1回だけ表示"を選択すると、1回だけ動作した後、その情報を保存して次回からはCaptchaを見せないようにし、もう一つのオプションは毎回Captchaを表示します。</description>
<description xml:lang="zh-TW">選擇"單次",在發生第一次行為後,該行為會儲存,下次不會再顯示;選擇"每次"則會一直顯示。</description>
<options value="onetime">
<title xml:lang="ko">1번만 동작</title>
<title xml:lang="zh-CN">一次</title>
<title xml:lang="jp">1回だけ表示</title>
<title xml:lang="zh-TW">單次</title>
</options>
<options value="everytime">
<title xml:lang="ko">매번 동작</title>
<title xml:lang="zh-CN">每次</title>
<title xml:lang="jp">毎回表示</title>
<title xml:lang="zh-TW">每次</title>
</options>

View file

@ -0,0 +1,21 @@
<?php
/**
* @file zh-CN.lang.php
* @author zero (zero@nzeo.com) 翻译guny
* @brief 验证码简体中文语言包
**/
$lang->about_captcha = "请选择与显示名称相一致的图片。";
$lang->target_captcha = array(
"airplane" => "飞机",
"apple" => "苹果",
"book" => "",
"camera" => "摄像机",
"dog" => "",
"earth" => "地球",
"flag" => "旗帜",
"mobile" => "手机",
"note" => "音符",
"skeleton" => "骷髅",
);
?>

View file

@ -18,7 +18,7 @@
<description xml:lang="zh-CN">
此插件将自动给主题正文及评论中的关键字添加相应的预设链接。
多个关键字可以用逗号(,)来区分输入。
多个关键字的优先级以输入顺序准。
多个关键字的优先级以输入顺序准。
</description>
<description xml:lang="zh-TW">
將文章與評論中和關鍵字相對應的文字自動作連結。
@ -27,7 +27,7 @@
</description>
<description xml:lang="jp">
本文とコメントの内容中、登録されたキーワードにリンクを貼りつける機能を行います。
キーワードは半角コンマ(,)区切りで複数登録が出来ます。
キーワードは半角コンマ,区切りで複数登録が出来ます。
先に登録されるキーワードが優先度が高いです。
</description>
<version>0.1</version>
@ -45,7 +45,7 @@
<extra_vars>
<var name="cssquery">
<title xml:lang="ko">cssquery</title>
<title xml:lang="zh-CN">cssquery</title>
<title xml:lang="zh-CN">cssquery</title>
<title xml:lang="zh-TW">cssquery</title>
<title xml:lang="jp">cssquery</title>
<title xml:lang="en">cssquery</title>
@ -53,7 +53,7 @@
xe_board 게시판 스킨이면 공백으로 두면 됩니다.</description>
<description xml:lang="zh-TW">jQuery cssquery的部份可以置換。
如果是使用xe_board討論板面板請留白。</description>
<description xml:lang="zh-CN">替换部分的jQuery cssquery。
<description xml:lang="zh-CN">替换部分的jQuery cssquery。
如果正使用的是官方默认皮肤(xe_board此处留空即可。</description>
<description xml:lang="jp">置き換える部分のjQuery cssqueryです。
xe_board掲示板スキンの場合、空白にして下さい。</description>
@ -63,13 +63,13 @@
<var name="reg_type" type="select">
<title xml:lang="ko">링크 방법</title>
<title xml:lang="zh-CN">链接方式</title>
<title xml:lang="zh-CN">链接方式</title>
<title xml:lang="zh-TW">連結方式</title>
<title xml:lang="jp">リンクの貼りつけ方</title>
<title xml:lang="en">The way to make a link</title>
<description xml:lang="ko"> 키워드가 여러개 있을때 "첫번째 키워드"에만 링크를 걸 것인지 "모든 키워드"에 걸 것인지 선택합니다.
</description>
<description xml:lang="zh-CN">有多个预设关键字时,在此可以指定链接方式。
<description xml:lang="zh-CN">有多个预设关键字时,在此可以指定链接方式。
</description>
<description xml:lang="zh-TW"> 키워드가 여러개 있을때 "첫번째 키워드"에만 링크를 걸 것인지 "모든 키워드"에 걸 것인지 선택합니다.
</description>
@ -78,14 +78,14 @@
<description xml:lang="en">For the multiple keywords, choose if make a link to the first keyword, or all the keywords</description>
<options value="">
<title xml:lang="ko">첫번째 키워드</title>
<title xml:lang="zh-CN">首个关键字</title>
<title xml:lang="zh-CN">首个关键字</title>
<title xml:lang="zh-TW">第一關鍵字</title>
<title xml:lang="jp">最初のキーワード</title>
<title xml:lang="en">First keyword</title>
</options>
<options value="g">
<title xml:lang="ko">모든 키워드</title>
<title xml:lang="zh-CN">所有关键字</title>
<title xml:lang="zh-CN">所有关键字</title>
<title xml:lang="zh-TW">所有關鍵字</title>
<title xml:lang="jp">全てのキーワード</title>
<title xml:lang="en">All keywords</title>
@ -94,70 +94,70 @@
<var name="keyword01">
<title xml:lang="ko">키워드</title>
<title xml:lang="zh-CN">关键字</title>
<title xml:lang="zh-CN">关键字</title>
<title xml:lang="zh-TW">關鍵字</title>
<title xml:lang="jp">キーワード</title>
<title xml:lang="en">Keyword</title>
</var>
<var name="url01">
<title xml:lang="ko">링크</title>
<title xml:lang="zh-CN">链接</title>
<title xml:lang="zh-CN">链接</title>
<title xml:lang="zh-TW">連結</title>
<title xml:lang="jp">リンク</title>
<title xml:lang="en">Link</title>
</var>
<var name="keyword02">
<title xml:lang="ko">키워드</title>
<title xml:lang="zh-CN">关键字</title>
<title xml:lang="zh-CN">关键字</title>
<title xml:lang="zh-TW">關鍵字</title>
<title xml:lang="jp">キーワード</title>
<title xml:lang="en">Keyword</title>
</var>
<var name="url02">
<title xml:lang="ko">링크</title>
<title xml:lang="zh-CN">链接</title>
<title xml:lang="zh-CN">链接</title>
<title xml:lang="zh-TW">連結</title>
<title xml:lang="jp">リンク</title>
<title xml:lang="en">Link</title>
</var>
<var name="keyword03">
<title xml:lang="ko">키워드</title>
<title xml:lang="zh-CN">关键字</title>
<title xml:lang="zh-CN">关键字</title>
<title xml:lang="zh-TW">關鍵字</title>
<title xml:lang="jp">キーワード</title>
<title xml:lang="en">Keyword</title>
</var>
<var name="url03">
<title xml:lang="ko">링크</title>
<title xml:lang="zh-CN">链接</title>
<title xml:lang="zh-CN">链接</title>
<title xml:lang="zh-TW">連結</title>
<title xml:lang="jp">リンク</title>
<title xml:lang="en">Link</title>
</var>
<var name="keyword04">
<title xml:lang="ko">키워드</title>
<title xml:lang="zh-CN">关键字</title>
<title xml:lang="zh-CN">关键字</title>
<title xml:lang="zh-TW">關鍵字</title>
<title xml:lang="jp">キーワード</title>
<title xml:lang="en">Keyword</title>
</var>
<var name="url04">
<title xml:lang="ko">링크</title>
<title xml:lang="zh-CN">链接</title>
<title xml:lang="zh-CN">链接</title>
<title xml:lang="zh-TW">連結</title>
<title xml:lang="jp">リンク</title>
<title xml:lang="en">Link</title>
</var>
<var name="keyword05">
<title xml:lang="ko">키워드</title>
<title xml:lang="zh-CN">关键字</title>
<title xml:lang="zh-CN">关键字</title>
<title xml:lang="zh-TW">關鍵字</title>
<title xml:lang="jp">キーワード</title>
<title xml:lang="en">Keyword</title>
</var>
<var name="url05">
<title xml:lang="ko">링크</title>
<title xml:lang="zh-CN">链接</title>
<title xml:lang="zh-CN">链接</title>
<title xml:lang="zh-TW">連結</title>
<title xml:lang="jp">リンク</title>
<title xml:lang="en">Link</title>

View file

@ -1,3 +1,3 @@
<?php
$lang->alert_new_message_arrived = '新しいメッセージが届きました。確認しますか。';
$lang->alert_new_message_arrived = '%d個の新しいメッセージが届きました。確認しますか。';
?>

View file

@ -12,7 +12,7 @@
회원이 등록한 이미지이름, 이미지마크를 사용하기 위해서는 이 애드온을 활성화 시키세요.
</description>
<description xml:lang="jp">
会員が登録したイメージを使ったお名前、イメージマークを使うためにはこのアドオンを活性化して下さい。
会員が登録したイメージニックネーム、イメージマークとして使うために、このアドオンを活性化して下さい。
</description>
<description xml:lang="zh-CN">
此插件将把用户信息中的昵称图片,用户图标,签名等信息显示到页面当中。

View file

@ -10,7 +10,7 @@
wml, hdml, mhtml를 지원하고 그 이외의 경우에는 동작하지 않습니다.
</description>
<description xml:lang="jp">
モバイル端末機からアクセス時、ヘッダ情報を分析してメニュー - モジュールの関係を利用してWAPタグに変換して表示するアドオンです。
モバイル端末機からアクセス時、ヘッダ情報を分析してメニュー - モジュールの関係を利用してWAPタグに変換表示するアドオンです。
wml, hdml, mhtmlをサポートし、その以外は働きません。
</description>
<description xml:lang="zh-CN">
@ -50,7 +50,7 @@
</description>
<description xml:lang="jp">
ある特定のモバイル機器ではutf-8文字コードの認識が出来ない場合があります。
文字コードを設定すると、該当文字コードに自動変換して正常に表示できるようになります。
文字コードを設定すると、該当文字コードに自動変換して正常に表示出来るようになります。
デフォルトはeuc-krです。
</description>
<description xml:lang="zh-CN">

View file

@ -29,8 +29,8 @@
Debe utilizar luego de ingresar los valores relacionado con openid provider a través de la configuracion.
</description>
<description xml:lang="jp">
保有するドメインをオープンIDとして活用することができます。
必ず設定で、OpenIDのプロバイダー関連情報を入力してから使用してください。
保有しているオリジナルドメインをオープンIDとして活用することが出来ます。
必ず設定で、OpenIDのプロバイダー関連情報を入力してから使用してさい。
</description>
<description xml:lang="ru">
Этот аддон позволяет Вам использовать Вашу доменное имя как OpenID.
@ -69,7 +69,7 @@
<description xml:lang="en">Please input your openid.server value.</description>
<description xml:lang="ge">Bitte geben Sie Ihre openid.server Wert.</description>
<description xml:lang="es">Ingrese el valor del openid.server.</description>
<description xml:lang="jp">openid.server の値を入力してください。</description>
<description xml:lang="jp">openid.server の値を入力してさい。</description>
<description xml:lang="ru">Пожалуйста, введите Ваше значение openid сервера.</description>
<description xml:lang="zh-TW">請輸入 openid.server 值。</description>
</var>
@ -87,7 +87,7 @@
<description xml:lang="en">Please input your openid.delegate value.</description>
<description xml:lang="ge">Bitte geben Sie Ihre openid.delegate Wert.</description>
<description xml:lang="es">Ingresar el valor del openid.delegate</description>
<description xml:lang="jp">openid.delegate の値を入力してください。</description>
<description xml:lang="jp">openid.delegate の値を入力してさい。</description>
<description xml:lang="ru">Пожалуйста, введите Ваше значение openid делегата.</description>
<description xml:lang="zh-TW">請輸入 openid.delegate 值。</description>
</var>
@ -105,7 +105,7 @@
<description xml:lang="en">Please input your X-XRDS-Location value.</description>
<description xml:lang="ge">Bitte geben Sie Ihre X-XRDS-Standort Wert.</description>
<description xml:lang="es">Ingresar el valor de X-XRDS-Location</description>
<description xml:lang="jp">X-XRDS-Location の値を入力してください。</description>
<description xml:lang="jp">X-XRDS-Location の値を入力してさい。</description>
<description xml:lang="ru">Пожалуйста, введите Ваше значение X-XRDS-Локации.</description>
<description xml:lang="zh-TW">請輸入 X-XRDS-Location 值。</description>
</var>

View file

@ -2,23 +2,16 @@
if(!defined("__ZBXE__")) exit();
/**
* @file planet_bookmark.addon.php
* @author zero (zero@zeroboard.com)
* @file planet_todo.addon.php
* @author SOL군 (sol@ngleader.com)
* @brief
**/
if($called_position == 'after_module_proc' && Context::getResponseMethod()!="XMLRPC" && Context::getResponseMethod()!="JSON") {
$config = Context::get('config');
if($config && $config->mid == 'planet'){
$oPlanet = Context::get('planet');
if(!is_object($oPlanet)) return;
if($oPlanet->isMyPlanet()){
$oPlanetModel = &getModel('planet');
$countBookmark = $oPlanetModel->getTagSearchResultCount($oPlanet->getModuleSrl(),'bookmark');
Context::addHtmlHeader("<script type=\"text/javascript\">//<![CDATA[\nvar planet_bookmark_count=".( (int)$countBookmark).";\n//]]></script>");
Context::addJsFile('./addons/planet_bookmark/planet_bookmark.js');
}
}
$planet = Context::get('planet');
if(!$planet || !$planet->isMyPlanet()) return;
$oPlanetModel = &getModel('planet');
$countBookmark = $oPlanetModel->getTagSearchResultCount($planet->getModuleSrl(),'bookmark');
Context::addHtmlHeader("<script type=\"text/javascript\">//<![CDATA[\nvar planet_bookmark_count=".( (int)$countBookmark).";\n//]]></script>");
Context::addJsFile('./addons/planet_bookmark/planet_bookmark.js');
}
?>

View file

@ -1,28 +0,0 @@
<?php
if(!defined("__ZBXE__")) exit();
/**
* @file planet_todo.addon.php
* @author SOL군 (sol@ngleader.com)
* @brief
**/
if($called_position == 'after_module_proc' && Context::getResponseMethod()!="XMLRPC" && Context::getResponseMethod()!="JSON") {
$config = Context::get('config');
//getTagSearchResultCount
if($config->mid == 'planet'){
$oPlanet = Context::get('planet');
if($oPlanet->isMyPlanet()){
$oPlanetModel = &getModel('planet');
$countTodo = $oPlanetModel->getTagSearchResultCount($oPlanet->getModuleSrl(),'todo');
$countDone = $oPlanetModel->getTagSearchResultCount($oPlanet->getModuleSrl(),'done');
Context::addHtmlHeader("<script type=\"text/javascript\">//<![CDATA[\nvar planet_todo_count={todo:".$countTodo.",done:".$countDone."};\n//]]></script>");
Context::addJsFile('./addons/planet_todo/planet_todo.js');
}
}
}
?>

View file

@ -7,19 +7,14 @@
* @brief
**/
if($called_position == 'after_module_proc' && Context::getResponseMethod()!="XMLRPC" && Context::getResponseMethod()!="JSON") {
$config = Context::get('config');
$planet = Context::get('planet');
if(!$planet || !$planet->isMyPlanet()) return;
if($config && $config->mid == 'planet'){
$oPlanet = Context::get('planet');
if(!is_object($oPlanet)) return;
if($oPlanet->isMyPlanet()){
$oPlanetModel = &getModel('planet');
$countTodo = $oPlanetModel->getTagSearchResultCount($oPlanet->getModuleSrl(),'todo');
$countDone = $oPlanetModel->getTagSearchResultCount($oPlanet->getModuleSrl(),'done');
$oPlanetModel = &getModel('planet');
$countTodo = $oPlanetModel->getTagSearchResultCount($planet->getModuleSrl(),'todo');
$countDone = $oPlanetModel->getTagSearchResultCount($planet->getModuleSrl(),'done');
Context::addHtmlHeader("<script type=\"text/javascript\">//<![CDATA[\nvar planet_todo_count={todo:".$countTodo.",done:".$countDone."};\n//]]></script>");
Context::addJsFile('./addons/planet_todo/planet_todo.js');
}
}
Context::addHtmlHeader("<script type=\"text/javascript\">//<![CDATA[\nvar planet_todo_count={todo:".$countTodo.",done:".$countDone."};\n//]]></script>");
Context::addJsFile('./addons/planet_todo/planet_todo.js');
}
?>

View file

@ -5,9 +5,6 @@ function planetTab(){
}
xAddEventListener(window,'load',planetTab);
function planetTabOff(){
$Element('planetex_Tab').leave();
}
@ -22,8 +19,8 @@ function planet_showTodoList(o){
function planet_reload_todo(){
$('commentList').innerHTML = '<div class="commentHeader"><h3 class="exTitle">TODO</h3><span class="button strong black todoWrite"><button type="button" onclick="showWritePostTodo()">TODO Post</button></span></div>\n<div id="todoList" class="commentBody todoManager"></div>\n<div id="todoList_page" class="pagination a1"></div>\n<div class="commentHeader"><h3 class="exTitle">DONE</h3></div>\n<div id="doneList" class="commentBody todoManager"></div>\n<div id="doneList_page" class="pagination a1"></div>\n<span class="tl"></span><span class="tr"></span><span class="bl"></span><span class="br"></span>\n';
planet_getTodo();
planet_getDone();
planet_getTodo(1);
planet_getDone(1);
}
function planet_getTodo(page){

View file

@ -17,8 +17,8 @@
级别图标可以在模块 &gt; 积分系统中进行选择。
</description>
<description xml:lang="jp">
ポイントシステムを使用している場合、ユーザ名の前にレベルアイコンを表示させます。
レベルアイコンは、「モジュール&gt;ポイントシステム」で選択できます。
ポイントシステムを使用する場合、ユーザ名の前にレベルアイコンの表示が出来ます。
レベルアイコンは、「モジュール&gt;ポイントシステム」で選択出来ます。
</description>
<description xml:lang="en">
This addon displays level icon in front of the user name when you are using the point system.

View file

@ -29,7 +29,7 @@
&lt;a href=&quot;http://www.dynamicdrive.com&quot; target=&quot;_blank&quot;&gt;Dynamicdrive.com&lt;/a&gt; tiene derecho de autor sobre rainbow.js
</description>
<description xml:lang="jp">
「rainbow.js」をヘッダーに追加し、リンクれている文字列の色を虹色で表示します。この機能拡張の「 rainbow.js」は「&lt;a href=&quot;http://www.dynamicdrive.com&quot; target=&quot;_blank&quot;&gt;Dynamicdrive.com&lt;/a&gt;」に著作権があります。
「rainbow.js」をヘッダーに追加し、リンクが張られている文字列の色を虹色で表示します。この機能拡張の「 rainbow.js」は「&lt;a href=&quot;http://www.dynamicdrive.com&quot; target=&quot;_blank&quot;&gt;Dynamicdrive.com&lt;/a&gt;」に著作権があります。
</description>
<description xml:lang="ru">
Этот аддон добавляет файл с именем &quot;rainbow.js&quot; в заголовки HTML, и тогда связанный текс приобретает эффект смены цвета, подобно радуге или хамелеону.

View file

@ -12,7 +12,7 @@
본문내에 삽입된 이미지의 크기를 본문크기에 맞게 하고 클릭시 원본을 보여주는 애드온입니다.
</description>
<description xml:lang="jp">
本文内に挿入されたイメージのサイズを本文サイズに合わせてリーサイズし、クリックした時、オリジナルイメージを表示させます。
本文内に挿入されたイメージのサイズを本文の幅サイズに合わせてリーサイズし、クリックした時、オリジナルイメージを表示するアドオンです。
</description>
<description xml:lang="zh-CN">
自动调整主题内容区内的图片大小,点击将显示原始大小的插件。

View file

@ -30,6 +30,7 @@ function setText() {
function addShortCutForWiki()
{
var iframe_obj = editorGetIFrame(1);
jQuery(iframe_obj.contentWindow.document).bind('keydown', "CTRL+SHIFT+SPACE", function(evt) { openWikiLinkDialog(); });
if(jQuery.os.Mac)
{
jQuery(iframe_obj.contentWindow.document).bind('keydown', "ALT+SPACE", function(evt) { openWikiLinkDialog(); });
@ -38,7 +39,7 @@ function addShortCutForWiki()
{
jQuery(iframe_obj.contentWindow.document).bind('keydown', "CTRL+SPACE", function(evt) { openWikiLinkDialog(); });
}
jQuery(document).bind('keydown',"CTRL+ALT+SPACE", function(evt) {} );
jQuery(document).bind('keydown',"CTRL+SHIFT+SPACE", function(evt) {} );
}
xAddEventListener(window, 'load', addShortCutForWiki);

View file

@ -67,15 +67,51 @@
$this->context->lang = &$GLOBALS['lang'];
$this->context->_COOKIE = $_COOKIE;
// 사용자의 쿠키 설정된 언어 타입 추출
if($_COOKIE['lang_type']) $this->lang_type = $_COOKIE['lang_type'];
// Request Method 설정
$this->_setRequestMethod();
// Request Argument 설정
$this->_setXmlRpcArgument();
$this->_setJSONRequestArgument();
$this->_setRequestArgument();
$this->_setUploadedArgument();
// 기본적인 DB정보 세팅
$this->_loadDBInfo();
// 설치가 되어 있다면 가상 사이트 정보를 구함
if(Context::isInstalled()) {
// site_module_info를 구함
$oModuleModel = &getModel('module');
$site_module_info = $oModuleModel->getDefaultMid();
Context::set('site_module_info', $site_module_info);
if($site_module_info->site_srl && isSiteID($site_module_info->vid)) Context::set('vid', $site_module_info->vid);
}
// 언어 파일 불러오기
$lang_supported = $this->loadLangSelected();
// 사용자의 쿠키 설정된 언어 타입 추출
if($_COOKIE['lang_type']) $this->lang_type = $_COOKIE['lang_type'];
// 사용자 설정 언어 타입이 없으면 기본 언어타입으로 지정
if(!$this->lang_type) {
// 가상 사이트라면 가상사이트의 언어타입으로 지정
if($site_module_info && $site_module_info->default_language) $this->lang_type = $site_module_info->default_language;
else $this->lang_type = $this->db_info->lang_type;
}
// 관리자 설정 언어값에 등록된 것이 아니라면 기본 언어로 변경
if(!in_array($this->lang_type, array_keys($lang_supported))) $this->lang_type = $this->db_info->lang_type;
if(!$this->lang_type) $this->lang_type = "en";
Context::set('lang_supported', $lang_supported);
$this->setLangType($this->lang_type);
// module의 언어파일 강제 로드 (언어 type에 맞춰서)
$this->loadLang(_XE_PATH_.'modules/module/lang');
// 세션 핸들러 지정
$oSessionModel = &getModel('session');
$oSessionController = &getController('session');
@ -89,37 +125,6 @@
);
session_start();
// Request Method 설정
$this->_setRequestMethod();
// Request Argument 설정
$this->_setXmlRpcArgument();
$this->_setJSONRequestArgument();
$this->_setRequestArgument();
$this->_setUploadedArgument();
// 설치가 되어 있다면 가상 사이트 정보를 구함
if(Context::isInstalled()) {
// site_module_info를 구함
$oModuleModel = &getModel('module');
$site_module_info = $oModuleModel->getDefaultMid();
Context::set('site_module_info', $site_module_info);
}
// 사용자 설정 언어 타입이 없으면 기본 언어타입으로 지정
if(!$this->lang_type) {
// 가상 사이트라면 가상사이트의 언어타입으로 지정
if($site_module_info && $site_module_info->default_language) $this->db_info->lang_type = $site_module_info->default_language;
// 언어 타입 지정
$this->lang_type = $this->db_info->lang_type;
}
// 지정된 언어가 지원 언어에 속하지 않거나 없으면 영문으로 지정
if(!in_array($this->lang_type, array_keys($lang_supported))) $this->lang_type = $this->db_info->lang_type;
if(!$this->lang_type) $this->lang_type = "en";
Context::set('lang_supported', $lang_supported);
$this->setLangType($this->lang_type);
// 인증 관련 정보를 Context와 세션에 설정
if(Context::isInstalled()) {
@ -460,6 +465,7 @@
**/
function _loadLang($path) {
global $lang;
if(!$this->lang_type) return;
if(substr($path,-1)!='/') $path .= '/';
$filename = sprintf('%s%s.lang.php', $path, $this->lang_type);
if(!file_exists($filename)) $filename = sprintf('%s%s.lang.php', $path, 'ko');
@ -467,7 +473,7 @@
if(!is_array($this->loaded_lang_files)) $this->loaded_lang_files = array();
if(in_array($filename, $this->loaded_lang_files)) return;
$this->loaded_lang_files[] = $filename;
include($filename);
if(file_exists($filename)) @include($filename);
}
/**
@ -762,18 +768,31 @@
**/
function _getUrl($num_args=0, $args_list=array(), $domain = null) {
static $site_module_info = null;
if($domain) $is_site = true;
else $is_site = false;
if(is_null($site_module_info)) {
$site_module_info = Context::get('site_module_info');
}
// SiteID 요청시 전처리
if($domain && isSiteID($domain)) {
$vid = $domain;
$domain = '';
}
// SiteID가 요청되지 않았다면 현재 site_module_info에서 SiteID 판별
if(!$vid && $site_module_info->domain && isSiteID($site_module_info->domain)) {
$vid = $site_module_info->domain;
}
if(!$domain) {
if($site_module_info->domain) $domain = $site_module_info->domain;
if($site_module_info->domain && !isSiteID($site_module_info->domain)) $domain = $site_module_info->domain;
else {
if($this->db_info->default_url) $domain = $this->db_info->default_url;
else if(!$domain) $domain = Context::getRequestUri();
}
}
$domain = preg_replace('/^(http|https):\/\//i','', trim($domain));
if(substr($domain,-1) != '/') $domain .= '/';
@ -796,6 +815,7 @@
}
$get_vars[$key] = $val;
}
unset($get_vars['vid']);
/* member module중의 쪽지함/친구 관리 기능이 communication 모듈로 이전하여 하위 호환성을 위한 act값 변경 */
if($get_vars['act'] == 'dispMemberFriend') $get_vars['act'] = 'dispCommunicationFriend';
@ -808,9 +828,17 @@
else $path = $this->getRequestUri(RELEASE_SSL, $domain);
$var_count = count($get_vars);
if(!$var_count) return $path;
if(!$var_count) {
if(!$is_site) return $path;
if($vid) {
if($this->allow_rewrite) $path .= $vid;
else $path .= '?vid='.$vid;
}
return $path;
}
// rewrite모듈을 사용할때 getUrl()을 이용한 url 생성
// 2009. 4. 8 mid, document_srl, site id, entry 를 제외하고는 rewrite rule 사용하지 않도록 변경
if($this->allow_rewrite) {
if(count($get_vars)) foreach($get_vars as $key => $value) if(!isset($value) || $value === '') unset($get_vars[$key]);
@ -818,46 +846,23 @@
asort($var_keys);
$target = implode('.',$var_keys);
if($vid) $rpath = $path.$vid .'/';
else $rpath = $path;
switch($target) {
case 'mid' :
return $path.$get_vars['mid'];
return $rpath.$get_vars['mid'];
case 'document_srl' :
return $path.$get_vars['document_srl'];
case 'act.mid' :
return sprintf('%s%s/%s',$path,$get_vars['mid'],$get_vars['act']);
return $rpath.$get_vars['document_srl'];
case 'document_srl.mid' :
return sprintf('%s%s/%s',$path,$get_vars['mid'],$get_vars['document_srl']);
case 'act.document_srl' :
return sprintf('%s%s/%s',$path,$get_vars['document_srl'],$get_vars['act']);
case 'mid.page' :
return sprintf('%s%s/page/%s',$path,$get_vars['mid'],$get_vars['page']);
case 'category.mid' :
return sprintf('%s%s/category/%s',$path,$get_vars['mid'],$get_vars['category']);
case 'act.document_srl.key' :
return sprintf('%s%s/%s/%s',$path,$get_vars['document_srl'],$get_vars['key'],$get_vars['act']);
case 'document_srl.mid.page' :
return sprintf('%s%s/%s/page/%s',$path,$get_vars['mid'],$get_vars['document_srl'],$get_vars['page']);
case 'category.mid.page' :
return sprintf('%s%s/category/%s/page/%s',$path,$get_vars['mid'],$get_vars['category'],$get_vars['page']);
case 'mid.search_keyword.search_target' :
switch($get_vars['search_target']) {
case 'tag' :
return sprintf('%s%s/tag/%s',$path,$get_vars['mid'],str_replace(' ','+',$get_vars['search_keyword']));
case 'nick_name' :
return sprintf('%s%s/writer/%s',$path,$get_vars['mid'],str_replace(' ','+',$get_vars['search_keyword']));
case 'regdate' :
if(strlen($get_vars['search_keyword'])==8) return sprintf('%s%s/%04d/%02d/%02d',$path,$get_vars['mid'],substr($get_vars['search_keyword'],0,4),substr($get_vars['search_keyword'],4,2),substr($get_vars['search_keyword'],6,2));
elseif(strlen($get_vars['search_keyword'])==6) return sprintf('%s%s/%04d/%02d',$path,$get_vars['mid'],substr($get_vars['search_keyword'],0,4),substr($get_vars['search_keyword'],4,2));
}
break;
case 'act.document_srl.mid' :
return sprintf('%s%s/%s/%s',$path,$get_vars['mid'], $get_vars['act'],$get_vars['document_srl']);
return sprintf('%s%s/%s',$rpath,$get_vars['mid'],$get_vars['document_srl']);
case 'entry.mid' :
return sprintf('%s%s/entry/%s',$path,$get_vars['mid'],$get_vars['entry']);
return sprintf('%s%s/entry/%s',$rpath,$get_vars['mid'],$get_vars['entry']);
}
}
// rewrite 모듈을 사용하지 않고 인자의 값이 2개 이상이거나 rewrite모듈을 위한 인자로 적당하지 않을 경우
if($vid) $url = 'vid='.$vid;
foreach($get_vars as $key => $val) {
if(!isset($val)) continue;
if(is_array($val) && count($val)) {
@ -868,7 +873,6 @@
$url .= ($url?'&':'').$key.'='.urlencode($val);
}
}
return $path.'?'.htmlspecialchars($url);
}
@ -876,6 +880,9 @@
* @brief 요청이 들어온 URL에서 argument를 제거하여 return
**/
function getRequestUri($ssl_mode = FOLLOW_REQUEST_SSL, $domain = null) {
// HTTP Request가 아니면 패스
if(!isset($_SERVER['SERVER_PROTOCOL'])) return ;
static $url = array();
if(Context::get('_use_ssl') == "always") $ssl_mode = ENFORCE_SSL;
@ -905,14 +912,11 @@
}
$url_info = parse_url('http://'.$target_url);
if($use_ssl)
{
if($use_ssl) {
if(Context::get("_https_port") && Context::get("_https_port") != 443) {
$url_info['port'] = Context::get("_https_port");
}
}
else
{
} else {
if(Context::get("_http_port") && Context::get("_http_port") != 80) {
$url_info['port'] = Context::get("_http_port");
}
@ -1361,10 +1365,8 @@
// body 내의 <style ..></style>를 header로 이동
$content = preg_replace_callback('!<style(.*?)<\/style>!is', array($this,'moveStyleToHeader'), $content);
// <img|br> 코드 변환
$content = preg_replace('/<(img|br)([^>\/]*)(\/>|>)/i','<$1$2 />', $content);
// templateHandler의 이미지 경로로 인하여 생기는 절대경로 이미지등의 경로 중복 처리
//$content = preg_replace('/<(img|input)([^>]*)src=(["|\']?)http:\/\/([^ ]+)http:\/\//is','<$1$2src=$3http://', $content);
$content = preg_replace('/src=(["|\']?)http:\/\/([^ ]+)http:\/\//is','src=$1http://', $content);
return $content;

View file

@ -160,7 +160,7 @@
if(__DEBUG_DB_OUTPUT__ == 1) {
$debug_file = _XE_PATH_."files/_debug_db_query.php";
$buff = sprintf("%s\n",print_r($str,true));
$buff = sprintf("%s\n",print_r($log,true));
if($display_line) $buff = "\n<?php\n/*\n====================================\n".$buff."------------------------------------\n*/\n?>\n";

View file

@ -37,6 +37,7 @@
'text' => 'character varying(1073741823)',
'bigtext' => 'character varying(1073741823)',
'date' => 'character varying(14)',
'float' => 'float',
);
/**

View file

@ -33,6 +33,7 @@
'text' => 'BLOB SUB_TYPE TEXT SEGMENT SIZE 20',
'bigtext' => 'BLOB SUB_TYPE TEXT SEGMENT SIZE 20',
'date' => 'VARCHAR(14)',
'float' => 'FLOAT',
);
/**
@ -175,20 +176,17 @@
$as = $this->addDoubleQuotes($as);
}
// 함수 사용시
// 함수 사용시
$tmpFunc1 = null;
$tmpFunc2 = null;
if(($no1 = strpos($string,'('))!==false && ($no2 = strpos($string, ')'))!==false) {
$tmpString1 = substr($string, 0, $no1+1);
$tmpString2 = substr($string, $no1+1, $no2-$no1-1);
$tmpString3 = substr($string, $no2, strlen($string)-$no2+1);
$tmpString2 = trim($tmpString2);
if($tmpString2 != "*") $tmpString2 = $this->addDoubleQuotes($tmpString2);
$string = $tmpString1.$tmpString2.$tmpString3;
$tmpFunc1 = substr($string, 0, $no1+1);
$tmpFunc2 = substr($string, $no2, strlen($string)-$no2+1);
$string = trim(substr($string, $no1+1, $no2-$no1-1));
}
// 테이블.필드
else if(($no1 = strpos($string,'.'))!==false) {
// 테이블.필드
if(($no1 = strpos($string,'.'))!==false) {
$tmpString1 = substr($string, 0, $no1); // table
$tmpString2 = substr($string, $no1+1, strlen($string)-$no1+1); // field
@ -199,12 +197,14 @@
if($tmpString2 != "*") $tmpString2 = $this->addDoubleQuotes($tmpString2);
$string = $tmpString1.".".$tmpString2;
}
else {
$string = $this->addDoubleQuotes($string);
}
if($tmpFunc1 != null) $string = $tmpFunc1.$string;
if($tmpFunc2 != null) $string = $string.$tmpFunc2;
if($as !== false) $string = $string." as ".$as;
return $string;
}
@ -731,7 +731,10 @@
$pos = strpos($value, '+');
if($pos == 0) $pos = strpos($value, '-');
if($pos == 0) $pos = strpos($value, '*');
if($pos == 0) $pos = strpos($value, '/');
if($pos == 0) {
$pos = strpos($value, '/');
if(substr_count($value, ".") > 1) $pos = 0; // value에 url주소가 들어가는경우
}
if($pos != 0) {
$substr = substr($value, 0, $pos);
@ -794,7 +797,7 @@
foreach($left_tables as $key => $val) {
$condition = $this->getLeftCondition($output->left_conditions[$key],$output->column_type,$output->tables);
if($condition){
$left_join[] = $val . ' "'.$this->prefix.$output->_tables[$key].'" as '.$key . ' on (' . $condition . ')';
$left_join[] = $val . ' "'.$this->prefix.$output->_tables[$key].'" as "'.$key.'" on (' . $condition . ')';
}
}

View file

@ -33,6 +33,7 @@
'text' => 'text',
'bigtext' => 'longtext',
'date' => 'varchar(14)',
'float' => 'float',
);
/**

View file

@ -33,6 +33,7 @@
'text' => 'text',
'bigtext' => 'longtext',
'date' => 'varchar(14)',
'float' => 'float',
);
/**

View file

@ -30,9 +30,16 @@ class DBPostgresql extends DB
* column_type은 schema/query xml에서 공통 선언된 type을 이용하기 때문에
* DBMS에 맞게 replace 해주어야 한다
**/
var $column_type = array('bignumber' => 'bigint', 'number' => 'integer',
'varchar' => 'varchar', 'char' => 'char', 'text' => 'text', 'bigtext' => 'text',
'date' => 'varchar(14)', );
var $column_type = array(
'bignumber' => 'bigint',
'number' => 'integer',
'varchar' => 'varchar',
'char' => 'char',
'text' => 'text',
'bigtext' => 'text',
'date' => 'varchar(14)',
'float' => 'real',
);
/**
* @brief constructor

View file

@ -30,6 +30,7 @@
'text' => 'TEXT',
'bigtext' => 'TEXT',
'date' => 'VARCHAR(14)',
'float' => 'FLOAT',
);
/**

View file

@ -36,6 +36,7 @@
'text' => 'TEXT',
'bigtext' => 'TEXT',
'date' => 'VARCHAR(14)',
'float' => 'REAL',
);
/**

View file

@ -4,19 +4,17 @@
* @author zero (zero@nzeo.com)
* @brief 게시글, 회원등에서 사용하는 확장변수를 핸들링하는 클래스
*
* php4대비 class static 변수가 안됨으로 $GLOBALS['XE_EXTRAVARS'] 이용해서 같은 효과
**/
class ExtraVar {
var $module_srl = null;
var $keys = null;
/**
* @brief constructor
**/
function &getInstance($module_srl) {
static $oInstance = array();
if(!$oInstance[$module_srl]) $oInstance[$module_srl] = new ExtraVar($module_srl);
return $oInstance[$module_srl];
return new ExtraVar($module_srl);
}
/**
@ -26,29 +24,16 @@
$this->module_srl = $module_srl;
}
/**
* @brief 불필요한 등록을 피하기 위해서 특정 module_srl에 확장변수가 등록되었는지 확인
**/
function isSettedExtraVars() {
return isset($GLOBALS['XE_EXTRAVARS'][$this->module_srl]);
}
/**
* @brief 확장변수 키를 등록
* php4를 대비해 class static 멤버변수 대신 $GLOBAL 변수 사용
* @param module_srl, idx, name, type, default, desc, is_required, search, value
**/
function setExtraVarKeys($extra_keys) {
if(!$this->isSettedExtraVars()) {
if(!$extra_keys || !count($extra_keys)) $GLOBALS['XE_EXTRAVARS'][$this->module_srl] = array();
else {
if(!is_array($GLOBALS['XE_EXTRAVARS'][$this->module_srl])) $GLOBALS['XE_EXTRAVARS'][$this->module_srl] = array();
foreach($extra_keys as $key => $val) {
$obj = null;
$obj = new ExtraItem($val->module_srl, $val->idx, $val->name, $val->type, $val->default, $val->desc, $val->is_required, $val->search, $val->value);
$GLOBALS['XE_EXTRAVARS'][$this->module_srl][$val->idx] = $obj;
}
}
if(!is_array($extra_keys) || !count($extra_keys)) return;
foreach($extra_keys as $key => $val) {
$obj = null;
$obj = new ExtraItem($val->module_srl, $val->idx, $val->name, $val->type, $val->default, $val->desc, $val->is_required, $val->search, $val->value, $val->eid);
$this->keys[$val->idx] = $obj;
}
}
@ -56,8 +41,7 @@
* @brief 확장변수 객체 배열 return
**/
function getExtraVars() {
if(!$this->isSettedExtraVars()) return array();
return $GLOBALS['XE_EXTRAVARS'][$this->module_srl];
return $this->keys;
}
}
@ -76,11 +60,12 @@
var $is_required = 'N';
var $search = 'N';
var $value = null;
var $eid = '';
/**
* @brief constructor
**/
function ExtraItem($module_srl, $idx, $name, $type = 'text', $default = null, $desc = '', $is_required = 'N', $search = 'N', $value = null) {
function ExtraItem($module_srl, $idx, $name, $type = 'text', $default = null, $desc = '', $is_required = 'N', $search = 'N', $value = null, $eid = '') {
if(!$idx) return;
$this->module_srl = $module_srl;
$this->idx = $idx;
@ -91,6 +76,7 @@
$this->is_required = $is_required;
$this->search = $search;
$this->value = $value;
$this->eid = $eid;
}
/**
@ -108,7 +94,7 @@
if(!isset($value)) return;
switch($type) {
case 'homepage' :
if(!preg_match('/^([a-z]+):\/\//i',$value)) $value = 'http://'.$value;
if($value && !preg_match('/^([a-z]+):\/\//i',$value)) $value = 'http://'.$value;
return htmlspecialchars($value);
break;
case 'tel' :

View file

@ -266,51 +266,60 @@
return sprintf("%0.2fMB",$size / (1024*1024));
}
/**
* @brief 원격파일을 다운받아 return
**/
function getRemoteResource($url, $body = null, $timeout = 3, $method = 'GET', $content_type = null, $headers = array()) {
set_include_path(_XE_PATH_."libs/PEAR");
require_once('PEAR.php');
require_once('HTTP/Request.php');
if(__PROXY_SERVER__!==null) {
$oRequest = new HTTP_Request(__PROXY_SERVER__);
$oRequest->setMethod('POST');
$oRequest->_timeout = $timeout;
$oRequest->addPostData('arg', serialize(array('Destination'=>$url, 'method'=>$method, 'body'=>$body, 'content_type'=>$content_type, "headers"=>$headers)));
} else {
$oRequest = new HTTP_Request($url);
if(!$content_type) $oRequest->addHeader('Content-Type', 'text/html');
else $oRequest->addHeader('Content-Type', $content_type);
if(count($headers)) {
foreach($headers as $key => $val) {
$oRequest->addHeader($key, $val);
}
}
$oRequest->setMethod($method);
if($body) $oRequest->setBody($body);
$oRequest->_timeout = $timeout;
}
$oResponse = $oRequest->sendRequest();
if(PEAR::isError($oResponse)) return;
$code = $oRequest->getResponseCode();
$header = $oRequest->getResponseHeader();
$body = $oRequest->getResponseBody();
if($code == 301) {
$url = $header['location'];
if($url) return FileHandler::getRemoteResource($url, $body, $timeout, $method, $content_type, $headers);
else return;
}
if($code != 200) return;
return $body;
}
/**
* @brief 원격파일을 다운받아서 특정 위치에 저장
**/
function getRemoteFile($url, $target_filename) {
function getRemoteFile($url, $target_filename, $body = null, $timeout = 3, $method = 'GET', $content_type = null, $headers = array()) {
$body = FileHandler::getRemoteResource($url, $body, $timeout, $method, $content_type, $headers);
if(!$body) return;
$target_filename = FileHandler::getRealPath($target_filename);
$url_info = parse_url($url);
if(!$url_info['port']) $url_info['port'] = 80;
if(!$url_info['path']) $url_info['path'] = '/';
$fp = @fsockopen($url_info['host'], $url_info['port']);
if(!$fp) return;
// 한글 파일이 있으면 한글파일 부분만 urlencode하여 처리 (iconv 필수)
/*
$path = $url_info['path'];
if(preg_match('/[\xEA-\xED][\x80-\xFF]{2}/', $path)&&function_exists('iconv')) {
$path_list = explode('/',$path);
$cnt = count($path_list);
$filename = $path_list[$cnt-1];
$filename = urlencode(iconv("UTF-8","EUC-KR",$filename));
$path_list[$cnt-1] = $filename;
$path = implode('/',$path_list);
$url_info['path'] = $path;
}
*/
$header = sprintf("GET %s%s HTTP/1.0\r\nHost: %s\r\nAccept-Charset: utf-8;q=0.7,*;q=0.7\r\nReferer: %s://%s\r\nRequestUrl: %s\r\nConnection: Close\r\n\r\n", $url_info['path'], $url_info['query']?'?'.$url_info['query']:'', $url_info['host'], $url_info['scheme'], $url_info['host'], Context::getRequestUri());
@fwrite($fp, $header);
$ft = @fopen($target_filename, 'w');
if(!$ft) return;
$begin = false;
while(!feof($fp)) {
$str = fgets($fp, 1024);
if($begin) @fwrite($ft, $str);
if(!trim($str)) $begin = true;
}
@fclose($ft);
@fclose($fp);
@chmod($target_filename, 0644);
FileHandler::writeFile($target_filename, $body);
return true;
}

View file

@ -93,7 +93,7 @@
$object_vars = get_object_vars($args);
if(count($object_vars)) {
foreach($object_vars as $key => $val) {
if(in_array($key, array('body','class','style','widget_sequence','widget','widget_padding_left','widget_padding_top','widget_padding_bottom','widget_padding_right','widgetstyle','document_srl'))) continue;
if(in_array($key, array('widgetbox_content','body','class','style','widget_sequence','widget','widget_padding_left','widget_padding_top','widget_padding_bottom','widget_padding_right','widgetstyle','document_srl'))) continue;
$args->{$key} = utf8RawUrlDecode($val);
}
}
@ -102,12 +102,16 @@
/**
* 위젯이 widgetContent/ widgetBox가 아니라면 내용을 구함
**/
$widget_content = '';
if($widget != 'widgetContent' && $widget != 'widgetBox') {
if(!is_dir(sprintf('./widgets/%s/',$widget))) return;
// 위젯의 내용을 담을 변수
$widget_content = WidgetHandler::getCache($widget, $args);
}
if($widget == 'widgetBox'){
$widgetbox_content = $args->widgetbox_content;
}
/**
* 관리자가 지정한 위젯의 style을 구함
@ -155,12 +159,14 @@
// 위젯 박스일 경우
case 'widgetBox' :
$widget_content_header = sprintf('<div %sstyle="overflow:hidden;%s;"><div style="%s"><div>', $args->id, $style, $inner_style);
$widget_content_body = $widgetbox_content;
break;
// 일반 위젯일 경우
default :
$widget_content_header = sprintf('<div %sstyle="overflow:hidden;%s">',$args->id,$style);
$widget_content_body = sprintf('<div style="%s">%s</div>', $inner_style,$widget_content);
$widget_content_body = sprintf('<div style="*zoom:1;%s">%s</div>', $inner_style,$widget_content);
$widget_content_footer = '</div>';
break;
}
@ -212,12 +218,23 @@
// 위젯 박스일 경우
case 'widgetBox' :
// args 정리
$attribute = array();
if($args) {
foreach($args as $key => $val) {
if(in_array($key, array('class','style','widget_padding_top','widget_padding_right','widget_padding_bottom','widget_padding_left','widget','widgetstyle','document_srl'))) continue;
if(strpos($val,'|@|')>0) $val = str_replace('|@|',',',$val);
$attribute[] = sprintf('%s="%s"', $key, str_replace('"','\"',$val));
}
}
$widget_content_header = sprintf(
'<div class="widgetOutput" widgetstyle="%s" widget="widgetBox" style="%s;" widget_padding_top="%s" widget_padding_right="%s" widget_padding_bottom="%s" widget_padding_left="%s">'.
'<div class="widgetOutput" widgetstyle="%s" widget="widgetBox" style="%s;" widget_padding_top="%s" widget_padding_right="%s" widget_padding_bottom="%s" widget_padding_left="%s" %s >'.
'<div class="widgetBoxResize"></div>'.
'<div class="widgetBoxResizeLeft"></div>'.
'<div class="widgetBoxBorder"><div class="nullWidget" style="%s">',$args->widgetstyle,$style, $widget_padding_top, $widget_padding_right, $widget_padding_bottom, $widget_padding_left,$inner_style);
'<div class="widgetBoxBorder"><div class="nullWidget" style="%s">',$args->widgetstyle,$style, $widget_padding_top, $widget_padding_right, $widget_padding_bottom, $widget_padding_left,implode(' ',$attribute),$inner_style);
$widget_content_body = $widgetbox_content;
break;
@ -228,6 +245,7 @@
if($args) {
foreach($args as $key => $val) {
if(in_array($key, array('class','style','widget_padding_top','widget_padding_right','widget_padding_bottom','widget_padding_left','widget'))) continue;
if(strlen($val)==0) continue;
if(strpos($val,'|@|')>0) $val = str_replace('|@|',',',$val);
$attribute[] = sprintf('%s="%s"', $key, str_replace('"','\"',$val));
}
@ -251,7 +269,7 @@
// 위젯 스타일을 컴파일 한다.
if($args->widgetstyle){
$widget_content_body = WidgetHandler::complieWidgetStyle($args->widgetstyle, $widget_content_body, $args);
$widget_content_body = WidgetHandler::complieWidgetStyle($args->widgetstyle,$widget, $widget_content_body, $args, $include_info);
}
$output = $widget_content_header . $widget_content_body . $widget_content_footer;
@ -293,7 +311,7 @@
}
function complieWidgetStyle($widgetStyle,$widget_content_body, $args){
function complieWidgetStyle($widgetStyle,$widget,$widget_content_body, $args, $include_info){
if(!$widgetStyle) return $widget_content_body;
$oWidgetModel = &getModel('widget');
@ -309,7 +327,12 @@
}
}
Context::set('widgetstyle_extar_var', $widgetstyle_extar_var);
Context::set('widget_content', $widget_content_body);
if($include_info && $widget=='widgetBox'){
Context::set('widget_content', '<div class="widget_inner">'.$widget_content_body.'</div>');
}else{
Context::set('widget_content', $widget_content_body);
}
// 컴파일
$widgetstyle_path = $oWidgetModel->getWidgetStylePath($widgetStyle);

View file

@ -32,7 +32,7 @@ span.button { padding:0; background-position:left top;}
span.button, x:-moz-any-link{ font:0/23px Sans-serif; padding:11px 0;} /* Firefox 2 Fix */
span.button, x:-moz-any-link, x:default{ padding:0;} /* Firefox 2 Fix */
span.button button,
span.button input { height:23px; left:2px; *top:-1px; _top:0; padding:0 10px 0 8px; *padding:0 5px 0 3px; line-height:24px; background-position:right top; cursor:pointer;}
span.button input { height:23px; left:2px; /**top:-1px;*/ _top:0; padding:0 10px 0 8px; *padding:0 5px 0 3px; line-height:24px; background-position:right top; cursor:pointer;}
/* Large Size */
span.button.large { background-position:left -30px;}
span.button.large, x:-moz-any-link{ font:0/29px Sans-serif; padding:14px 0;} /* Firefox 2 Fix */

View file

@ -0,0 +1,310 @@
.dp-highlighter
{
font-family: "Consolas", "Courier New", "Courier", "mono", "serif";
font-size: 12px;
background-color: #E7E5DC;
width: 99%;
overflow: auto;
padding-top: 1px; /* adds a little border on top when controls are hidden */
}
/* clear styles */
.dp-highlighter ol,
.dp-highlighter ol li,
.dp-highlighter ol li span
{
margin: 0;
padding: 0;
border: none;
}
.dp-highlighter a,
.dp-highlighter a:hover
{
background: none;
border: none;
padding: 0;
margin: 0;
}
.dp-highlighter .bar
{
padding-left: 45px;
}
.dp-highlighter.collapsed .bar,
.dp-highlighter.nogutter .bar
{
padding-left: 0px;
}
.dp-highlighter ol
{
list-style: decimal; /* for ie */
background-color: #fff;
margin: 0px 0px 1px 45px !important; /* 1px bottom margin seems to fix occasional Firefox scrolling */
padding: 0px;
color: #5C5C5C;
}
.dp-highlighter.nogutter ol,
.dp-highlighter.nogutter ol li
{
list-style: none !important;
margin-left: 0px !important;
}
.dp-highlighter ol li,
.dp-highlighter .columns div
{
list-style: decimal; /* better look for others, override cascade from OL */
list-style-position: outside !important;
background-color: #F8F8F8;
color: #5C5C5C;
padding: 0 3px 0 10px !important;
margin: 0 !important;
line-height: 14px;
}
.dp-highlighter.nogutter ol li,
.dp-highlighter.nogutter .columns div
{
border: 0;
}
.dp-highlighter .columns
{
background-color: #F8F8F8;
color: gray;
overflow: hidden;
width: 100%;
}
.dp-highlighter .columns div
{
padding-bottom: 5px;
}
.dp-highlighter ol li.alt
{
background-color: #FFF;
color: inherit;
}
.dp-highlighter ol li span
{
color: black;
background-color: inherit;
}
/* Adjust some properties when collapsed */
.dp-highlighter.collapsed ol
{
margin: 0px;
}
.dp-highlighter.collapsed ol li
{
display: none;
}
/* Additional modifications when in print-view */
.dp-highlighter.printing
{
border: none;
}
.dp-highlighter.printing .tools
{
display: none !important;
}
.dp-highlighter.printing li
{
display: list-item !important;
}
/* Styles for the tools */
.dp-highlighter .tools
{
padding: 3px 8px 3px 10px;
font: 9px Verdana, Geneva, Arial, Helvetica, sans-serif;
color: silver;
background-color: #f8f8f8;
padding-bottom: 10px;
}
.dp-highlighter.nogutter .tools
{
border-left: 0;
}
.dp-highlighter.collapsed .tools
{
border-bottom: 0;
}
.dp-highlighter .tools a
{
font-size: 9px;
color: #a0a0a0;
background-color: inherit;
text-decoration: none;
margin-right: 10px;
}
.dp-highlighter .tools a:hover
{
color: red;
background-color: inherit;
text-decoration: underline;
}
/* About dialog styles */
.dp-about { background-color: #fff; color: #333; margin: 0px; padding: 0px; }
.dp-about table { width: 100%; height: 100%; font-size: 11px; font-family: Tahoma, Verdana, Arial, sans-serif !important; }
.dp-about td { padding: 10px; vertical-align: top; }
.dp-about .copy { border-bottom: 1px solid #ACA899; height: 95%; }
.dp-about .title { color: red; background-color: inherit; font-weight: bold; }
.dp-about .para { margin: 0 0 4px 0; }
.dp-about .footer { background-color: #ECEADB; color: #333; border-top: 1px solid #fff; text-align: right; }
.dp-about .close { font-size: 11px; font-family: Tahoma, Verdana, Arial, sans-serif !important; background-color: #ECEADB; color: #333; width: 60px; height: 22px; }
/* Language specific styles */
.dp-highlighter .comment,
.dp-highlighter .comments { color: #008200; background-color: inherit; }
.dp-highlighter .string { color: #FF00FF; background-color: inherit; }
.dp-highlighter .keyword { color: #0000FF; background-color: inherit; }
.dp-highlighter .preprocessor { color: gray; background-color: inherit; }
.dp-highlighter .func { color: #FF0000; }
.dp-highlighter .vars { color: #008080; }
/* Language specific styles */
.dp-c {}
.dp-c .comment { color: green; }
.dp-c .string { color: blue; }
.dp-c .preprocessor { color: gray; }
.dp-c .keyword { color: blue; }
.dp-c .vars { color: #d00; }
.dp-vb {}
.dp-vb .comment { color: green; }
.dp-vb .string { color: blue; }
.dp-vb .preprocessor { color: gray; }
.dp-vb .keyword { color: blue; }
.dp-sql {}
.dp-sql .comment { color: green; }
.dp-sql .string { color: red; }
.dp-sql .keyword { color: blue; }
.dp-sql .func { color: #ff1493; }
.dp-sql .op { color: #808080; }
.dp-xml {}
.dp-xml .cdata { color: #ff1493; }
.dp-xml .comments { color: green; }
.dp-xml .tag { margin: 0; padding: 0; background: none; font-weight: bold; color: blue; }
.dp-xml .tag-name { color: black; font-weight: bold; }
.dp-xml .attribute { color: red; }
.dp-xml .attribute-value { color: blue; }
.dp-delphi {}
.dp-delphi .comment { color: #008200; font-style: italic; }
.dp-delphi .string { color: blue; }
.dp-delphi .number { color: blue; }
.dp-delphi .directive { color: #008284; }
.dp-delphi .keyword { font-weight: bold; color: navy; }
.dp-delphi .vars { color: #000; }
.dp-py {}
.dp-py .comment { color: green; }
.dp-py .string { color: red; }
.dp-py .docstring { color: green; }
.dp-py .keyword { color: blue; font-weight: bold;}
.dp-py .builtins { color: #ff1493; }
.dp-py .magicmethods { color: #808080; }
.dp-py .exceptions { color: brown; }
.dp-py .types { color: brown; font-style: italic; }
.dp-py .commonlibs { color: #8A2BE2; font-style: italic; }
.dp-rb {}
.dp-rb .comment { color: #c00; }
.dp-rb .string { color: #f0c; }
.dp-rb .symbol { color: #02b902; }
.dp-rb .keyword { color: #069; }
.dp-rb .variable { color: #6cf; }
.dp-css {}
.dp-css .comment { color: green; }
.dp-css .string { color: red; }
.dp-css .value { color: red; }
.dp-css .keyword { color: blue; }
.dp-css .colors { color: darkred; }
.dp-css .vars { color: #d00; }
.dp-j {}
.dp-j .comment { color: rgb(63,127,95); }
.dp-j .string { color: rgb(42,0,255); }
.dp-j .keyword { color: rgb(127,0,85); font-weight: bold }
.dp-j .annotation { color: #646464; }
.dp-j .number { color: #C00000; }
.dp-cpp {}
.dp-cpp .comment { color: #e00; }
.dp-cpp .string { color: red; }
.dp-cpp .preprocessor { color: #CD00CD; font-weight: bold; }
.dp-cpp .keyword { color: #5697D9; font-weight: bold; }
.dp-cpp .datatypes { color: #2E8B57; font-weight: bold; }
.dp-php { color: #800000; }
.dp-php .comment { color: #008000; }
.dp-php .keyword { color: #4B00FB; }
.dp-php .string { color: #FB00FB; }
.dp-php .func { color: #FF0000; }
.dp-php .vars { color: #008080; }
.dp-php .zbxe_funcs { color: #FF6820; }
.dp-php .zbxe_class { color: #FF6820; font-weight: bold; }
.dp-abap { color: #800000; }
.dp-abap .comment { color: #008000; }
.dp-abap .keyword { color: #4B00FB; }
.dp-abap .string { color: #FB00FB; }
.dp-abap .datatypes { color: #2E8B57; font-weight: bold; }
pre[name='code'] {
max-height: 300px;
font-size: 1.1em;
border: #666666 dotted 1px;
border-left: #22AAEE solid 5px;
padding: 5px;
overflow: auto;
}
.ch_infobox {
padding: 5px 0;
width: 99%;
background-color: #F8F8F8;
border-top: 1px solid #E7E5DC;
}
.ch_infobox .file_path {
font-size: 0.9em;
font-weight: bold;
margin-left: 10px;
}
.ch_infobox .description {
color: #AAA;
font-size: 0.9em;
margin-left: 10px;
}

Binary file not shown.

After

Width:  |  Height:  |  Size: 786 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 615 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 603 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 309 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 731 B

View file

@ -0,0 +1,344 @@
/**
* SyntaxHighlighter
* http://alexgorbatchev.com/
*
* @version
* 2.0.287 (February 06 2009)
*
* @author
* Alex Gorbatchev
*
* @copyright
* Copyright (C) 2004-2009 Alex Gorbatchev.
*
* Licensed under a GNU Lesser General Public License.
* http://creativecommons.org/licenses/LGPL/2.1/
*
* SyntaxHighlighter is donationware. You are allowed to download, modify and distribute
* the source code in accordance with LGPL 2.1 license, however if you want to use
* SyntaxHighlighter on your site or include it in your product, you must donate.
* http://alexgorbatchev.com/wiki/SyntaxHighlighter:Donate
*/
.syntaxhighlighter,
.syntaxhighlighter div,
.syntaxhighlighter code,
.syntaxhighlighter span,
.syntaxhighlighter .bold,
.syntaxhighlighter .italic,
.syntaxhighlighter .line,
.syntaxhighlighter .line .number,
.syntaxhighlighter .line .content,
.syntaxhighlighter .line .content .block,
.syntaxhighlighter .line .content .spaces,
.syntaxhighlighter .bar,
.syntaxhighlighter .ruler,
.syntaxhighlighter .toolbar,
.syntaxhighlighter .toolbar a,
.syntaxhighlighter .toolbar a:hover
{
margin: 0;
padding: 0;
border: 0;
outline: 0;
background: none;
text-align: left;
float: none;
vertical-align: baseline;
position: static;
left: auto;
top: auto;
right: auto;
bottom: auto;
height: auto;
width: auto;
line-height: normal;
font-family: "Consolas", "Monaco", "Bitstream Vera Sans Mono", "Courier New", Courier, monospace;
font-weight: normal;
font-style: normal;
font-size: 100%;
}
.syntaxhighlighter
{
width: 100%;
margin: 1em 0 1em 0;
padding: 1px; /* adds a little border on top and bottom */
position: relative;
}
.syntaxhighlighter .bold {
font-weight: bold;
}
.syntaxhighlighter .italic {
font-style: italic;
}
.syntaxhighlighter .line .number
{
float: left;
width: 3em;
padding-right: .3em;
text-align: right;
display: block;
}
/* Disable numbers when no gutter option is set */
.syntaxhighlighter.nogutter .line .number
{
display: none;
}
.syntaxhighlighter .line .content
{
margin-left: 3.3em;
padding-left: .5em;
display: block;
}
.syntaxhighlighter .line .content .block
{
display: block;
padding-left: 1.5em;
text-indent: -1.5em;
}
.syntaxhighlighter .line .content .spaces
{
display: none;
}
/* Disable border and margin on the lines when no gutter option is set */
.syntaxhighlighter.nogutter .line .content
{
margin-left: 0;
border-left: none;
}
.syntaxhighlighter .bar
{
}
.syntaxhighlighter.collapsed .bar
{
}
.syntaxhighlighter.nogutter .ruler
{
margin-left: 0;
padding-left: 0;
}
.syntaxhighlighter .ruler
{
padding: 0 0 .5em .5em;
margin-left: 3.3em;
overflow: hidden;
}
/* Adjust some properties when collapsed */
.syntaxhighlighter.collapsed .lines,
.syntaxhighlighter.collapsed .ruler
{
display: none;
}
/* Styles for the toolbar */
.syntaxhighlighter .toolbar
{
position: absolute;
right: 0px;
top: 0px;
font-size: 1px;
padding: 8px 8px 8px 0; /* in px because images don't scale with ems */
}
.syntaxhighlighter.collapsed .toolbar
{
font-size: 80%;
padding: .2em 0 .5em .5em;
position: static;
}
.syntaxhighlighter .toolbar a.item,
.syntaxhighlighter .toolbar .item
{
display: block;
float: left;
margin-left: 8px;
background-repeat: no-repeat;
overflow: hidden;
text-indent: -5000px;
}
.syntaxhighlighter.collapsed .toolbar .item
{
display: none;
}
.syntaxhighlighter.collapsed .toolbar .item.expandSource
{
background-image: url(magnifier.png);
display: inline;
text-indent: 0;
width: auto;
float: none;
height: 16px;
padding-left: 20px;
}
.syntaxhighlighter .toolbar .item.viewSource
{
background-image: url(page_white_code.png);
}
.syntaxhighlighter .toolbar .item.printSource
{
background-image: url(printer.png);
}
.syntaxhighlighter .toolbar .item.copyToClipboard
{
text-indent: 0;
background: none;
overflow: visible;
}
.syntaxhighlighter .toolbar .item.about
{
background-image: url(help.png);
}
/**
* Print view.
* Colors are based on the default theme without background.
*/
.syntaxhighlighter.printing,
.syntaxhighlighter.printing .line.alt1 .content,
.syntaxhighlighter.printing .line.alt2 .content,
.syntaxhighlighter.printing .line.highlighted .number,
.syntaxhighlighter.printing .line.highlighted.alt1 .content,
.syntaxhighlighter.printing .line.highlighted.alt2 .content,
.syntaxhighlighter.printing .line .content .block
{
background: none;
}
/* Gutter line numbers */
.syntaxhighlighter.printing .line .number
{
color: #bbb;
}
/* Add border to the lines */
.syntaxhighlighter.printing .line .content
{
color: #000;
}
/* Toolbar when visible */
.syntaxhighlighter.printing .toolbar,
.syntaxhighlighter.printing .ruler
{
display: none;
}
.syntaxhighlighter.printing a
{
text-decoration: none;
}
.syntaxhighlighter.printing .plain,
.syntaxhighlighter.printing .plain a
{
color: #000;
}
.syntaxhighlighter.printing .comments,
.syntaxhighlighter.printing .comments a
{
color: #008200;
}
.syntaxhighlighter.printing .string,
.syntaxhighlighter.printing .string a
{
color: blue;
}
.syntaxhighlighter.printing .keyword
{
color: #069;
font-weight: bold;
}
.syntaxhighlighter.printing .preprocessor
{
color: gray;
}
.syntaxhighlighter.printing .variable
{
color: #a70;
}
.syntaxhighlighter.printing .value
{
color: #090;
}
.syntaxhighlighter.printing .functions
{
color: #ff1493;
}
.syntaxhighlighter.printing .constants
{
color: #0066CC;
}
.syntaxhighlighter.printing .script
{
font-weight: bold;
}
.syntaxhighlighter.printing .color1,
.syntaxhighlighter.printing .color1 a
{
color: #808080;
}
.syntaxhighlighter.printing .color2,
.syntaxhighlighter.printing .color2 a
{
color: #ff1493;
}
.syntaxhighlighter.printing .color3,
.syntaxhighlighter.printing .color3 a
{
color: red;
}
.ch_infobox {
padding: 5px 0;
width: 99%;
background-color: #F8F8F8;
border-top: 1px solid #E7E5DC;
}
.ch_infobox .file_path {
font-size: 0.9em;
font-weight: bold;
margin-left: 10px;
}
.ch_infobox .description {
color: #AAA;
font-size: 0.9em;
margin-left: 10px;
}

View file

@ -0,0 +1,183 @@
/**
* SyntaxHighlighter
* http://alexgorbatchev.com/
*
* @version
* 2.0.287 (February 06 2009)
*
* @author
* Alex Gorbatchev
*
* @copyright
* Copyright (C) 2004-2009 Alex Gorbatchev.
*
* Licensed under a GNU Lesser General Public License.
* http://creativecommons.org/licenses/LGPL/2.1/
*
* SyntaxHighlighter is donationware. You are allowed to download, modify and distribute
* the source code in accordance with LGPL 2.1 license, however if you want to use
* SyntaxHighlighter on your site or include it in your product, you must donate.
* http://alexgorbatchev.com/wiki/SyntaxHighlighter:Donate
*/
/************************************
* Default Syntax Highlighter theme.
*
* Interface elements.
************************************/
.syntaxhighlighter
{
background-color: #E7E5DC;
}
/* Highlighed line number */
.syntaxhighlighter .line.highlighted .number
{
background-color: #6CE26C;
color: black;
}
/* Highlighed line */
.syntaxhighlighter .line.highlighted.alt1 .content,
.syntaxhighlighter .line.highlighted.alt2 .content
{
background-color: #6CE26C;
}
/* Gutter line numbers */
.syntaxhighlighter .line .number
{
color: #5C5C5C;
}
/* Add border to the lines */
.syntaxhighlighter .line .content
{
border-left: 3px solid #6CE26C;
color: #000;
}
.syntaxhighlighter.printing .line .content
{
border: 0;
}
/* First line */
.syntaxhighlighter .line.alt1 .content
{
background-color: #fff;
}
/* Second line */
.syntaxhighlighter .line.alt2 .content
{
background-color: #F8F8F8;
}
.syntaxhighlighter .line .content .block
{
background: url(wrapping.png) 0 1.1em no-repeat;
}
.syntaxhighlighter .ruler
{
color: silver;
background-color: #F8F8F8;
border-left: 3px solid #6CE26C;
}
.syntaxhighlighter.nogutter .ruler
{
border: 0;
}
.syntaxhighlighter .toolbar
{
background-color: #F8F8F8;
border: #E7E5DC solid 1px;
}
.syntaxhighlighter .toolbar a
{
color: #a0a0a0;
}
.syntaxhighlighter .toolbar a:hover
{
color: red;
}
/************************************
* Actual syntax highlighter colors.
************************************/
.syntaxhighlighter .plain,
.syntaxhighlighter .plain a
{
color: #000;
}
.syntaxhighlighter .comments,
.syntaxhighlighter .comments a
{
color: #008200;
}
.syntaxhighlighter .string,
.syntaxhighlighter .string a
{
color: blue;
}
.syntaxhighlighter .keyword
{
color: #069;
font-weight: bold;
}
.syntaxhighlighter .preprocessor
{
color: gray;
}
.syntaxhighlighter .variable
{
color: #a70;
}
.syntaxhighlighter .value
{
color: #090;
}
.syntaxhighlighter .functions
{
color: #ff1493;
}
.syntaxhighlighter .constants
{
color: #0066CC;
}
.syntaxhighlighter .script
{
background-color: yellow !important;
}
.syntaxhighlighter .color1,
.syntaxhighlighter .color1 a
{
color: #808080;
}
.syntaxhighlighter .color2,
.syntaxhighlighter .color2 a
{
color: #ff1493;
}
.syntaxhighlighter .color3,
.syntaxhighlighter .color3 a
{
color: red;
}

View file

@ -0,0 +1,184 @@
/**
* SyntaxHighlighter
* http://alexgorbatchev.com/
*
* @version
* 2.0.287 (February 06 2009)
*
* @author
* Alex Gorbatchev
*
* @copyright
* Copyright (C) 2004-2009 Alex Gorbatchev.
*
* Licensed under a GNU Lesser General Public License.
* http://creativecommons.org/licenses/LGPL/2.1/
*
* SyntaxHighlighter is donationware. You are allowed to download, modify and distribute
* the source code in accordance with LGPL 2.1 license, however if you want to use
* SyntaxHighlighter on your site or include it in your product, you must donate.
* http://alexgorbatchev.com/wiki/SyntaxHighlighter:Donate
*/
/**
* Django SyntaxHighlighter theme
*/
/************************************
* Interface elements.
************************************/
.syntaxhighlighter
{
background-color: #0B2F20;
}
/* Highlighed line number */
.syntaxhighlighter .line.highlighted .number
{
background-color: #336442;
color: #fff;
}
/* Highlighed line */
.syntaxhighlighter .line.highlighted .content
{
background-color: #336442 !important;
}
/* Gutter line numbers */
.syntaxhighlighter .line .number
{
color: #497958;
}
/* Add border to the lines */
.syntaxhighlighter .line .content
{
border-left: 3px solid #41A83E;
color: #B9BDB6;
}
.syntaxhighlighter.printing .line .content
{
border: 0;
}
/* First line */
.syntaxhighlighter .line.alt1 .content
{
}
/* Second line */
.syntaxhighlighter .line.alt2 .content
{
background-color: #0a2b1d;
}
.syntaxhighlighter .line .content .block
{
background: url(wrapping.png) 0 1.1em no-repeat;
}
.syntaxhighlighter .ruler
{
color: #C4B14A;
background-color: #245032;
border-left: 3px solid #41A83E;
}
.syntaxhighlighter.nogutter .ruler
{
border: 0;
}
.syntaxhighlighter .toolbar
{
background-color: #245032;
border: #0B2F20 solid 1px;
}
.syntaxhighlighter .toolbar a
{
color: #C4B14A;
}
.syntaxhighlighter .toolbar a:hover
{
color: #FFE862;
}
/************************************
* Actual syntax highlighter colors.
************************************/
.syntaxhighlighter .plain,
.syntaxhighlighter .plain a
{
color: #F8F8F8;
}
.syntaxhighlighter .comments,
.syntaxhighlighter .comments a
{
color: #336442;
font-style: italic;
}
.syntaxhighlighter .string,
.syntaxhighlighter .string a
{
color: #9DF39F;
}
.syntaxhighlighter .keyword
{
color: #96DD3B;
font-weight: bold !important;
}
.syntaxhighlighter .preprocessor
{
color: #91BB9E;
}
.syntaxhighlighter .variable
{
color: #FFAA3E;
}
.syntaxhighlighter .value
{
color: #F7E741;
}
.syntaxhighlighter .functions
{
color: #FFAA3E;
}
.syntaxhighlighter .constants
{
color: #E0E8FF;
}
.syntaxhighlighter .script
{
background-color: #497958 !important;
}
.syntaxhighlighter .color1,
.syntaxhighlighter .color1 a
{
color: #EB939A;
}
.syntaxhighlighter .color2,
.syntaxhighlighter .color2 a
{
color: #91BB9E;
}
.syntaxhighlighter .color3,
.syntaxhighlighter .color3 a
{
color: #EDEF7D;
}

View file

@ -0,0 +1,183 @@
/**
* SyntaxHighlighter
* http://alexgorbatchev.com/
*
* @version
* 2.0.287 (February 06 2009)
*
* @author
* Alex Gorbatchev
*
* @copyright
* Copyright (C) 2004-2009 Alex Gorbatchev.
*
* Licensed under a GNU Lesser General Public License.
* http://creativecommons.org/licenses/LGPL/2.1/
*
* SyntaxHighlighter is donationware. You are allowed to download, modify and distribute
* the source code in accordance with LGPL 2.1 license, however if you want to use
* SyntaxHighlighter on your site or include it in your product, you must donate.
* http://alexgorbatchev.com/wiki/SyntaxHighlighter:Donate
*/
/**
* Emacs SyntaxHighlighter theme based on theme by Joshua Emmons
* http://www.skia.net/
*/
/************************************
* Interface elements.
************************************/
.syntaxhighlighter
{
background-color: #000000;
}
/* Highlighed line number */
.syntaxhighlighter .line.highlighted .number
{
background-color: #435A5F;
color: #fff;
}
/* Highlighed line */
.syntaxhighlighter .line.highlighted .content
{
background-color: #435A5F !important;
}
/* Gutter line numbers */
.syntaxhighlighter .line .number
{
color: #D3D3D3;
}
/* Add border to the lines */
.syntaxhighlighter .line .content
{
border-left: 3px solid #990000;
color: #B9BDB6;
}
.syntaxhighlighter.printing .line .content
{
border: 0;
}
/* First line */
.syntaxhighlighter .line.alt1 .content
{
}
/* Second line */
.syntaxhighlighter .line.alt2 .content
{
background-color: #0f0f0f;
}
.syntaxhighlighter .line .content .block
{
background: url(wrapping.png) 0 1.1em no-repeat;
}
.syntaxhighlighter .ruler
{
color: silver;
background-color: #000000;
border-left: 3px solid #990000;
}
.syntaxhighlighter.nogutter .ruler
{
border: 0;
}
.syntaxhighlighter .toolbar
{
background-color: #000000;
border: #000000 solid 1px;
}
.syntaxhighlighter .toolbar a
{
color: #646763;
}
.syntaxhighlighter .toolbar a:hover
{
color: #9CCFF4;
}
/************************************
* Actual syntax highlighter colors.
************************************/
.syntaxhighlighter .plain,
.syntaxhighlighter .plain a
{
color: #D3D3D3;
}
.syntaxhighlighter .comments,
.syntaxhighlighter .comments a
{
color: #FF7D27;
}
.syntaxhighlighter .string,
.syntaxhighlighter .string a
{
color: #FF9E7B;
}
.syntaxhighlighter .keyword
{
color: #00FFFF;
}
.syntaxhighlighter .preprocessor
{
color: #AEC4DE;
}
.syntaxhighlighter .variable
{
color: #FFAA3E;
}
.syntaxhighlighter .value
{
color: #090;
}
.syntaxhighlighter .functions
{
color: #81CEF9;
}
.syntaxhighlighter .constants
{
color: #FF9E7B;
}
.syntaxhighlighter .script
{
background-color: #990000 !important;
}
.syntaxhighlighter .color1,
.syntaxhighlighter .color1 a
{
color: #EBDB8D;
}
.syntaxhighlighter .color2,
.syntaxhighlighter .color2 a
{
color: #FF7D27;
}
.syntaxhighlighter .color3,
.syntaxhighlighter .color3 a
{
color: #AEC4DE;
}

View file

@ -0,0 +1,184 @@
/**
* SyntaxHighlighter
* http://alexgorbatchev.com/
*
* @version
* 2.0.287 (February 06 2009)
*
* @author
* Alex Gorbatchev
*
* @copyright
* Copyright (C) 2004-2009 Alex Gorbatchev.
*
* Licensed under a GNU Lesser General Public License.
* http://creativecommons.org/licenses/LGPL/2.1/
*
* SyntaxHighlighter is donationware. You are allowed to download, modify and distribute
* the source code in accordance with LGPL 2.1 license, however if you want to use
* SyntaxHighlighter on your site or include it in your product, you must donate.
* http://alexgorbatchev.com/wiki/SyntaxHighlighter:Donate
*/
/**
* Fade to Grey SyntaxHighlighter theme based on theme by Brasten Sager
* http://www.ibrasten.com/
*/
/************************************
* Interface elements.
************************************/
.syntaxhighlighter
{
background-color: #121212;
}
/* Highlighed line number */
.syntaxhighlighter .line.highlighted .number
{
background-color: #3A3A00;
color: #fff;
}
/* Highlighed line */
.syntaxhighlighter .line.highlighted .content
{
background-color: #3A3A00 !important;
}
/* Gutter line numbers */
.syntaxhighlighter .line .number
{
color: #C3C3C3;
}
/* Add border to the lines */
.syntaxhighlighter .line .content
{
border-left: 3px solid #3185B9;
color: #B9BDB6;
}
.syntaxhighlighter.printing .line .content
{
border: 0;
}
/* First line */
.syntaxhighlighter .line.alt1 .content
{
}
/* Second line */
.syntaxhighlighter .line.alt2 .content
{
background-color: #000000;
}
.syntaxhighlighter .line .content .block
{
background: url(wrapping.png) 0 1.1em no-repeat;
}
.syntaxhighlighter .ruler
{
color: silver;
border-left: 3px solid #3185B9;
}
.syntaxhighlighter.nogutter .ruler
{
border: 0;
}
.syntaxhighlighter .toolbar
{
background-color: #000000;
border: #000000 solid 1px;
}
.syntaxhighlighter .toolbar a
{
color: #808080;
}
.syntaxhighlighter .toolbar a:hover
{
color: #96DAFF;
}
/************************************
* Actual syntax highlighter colors.
************************************/
.syntaxhighlighter .plain,
.syntaxhighlighter .plain a
{
color: #FFFFFF;
}
.syntaxhighlighter .comments,
.syntaxhighlighter .comments a
{
color: #696854;
}
.syntaxhighlighter .string,
.syntaxhighlighter .string a
{
color: #E3E658;
}
.syntaxhighlighter .keyword
{
color: #D01D33;
}
.syntaxhighlighter .preprocessor
{
color: #435A5F;
}
.syntaxhighlighter .variable
{
color: #898989;
}
.syntaxhighlighter .value
{
color: #090;
}
.syntaxhighlighter .functions
{
color: #AAAAAA;
font-weight: bold !important;
}
.syntaxhighlighter .constants
{
color: #96DAFF;
}
.syntaxhighlighter .script
{
background-color: #C3C3C3 !important;
color: #000;
}
.syntaxhighlighter .color1,
.syntaxhighlighter .color1 a
{
color: #FFC074;
}
.syntaxhighlighter .color2,
.syntaxhighlighter .color2 a
{
color: #4A8CDB;
}
.syntaxhighlighter .color3,
.syntaxhighlighter .color3 a
{
color: #96DAFF;
}

View file

@ -0,0 +1,183 @@
/**
* SyntaxHighlighter
* http://alexgorbatchev.com/
*
* @version
* 2.0.287 (February 06 2009)
*
* @author
* Alex Gorbatchev
*
* @copyright
* Copyright (C) 2004-2009 Alex Gorbatchev.
*
* Licensed under a GNU Lesser General Public License.
* http://creativecommons.org/licenses/LGPL/2.1/
*
* SyntaxHighlighter is donationware. You are allowed to download, modify and distribute
* the source code in accordance with LGPL 2.1 license, however if you want to use
* SyntaxHighlighter on your site or include it in your product, you must donate.
* http://alexgorbatchev.com/wiki/SyntaxHighlighter:Donate
*/
/**
* Midnight SyntaxHighlighter theme based on theme by J.D. Myers
* http://webdesign.lsnjd.com/
*/
/************************************
* Interface elements.
************************************/
.syntaxhighlighter
{
background-color: #0F192A;
}
/* Highlighed line number */
.syntaxhighlighter .line.highlighted .number
{
background-color: #253E5A;
color: #fff;
}
/* Highlighed line */
.syntaxhighlighter .line.highlighted .content
{
background-color: #253E5A !important;
}
/* Gutter line numbers */
.syntaxhighlighter .line .number
{
color: #38566F;
}
/* Add border to the lines */
.syntaxhighlighter .line .content
{
border-left: 3px solid #435A5F;
color: #B9BDB6;
}
.syntaxhighlighter.printing .line .content
{
border: 0;
}
/* First line */
.syntaxhighlighter .line.alt1 .content
{
background-color: #0F192A;
}
/* Second line */
.syntaxhighlighter .line.alt2 .content
{
background-color: #0F192A;
}
.syntaxhighlighter .line .content .block
{
background: url(wrapping.png) 0 1.1em no-repeat;
}
.syntaxhighlighter .ruler
{
color: #38566F;
background-color: #0F192A;
border-left: 3px solid #435A5F;
}
.syntaxhighlighter.nogutter .ruler
{
border: 0;
}
.syntaxhighlighter .toolbar
{
background-color: #0F192A;
}
.syntaxhighlighter .toolbar a
{
color: #38566F;
}
.syntaxhighlighter .toolbar a:hover
{
color: #8AA6C1;
}
/************************************
* Actual syntax highlighter colors.
************************************/
.syntaxhighlighter .plain,
.syntaxhighlighter .plain a
{
color: #D1EDFF;
}
.syntaxhighlighter .comments,
.syntaxhighlighter .comments a
{
color: #428BDD;
}
.syntaxhighlighter .string,
.syntaxhighlighter .string a
{
color: #1DC116;
}
.syntaxhighlighter .keyword
{
color: #B43D3D;
}
.syntaxhighlighter .preprocessor
{
color: #8AA6C1;
}
.syntaxhighlighter .variable
{
color: #FFAA3E;
}
.syntaxhighlighter .value
{
color: #F7E741;
}
.syntaxhighlighter .functions
{
color: #FFAA3E;
}
.syntaxhighlighter .constants
{
color: #E0E8FF;
}
.syntaxhighlighter .script
{
background-color: #404040 !important;
}
.syntaxhighlighter .color1,
.syntaxhighlighter .color1 a
{
color: #F8BB00;
}
.syntaxhighlighter .color2,
.syntaxhighlighter .color2 a
{
color: #FFFFFF;
}
.syntaxhighlighter .color3,
.syntaxhighlighter .color3 a
{
color: #FFAA3E;
}

View file

@ -0,0 +1,183 @@
/**
* SyntaxHighlighter
* http://alexgorbatchev.com/
*
* @version
* 2.0.287 (February 06 2009)
*
* @author
* Alex Gorbatchev
*
* @copyright
* Copyright (C) 2004-2009 Alex Gorbatchev.
*
* Licensed under a GNU Lesser General Public License.
* http://creativecommons.org/licenses/LGPL/2.1/
*
* SyntaxHighlighter is donationware. You are allowed to download, modify and distribute
* the source code in accordance with LGPL 2.1 license, however if you want to use
* SyntaxHighlighter on your site or include it in your product, you must donate.
* http://alexgorbatchev.com/wiki/SyntaxHighlighter:Donate
*/
/**
* RDark SyntaxHighlighter theme based on theme by Radu Dineiu
* http://www.vim.org/scripts/script.php?script_id=1732
*/
/************************************
* Interface elements.
************************************/
.syntaxhighlighter
{
background-color: #1B2426;
}
/* Highlighed line number */
.syntaxhighlighter .line.highlighted .number
{
background-color: #435A5F;
color: #fff;
}
/* Highlighed line */
.syntaxhighlighter .line.highlighted .content
{
background-color: #435A5F !important;
}
/* Gutter line numbers */
.syntaxhighlighter .line .number
{
color: #B9BDB6;
}
/* Add border to the lines */
.syntaxhighlighter .line .content
{
border-left: 3px solid #435A5F;
color: #B9BDB6;
}
.syntaxhighlighter.printing .line .content
{
border: 0;
}
/* First line */
.syntaxhighlighter .line.alt1 .content
{
background-color: #1B2426;
}
/* Second line */
.syntaxhighlighter .line.alt2 .content
{
background-color: #1B2426;
}
.syntaxhighlighter .line .content .block
{
background: url(wrapping.png) 0 1.1em no-repeat;
}
.syntaxhighlighter .ruler
{
color: silver;
background-color: #1B2426;
border-left: 3px solid #435A5F;
}
.syntaxhighlighter.nogutter .ruler
{
border: 0;
}
.syntaxhighlighter .toolbar
{
background-color: #1B2426;
}
.syntaxhighlighter .toolbar a
{
color: #646763;
}
.syntaxhighlighter .toolbar a:hover
{
color: #E0E8FF;
}
/************************************
* Actual syntax highlighter colors.
************************************/
.syntaxhighlighter .plain,
.syntaxhighlighter .plain a
{
color: #B9BDB6;
}
.syntaxhighlighter .comments,
.syntaxhighlighter .comments a
{
color: #878A85;
}
.syntaxhighlighter .string,
.syntaxhighlighter .string a
{
color: #5CE638;
}
.syntaxhighlighter .keyword
{
color: #5BA1CF;
}
.syntaxhighlighter .preprocessor
{
color: #435A5F;
}
.syntaxhighlighter .variable
{
color: #FFAA3E;
}
.syntaxhighlighter .value
{
color: #090;
}
.syntaxhighlighter .functions
{
color: #FFAA3E;
}
.syntaxhighlighter .constants
{
color: #E0E8FF;
}
.syntaxhighlighter .script
{
background-color: #435A5F !important;
}
.syntaxhighlighter .color1,
.syntaxhighlighter .color1 a
{
color: #E0E8FF;
}
.syntaxhighlighter .color2,
.syntaxhighlighter .color2 a
{
color: #FFFFFF;
}
.syntaxhighlighter .color3,
.syntaxhighlighter .color3 a
{
color: #FFAA3E;
}

Binary file not shown.

After

Width:  |  Height:  |  Size: 631 B

View file

@ -0,0 +1,3 @@
script/shCore.js
css/shCore.css
css/shThemeDefault.css

View file

@ -0,0 +1,26 @@
dp.sh.Brushes.Abap = function()
{
var datatypes =
'ACCP CHAR CLNT CUKY CURR DATS DEC FLTP INT1 INT2 INT4 LANG LCHR LRAW NUMC PREC QUAN RAW RAWSTRING SSTRING STRING TIMS UNIT';
var keywords =
'IF RETURN WHILE CASE DEFAULT DO ELSE FOR ENDIF ELSEIF EQ NOT AND DATA TYPES SELETION-SCREEN PARAMETERS ' +
'FIELD-SYMBOLS EXTERN INLINE REPORT WRITE APPEND SELECT ENDSELECT CALL METHOD CALL FUNCTION LOOP ENDLOOP ' +
'RAISE READ TABLE CONCATENATE SPLIT SHIFT CONDENSE DESCRIBE CLEAR ENDFUNCTION ASSIGN CREATE DATA TRANSLATE ' +
'CONTINUE START-OF-SELECTION AT SELECTION-SCREEN MODIFY CALL SCREEN CREATE OBJECT PERFORM FORM ENDFORM ' +
'REUSE_ALV_BLOCK_LIST_INIT ZBCIALV INCLUDE TYPE REF TO TYPE BEGIN\SOF END\SOF LIKE INTO FROM WHERE ORDER BY ' +
'WITH KEY INTO STRING SEPARATED BY EXPORTING IMPORTING TO UPPER CASE TO EXCEPTIONS TABLES USING CHANGING';
this.regexList = [
{ regex: new RegExp('^\\*.*$', 'gm'), css: 'comment' }, // one line comments
{ regex: new RegExp('\\".*$', 'gm'), css: 'comment' }, // one line comments
{ regex: dp.sh.RegexLib.SingleQuotedString, css: 'string' }, // strings
{ regex: new RegExp(this.GetKeywords(datatypes), 'gm'), css: 'datatypes' },
{ regex: new RegExp(this.GetKeywords(keywords), 'gm'), css: 'keyword' }
];
this.CssClass = 'dp-abap';
}
dp.sh.Brushes.Abap.prototype = new dp.sh.Highlighter();
dp.sh.Brushes.Abap.Aliases = ['abap', 'Abap'];

View file

@ -0,0 +1,51 @@
/**
* SyntaxHighlighter
* http://alexgorbatchev.com/
*
* @version
* 2.0.287 (February 06 2009)
*
* @author
* Alex Gorbatchev
*
* @copyright
* Copyright (C) 2004-2009 Alex Gorbatchev.
*
* Licensed under a GNU Lesser General Public License.
* http://creativecommons.org/licenses/LGPL/2.1/
*
* SyntaxHighlighter is donationware. You are allowed to download, modify and distribute
* the source code in accordance with LGPL 2.1 license, however if you want to use
* SyntaxHighlighter on your site or include it in your product, you must donate.
* http://alexgorbatchev.com/wiki/SyntaxHighlighter:Donate
*/
SyntaxHighlighter.brushes.Bash = function()
{
var keywords = 'if fi then elif else for do done until while break continue case function return in eq ne gt lt ge le';
var commands = 'alias apropos awk bash bc bg builtin bzip2 cal cat cd cfdisk chgrp chmod chown chroot' +
'cksum clear cmp comm command cp cron crontab csplit cut date dc dd ddrescue declare df ' +
'diff diff3 dig dir dircolors dirname dirs du echo egrep eject enable env ethtool eval ' +
'exec exit expand export expr false fdformat fdisk fg fgrep file find fmt fold format ' +
'free fsck ftp gawk getopts grep groups gzip hash head history hostname id ifconfig ' +
'import install join kill less let ln local locate logname logout look lpc lpr lprint ' +
'lprintd lprintq lprm ls lsof make man mkdir mkfifo mkisofs mknod more mount mtools ' +
'mv netstat nice nl nohup nslookup open op passwd paste pathchk ping popd pr printcap ' +
'printenv printf ps pushd pwd quota quotacheck quotactl ram rcp read readonly renice ' +
'remsync rm rmdir rsync screen scp sdiff sed select seq set sftp shift shopt shutdown ' +
'sleep sort source split ssh strace su sudo sum symlink sync tail tar tee test time ' +
'times touch top traceroute trap tr true tsort tty type ulimit umask umount unalias ' +
'uname unexpand uniq units unset unshar useradd usermod users uuencode uudecode v vdir ' +
'vi watch wc whereis which who whoami Wget xargs yes'
;
this.regexList = [
{ regex: SyntaxHighlighter.regexLib.singleLinePerlComments, css: 'comments' }, // one line comments
{ regex: SyntaxHighlighter.regexLib.doubleQuotedString, css: 'string' }, // double quoted strings
{ regex: new RegExp(this.getKeywords(keywords), 'gm'), css: 'keyword' }, // keywords
{ regex: new RegExp(this.getKeywords(commands), 'gm'), css: 'functions' } // commands
];
}
SyntaxHighlighter.brushes.Bash.prototype = new SyntaxHighlighter.Highlighter();
SyntaxHighlighter.brushes.Bash.aliases = ['bash', 'shell'];

View file

@ -0,0 +1,56 @@
/**
* SyntaxHighlighter
* http://alexgorbatchev.com/
*
* @version
* 2.0.287 (February 06 2009)
*
* @author
* Alex Gorbatchev
*
* @copyright
* Copyright (C) 2004-2009 Alex Gorbatchev.
*
* Licensed under a GNU Lesser General Public License.
* http://creativecommons.org/licenses/LGPL/2.1/
*
* SyntaxHighlighter is donationware. You are allowed to download, modify and distribute
* the source code in accordance with LGPL 2.1 license, however if you want to use
* SyntaxHighlighter on your site or include it in your product, you must donate.
* http://alexgorbatchev.com/wiki/SyntaxHighlighter:Donate
*/
SyntaxHighlighter.brushes.CSharp = function()
{
var keywords = 'abstract as base bool break byte case catch char checked class const ' +
'continue decimal default delegate do double else enum event explicit ' +
'extern false finally fixed float for foreach get goto if implicit in int ' +
'interface internal is lock long namespace new null object operator out ' +
'override params private protected public readonly ref return sbyte sealed set ' +
'short sizeof stackalloc static string struct switch this throw true try ' +
'typeof uint ulong unchecked unsafe ushort using virtual void while';
function fixComments(match, regexInfo)
{
var css = (match[0].indexOf("///") == 0)
? 'color1'
: 'comments'
;
return [new SyntaxHighlighter.Match(match[0], match.index, css)];
}
this.regexList = [
{ regex: SyntaxHighlighter.regexLib.singleLineCComments, func : fixComments }, // one line comments
{ regex: SyntaxHighlighter.regexLib.multiLineCComments, css: 'comments' }, // multiline comments
{ regex: SyntaxHighlighter.regexLib.doubleQuotedString, css: 'string' }, // strings
{ regex: SyntaxHighlighter.regexLib.singleQuotedString, css: 'string' }, // strings
{ regex: /^\s*#.*/gm, css: 'preprocessor' }, // preprocessor tags like #region and #endregion
{ regex: new RegExp(this.getKeywords(keywords), 'gm'), css: 'keyword' } // c# keyword
];
this.forHtmlScript(SyntaxHighlighter.regexLib.aspScriptTags);
};
SyntaxHighlighter.brushes.CSharp.prototype = new SyntaxHighlighter.Highlighter();
SyntaxHighlighter.brushes.CSharp.aliases = ['c#', 'c-sharp', 'csharp'];

View file

@ -0,0 +1,91 @@
/**
* SyntaxHighlighter
* http://alexgorbatchev.com/
*
* @version
* 2.0.287 (February 06 2009)
*
* @author
* Alex Gorbatchev
*
* @copyright
* Copyright (C) 2004-2009 Alex Gorbatchev.
*
* Licensed under a GNU Lesser General Public License.
* http://creativecommons.org/licenses/LGPL/2.1/
*
* SyntaxHighlighter is donationware. You are allowed to download, modify and distribute
* the source code in accordance with LGPL 2.1 license, however if you want to use
* SyntaxHighlighter on your site or include it in your product, you must donate.
* http://alexgorbatchev.com/wiki/SyntaxHighlighter:Donate
*/
SyntaxHighlighter.brushes.Cpp = function()
{
// Copyright 2006 Shin, YoungJin
var datatypes = 'ATOM BOOL BOOLEAN BYTE CHAR COLORREF DWORD DWORDLONG DWORD_PTR ' +
'DWORD32 DWORD64 FLOAT HACCEL HALF_PTR HANDLE HBITMAP HBRUSH ' +
'HCOLORSPACE HCONV HCONVLIST HCURSOR HDC HDDEDATA HDESK HDROP HDWP ' +
'HENHMETAFILE HFILE HFONT HGDIOBJ HGLOBAL HHOOK HICON HINSTANCE HKEY ' +
'HKL HLOCAL HMENU HMETAFILE HMODULE HMONITOR HPALETTE HPEN HRESULT ' +
'HRGN HRSRC HSZ HWINSTA HWND INT INT_PTR INT32 INT64 LANGID LCID LCTYPE ' +
'LGRPID LONG LONGLONG LONG_PTR LONG32 LONG64 LPARAM LPBOOL LPBYTE LPCOLORREF ' +
'LPCSTR LPCTSTR LPCVOID LPCWSTR LPDWORD LPHANDLE LPINT LPLONG LPSTR LPTSTR ' +
'LPVOID LPWORD LPWSTR LRESULT PBOOL PBOOLEAN PBYTE PCHAR PCSTR PCTSTR PCWSTR ' +
'PDWORDLONG PDWORD_PTR PDWORD32 PDWORD64 PFLOAT PHALF_PTR PHANDLE PHKEY PINT ' +
'PINT_PTR PINT32 PINT64 PLCID PLONG PLONGLONG PLONG_PTR PLONG32 PLONG64 POINTER_32 ' +
'POINTER_64 PSHORT PSIZE_T PSSIZE_T PSTR PTBYTE PTCHAR PTSTR PUCHAR PUHALF_PTR ' +
'PUINT PUINT_PTR PUINT32 PUINT64 PULONG PULONGLONG PULONG_PTR PULONG32 PULONG64 ' +
'PUSHORT PVOID PWCHAR PWORD PWSTR SC_HANDLE SC_LOCK SERVICE_STATUS_HANDLE SHORT ' +
'SIZE_T SSIZE_T TBYTE TCHAR UCHAR UHALF_PTR UINT UINT_PTR UINT32 UINT64 ULONG ' +
'ULONGLONG ULONG_PTR ULONG32 ULONG64 USHORT USN VOID WCHAR WORD WPARAM WPARAM WPARAM ' +
'char bool short int __int32 __int64 __int8 __int16 long float double __wchar_t ' +
'clock_t _complex _dev_t _diskfree_t div_t ldiv_t _exception _EXCEPTION_POINTERS ' +
'FILE _finddata_t _finddatai64_t _wfinddata_t _wfinddatai64_t __finddata64_t ' +
'__wfinddata64_t _FPIEEE_RECORD fpos_t _HEAPINFO _HFILE lconv intptr_t ' +
'jmp_buf mbstate_t _off_t _onexit_t _PNH ptrdiff_t _purecall_handler ' +
'sig_atomic_t size_t _stat __stat64 _stati64 terminate_function ' +
'time_t __time64_t _timeb __timeb64 tm uintptr_t _utimbuf ' +
'va_list wchar_t wctrans_t wctype_t wint_t signed';
var keywords = 'break case catch class const __finally __exception __try ' +
'const_cast continue private public protected __declspec ' +
'default delete deprecated dllexport dllimport do dynamic_cast ' +
'else enum explicit extern if for friend goto inline ' +
'mutable naked namespace new noinline noreturn nothrow ' +
'register reinterpret_cast return selectany ' +
'sizeof static static_cast struct switch template this ' +
'thread throw true false try typedef typeid typename union ' +
'using uuid virtual void volatile whcar_t while';
var functions = 'assert isalnum isalpha iscntrl isdigit isgraph islower isprint' +
'ispunct isspace isupper isxdigit tolower toupper errno localeconv ' +
'setlocale acos asin atan atan2 ceil cos cosh exp fabs floor fmod ' +
'frexp ldexp log log10 modf pow sin sinh sqrt tan tanh jmp_buf ' +
'longjmp setjmp raise signal sig_atomic_t va_arg va_end va_start ' +
'clearerr fclose feof ferror fflush fgetc fgetpos fgets fopen ' +
'fprintf fputc fputs fread freopen fscanf fseek fsetpos ftell ' +
'fwrite getc getchar gets perror printf putc putchar puts remove ' +
'rename rewind scanf setbuf setvbuf sprintf sscanf tmpfile tmpnam ' +
'ungetc vfprintf vprintf vsprintf abort abs atexit atof atoi atol ' +
'bsearch calloc div exit free getenv labs ldiv malloc mblen mbstowcs ' +
'mbtowc qsort rand realloc srand strtod strtol strtoul system ' +
'wcstombs wctomb memchr memcmp memcpy memmove memset strcat strchr ' +
'strcmp strcoll strcpy strcspn strerror strlen strncat strncmp ' +
'strncpy strpbrk strrchr strspn strstr strtok strxfrm asctime ' +
'clock ctime difftime gmtime localtime mktime strftime time';
this.regexList = [
{ regex: SyntaxHighlighter.regexLib.singleLineCComments, css: 'comments' }, // one line comments
{ regex: SyntaxHighlighter.regexLib.multiLineCComments, css: 'comments' }, // multiline comments
{ regex: SyntaxHighlighter.regexLib.doubleQuotedString, css: 'string' }, // strings
{ regex: SyntaxHighlighter.regexLib.singleQuotedString, css: 'string' }, // strings
{ regex: /^ *#.*/gm, css: 'preprocessor' },
{ regex: new RegExp(this.getKeywords(datatypes), 'gm'), css: 'color1 bold' },
{ regex: new RegExp(this.getKeywords(functions), 'gm'), css: 'functions bold' },
{ regex: new RegExp(this.getKeywords(keywords), 'gm'), css: 'keyword bold' }
];
};
SyntaxHighlighter.brushes.Cpp.prototype = new SyntaxHighlighter.Highlighter();
SyntaxHighlighter.brushes.Cpp.aliases = ['cpp', 'c'];

View file

@ -0,0 +1,85 @@
/**
* SyntaxHighlighter
* http://alexgorbatchev.com/
*
* @version
* 2.0.287 (February 06 2009)
*
* @author
* Alex Gorbatchev
*
* @copyright
* Copyright (C) 2004-2009 Alex Gorbatchev.
*
* Licensed under a GNU Lesser General Public License.
* http://creativecommons.org/licenses/LGPL/2.1/
*
* SyntaxHighlighter is donationware. You are allowed to download, modify and distribute
* the source code in accordance with LGPL 2.1 license, however if you want to use
* SyntaxHighlighter on your site or include it in your product, you must donate.
* http://alexgorbatchev.com/wiki/SyntaxHighlighter:Donate
*/
SyntaxHighlighter.brushes.CSS = function()
{
function getKeywordsCSS(str)
{
return '\\b([a-z_]|)' + str.replace(/ /g, '(?=:)\\b|\\b([a-z_\\*]|\\*|)') + '(?=:)\\b';
};
function getValuesCSS(str)
{
return '\\b' + str.replace(/ /g, '(?!-)(?!:)\\b|\\b()') + '\:\\b';
};
var keywords = 'ascent azimuth background-attachment background-color background-image background-position ' +
'background-repeat background baseline bbox border-collapse border-color border-spacing border-style border-top ' +
'border-right border-bottom border-left border-top-color border-right-color border-bottom-color border-left-color ' +
'border-top-style border-right-style border-bottom-style border-left-style border-top-width border-right-width ' +
'border-bottom-width border-left-width border-width border bottom cap-height caption-side centerline clear clip color ' +
'content counter-increment counter-reset cue-after cue-before cue cursor definition-src descent direction display ' +
'elevation empty-cells float font-size-adjust font-family font-size font-stretch font-style font-variant font-weight font ' +
'height left letter-spacing line-height list-style-image list-style-position list-style-type list-style margin-top ' +
'margin-right margin-bottom margin-left margin marker-offset marks mathline max-height max-width min-height min-width orphans ' +
'outline-color outline-style outline-width outline overflow padding-top padding-right padding-bottom padding-left padding page ' +
'page-break-after page-break-before page-break-inside pause pause-after pause-before pitch pitch-range play-during position ' +
'quotes right richness size slope src speak-header speak-numeral speak-punctuation speak speech-rate stemh stemv stress ' +
'table-layout text-align top text-decoration text-indent text-shadow text-transform unicode-bidi unicode-range units-per-em ' +
'vertical-align visibility voice-family volume white-space widows width widths word-spacing x-height z-index';
var values = 'above absolute all always aqua armenian attr aural auto avoid baseline behind below bidi-override black blink block blue bold bolder '+
'both bottom braille capitalize caption center center-left center-right circle close-quote code collapse compact condensed '+
'continuous counter counters crop cross crosshair cursive dashed decimal decimal-leading-zero default digits disc dotted double '+
'embed embossed e-resize expanded extra-condensed extra-expanded fantasy far-left far-right fast faster fixed format fuchsia '+
'gray green groove handheld hebrew help hidden hide high higher icon inline-table inline inset inside invert italic '+
'justify landscape large larger left-side left leftwards level lighter lime line-through list-item local loud lower-alpha '+
'lowercase lower-greek lower-latin lower-roman lower low ltr marker maroon medium message-box middle mix move narrower '+
'navy ne-resize no-close-quote none no-open-quote no-repeat normal nowrap n-resize nw-resize oblique olive once open-quote outset '+
'outside overline pointer portrait pre print projection purple red relative repeat repeat-x repeat-y rgb ridge right right-side '+
'rightwards rtl run-in screen scroll semi-condensed semi-expanded separate se-resize show silent silver slower slow '+
'small small-caps small-caption smaller soft solid speech spell-out square s-resize static status-bar sub super sw-resize '+
'table-caption table-cell table-column table-column-group table-footer-group table-header-group table-row table-row-group teal '+
'text-bottom text-top thick thin top transparent tty tv ultra-condensed ultra-expanded underline upper-alpha uppercase upper-latin '+
'upper-roman url visible wait white wider w-resize x-fast x-high x-large x-loud x-low x-slow x-small x-soft xx-large xx-small yellow';
var fonts = '[mM]onospace [tT]ahoma [vV]erdana [aA]rial [hH]elvetica [sS]ans-serif [sS]erif [cC]ourier mono sans serif';
this.regexList = [
{ regex: SyntaxHighlighter.regexLib.multiLineCComments, css: 'comments' }, // multiline comments
{ regex: SyntaxHighlighter.regexLib.doubleQuotedString, css: 'string' }, // double quoted strings
{ regex: SyntaxHighlighter.regexLib.singleQuotedString, css: 'string' }, // single quoted strings
{ regex: /\#[a-fA-F0-9]{3,6}/g, css: 'value' }, // html colors
{ regex: /(-?\d+)(\.\d+)?(px|em|pt|\:|\%|)/g, css: 'value' }, // sizes
{ regex: /!important/g, css: 'color3' }, // !important
{ regex: new RegExp(getKeywordsCSS(keywords), 'gm'), css: 'keyword' }, // keywords
{ regex: new RegExp(getValuesCSS(values), 'g'), css: 'value' }, // values
{ regex: new RegExp(this.getKeywords(fonts), 'g'), css: 'color1' } // fonts
];
this.forHtmlScript({
left: /(&lt;|<)\s*style.*?(&gt;|>)/gi,
right: /(&lt;|<)\/\s*style\s*(&gt;|>)/gi
});
};
SyntaxHighlighter.brushes.CSS.prototype = new SyntaxHighlighter.Highlighter();
SyntaxHighlighter.brushes.CSS.aliases = ['css'];

View file

@ -0,0 +1,49 @@
/**
* SyntaxHighlighter
* http://alexgorbatchev.com/
*
* @version
* 2.0.287 (February 06 2009)
*
* @author
* Alex Gorbatchev
*
* @copyright
* Copyright (C) 2004-2009 Alex Gorbatchev.
*
* Licensed under a GNU Lesser General Public License.
* http://creativecommons.org/licenses/LGPL/2.1/
*
* SyntaxHighlighter is donationware. You are allowed to download, modify and distribute
* the source code in accordance with LGPL 2.1 license, however if you want to use
* SyntaxHighlighter on your site or include it in your product, you must donate.
* http://alexgorbatchev.com/wiki/SyntaxHighlighter:Donate
*/
SyntaxHighlighter.brushes.Delphi = function()
{
var keywords = 'abs addr and ansichar ansistring array as asm begin boolean byte cardinal ' +
'case char class comp const constructor currency destructor div do double ' +
'downto else end except exports extended false file finalization finally ' +
'for function goto if implementation in inherited int64 initialization ' +
'integer interface is label library longint longword mod nil not object ' +
'of on or packed pansichar pansistring pchar pcurrency pdatetime pextended ' +
'pint64 pointer private procedure program property pshortstring pstring ' +
'pvariant pwidechar pwidestring protected public published raise real real48 ' +
'record repeat set shl shortint shortstring shr single smallint string then ' +
'threadvar to true try type unit until uses val var varirnt while widechar ' +
'widestring with word write writeln xor';
this.regexList = [
{ regex: /\(\*[\s\S]*?\*\)/gm, css: 'comments' }, // multiline comments (* *)
{ regex: /{(?!\$)[\s\S]*?}/gm, css: 'comments' }, // multiline comments { }
{ regex: SyntaxHighlighter.regexLib.singleLineCComments, css: 'comments' }, // one line
{ regex: SyntaxHighlighter.regexLib.singleQuotedString, css: 'string' }, // strings
{ regex: /\{\$[a-zA-Z]+ .+\}/g, css: 'color1' }, // compiler Directives and Region tags
{ regex: /\b[\d\.]+\b/g, css: 'value' }, // numbers 12345
{ regex: /\$[a-zA-Z0-9]+\b/g, css: 'value' }, // numbers $F5D3
{ regex: new RegExp(this.getKeywords(keywords), 'gm'), css: 'keyword' } // keyword
];
};
SyntaxHighlighter.brushes.Delphi.prototype = new SyntaxHighlighter.Highlighter();
SyntaxHighlighter.brushes.Delphi.aliases = ['delphi', 'pascal'];

View file

@ -0,0 +1,35 @@
/**
* SyntaxHighlighter
* http://alexgorbatchev.com/
*
* @version
* 2.0.287 (February 06 2009)
*
* @author
* Alex Gorbatchev
*
* @copyright
* Copyright (C) 2004-2009 Alex Gorbatchev.
*
* Licensed under a GNU Lesser General Public License.
* http://creativecommons.org/licenses/LGPL/2.1/
*
* SyntaxHighlighter is donationware. You are allowed to download, modify and distribute
* the source code in accordance with LGPL 2.1 license, however if you want to use
* SyntaxHighlighter on your site or include it in your product, you must donate.
* http://alexgorbatchev.com/wiki/SyntaxHighlighter:Donate
*/
SyntaxHighlighter.brushes.Diff = function()
{
this.regexList = [
{ regex: /^\+\+\+.*$/gm, css: 'color2' },
{ regex: /^\-\-\-.*$/gm, css: 'color2' },
{ regex: /^\s.*$/gm, css: 'color1' },
{ regex: /^@@.*@@$/gm, css: 'variable' },
{ regex: /^\+[^\+]{1}.*$/gm, css: 'string' },
{ regex: /^\-[^\-]{1}.*$/gm, css: 'comments' }
];
};
SyntaxHighlighter.brushes.Diff.prototype = new SyntaxHighlighter.Highlighter();
SyntaxHighlighter.brushes.Diff.aliases = ['diff', 'patch'];

View file

@ -0,0 +1,61 @@
/**
* SyntaxHighlighter
* http://alexgorbatchev.com/
*
* @version
* 2.0.287 (February 06 2009)
*
* @author
* Alex Gorbatchev
*
* @copyright
* Copyright (C) 2004-2009 Alex Gorbatchev.
*
* Licensed under a GNU Lesser General Public License.
* http://creativecommons.org/licenses/LGPL/2.1/
*
* SyntaxHighlighter is donationware. You are allowed to download, modify and distribute
* the source code in accordance with LGPL 2.1 license, however if you want to use
* SyntaxHighlighter on your site or include it in your product, you must donate.
* http://alexgorbatchev.com/wiki/SyntaxHighlighter:Donate
*/
SyntaxHighlighter.brushes.Groovy = function()
{
// Contributed by Andres Almiray
// http://jroller.com/aalmiray/entry/nice_source_code_syntax_highlighter
var keywords = 'as assert break case catch class continue def default do else extends finally ' +
'if in implements import instanceof interface new package property return switch ' +
'throw throws try while public protected private static';
var types = 'void boolean byte char short int long float double';
var constants = 'null';
var methods = 'allProperties count get size '+
'collect each eachProperty eachPropertyName eachWithIndex find findAll ' +
'findIndexOf grep inject max min reverseEach sort ' +
'asImmutable asSynchronized flatten intersect join pop reverse subMap toList ' +
'padRight padLeft contains eachMatch toCharacter toLong toUrl tokenize ' +
'eachFile eachFileRecurse eachB yte eachLine readBytes readLine getText ' +
'splitEachLine withReader append encodeBase64 decodeBase64 filterLine ' +
'transformChar transformLine withOutputStream withPrintWriter withStream ' +
'withStreams withWriter withWriterAppend write writeLine '+
'dump inspect invokeMethod print println step times upto use waitForOrKill '+
'getText';
this.regexList = [
{ regex: SyntaxHighlighter.regexLib.singleLineCComments, css: 'comments' }, // one line comments
{ regex: SyntaxHighlighter.regexLib.multiLineCComments, css: 'comments' }, // multiline comments
{ regex: SyntaxHighlighter.regexLib.doubleQuotedString, css: 'string' }, // strings
{ regex: SyntaxHighlighter.regexLib.singleQuotedString, css: 'string' }, // strings
{ regex: /""".*"""/g, css: 'string' }, // GStrings
{ regex: new RegExp('\\b([\\d]+(\\.[\\d]+)?|0x[a-f0-9]+)\\b', 'gi'), css: 'value' }, // numbers
{ regex: new RegExp(this.getKeywords(keywords), 'gm'), css: 'keyword' }, // goovy keyword
{ regex: new RegExp(this.getKeywords(types), 'gm'), css: 'color1' }, // goovy/java type
{ regex: new RegExp(this.getKeywords(constants), 'gm'), css: 'constants' }, // constants
{ regex: new RegExp(this.getKeywords(methods), 'gm'), css: 'functions' } // methods
];
this.forHtmlScript(SyntaxHighlighter.regexLib.aspScriptTags);
}
SyntaxHighlighter.brushes.Groovy.prototype = new SyntaxHighlighter.Highlighter();
SyntaxHighlighter.brushes.Groovy.aliases = ['groovy'];

View file

@ -0,0 +1,43 @@
/**
* SyntaxHighlighter
* http://alexgorbatchev.com/
*
* @version
* 2.0.287 (February 06 2009)
*
* @author
* Alex Gorbatchev
*
* @copyright
* Copyright (C) 2004-2009 Alex Gorbatchev.
*
* Licensed under a GNU Lesser General Public License.
* http://creativecommons.org/licenses/LGPL/2.1/
*
* SyntaxHighlighter is donationware. You are allowed to download, modify and distribute
* the source code in accordance with LGPL 2.1 license, however if you want to use
* SyntaxHighlighter on your site or include it in your product, you must donate.
* http://alexgorbatchev.com/wiki/SyntaxHighlighter:Donate
*/
SyntaxHighlighter.brushes.JScript = function()
{
var keywords = 'abstract boolean break byte case catch char class const continue debugger ' +
'default delete do double else enum export extends false final finally float ' +
'for function goto if implements import in instanceof int interface long native ' +
'new null package private protected public return short static super switch ' +
'synchronized this throw throws transient true try typeof var void volatile while with';
this.regexList = [
{ regex: SyntaxHighlighter.regexLib.singleLineCComments, css: 'comments' }, // one line comments
{ regex: SyntaxHighlighter.regexLib.multiLineCComments, css: 'comments' }, // multiline comments
{ regex: SyntaxHighlighter.regexLib.doubleQuotedString, css: 'string' }, // double quoted strings
{ regex: SyntaxHighlighter.regexLib.singleQuotedString, css: 'string' }, // single quoted strings
{ regex: /\s*#.*/gm, css: 'preprocessor' }, // preprocessor tags like #region and #endregion
{ regex: new RegExp(this.getKeywords(keywords), 'gm'), css: 'keyword' } // keywords
];
this.forHtmlScript(SyntaxHighlighter.regexLib.scriptScriptTags);
};
SyntaxHighlighter.brushes.JScript.prototype = new SyntaxHighlighter.Highlighter();
SyntaxHighlighter.brushes.JScript.aliases = ['js', 'jscript', 'javascript'];

View file

@ -0,0 +1,47 @@
/**
* SyntaxHighlighter
* http://alexgorbatchev.com/
*
* @version
* 2.0.287 (February 06 2009)
*
* @author
* Alex Gorbatchev
*
* @copyright
* Copyright (C) 2004-2009 Alex Gorbatchev.
*
* Licensed under a GNU Lesser General Public License.
* http://creativecommons.org/licenses/LGPL/2.1/
*
* SyntaxHighlighter is donationware. You are allowed to download, modify and distribute
* the source code in accordance with LGPL 2.1 license, however if you want to use
* SyntaxHighlighter on your site or include it in your product, you must donate.
* http://alexgorbatchev.com/wiki/SyntaxHighlighter:Donate
*/
SyntaxHighlighter.brushes.Java = function()
{
var keywords = 'abstract assert boolean break byte case catch char class const ' +
'continue default do double else enum extends ' +
'false final finally float for goto if implements import ' +
'instanceof int interface long native new null ' +
'package private protected public return ' +
'short static strictfp super switch synchronized this throw throws true ' +
'transient try void volatile while';
this.regexList = [
{ regex: SyntaxHighlighter.regexLib.singleLineCComments, css: 'comments' }, // one line comments
{ regex: SyntaxHighlighter.regexLib.multiLineCComments, css: 'comments' }, // multiline comments
{ regex: SyntaxHighlighter.regexLib.doubleQuotedString, css: 'string' }, // strings
{ regex: SyntaxHighlighter.regexLib.singleQuotedString, css: 'string' }, // strings
{ regex: /\b([\d]+(\.[\d]+)?|0x[a-f0-9]+)\b/gi, css: 'value' }, // numbers
{ regex: /(?!\@interface\b)\@[\$\w]+\b/g, css: 'color1' }, // annotation @anno
{ regex: /\@interface\b/g, css: 'color2' }, // @interface keyword
{ regex: new RegExp(this.getKeywords(keywords), 'gm'), css: 'keyword' } // java keyword
];
this.forHtmlScript(SyntaxHighlighter.regexLib.aspScriptTags);
};
SyntaxHighlighter.brushes.Java.prototype = new SyntaxHighlighter.Highlighter();
SyntaxHighlighter.brushes.Java.aliases = ['java'];

View file

@ -0,0 +1,83 @@
/**
* SyntaxHighlighter
* http://alexgorbatchev.com/
*
* @version
* 2.0.287 (February 06 2009)
*
* @author
* Alex Gorbatchev
*
* @copyright
* Copyright (C) 2004-2009 Alex Gorbatchev.
*
* Licensed under a GNU Lesser General Public License.
* http://creativecommons.org/licenses/LGPL/2.1/
*
* SyntaxHighlighter is donationware. You are allowed to download, modify and distribute
* the source code in accordance with LGPL 2.1 license, however if you want to use
* SyntaxHighlighter on your site or include it in your product, you must donate.
* http://alexgorbatchev.com/wiki/SyntaxHighlighter:Donate
*/
SyntaxHighlighter.brushes.Php = function()
{
var funcs = 'abs acos acosh addcslashes addslashes ' +
'array_change_key_case array_chunk array_combine array_count_values array_diff '+
'array_diff_assoc array_diff_key array_diff_uassoc array_diff_ukey array_fill '+
'array_filter array_flip array_intersect array_intersect_assoc array_intersect_key '+
'array_intersect_uassoc array_intersect_ukey array_key_exists array_keys array_map '+
'array_merge array_merge_recursive array_multisort array_pad array_pop array_product '+
'array_push array_rand array_reduce array_reverse array_search array_shift '+
'array_slice array_splice array_sum array_udiff array_udiff_assoc '+
'array_udiff_uassoc array_uintersect array_uintersect_assoc '+
'array_uintersect_uassoc array_unique array_unshift array_values array_walk '+
'array_walk_recursive atan atan2 atanh base64_decode base64_encode base_convert '+
'basename bcadd bccomp bcdiv bcmod bcmul bindec bindtextdomain bzclose bzcompress '+
'bzdecompress bzerrno bzerror bzerrstr bzflush bzopen bzread bzwrite ceil chdir '+
'checkdate checkdnsrr chgrp chmod chop chown chr chroot chunk_split class_exists '+
'closedir closelog copy cos cosh count count_chars date decbin dechex decoct '+
'deg2rad delete ebcdic2ascii echo empty end ereg ereg_replace eregi eregi_replace error_log '+
'error_reporting escapeshellarg escapeshellcmd eval exec exit exp explode extension_loaded '+
'feof fflush fgetc fgetcsv fgets fgetss file_exists file_get_contents file_put_contents '+
'fileatime filectime filegroup fileinode filemtime fileowner fileperms filesize filetype '+
'floatval flock floor flush fmod fnmatch fopen fpassthru fprintf fputcsv fputs fread fscanf '+
'fseek fsockopen fstat ftell ftok getallheaders getcwd getdate getenv gethostbyaddr gethostbyname '+
'gethostbynamel getimagesize getlastmod getmxrr getmygid getmyinode getmypid getmyuid getopt '+
'getprotobyname getprotobynumber getrandmax getrusage getservbyname getservbyport gettext '+
'gettimeofday gettype glob gmdate gmmktime ini_alter ini_get ini_get_all ini_restore ini_set '+
'interface_exists intval ip2long is_a is_array is_bool is_callable is_dir is_double '+
'is_executable is_file is_finite is_float is_infinite is_int is_integer is_link is_long '+
'is_nan is_null is_numeric is_object is_readable is_real is_resource is_scalar is_soap_fault '+
'is_string is_subclass_of is_uploaded_file is_writable is_writeable mkdir mktime nl2br '+
'parse_ini_file parse_str parse_url passthru pathinfo readlink realpath rewind rewinddir rmdir '+
'round str_ireplace str_pad str_repeat str_replace str_rot13 str_shuffle str_split '+
'str_word_count strcasecmp strchr strcmp strcoll strcspn strftime strip_tags stripcslashes '+
'stripos stripslashes stristr strlen strnatcasecmp strnatcmp strncasecmp strncmp strpbrk '+
'strpos strptime strrchr strrev strripos strrpos strspn strstr strtok strtolower strtotime '+
'strtoupper strtr strval substr substr_compare';
var keywords = 'and or xor array as break case ' +
'cfunction class const continue declare default die do else ' +
'elseif empty enddeclare endfor endforeach endif endswitch endwhile ' +
'extends for foreach function include include_once global if ' +
'new old_function return static switch use require require_once ' +
'var while abstract interface public implements extends private protected throw';
var constants = '__FILE__ __LINE__ __METHOD__ __FUNCTION__ __CLASS__';
this.regexList = [
{ regex: SyntaxHighlighter.regexLib.singleLineCComments, css: 'comments' }, // one line comments
{ regex: SyntaxHighlighter.regexLib.multiLineCComments, css: 'comments' }, // multiline comments
{ regex: SyntaxHighlighter.regexLib.doubleQuotedString, css: 'string' }, // double quoted strings
{ regex: SyntaxHighlighter.regexLib.singleQuotedString, css: 'string' }, // single quoted strings
{ regex: /\$\w+/g, css: 'variable' }, // variables
{ regex: new RegExp(this.getKeywords(funcs), 'gmi'), css: 'functions' }, // common functions
{ regex: new RegExp(this.getKeywords(constants), 'gmi'), css: 'constants' }, // constants
{ regex: new RegExp(this.getKeywords(keywords), 'gm'), css: 'keyword' } // keyword
];
this.forHtmlScript(SyntaxHighlighter.regexLib.phpScriptTags);
};
SyntaxHighlighter.brushes.Php.prototype = new SyntaxHighlighter.Highlighter();
SyntaxHighlighter.brushes.Php.aliases = ['php'];

View file

@ -0,0 +1,27 @@
/**
* SyntaxHighlighter
* http://alexgorbatchev.com/
*
* @version
* 2.0.287 (February 06 2009)
*
* @author
* Alex Gorbatchev
*
* @copyright
* Copyright (C) 2004-2009 Alex Gorbatchev.
*
* Licensed under a GNU Lesser General Public License.
* http://creativecommons.org/licenses/LGPL/2.1/
*
* SyntaxHighlighter is donationware. You are allowed to download, modify and distribute
* the source code in accordance with LGPL 2.1 license, however if you want to use
* SyntaxHighlighter on your site or include it in your product, you must donate.
* http://alexgorbatchev.com/wiki/SyntaxHighlighter:Donate
*/
SyntaxHighlighter.brushes.Plain = function()
{
};
SyntaxHighlighter.brushes.Plain.prototype = new SyntaxHighlighter.Highlighter();
SyntaxHighlighter.brushes.Plain.aliases = ['text', 'plain'];

View file

@ -0,0 +1,48 @@
/**
* SyntaxHighlighter
* http://alexgorbatchev.com/
*
* @version
* 2.0.287 (February 06 2009)
*
* @author
* Alex Gorbatchev
*
* @copyright
* Copyright (C) 2004-2009 Alex Gorbatchev.
*
* Licensed under a GNU Lesser General Public License.
* http://creativecommons.org/licenses/LGPL/2.1/
*
* SyntaxHighlighter is donationware. You are allowed to download, modify and distribute
* the source code in accordance with LGPL 2.1 license, however if you want to use
* SyntaxHighlighter on your site or include it in your product, you must donate.
* http://alexgorbatchev.com/wiki/SyntaxHighlighter:Donate
*/
SyntaxHighlighter.brushes.Python = function()
{
// Contributed by Gheorghe Milas
var keywords = 'and assert break class continue def del elif else ' +
'except exec finally for from global if import in is ' +
'lambda not or pass print raise return try yield while';
var special = 'None True False self cls class_';
this.regexList = [
{ regex: SyntaxHighlighter.regexLib.singleLinePerlComments, css: 'comments' },
{ regex: /^\s*@\w+/gm, css: 'decorator' },
{ regex: /(['\"]{3})([^\1])*?\1/gm, css: 'comments' },
{ regex: /"(?!")(?:\.|\\\"|[^\""\n])*"/gm, css: 'string' },
{ regex: /'(?!')(?:\.|(\\\')|[^\''\n])*'/gm, css: 'string' },
{ regex: /\+|\-|\*|\/|\%|=|==/gm, css: 'keyword' },
{ regex: /\b\d+\.?\w*/g, css: 'value' },
{ regex: new RegExp(this.getKeywords(keywords), 'gm'), css: 'keyword' },
{ regex: new RegExp(this.getKeywords(special), 'gm'), css: 'color1' }
];
this.forHtmlScript(SyntaxHighlighter.regexLib.aspScriptTags);
};
SyntaxHighlighter.brushes.Python.prototype = new SyntaxHighlighter.Highlighter();
SyntaxHighlighter.brushes.Python.aliases = ['py', 'python'];

View file

@ -0,0 +1,49 @@
/**
* SyntaxHighlighter
* http://alexgorbatchev.com/
*
* @version
* 2.0.287 (February 06 2009)
*
* @author
* Alex Gorbatchev
*
* @copyright
* Copyright (C) 2004-2009 Alex Gorbatchev.
*
* Licensed under a GNU Lesser General Public License.
* http://creativecommons.org/licenses/LGPL/2.1/
*
* SyntaxHighlighter is donationware. You are allowed to download, modify and distribute
* the source code in accordance with LGPL 2.1 license, however if you want to use
* SyntaxHighlighter on your site or include it in your product, you must donate.
* http://alexgorbatchev.com/wiki/SyntaxHighlighter:Donate
*/
SyntaxHighlighter.brushes.Ruby = function()
{
// Contributed by Erik Peterson.
var keywords = 'alias and BEGIN begin break case class def define_method defined do each else elsif ' +
'END end ensure false for if in module new next nil not or raise redo rescue retry return ' +
'self super then throw true undef unless until when while yield';
var builtins = 'Array Bignum Binding Class Continuation Dir Exception FalseClass File::Stat File Fixnum Fload ' +
'Hash Integer IO MatchData Method Module NilClass Numeric Object Proc Range Regexp String Struct::TMS Symbol ' +
'ThreadGroup Thread Time TrueClass';
this.regexList = [
{ regex: SyntaxHighlighter.regexLib.singleLinePerlComments, css: 'comments' }, // one line comments
{ regex: SyntaxHighlighter.regexLib.doubleQuotedString, css: 'string' }, // double quoted strings
{ regex: SyntaxHighlighter.regexLib.singleQuotedString, css: 'string' }, // single quoted strings
{ regex: /\b[A-Z0-9_]+\b/g, css: 'constants' }, // constants
{ regex: /:[a-z][A-Za-z0-9_]*/g, css: 'color2' }, // symbols
{ regex: /(\$|@@|@)\w+/g, css: 'variable bold' }, // $global, @instance, and @@class variables
{ regex: new RegExp(this.getKeywords(keywords), 'gm'), css: 'keyword' }, // keywords
{ regex: new RegExp(this.getKeywords(builtins), 'gm'), css: 'color1' } // builtins
];
this.forHtmlScript(SyntaxHighlighter.regexLib.aspScriptTags);
};
SyntaxHighlighter.brushes.Ruby.prototype = new SyntaxHighlighter.Highlighter();
SyntaxHighlighter.brushes.Ruby.aliases = ['ruby', 'rails', 'ror'];

View file

@ -0,0 +1,46 @@
/**
* Code Syntax Highlighter.
* Version 1.5.2
* Copyright (C) 2004-2008 Alex Gorbatchev
* http://www.dreamprojections.com/syntaxhighlighter/
*
* This program is free software: you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
* the Free Software Foundation, version 3 of the License.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
*
* You should have received a copy of the GNU General Public License
* along with this program. If not, see <http://www.gnu.org/licenses/>.
*/
/** Contributed by Yegor Jbanov and David Bernard. */
dp.sh.Brushes.Scala = function()
{
var keywords = 'val sealed case def true trait implicit forSome import match object null finally super ' +
'override try lazy for var catch throw type extends class while with new final yield abstract ' +
'else do if return protected private this package false';
var keyops = '[_:=><%#@]+';
this.regexList = [
{ regex: dp.sh.RegexLib.SingleLineCComments, css: 'comment' }, // one line comments
{ regex: dp.sh.RegexLib.MultiLineCComments, css: 'comment' }, // multiline comments
{ regex: new RegExp("(['\"]{3})([^\\1])*?\\1", 'gm'), css: 'string' }, // multi-line strings
{ regex: new RegExp('"(?!")(?:\\.|\\\\\\"|[^\\""\\n\\r])*"', 'gm'), css: 'string' }, // double-quoted string
{ regex: dp.sh.RegexLib.SingleQuotedString, css: 'string' }, // strings
{ regex: new RegExp('\\b([\\d]+(\\.[\\d]+)?|0x[a-f0-9]+)\\b', 'gi'), css: 'number' }, // numbers
{ regex: new RegExp(this.GetKeywords(keywords), 'gm'), css: 'keyword' }, // keywords
{ regex: new RegExp(keyops, 'gm'), css: 'keyword' } // scala keyword
];
this.CssClass = 'dp-j';
this.Style = '.dp-j .annotation { color: #646464; }' +
'.dp-j .number { color: #C00000; }';
}
dp.sh.Brushes.Scala.prototype = new dp.sh.Highlighter();
dp.sh.Brushes.Scala.Aliases = ['scala'];

View file

@ -0,0 +1,60 @@
/**
* SyntaxHighlighter
* http://alexgorbatchev.com/
*
* @version
* 2.0.287 (February 06 2009)
*
* @author
* Alex Gorbatchev
*
* @copyright
* Copyright (C) 2004-2009 Alex Gorbatchev.
*
* Licensed under a GNU Lesser General Public License.
* http://creativecommons.org/licenses/LGPL/2.1/
*
* SyntaxHighlighter is donationware. You are allowed to download, modify and distribute
* the source code in accordance with LGPL 2.1 license, however if you want to use
* SyntaxHighlighter on your site or include it in your product, you must donate.
* http://alexgorbatchev.com/wiki/SyntaxHighlighter:Donate
*/
SyntaxHighlighter.brushes.Sql = function()
{
var funcs = 'abs avg case cast coalesce convert count current_timestamp ' +
'current_user day isnull left lower month nullif replace right ' +
'session_user space substring sum system_user upper user year';
var keywords = 'absolute action add after alter as asc at authorization begin bigint ' +
'binary bit by cascade char character check checkpoint close collate ' +
'column commit committed connect connection constraint contains continue ' +
'create cube current current_date current_time cursor database date ' +
'deallocate dec decimal declare default delete desc distinct double drop ' +
'dynamic else end end-exec escape except exec execute false fetch first ' +
'float for force foreign forward free from full function global goto grant ' +
'group grouping having hour ignore index inner insensitive insert instead ' +
'int integer intersect into is isolation key last level load local max min ' +
'minute modify move name national nchar next no numeric of off on only ' +
'open option order out output partial password precision prepare primary ' +
'prior privileges procedure public read real references relative repeatable ' +
'restrict return returns revoke rollback rollup rows rule schema scroll ' +
'second section select sequence serializable set size smallint static ' +
'statistics table temp temporary then time timestamp to top transaction ' +
'translation trigger true truncate uncommitted union unique update values ' +
'varchar varying view when where with work';
var operators = 'all and any between cross in join like not null or outer some';
this.regexList = [
{ regex: /--(.*)$/gm, css: 'comments' }, // one line and multiline comments
{ regex: SyntaxHighlighter.regexLib.multiLineDoubleQuotedString, css: 'string' }, // double quoted strings
{ regex: SyntaxHighlighter.regexLib.multiLineSingleQuotedString, css: 'string' }, // single quoted strings
{ regex: new RegExp(this.getKeywords(funcs), 'gmi'), css: 'color2' }, // functions
{ regex: new RegExp(this.getKeywords(operators), 'gmi'), css: 'color1' }, // operators and such
{ regex: new RegExp(this.getKeywords(keywords), 'gmi'), css: 'keyword' } // keyword
];
};
SyntaxHighlighter.brushes.Sql.prototype = new SyntaxHighlighter.Highlighter();
SyntaxHighlighter.brushes.Sql.aliases = ['sql'];

View file

@ -0,0 +1,50 @@
/**
* SyntaxHighlighter
* http://alexgorbatchev.com/
*
* @version
* 2.0.287 (February 06 2009)
*
* @author
* Alex Gorbatchev
*
* @copyright
* Copyright (C) 2004-2009 Alex Gorbatchev.
*
* Licensed under a GNU Lesser General Public License.
* http://creativecommons.org/licenses/LGPL/2.1/
*
* SyntaxHighlighter is donationware. You are allowed to download, modify and distribute
* the source code in accordance with LGPL 2.1 license, however if you want to use
* SyntaxHighlighter on your site or include it in your product, you must donate.
* http://alexgorbatchev.com/wiki/SyntaxHighlighter:Donate
*/
SyntaxHighlighter.brushes.Vb = function()
{
var keywords = 'AddHandler AddressOf AndAlso Alias And Ansi As Assembly Auto ' +
'Boolean ByRef Byte ByVal Call Case Catch CBool CByte CChar CDate ' +
'CDec CDbl Char CInt Class CLng CObj Const CShort CSng CStr CType ' +
'Date Decimal Declare Default Delegate Dim DirectCast Do Double Each ' +
'Else ElseIf End Enum Erase Error Event Exit False Finally For Friend ' +
'Function Get GetType GoSub GoTo Handles If Implements Imports In ' +
'Inherits Integer Interface Is Let Lib Like Long Loop Me Mod Module ' +
'MustInherit MustOverride MyBase MyClass Namespace New Next Not Nothing ' +
'NotInheritable NotOverridable Object On Option Optional Or OrElse ' +
'Overloads Overridable Overrides ParamArray Preserve Private Property ' +
'Protected Public RaiseEvent ReadOnly ReDim REM RemoveHandler Resume ' +
'Return Select Set Shadows Shared Short Single Static Step Stop String ' +
'Structure Sub SyncLock Then Throw To True Try TypeOf Unicode Until ' +
'Variant When While With WithEvents WriteOnly Xor';
this.regexList = [
{ regex: /'.*$/gm, css: 'comments' }, // one line comments
{ regex: SyntaxHighlighter.regexLib.doubleQuotedString, css: 'string' }, // strings
{ regex: /^\s*#.*$/gm, css: 'preprocessor' }, // preprocessor tags like #region and #endregion
{ regex: new RegExp(this.getKeywords(keywords), 'gm'), css: 'keyword' } // vb keyword
];
this.forHtmlScript(SyntaxHighlighter.regexLib.aspScriptTags);
};
SyntaxHighlighter.brushes.Vb.prototype = new SyntaxHighlighter.Highlighter();
SyntaxHighlighter.brushes.Vb.aliases = ['vb', 'vbnet'];

View file

@ -0,0 +1,63 @@
/**
* SyntaxHighlighter
* http://alexgorbatchev.com/
*
* @version
* 2.0.287 (February 06 2009)
*
* @author
* Alex Gorbatchev
*
* @copyright
* Copyright (C) 2004-2009 Alex Gorbatchev.
*
* Licensed under a GNU Lesser General Public License.
* http://creativecommons.org/licenses/LGPL/2.1/
*
* SyntaxHighlighter is donationware. You are allowed to download, modify and distribute
* the source code in accordance with LGPL 2.1 license, however if you want to use
* SyntaxHighlighter on your site or include it in your product, you must donate.
* http://alexgorbatchev.com/wiki/SyntaxHighlighter:Donate
*/
SyntaxHighlighter.brushes.Xml = function()
{
function process(match, regexInfo)
{
var constructor = SyntaxHighlighter.Match,
code = match[0],
tag = new XRegExp('(&lt;|<)[\\s\\/\\?]*(?<name>[:\\w-\\.]+)', 'xg').exec(code),
result = []
;
if (match.attributes != null)
{
var attributes,
regex = new XRegExp('(?<name> [\\w:\\-\\.]+)' +
'\\s*=\\s*' +
'(?<value> ".*?"|\'.*?\'|\\w+)',
'xg');
while ((attributes = regex.exec(code)) != null)
{
result.push(new constructor(attributes.name, match.index + attributes.index, 'color1'));
result.push(new constructor(attributes.value, match.index + attributes.index + attributes[0].indexOf(attributes.value), 'string'));
}
}
if (tag != null)
result.push(
new constructor(tag.name, match.index + tag[0].indexOf(tag.name), 'keyword')
);
return result;
}
this.regexList = [
{ regex: new XRegExp('(\\&lt;|<)\\!\\[[\\w\\s]*?\\[(.|\\s)*?\\]\\](\\&gt;|>)', 'gm'), css: 'color2' }, // <![ ... [ ... ]]>
{ regex: new XRegExp('(\\&lt;|<)!--\\s*.*?\\s*--(\\&gt;|>)', 'gm'), css: 'comments' }, // <!-- ... -->
{ regex: new XRegExp('(&lt;|<)[\\s\\/\\?]*(\\w+)(?<attributes>.*?)[\\s\\/\\?]*(&gt;|>)', 'sg'), func: process }
];
};
SyntaxHighlighter.brushes.Xml.prototype = new SyntaxHighlighter.Highlighter();
SyntaxHighlighter.brushes.Xml.aliases = ['xml', 'xhtml', 'xslt', 'html', 'xhtml'];

File diff suppressed because one or more lines are too long

View file

@ -6,6 +6,7 @@
// xml handler을 이용하는 user function
var show_waiting_message = true;
var _isXmlRequested = false;
function exec_xml(module, act, params, callback_func, response_tags, callback_func_arg, fo_obj) {
var oXml = new xml_handler();
oXml.reset();
@ -18,6 +19,7 @@ function exec_xml(module, act, params, callback_func, response_tags, callback_fu
}
oXml.addParam("module", module);
oXml.addParam("act", act);
if(typeof(xeVid)!='undefined') oXml.addParam('vid', xeVid);
if(typeof(response_tags)=="undefined" || response_tags.length<1) response_tags = new Array('error','message');
@ -27,6 +29,8 @@ function exec_xml(module, act, params, callback_func, response_tags, callback_fu
// 결과 처리 후 callback_func에 넘겨줌
function xml_response_filter(oXml, callback_func, response_tags, callback_func_arg, fo_obj) {
var text = oXml.getResponseText();
if(oXml.objXmlHttp.readyState!=4) return;
_isXmlRequested = false;
if(text && !/^<response>/i.test(text)) {
var waiting_obj = xGetElementById("waitingforserverresponse");
if(waiting_obj) waiting_obj.style.visibility = "hidden";
@ -92,6 +96,8 @@ function zGetXmlHttp() {
}
function xml_handlerRequest(callBackFunc, xmlObj, callBackFunc2, response_tags, callback_func_arg, fo_obj) {
if(_isXmlRequested) return;
_isXmlRequested = true;
var rd = "";
rd += "<?xml version=\"1.0\" encoding=\"utf-8\" ?>\n"
+ "<methodCall>\n"
@ -123,13 +129,12 @@ function xml_handlerRequest(callBackFunc, xmlObj, callBackFunc2, response_tags,
}
this.objXmlHttp.onreadystatechange = function () {callBackFunc(xmlObj, callBackFunc2, response_tags, callback_func_arg, fo_obj)};
// 모든 xml데이터는 POST방식으로 전송. try-cacht문으로 오류 발생시 대처
// 모든 xml데이터는 POST방식으로 전송. try-catch문으로 오류 발생시 대처
try {
this.objXmlHttp.open("POST", this.xml_path, true);
} catch(e) {
alert(e);
_isXmlRequested = false;
return;
}
@ -429,6 +434,7 @@ $.exec_json = function(action,data,func){
}
$.extend(data,{module:action[0],act:action[1]});
if(typeof(xeVid)!='undefined') $.extend(data,{vid:xeVid});
$.ajax({
type:"POST"
,dataType:"json"

View file

@ -62,7 +62,7 @@ function XmlJsFilter(form_object, module, act, callback_user_func) {
function XmlJsFilterSetFocus(target_name) {
var obj = this.fo_obj[target_name];
if(typeof(obj)=='undefined' || !obj) return;
var length = obj.length;
try {
if(typeof(length)!='undefined') {
@ -167,23 +167,23 @@ function XmlJsFilterExecuteFilter(filter, value) {
return regx.test(value);
break;
case "homepage" :
var regx = /^(http|https|ftp|mms):\/\/[0-9a-z-]+(\.[_0-9a-z-\/\~]+)+(:[0-9]{2,4})*$/;
var regx = /^(http|https|ftp|mms):\/\/[0-9a-z-]+(\.[_0-9a-z-\/\~]+)+(:[0-9]{2,4})*$/;
return regx.test(value);
break;
case "korean" :
var regx = /^[가-힣]*$/;
var regx = /^[가-힣]*$/;
return regx.test(value);
break;
case "korean_number" :
var regx = /^[가-힣0-9]*$/;
var regx = /^[가-힣0-9]*$/;
return regx.test(value);
break;
case "alpha" :
var regx = /^[a-zA-Z]*$/;
var regx = /^[a-zA-Z]*$/;
return regx.test(value);
break;
case "alpha_number" :
var regx = /^[a-zA-Z][a-zA-Z0-9\_]*$/;
var regx = /^[a-zA-Z][a-zA-Z0-9\_]*$/;
return regx.test(value);
break;
case "number" :
@ -256,7 +256,7 @@ function XmlJsFilterCheckFieldItem() {
}
}
return true;
}
}
function XmlJsFilterGetParameterParam() {
if(!this.fo_obj) return new Array();
@ -304,35 +304,41 @@ function XmlJsFilterProc(confirm_msg) {
function procFilter(fo_obj, filter_func) {
// form문 안에 위지윅 에디터가 세팅되어 있을 경우 에디터의 값과 지정된 content field를 sync
var editor_sequence = fo_obj.getAttribute('editor_sequence');
if(typeof(editor_sequence)!='undefined' && editor_sequence && typeof(editorRelKeys)!='undefined') {
var content = editorGetContent(editor_sequence);
var dummy = xCreateElement("div");
xInnerHtml(dummy, content);
if(typeof(editor_sequence)!='undefined' && editor_sequence && typeof(editorRelKeys)!='undefined') {
// IE에서 컨텐츠 전체를 P태그로 감싸는 경우가 있어서 이 의미없는 P태그를 제거
if(dummy.firstChild && dummy.firstChild.nodeName == 'P' && dummy.firstChild == dummy.lastChild) {
var content = xInnerHtml(dummy.firstChild);
xInnerHtml(dummy,content);
}
if(jQuery.isFunction(editorRelKeys[editor_sequence]['pasteHTML'])){
var content = editorGetContent(editor_sequence);
editorRelKeys[editor_sequence]['content'].value = content;
}else{
var content = editorGetContent(editor_sequence);
var dummy = xCreateElement("div");
xInnerHtml(dummy, content);
// img/a 태그의 대상에 대해 경로 재설정 (IE브라우저에서 위지윅 에디터내의 경로를 절대 경로로 바꾸는 버그때문ㅇ)
var imgTags = xGetElementsByTagName('IMG', dummy);
for(var i=0;i<imgTags.length;i++) {
if(imgTags[i].src.indexOf(request_uri)!=-1) {
imgTags[i].src = imgTags[i].src.replace(/(.*)files\/(.*)/i,'files/$2');
// IE에서 컨텐츠 전체를 P태그로 감싸는 경우가 있어서 이 의미없는 P태그를 제거
if(dummy.firstChild && dummy.firstChild.nodeName == 'P' && dummy.firstChild == dummy.lastChild) {
var content = xInnerHtml(dummy.firstChild);
xInnerHtml(dummy,content);
}
}
var aTags = xGetElementsByTagName('A', dummy);
for(var i=0;i<aTags.length;i++) {
if(aTags[i].href.indexOf(request_uri)!=-1) {
aTags[i].href = aTags[i].href.replace(/(.*)\?module=file&(.*)/i,'./?module=file&$2');
// img/a 태그의 대상에 대해 경로 재설정 (IE브라우저에서 위지윅 에디터내의 경로를 절대 경로로 바꾸는 버그때문ㅇ)
var imgTags = xGetElementsByTagName('IMG', dummy);
for(var i=0;i<imgTags.length;i++) {
if(imgTags[i].src.indexOf(request_uri)!=-1) {
imgTags[i].src = imgTags[i].src.replace(/(.*)files\/(.*)/i,'files/$2');
}
}
var aTags = xGetElementsByTagName('A', dummy);
for(var i=0;i<aTags.length;i++) {
if(aTags[i].href.indexOf(request_uri)!=-1) {
aTags[i].href = aTags[i].href.replace(/(.*)\?module=file&(.*)/i,'./?module=file&$2');
}
}
var content = xInnerHtml(dummy);
editorRelKeys[editor_sequence]['content'].value = content;
}
var content = xInnerHtml(dummy);
editorRelKeys[editor_sequence]['content'].value = content;
}
filter_func(fo_obj);
return false;
}
}

View file

@ -24,6 +24,9 @@
$lang->cmd_load = 'Load';
$lang->cmd_input = 'Input';
$lang->cmd_search = 'Search';
$lang->cmd_find = 'Find';
$lang->cmd_replace = 'Replace';
$lang->cmd_confirm = 'Confirm';
$lang->cmd_cancel = 'Cancel';
$lang->cmd_back = 'Go Back';
$lang->cmd_vote = 'Recommend';
@ -75,7 +78,7 @@
$lang->secret = 'Secret';
$lang->category = $lang->category_srl = 'Category';
$lang->none_category = 'None category';
$lang->none_image = '이미지 없음';
$lang->none_image = 'Image does not exist';
$lang->document_srl = 'Doc. No.';
$lang->user_id = 'User ID';
$lang->author = 'Developer';
@ -121,6 +124,7 @@
$lang->file = 'file';
$lang->mid = 'Module Name';
$lang->sid = 'Site Name';
$lang->layout = 'Layout';
$lang->widget = 'Widget';
$lang->module = 'Module';
@ -267,8 +271,9 @@
$lang->default_value = 'Default Value';
$lang->is_active = 'Active';
$lang->is_required = 'Required Field';
$lang->eid = 'Name of extra variable';
// ftp 관련
// ftp-related
$lang->ftp_form_title = 'Input FTP account information';
$lang->ftp = 'FTP';
$lang->ftp_port = 'FTP port';

View file

@ -24,6 +24,9 @@
$lang->cmd_load = 'Carga';
$lang->cmd_input = 'Ingresar';
$lang->cmd_search = 'Buscar';
$lang->cmd_find = '찾기';
$lang->cmd_replace = '바꾸기';
$lang->cmd_confirm = '확인';
$lang->cmd_cancel = 'Cancelar';
$lang->cmd_back = 'Atrás';
$lang->cmd_vote = 'a Favor';
@ -120,6 +123,7 @@
$lang->file = 'file';
$lang->mid = 'ID del Módulo';
$lang->sid = 'Site Name';
$lang->layout = 'Composición';
$lang->widget = 'Widget';
$lang->module = 'Módulo';
@ -273,6 +277,7 @@
$lang->default_value = 'Valor por defecto';
$lang->is_active = 'Activado';
$lang->is_required = 'Requerido';
$lang->eid = '확장변수 이름';
// ftp 관련
$lang->ftp_form_title = 'Datos de conexión para FTP';

View file

@ -24,6 +24,9 @@
$lang->cmd_load = 'Charger';
$lang->cmd_input = 'Entrer';
$lang->cmd_search = 'Rechercher';
$lang->cmd_find = '찾기';
$lang->cmd_replace = '바꾸기';
$lang->cmd_confirm = '확인';
$lang->cmd_cancel = 'Annuler';
$lang->cmd_back = 'Retourner';
$lang->cmd_vote = 'Recommander';
@ -121,6 +124,7 @@
$lang->file = 'file';
$lang->mid = 'Nom';
$lang->sid = 'Site Name';
$lang->layout = 'Mise en Page';
$lang->widget = 'Gadget';
$lang->module = 'Module';
@ -267,6 +271,7 @@
$lang->default_value = 'Valeur par défaut';
$lang->is_active = 'Actif';
$lang->is_required = 'Item essentielle';
$lang->eid = '확장변수 이름';
// ftp 관련
$lang->ftp_form_title = 'FTP 정보 입력';

View file

@ -24,6 +24,9 @@
$lang->cmd_load = 'Laden';
$lang->cmd_input = 'Input';
$lang->cmd_search = 'Suche';
$lang->cmd_find = '찾기';
$lang->cmd_replace = '바꾸기';
$lang->cmd_confirm = '확인';
$lang->cmd_cancel = 'Abbrechen';
$lang->cmd_back = 'Zurück';
$lang->cmd_vote = 'Weiterempfehlen';
@ -121,6 +124,7 @@
$lang->file = 'file';
$lang->mid = 'Module Name';
$lang->sid = 'Site Name';
$lang->layout = 'Layout';
$lang->widget = 'Widget';
$lang->module = 'Modul';
@ -267,6 +271,7 @@
$lang->default_value = 'Standardwert';
$lang->is_active = 'Aktiv';
$lang->is_required = 'Pflichtfeld';
$lang->eid = '확장변수 이름';
// ftp 관련
$lang->ftp_form_title = 'FTP 정보 입력';

View file

@ -24,6 +24,9 @@
$lang->cmd_load = '読み込む';
$lang->cmd_input = '入力';
$lang->cmd_search = '検索';
$lang->cmd_find = '検索';
$lang->cmd_replace = '置換';
$lang->cmd_confirm = '確認';
$lang->cmd_cancel = '取り消し';
$lang->cmd_back = '戻る';
$lang->cmd_vote = '推薦';
@ -121,6 +124,7 @@
$lang->file = 'ファイル';
$lang->mid = 'モジュール名';
$lang->sid = 'Site Name';
$lang->layout = 'レイアウト';
$lang->widget = 'ウィジェット';
$lang->module = 'モジュール';
@ -201,16 +205,16 @@
);
// 説明関連
$lang->about_tag = 'タグを入力する時、「,」(半角コンマ)を使うと複数登録できます。';
$lang->about_layout = 'レイアウトでモジュールの枠をデザインします。上段のレイアウトメニューで管理できます。';
$lang->about_tag = 'タグを入力する時、「,」(半角コンマ)を使うと複数登録出来ます。';
$lang->about_layout = 'レイアウトでモジュールの枠をデザインします。上段のレイアウトメニューで管理出来ます。';
// メッセージ関連
$lang->msg_call_server = 'サーバへ問合わせ中です。しばらくお待ちください。';
$lang->msg_call_server = 'サーバへ問合わせ中です。しばらくお待ちさい。';
$lang->msg_db_not_setted = 'DBが設定されていません。';
$lang->msg_dbconnect_failed = "データベースアクセスにエラーが発生しました。\nデータベースの情報をもう一度確認してください。";
$lang->msg_dbconnect_failed = "データベースアクセスにエラーが発生しました。\nデータベースの情報をもう一度確認してさい。";
$lang->msg_invalid_queryid = 'クエリIDの値が無効です。';
$lang->msg_not_permitted = '権限がありません。';
$lang->msg_input_password = 'パスワードを入力してください。';
$lang->msg_input_password = 'パスワードを入力してさい。';
$lang->msg_invalid_document = '無効な書き込み番号です。';
$lang->msg_invalid_request = '無効なリクエストです。';
$lang->msg_invalid_password = 'パスワードが正しくありません。';
@ -226,6 +230,7 @@
$lang->success_declared = '通報しました。';
$lang->success_updated = '修正しました。';
$lang->success_deleted = '削除しました。';
$lang->success_restore = '復元しました。';
$lang->success_voted = '推薦しました。';
$lang->success_blamed = '非推薦しました。';
$lang->success_moved = '移動しました。';
@ -237,15 +242,16 @@
$lang->fail_to_delete = '削除に失敗しました。';
$lang->fail_to_move = '移動に失敗しました。';
$lang->failed_voted = '推薦できません。';
$lang->failed_blamed = '非推薦できません。';
$lang->failed_declared = '通報できません。';
$lang->fail_to_delete_have_children = '返信の書き込みがあり、削除できません。';
$lang->failed_voted = '推薦出来ません。';
$lang->failed_blamed = '非推薦出来ません。';
$lang->failed_declared = '通報出来ません。';
$lang->fail_to_delete_have_children = '返信の書き込みがあり、削除出来ません。';
$lang->confirm_submit = '登録しますか?';
$lang->confirm_logout = 'ログアウトしますか?';
$lang->confirm_vote = '推薦しますか?';
$lang->confirm_delete = '削除しますか?';
$lang->confirm_restore = '復元しますか?';
$lang->confirm_move = '移動しますか?';
$lang->confirm_reset = '初期化しますか?';
$lang->confirm_leave = '退会しますか?';
@ -258,7 +264,7 @@
$lang->column_type_list['textarea'] = 'テキストエリア(textarea)';
$lang->column_type_list['checkbox'] = 'チェックボックス(checkbox)';
$lang->column_type_list['select'] = '選択(select)';
$lang->column_type_list['radio'] = 'radio button (radio)';
$lang->column_type_list['radio'] = 'ラジオボタン (radio)';
$lang->column_type_list['kr_zip'] = '韓国住所(zip)';
$lang->column_type_list['date'] = '日付(年月日)';
//$lang->column_type_list['jp_zip'] = '日本住所(zip)';
@ -267,6 +273,7 @@
$lang->default_value = 'デフォルト値';
$lang->is_active = '活性化';
$lang->is_required = '必須項目';
$lang->eid = '拡張変数名';
// ftp 관련
$lang->ftp_form_title = 'サーバーのFTP情報の入力';
@ -284,8 +291,8 @@
$lang->msg_safe_mode_ftp_needed = "PHPのsafe_modeがOnの場合、FTP情報を登録することで、XEのインストール及び利用が可能になります。";
$lang->msg_ftp_not_connected = "localhostへのFTP接続エラーが発生しました。FTPポート(port)番号をはじめ、FTPサービスが可能であるかをご確認下さい。";
$lang->msg_ftp_invalid_auth_info = "ログインが失敗しました。 FTP情報を再度ご確認下さい。";
$lang->msg_ftp_mkdir_fail = "FTPを用いたディレクトリ生成に失敗しました。FTPサーバーの設定を再度ご確認ください。";
$lang->msg_ftp_chmod_fail = "FTPを用いたディレクトリパーミッション(permission)変更に失敗しました。FTPサーバーの設定を再度ご確認ください。";
$lang->msg_ftp_mkdir_fail = "FTPを用いたディレクトリ生成に失敗しました。FTPサーバーの設定を再度ご確認さい。";
$lang->msg_ftp_chmod_fail = "FTPを用いたディレクトリパーミッション(permission)変更に失敗しました。FTPサーバーの設定を再度ご確認さい。";
$lang->msg_ftp_connect_success = "FTP接続に成功しました。";
// xml filterで用いられているjavascript用のアラートメッセージ
@ -293,7 +300,7 @@
$lang->filter->outofrange = '%sの文字の長さを合わせて下さい。';
$lang->filter->equalto = '%sが正しくありません。';
$lang->filter->invalid_email = '%sのパターンが正しくありません。 (例: zbxe@zeroboard.com)';
$lang->filter->invalid_user_id = $lang->filter->invalid_userid = "%sの形式が正しくありません。\\n半角の英数と記号「_」を組み合わせて入力してください。頭字は半角英文字でなければなりません。";
$lang->filter->invalid_user_id = $lang->filter->invalid_userid = "%sの形式が正しくありません。\\n半角の英数と記号「_」を組み合わせて入力してさい。頭字は半角英文字でなければなりません。";
$lang->filter->invalid_homepage = '%sの形式が正しくありません。 (例: http://www.zeroboard.com)';
$lang->filter->invalid_korean = '%sの形式が正しくありません。ハングルのみ入力して下さい。';
$lang->filter->invalid_korean_number = '%sの形式が正しくありません。ハングルと半角数字で入力して下さい。';

View file

@ -24,6 +24,9 @@
$lang->cmd_load = '불러오기';
$lang->cmd_input = '입력';
$lang->cmd_search = '검색';
$lang->cmd_find = '찾기';
$lang->cmd_replace = '바꾸기';
$lang->cmd_confirm = '확인';
$lang->cmd_cancel = '취소';
$lang->cmd_back = '돌아가기';
$lang->cmd_vote = '추천';
@ -121,6 +124,7 @@
$lang->file = '파일';
$lang->mid = '모듈이름';
$lang->sid = '가상 사이트 이름';
$lang->layout = '레이아웃';
$lang->widget = '위젯 ';
$lang->module = '모듈';
@ -226,6 +230,7 @@
$lang->success_declared = '신고되었습니다';
$lang->success_updated = '수정되었습니다';
$lang->success_deleted = '삭제되었습니다';
$lang->success_restore = '복원되었습니다';
$lang->success_voted = '추천되었습니다';
$lang->success_blamed = '비추천되었습니다';
$lang->success_moved = '이동되었습니다';
@ -246,6 +251,7 @@
$lang->confirm_logout = '로그아웃하시겠습니까?';
$lang->confirm_vote = '추천하시겠습니까?';
$lang->confirm_delete = '삭제하시겠습니까?';
$lang->confirm_restore = '복원하시겠습니까?';
$lang->confirm_move = '이동하시겠습니까?';
$lang->confirm_reset = '초기화 하시겠습니까??';
$lang->confirm_leave = '탈퇴 하시겠습니까??';
@ -267,6 +273,7 @@
$lang->default_value = '기본 값';
$lang->is_active = '활성';
$lang->is_required = '필수항목';
$lang->eid = '확장변수 이름';
// ftp 관련
$lang->ftp_form_title = 'FTP 정보 입력';

View file

@ -24,6 +24,9 @@
$lang->cmd_load = 'Загрузить';
$lang->cmd_input = 'Ввести';
$lang->cmd_search = 'Искать';
$lang->cmd_find = '찾기';
$lang->cmd_replace = '바꾸기';
$lang->cmd_confirm = '확인';
$lang->cmd_cancel = 'Отменить';
$lang->cmd_back = 'Вернуться';
$lang->cmd_vote = 'Рекомендовать';
@ -119,6 +122,7 @@
$lang->order_desc = 'спустится';
$lang->mid = 'Имя Модуля';
$lang->sid = 'Site Name';
$lang->layout = 'Лейаут';
$lang->widget = 'Виджет';
$lang->module = 'Модуль';
@ -286,6 +290,7 @@
$lang->is_active = 'Активно';
$lang->is_required = 'Требуемое поле';
$lang->eid = '확장변수 이름';
// Alert-сообщения для Javascript используя XML filter
$lang->filter->isnull = 'Пожалуйста, введите значение для %s';

View file

@ -24,6 +24,9 @@
$lang->cmd_load = '导入';
$lang->cmd_input = '输入';
$lang->cmd_search = '搜索';
$lang->cmd_find = '찾기';
$lang->cmd_replace = '바꾸기';
$lang->cmd_confirm = '확인';
$lang->cmd_cancel = '取消';
$lang->cmd_back = '返回';
$lang->cmd_vote = '推荐';
@ -121,6 +124,7 @@
$lang->file = '文件';
$lang->mid = '模块名称';
$lang->sid = 'Site Name';
$lang->layout = '布局';
$lang->widget = '控件 ';
$lang->module = '模块';
@ -267,9 +271,10 @@
$lang->default_value = '缺省值';
$lang->is_active = '激活';
$lang->is_required = '必填';
$lang->eid = '확장변수 이름';
// ftp 相关
$lang->ftp_form_title = '输入FTP信息';
$lang->ftp_form_title = '设置FTP信息';
$lang->ftp = 'FTP';
$lang->ftp_port = 'FTP port';
$lang->cmd_check_ftp_connect = '测试FTP连接';

View file

@ -24,6 +24,9 @@
$lang->cmd_load = '讀取';
$lang->cmd_input = '輸入';
$lang->cmd_search = '搜尋';
$lang->cmd_find = '찾기';
$lang->cmd_replace = '바꾸기';
$lang->cmd_confirm = '확인';
$lang->cmd_cancel = '取消';
$lang->cmd_back = '返回';
$lang->cmd_vote = '推薦';
@ -121,6 +124,7 @@
$lang->file = '檔案';
$lang->mid = '模組名稱';
$lang->sid = 'Site Name';
$lang->layout = '版面';
$lang->widget = '控件 ';
$lang->module = '模組';
@ -205,9 +209,9 @@
$lang->about_layout = '版面設計是佈置網站的外觀模組,在上端版面選單中,可以進行管理';
// 訊息
$lang->msg_call_server = '系統正在連結服務器,請稍後。';
$lang->msg_call_server = '系統正在連接伺服器,請稍後。';
$lang->msg_db_not_setted = '還沒有設定資料庫';
$lang->msg_dbconnect_failed = "連接資料庫時發生錯誤。\n請重新確認資料庫資訊。";
$lang->msg_dbconnect_failed = '連接資料庫時發生錯誤。\n請重新確認資料庫資訊。';
$lang->msg_invalid_queryid = 'Query ID值指定錯誤';
$lang->msg_not_permitted = '沒有權限';
$lang->msg_input_password = '請輸入密碼';
@ -226,6 +230,7 @@
$lang->success_declared = '檢舉成功!';
$lang->success_updated = '修改成功!';
$lang->success_deleted = '刪除成功!';
$lang->success_restore = '成功還原!';
$lang->success_voted = '推薦成功!';
$lang->success_blamed = '反對成功!';
$lang->success_moved = '移動成功!';
@ -267,6 +272,7 @@
$lang->default_value = '預設值';
$lang->is_active = '啟動';
$lang->is_required = '必填';
$lang->eid = '延伸變數名稱';
// 關於FTP
$lang->ftp_form_title = '輸入FTP資訊';
@ -293,7 +299,7 @@
$lang->filter->outofrange = '請確認%s字數';
$lang->filter->equalto = '%s值有誤。';
$lang->filter->invalid_email = '%s格式有誤。(例zbxe@zeroboard.com)';
$lang->filter->invalid_user_id = $lang->filter->invalid_userid = "%s只能用英文數字和 _第一個字母必須是英文。";
$lang->filter->invalid_user_id = $lang->filter->invalid_userid = "%s只能用英文數字和 _開頭必須是英文。";
$lang->filter->invalid_homepage = '%s格式有誤。(例: http://www.zeroboard.com)';
$lang->filter->invalid_korean = '%s只能輸入中文';
$lang->filter->invalid_korean_number = '%s只能輸入中文或數字';

View file

@ -43,7 +43,7 @@
<!--@if($rss_url)-->
<link rel="alternate" type="application/rss+xml" title="RSS 2.0" href="{$rss_url}" />
<link rel="alternate" type="application/atom+xml" title="Atom 1.0" href="{$atom_url}" />
<!--@elseif($site_module_info->mid == $mid)-->
<!--@elseif(Context::isInstalled() && $site_module_info->mid == $mid)-->
<link rel="alternate" type="application/rss+xml" title="RSS 2.0" href="{getUrl('','module','rss','act','rss')}" />
<link rel="alternate" type="application/atom+xml" title="Atom 1.0" href="{getUrl('','module','rss','act','atom')}" />
<!--@end-->
@ -52,6 +52,7 @@
<script type="text/javascript">//<![CDATA[
var current_url = "{$current_url}";
var request_uri = "{$request_uri}";
<!--@if($vid)-->var xeVid = "{$vid}";<!--@end-->
var current_mid = "{$mid}";
var waiting_message = "{$lang->msg_call_server}";
var ssl_actions = new Array(<!--@if(count($ssl_actions))-->"{implode('","',$ssl_actions)}"<!--@end-->);

View file

@ -13,7 +13,7 @@
* @brief XE의 전체 버전 표기
* 파일의 수정이 없더라도 공식 릴리즈시에 수정되어 함께 배포되어야
**/
define('__ZBXE_VERSION__', '1.2.0');
define('__ZBXE_VERSION__', '1.2.1');
/**
* @brief zbXE가 설치된 장소의 base path를 구함
@ -31,6 +31,8 @@
* define('__DEBUG_DB_OUTPUT__', 0);
* define('__LOG_SLOW_QUERY__', 0);
* define('__OB_GZHANDLER_ENABLE__', 1);
*
* define('__PROXY_SERVER__', 'http://domain:port/path');
* ?>
*/
if(file_exists(_XE_PATH_.'config/config.user.inc.php')) {
@ -85,6 +87,12 @@
**/
if(!defined('__OB_GZHANDLER_ENABLE__')) define('__OB_GZHANDLER_ENABLE__', 1);
/**
* @brief __PROXY_SERVER__ 대상 서버를 거쳐서 외부 요청을 하도록 하는 서버의 정보를 가지고 있음
* FileHandler::getRemoteResource 에서 상수를 사용함
**/
if(!defined('__PROXY_SERVER__')) define('__PROXY_SERVER__', null);
/**
* @brief Firebug 콘솔 출력 사용시 관련 파일 require
**/

View file

@ -238,6 +238,13 @@
return Context::getUrl($num_args, $args_list, $domain);
}
/**
* @brief 가상사이트의 Domain이 url형식인지 site id인지 return
**/
function isSiteID($domain) {
return preg_match('/^([a-z0-9\_]+)$/i', $domain);
}
/**
* @brief 주어진 문자를 주어진 크기로 자르고 잘라졌을 경우 주어진 꼬리를
* @param string 자를 문자열
@ -562,7 +569,7 @@
$tag = strtolower(trim($matches[1]));
$buff = trim(preg_replace('/(\/>|>)/','/>',$matches[0]));
$buff = str_replace(array('&amp;','&'),array('&amp;','&amp;'),$buff);
$buff = str_replace(array('&','&amp;'),array('&amp;','&amp;'),$buff);
$buff = preg_replace_callback('/([^=^"^ ]*)=([^ ^>]*)/i', fixQuotation, $buff);
$oXmlParser = new XmlParser();

View file

@ -1,4 +1,4 @@
<?php
<?php
/**
* @file index.php
* @author zero <zero@zeroboard.com>
@ -12,7 +12,7 @@
* XE 오픈 프로젝트로 개발되는 오픈 소스입니다.\n
* 자세한 내용은 아래 링크를 참조하세요.
* - 공식홈페이지 : http://www.xpressengine.com
* - SVN Repository : http://svn.xpressengine.com/trunk
* - SVN Repository : http://svn.xpressengine.com/XpressEngine/trunk
* \n
* "XpressEngine (XE)" 자유 소프트웨어입니다. \n
* 소프트웨어의 피양도자는 자유 소프트웨어 재단이 공표한 GNU 일반 공중 사용 허가서 2 또는 \n
@ -48,7 +48,6 @@
* @brief SSO 인증 확인이 불필요할때 모듈 동작
**/
if($oContext->checkSSO()) {
/**
* @brief ModuleHandler 객체를 생성/ 실행
*
@ -63,8 +62,6 @@
$oModule = &$oModuleHandler->procModule();
$oModuleHandler->displayContent($oModule);
}
}
$oContext->close();
?>

View file

@ -1,17 +1,21 @@
<?xml version="1.0" encoding="UTF-8"?>
<layout version="0.2">
<title xml:lang="ko">XE Cafe 공식 레이아웃</title>
<title xml:lang="zh-CN">官方站点模块布局</title>
<title xml:lang="zh-CN">站点模块官方布局</title>
<title xml:lang="zh-TW">虛擬網站官網版面</title>
<title xml:lang="jp">XE Cafe公式レイアウト</title>
<description xml:lang="ko">
XE Cafe 공식 레이아웃입니다.
</description>
<description xml:lang="zh-CN">
官方站点模块布局。
站点模块官方布局。
</description>
<description xml:lang="zh-TW">
虛擬網站官網版面。
</description>
<description xml:lang="jp">
XE Cafeの公式レイアウトです。
</description>
<version>0.1</version>
<date>2009-02-09</date>
<link>http://www.xpressengine.com</link>
@ -20,91 +24,112 @@
<name xml:lang="ko">XpressEngine</name>
<name xml:lang="zh-CN">XpressEngine</name>
<name xml:lang="zh-TW">XpressEngine</name>
<name xml:lang="jp">XpressEngine</name>
</author>
<extra_vars>
<group>
<title xml:lang="ko">기본 설정</title>
<title xml:lang="zh-CN">常规选项</title>
<title xml:lang="zh-TW">預設</title>
<title xml:lang="jp">基本設定</title>
<var name="colorset" type="select">
<title xml:lang="ko">컬러셋</title>
<title xml:lang="zh-CN">颜色</title>
<title xml:lang="zh-TW">顏色設定</title>
<title xml:lang="jp">カラーセット</title>
<description xml:lang="ko">원하시는 컬러셋을 선택해주세요.</description>
<description xml:lang="zh-CN">请选择颜色。</description>
<description xml:lang="zh-TW">請選擇顏色。</description>
<description xml:lang="jp">カラーセットを選択して下さい。</description>
<options value="white">
<title xml:lang="ko">하얀색</title>
<title xml:lang="zh-CN">白色</title>
<title xml:lang="zh-TW">白色</title>
<title xml:lang="jp"></title>
</options>
<options value="black">
<title xml:lang="ko">검은색</title>
<title xml:lang="zh-CN">黑色</title>
<title xml:lang="zh-TW">黑色</title>
<title xml:lang="jp"></title>
</options>
</var>
<var name="index_url" type="text">
<title xml:lang="ko">홈 페이지 URL</title>
<title xml:lang="zh-CN">站点地址</title>
<title xml:lang="zh-TW">主頁網址</title>
<title xml:lang="jp">ホームページのURL</title>
<description xml:lang="ko">로고를 클릭시에 이동할 홈 페이지 URL을 입력해 주세요.</description>
<description xml:lang="zh-CN">点击LOGO时要移动的页面地址。</description>
<description xml:lang="zh-TW">請輸入當用戶按了網站Logo後要前往的頁面網址。</description>
<description xml:lang="jp">ロゴをクリックする際、移動するホームページURLを入力して下さい。</description>
</var>
<var name="logo_text" type="text">
<title xml:lang="ko">로고 글자</title>
<title xml:lang="zh-CN">站点标题</title>
<title xml:lang="zh-TW">Logo文字</title>
<title xml:lang="jp">ロゴ用テキスト</title>
<description xml:lang="ko">좌측 상단의 로고 부분에 글자를 지정할 수 있습니다. 로고 이미지가 있으면 로고 이미지의 caption으로 표시됩니다.</description>
<description xml:lang="zh-CN">将显示在您的站点左侧头部如你已上传lOGO图片此标题将变成LOGO图片的caption。</description>
<description xml:lang="zh-TW">將顯示在虛擬網站的左上方如果有上傳過Logo圖片將會以圖片顯示。</description>
<description xml:lang="jp">左上段のロゴ部分に文章を指定します。ロゴイメージがある場合は、ロゴイメージのキャプションとして表示します。</description>
</var>
<var name="logo_image" type="image">
<title xml:lang="ko">로고이미지</title>
<title xml:lang="zh-CN">LOGO图片</title>
<title xml:lang="zh-TW">Logo圖片</title>
<title xml:lang="jp">ロゴイメージ</title>
<description xml:lang="ko">레이아웃의 상단에 표시될 로고이미지를 입력하세요.</description>
<description xml:lang="zh-CN">上传LOGO图片。</description>
<description xml:lang="zh-TW">請輸入要顯示在版面上端的Logo圖片。(適當高度為23px的透明圖片。)</description>
<description xml:lang="jp">レイアウト上段に表示するロゴイメージを入力して下さい。</description>
</var>
<var name="logo_background_image" type="image">
<title xml:lang="ko">로고 배경 이미지</title>
<title xml:lang="zh-CN">布局头部背景图片</title>
<title xml:lang="zh-TW">Logo背景圖片</title>
<title xml:lang="jp">ロゴ背景イメージ</title>
<description xml:lang="ko">로고가 있는 상단 영역의 배경 이미지를 적용하시려면 이미지를 등록해주세요.</description>
<description xml:lang="zh-CN">上传LOGO所在位头部背景图片。</description>
<description xml:lang="zh-TW">請在這裡上傳想要使用的背景圖片。</description>
<description xml:lang="jp">ロゴがある上段領域の背景イメージを登録します。</description>
</var>
<var name="content_background_image" type="image">
<title xml:lang="ko">내용 배경 이미지</title>
<title xml:lang="zh-CN">内容区背景图片</title>
<title xml:lang="zh-TW">內容背景圖片</title>
<title xml:lang="jp">内容の背景イメージ</title>
<description xml:lang="ko">내용이 있는 영역의 배경 이미지를 사용하시려면 이미지를 등록해주세요.</description>
<description xml:lang="zh-CN">上传内容区背景图片。</description>
<description xml:lang="zh-TW">請在這裡上傳想要使用的背景圖片。</description>
<description xml:lang="jp">内容がある領域の背景イメージを使う場合、イメージを登録して下さい。</description>
</var>
</group>
<group>
<title xml:lang="ko">모양 설정</title>
<title xml:lang="zh-CN">样式设置</title>
<title xml:lang="zh-TW">外觀設定</title>
<title xml:lang="jp">外観設定</title>
<var name="content_position" type="select">
<title xml:lang="ko">본문 위치</title>
<title xml:lang="zh-CN">内容区位置</title>
<title xml:lang="zh-TW">選擇位置</title>
<title xml:lang="jp">本文位置</title>
<description xml:lang="ko">본문의 위치를 좌/우중 선택할 수 있습니다.</description>
<description xml:lang="zh-CN">可以设置内容区的位置(左侧/右侧)。</description>
<description xml:lang="zh-TW">內容區域可選擇靠左側或右側。</description>
<description xml:lang="jp">本文の位置を左/右の中、選択します。</description>
<options value="left">
<title xml:lang="ko">왼쪽</title>
<title xml:lang="zh-CN">左侧</title>
<title xml:lang="zh-TW">左側</title>
<title xml:lang="jp">左側</title>
</options>
<options value="right">
<title xml:lang="ko">오른쪽</title>
<title xml:lang="zh-CN">右侧</title>
<title xml:lang="zh-TW">右側</title>
<title xml:lang="jp">右側</title>
</options>
</var>
</group>
@ -116,6 +141,7 @@
<title xml:lang="ko">메인 메뉴</title>
<title xml:lang="zh-CN">主菜单</title>
<title xml:lang="zh-TW">主選單</title>
<title xml:lang="jp">メインメニュー</title>
</menu>
</menus>
</layout>

View file

@ -96,9 +96,9 @@ dl.widgetDivider dd{ display:none; margin:0;}
.widgetDlistA dd{ clear:right; white-space:nowrap; font-family:Tahoma;}
/* widgetGalleryA */
.widgetGalleryA{ position:relative; margin:0; padding:0; font-size:12px; line-height:1.5; *zoom:1;}
.widgetGalleryA{ position:relative; margin:0; padding:0; font-size:12px; line-height:1.5; *zoom:1; _margin-right:-100%;}
.widgetGalleryA:after{ content:""; display:block; clear:both;}
.widgetGalleryA li { float:left; overflow:hidden; width:100px; margin-right:28px; margin-bottom:15px; padding-bottom:15px; white-space:nowrap; list-style:none;}
.widgetGalleryA li { float:left; overflow:hidden; width:100px; margin-right:28px; margin-bottom:15px; padding-bottom:0; white-space:nowrap; list-style:none;}
.widgetGalleryA li.clearRight{ margin-right:0;}
.widgetGalleryA li .thumb{ display:block; position:relative; width:100px; height:75px; margin-bottom:10px; overflow:hidden; text-decoration:none;}
.widgetGalleryA li .thumb img{ display:block; position:relative; width:100%;}
@ -248,7 +248,7 @@ dl.widgetDivider dd{ display:none; margin:0;}
/* widgetThumb */
.widgetThumb{ position:relative; margin:0; text-align:center; font-size:12px; line-height:1.5;}
.widgetThumb .thumb{ display:block; margin-bottom:5px; position:relative; *zoom:1; text-decoration:none;}
.widgetThumb .thumb{ display:block; margin-bottom:5px; position:relative; *zoom:1; text-decoration:none; _float:left;}
.widgetThumb .thumb img{ display:block; width:100%;}
.widgetThumb .thumb .imgNone{ display:block; position:relative; width:100%; padding-top:30px; padding-bottom:50px; background:#eee; text-align:center; cursor:pointer; color:#000;}
.widgetThumb .thumb .category{ display:block; position:absolute; width:100%; bottom:0; left:0; padding:2px 0 0 0 !important; cursor:pointer; text-align:center; font-weight:normal; background:#000; color:#fff; opacity:0.6; filter:alpha(opacity=60); -ms-filter:alpha('opacity=60'); }
@ -497,38 +497,6 @@ address.period { font-style:normal; font-size:10px; font-family:tahoma; text-ali
.widgetContainer .widgetTree ul li button{ background:url(../img/white/buttonTreeCollapse.gif) no-repeat;}
.widgetContainer .widgetTree ul li.nav_tree_last{ background:url(../img/white/lineTreeLastHr.gif) no-repeat 0 5px !important;}
/* widgetLevel */
.widgetContainer .widgetLevel.num0 { background-image:url(http://www.zeroboard.com/modules/point/icons/default/0.gif);}
.widgetContainer .widgetLevel.num1 { background-image:url(http://www.zeroboard.com/modules/point/icons/default/1.gif);}
.widgetContainer .widgetLevel.num2 { background-image:url(http://www.zeroboard.com/modules/point/icons/default/2.gif);}
.widgetContainer .widgetLevel.num3 { background-image:url(http://www.zeroboard.com/modules/point/icons/default/3.gif);}
.widgetContainer .widgetLevel.num4 { background-image:url(http://www.zeroboard.com/modules/point/icons/default/4.gif);}
.widgetContainer .widgetLevel.num5 { background-image:url(http://www.zeroboard.com/modules/point/icons/default/5.gif);}
.widgetContainer .widgetLevel.num6 { background-image:url(http://www.zeroboard.com/modules/point/icons/default/6.gif);}
.widgetContainer .widgetLevel.num7 { background-image:url(http://www.zeroboard.com/modules/point/icons/default/7.gif);}
.widgetContainer .widgetLevel.num8 { background-image:url(http://www.zeroboard.com/modules/point/icons/default/8.gif);}
.widgetContainer .widgetLevel.num9 { background-image:url(http://www.zeroboard.com/modules/point/icons/default/9.gif);}
.widgetContainer .widgetLevel.num10 { background-image:url(http://www.zeroboard.com/modules/point/icons/default/10.gif);}
.widgetContainer .widgetLevel.num11 { background-image:url(http://www.zeroboard.com/modules/point/icons/default/11.gif);}
.widgetContainer .widgetLevel.num12 { background-image:url(http://www.zeroboard.com/modules/point/icons/default/12.gif);}
.widgetContainer .widgetLevel.num13 { background-image:url(http://www.zeroboard.com/modules/point/icons/default/13.gif);}
.widgetContainer .widgetLevel.num14 { background-image:url(http://www.zeroboard.com/modules/point/icons/default/14.gif);}
.widgetContainer .widgetLevel.num15 { background-image:url(http://www.zeroboard.com/modules/point/icons/default/15.gif);}
.widgetContainer .widgetLevel.num16 { background-image:url(http://www.zeroboard.com/modules/point/icons/default/16.gif);}
.widgetContainer .widgetLevel.num17 { background-image:url(http://www.zeroboard.com/modules/point/icons/default/17.gif);}
.widgetContainer .widgetLevel.num18 { background-image:url(http://www.zeroboard.com/modules/point/icons/default/18.gif);}
.widgetContainer .widgetLevel.num19 { background-image:url(http://www.zeroboard.com/modules/point/icons/default/19.gif);}
.widgetContainer .widgetLevel.num20 { background-image:url(http://www.zeroboard.com/modules/point/icons/default/20.gif);}
.widgetContainer .widgetLevel.num21 { background-image:url(http://www.zeroboard.com/modules/point/icons/default/21.gif);}
.widgetContainer .widgetLevel.num22 { background-image:url(http://www.zeroboard.com/modules/point/icons/default/22.gif);}
.widgetContainer .widgetLevel.num23 { background-image:url(http://www.zeroboard.com/modules/point/icons/default/23.gif);}
.widgetContainer .widgetLevel.num24 { background-image:url(http://www.zeroboard.com/modules/point/icons/default/24.gif);}
.widgetContainer .widgetLevel.num25 { background-image:url(http://www.zeroboard.com/modules/point/icons/default/25.gif);}
.widgetContainer .widgetLevel.num26 { background-image:url(http://www.zeroboard.com/modules/point/icons/default/26.gif);}
.widgetContainer .widgetLevel.num27 { background-image:url(http://www.zeroboard.com/modules/point/icons/default/27.gif);}
.widgetContainer .widgetLevel.num28 { background-image:url(http://www.zeroboard.com/modules/point/icons/default/28.gif);}
.widgetContainer .widgetLevel.num29 { background-image:url(http://www.zeroboard.com/modules/point/icons/default/29.gif);}
.widgetContainer .widgetLevel.num30 { background-image:url(http://www.zeroboard.com/modules/point/icons/default/30.gif);}
/* widgetTabA */
.widgetContainer .widgetTabA{ border-color:#666;}
@ -773,38 +741,6 @@ address.period { font-style:normal; font-size:10px; font-family:tahoma; text-ali
.widgetContainer.black .widgetTree ul li button{ background:url(../img/black/buttonTreeCollapse.gif) no-repeat;}
.widgetContainer.black .widgetTree ul li.nav_tree_last{ background:url(../img/black/lineTreeLastHr.gif) no-repeat 0 5px !important;}
/* widgetLevel */
.widgetContainer.black .widgetLevel.num0 { background-image:url(http://www.zeroboard.com/modules/point/icons/default/0.gif);}
.widgetContainer.black .widgetLevel.num1 { background-image:url(http://www.zeroboard.com/modules/point/icons/default/1.gif);}
.widgetContainer.black .widgetLevel.num2 { background-image:url(http://www.zeroboard.com/modules/point/icons/default/2.gif);}
.widgetContainer.black .widgetLevel.num3 { background-image:url(http://www.zeroboard.com/modules/point/icons/default/3.gif);}
.widgetContainer.black .widgetLevel.num4 { background-image:url(http://www.zeroboard.com/modules/point/icons/default/4.gif);}
.widgetContainer.black .widgetLevel.num5 { background-image:url(http://www.zeroboard.com/modules/point/icons/default/5.gif);}
.widgetContainer.black .widgetLevel.num6 { background-image:url(http://www.zeroboard.com/modules/point/icons/default/6.gif);}
.widgetContainer.black .widgetLevel.num7 { background-image:url(http://www.zeroboard.com/modules/point/icons/default/7.gif);}
.widgetContainer.black .widgetLevel.num8 { background-image:url(http://www.zeroboard.com/modules/point/icons/default/8.gif);}
.widgetContainer.black .widgetLevel.num9 { background-image:url(http://www.zeroboard.com/modules/point/icons/default/9.gif);}
.widgetContainer.black .widgetLevel.num10 { background-image:url(http://www.zeroboard.com/modules/point/icons/default/10.gif);}
.widgetContainer.black .widgetLevel.num11 { background-image:url(http://www.zeroboard.com/modules/point/icons/default/11.gif);}
.widgetContainer.black .widgetLevel.num12 { background-image:url(http://www.zeroboard.com/modules/point/icons/default/12.gif);}
.widgetContainer.black .widgetLevel.num13 { background-image:url(http://www.zeroboard.com/modules/point/icons/default/13.gif);}
.widgetContainer.black .widgetLevel.num14 { background-image:url(http://www.zeroboard.com/modules/point/icons/default/14.gif);}
.widgetContainer.black .widgetLevel.num15 { background-image:url(http://www.zeroboard.com/modules/point/icons/default/15.gif);}
.widgetContainer.black .widgetLevel.num16 { background-image:url(http://www.zeroboard.com/modules/point/icons/default/16.gif);}
.widgetContainer.black .widgetLevel.num17 { background-image:url(http://www.zeroboard.com/modules/point/icons/default/17.gif);}
.widgetContainer.black .widgetLevel.num18 { background-image:url(http://www.zeroboard.com/modules/point/icons/default/18.gif);}
.widgetContainer.black .widgetLevel.num19 { background-image:url(http://www.zeroboard.com/modules/point/icons/default/19.gif);}
.widgetContainer.black .widgetLevel.num20 { background-image:url(http://www.zeroboard.com/modules/point/icons/default/20.gif);}
.widgetContainer.black .widgetLevel.num21 { background-image:url(http://www.zeroboard.com/modules/point/icons/default/21.gif);}
.widgetContainer.black .widgetLevel.num22 { background-image:url(http://www.zeroboard.com/modules/point/icons/default/22.gif);}
.widgetContainer.black .widgetLevel.num23 { background-image:url(http://www.zeroboard.com/modules/point/icons/default/23.gif);}
.widgetContainer.black .widgetLevel.num24 { background-image:url(http://www.zeroboard.com/modules/point/icons/default/24.gif);}
.widgetContainer.black .widgetLevel.num25 { background-image:url(http://www.zeroboard.com/modules/point/icons/default/25.gif);}
.widgetContainer.black .widgetLevel.num26 { background-image:url(http://www.zeroboard.com/modules/point/icons/default/26.gif);}
.widgetContainer.black .widgetLevel.num27 { background-image:url(http://www.zeroboard.com/modules/point/icons/default/27.gif);}
.widgetContainer.black .widgetLevel.num28 { background-image:url(http://www.zeroboard.com/modules/point/icons/default/28.gif);}
.widgetContainer.black .widgetLevel.num29 { background-image:url(http://www.zeroboard.com/modules/point/icons/default/29.gif);}
.widgetContainer.black .widgetLevel.num30 { background-image:url(http://www.zeroboard.com/modules/point/icons/default/30.gif);}
/* widgetTabA */
.widgetContainer.black .widgetTabA{ border-color:#999;}

View file

@ -1,5 +1,5 @@
<?php
$lang->new_members = '有什么新成员';
$lang->new_members = '新会员';
$lang->document_ranking = '发帖排行';
$lang->comment_ranking = '评论排';
$lang->comment_ranking = '评论排';
?>

View file

@ -1,5 +1,5 @@
<?php
$lang->new_members = '最新會員';
$lang->document_ranking = '主題排行';
$lang->comment_ranking = '評論排行';
?>
<?php
$lang->new_members = '最新會員';
$lang->document_ranking = '主題排行';
$lang->comment_ranking = '評論排行';
?>

View file

@ -52,7 +52,7 @@
<date>2008-02-26</date>
<link>http://blog.nzeo.com</link>
<author email_address="zero@zeroboard.com" link="http://blog.nzeo.com">
<author email_address="zero@xpressengine.com" link="http://blog.nzeo.com">
<name xml:lang="ko">zero</name>
<name xml:lang="jp">zero</name>
<name xml:lang="zh-CN">zero</name>
@ -74,7 +74,7 @@
<title xml:lang="ru">Colorset</title>
<title xml:lang="zh-TW">顏色設定</title>
<description xml:lang="ko">원하시는 컬러셋을 선택해주세요.</description>
<description xml:lang="jp">希望するカラーセットを選択してください。</description>
<description xml:lang="jp">希望するカラーセットを選択してさい。</description>
<description xml:lang="zh-CN">请选择颜色。</description>
<description xml:lang="en">Please select a colorset you want.</description>
<description xml:lang="ge">Bitte wählen Sie ein colorset Sie wollen.</description>
@ -159,7 +159,7 @@
<title xml:lang="ru">Фоновое изображение</title>
<title xml:lang="zh-TW">背景圖片</title>
<description xml:lang="ko">배경 이미지를 사용하시려면 등록해주세요.</description>
<description xml:lang="jp">背景イメージを使う場合は、登録してください。</description>
<description xml:lang="jp">背景イメージを使う場合は、登録してさい。</description>
<description xml:lang="zh-CN">要想使用背景图片请在这里上传。</description>
<description xml:lang="en">Please input if you want to use background image.</description>
<description xml:lang="ge">Bitte geben Sie, wenn Sie verwenden wollen Hintergrundbild.</description>
@ -177,7 +177,7 @@
<title xml:lang="ru">Профиль Изображение</title>
<title xml:lang="zh-TW">部落格頭像</title>
<description xml:lang="ko">프로필 이미지를 입력해 주세요 (가로 사이즈는 160px이 가장 보기 좋습니다)</description>
<description xml:lang="jp">プロフィールイメージを入力してください横幅は「160px」が一番適しています</description>
<description xml:lang="jp">プロフィールイメージを入力してさい横幅は「160px」が一番適しています</description>
<description xml:lang="zh-CN">请上传博客个性头像(推荐宽度为160px)。</description>
<description xml:lang="en">Please input profile image (It is recommended to set width as 160px)</description>
<description xml:lang="ge">itte geben Sie Ihre Image-Profil (Es wird empfohlen, Breite 160px)</description>
@ -195,7 +195,7 @@
<title xml:lang="ru">Профиль</title>
<title xml:lang="zh-TW">簡介</title>
<description lang="ko">간단한 프로필을 입력해주세요</description>
<description lang="jp">簡単なプロフィールを入力してください。</description>
<description lang="jp">簡単なプロフィールを入力してさい。</description>
<description lang="zh-CN">请输入简单介绍。</description>
<description lang="en">Please input your simple profile</description>
<description lang="ge">Bitte geben Sie Ihre Simple Profile</description>

View file

@ -135,4 +135,4 @@
<div class="clear"></div>
<div class="zbXE"><a href="http://www.zeroboard.com" onclick="window.open(this.href); return false;"><img src="./images/powerdByZeroboard.gif" alt="powered by zbXE" /></a></div>
<div class="zbXE"><a href="http://www.xpressengine.com" onclick="window.open(this.href); return false;"><img src="./images/powerdByZeroboard.gif" alt="powered by zbXE" /></a></div>

View file

@ -1,7 +1,7 @@
<?xml version="1.0" encoding="UTF-8"?>
<layout version="0.2">
<title xml:lang="ko">XE 공식 사이트 레이아웃</title>
<title xml:lang="jp">XEオフィシャルレイアウト</title>
<title xml:lang="jp">XE公式レイアウト</title>
<title xml:lang="en">XE Official website layout</title>
<title xml:lang="ge">XE Offizielle Website-Layout</title>
<title xml:lang="ru">XE Официальный сайт макет</title>
@ -15,7 +15,7 @@
레이아웃 제작 : zero
</description>
<description xml:lang="jp">
XEのオフィシャルサイトのレイアウトです。
XEの公式サイトのレイアウトです。
デザイン:イ ソラ
パブリシング:ジョン チャンミョン
レイアウト作成Zero
@ -60,7 +60,7 @@
<date>2007-08-01</date>
<link>http://blog.nzeo.com</link>
<author email_address="zero@zeroboard.com" link="http://blog.nzeo.com">
<author email_address="zero@xpressengine.com" link="http://blog.nzeo.com">
<name xml:lang="ko">zero</name>
<name xml:lang="jp">zero</name>
<name xml:lang="en">zero</name>
@ -82,7 +82,7 @@
<title xml:lang="ru">Colorset</title>
<title xml:lang="es">Set de colores</title>
<description xml:lang="ko">원하시는 컬러셋을 선택해주세요.</description>
<description xml:lang="jp">希望するカラーセットを選択してください。</description>
<description xml:lang="jp">希望するカラーセットを選択してさい。</description>
<description xml:lang="zh-CN">请选择颜色。</description>
<description xml:lang="zh-TW">請選擇顏色。</description>
<description xml:lang="en">Please select a colorset you want.</description>
@ -130,7 +130,7 @@
<title xml:lang="ru">Изображения логотипа</title>
<title xml:lang="es">Imagen del logotipo</title>
<description xml:lang="ko">레이아웃의 상단에 표시될 로고이미지를 입력하세요. (세로길이가 23px인 투명이미지가 가장 어울립니다)</description>
<description xml:lang="jp">レイアウトの上段に表示されるロゴイメージを入力してください。 (縦幅が23pxである透明イメージが最も合います。)</description>
<description xml:lang="jp">レイアウトの上段に表示されるロゴイメージを入力してさい。 (縦幅が23pxである透明イメージが最も合います。)</description>
<description xml:lang="zh-CN">请输入显示在布局顶部的LOGO图片(高度为23px的透明图片为适)。</description>
<description xml:lang="zh-TW">請輸入要顯示在版面上端的Logo圖片。(適當高度為23px的透明圖片。)</description>
<description xml:lang="en">Please input a logo image which will be displayed on the top of layout. (Transparent image with height of 23px is recommended.)</description>
@ -148,7 +148,7 @@
<title xml:lang="ru">Домашняя страница URL</title>
<title xml:lang="es">URL de la página web</title>
<description xml:lang="ko">로고를 클릭시에 이동할 홈 페이지 URL을 입력해 주세요.</description>
<description xml:lang="jp">ロゴをクリックした時に移動するホームページのURLを入力してください。</description>
<description xml:lang="jp">ロゴをクリックした時に移動するホームページのURLを入力してさい。</description>
<description xml:lang="zh-CN">点击网站LOGO时要移动的页面URL。</description>
<description xml:lang="zh-TW">請輸入當用戶按了網站Logo後要前往的頁面網址。</description>
<description xml:lang="en">Please input the URL to redirect when user clicks the logo</description>
@ -166,7 +166,7 @@
<title xml:lang="ru">Фоновое изображение</title>
<title xml:lang="es">Imagen de fondo</title>
<description xml:lang="ko">배경 이미지를 사용하시려면 등록해주세요.</description>
<description xml:lang="jp">背景イメージを使う場合は、登録してください。</description>
<description xml:lang="jp">背景イメージを使う場合は、登録してさい。</description>
<description xml:lang="zh-CN">要想使用背景图片请在这里上传。</description>
<description xml:lang="zh-TW">請在這裡上傳想要使用的背景圖片。</description>
<description xml:lang="en">Please input if you want to use background image.</description>

View file

@ -94,7 +94,7 @@
<ul id="footer">
<li class="first-child">
<address>
<a href="http://www.zeroboard.com" onclick="window.open(this.href);return false;"><img src="./images/powerdByXE.gif" alt="Powered By XpressEngine" width="70" height="5" /></a>
<a href="http://www.xpressengine.com" onclick="window.open(this.href);return false;"><img src="./images/powerdByXE.gif" alt="Powered By XpressEngine" width="70" height="5" /></a>
</address>
</li>

View file

@ -45,6 +45,7 @@
// mid 목록을 가져옴
$oModuleModel = &getModel('module');
$oModuleAdminModel = &getAdminModel('module');
if($site_module_info->site_srl) $args->site_srl = $site_module_info->site_srl;
$mid_list = $oModuleModel->getMidList($args);
@ -55,6 +56,7 @@
$module_categories = $oModuleModel->getModuleCategories();
foreach($mid_list as $module_srl => $module) {
$module->browser_title = $oModuleAdminModel->getLangCode($module->site_srl, $module->browser_title);
$module_categories[$module->module_category_srl]->list[$module_srl] = $module;
}
} else {

View file

@ -12,6 +12,6 @@
$lang->addon_license = 'License';
$lang->addon_history = 'Historia de Addon ';
$lang->about_addon_mid = "애드온이 사용될 대상을 지정할 수 있습니다.<br />(모두 해제시 모든 대상에서 사용 가능합니다)";
$lang->about_addon_mid = "Add-ons se puede utilizar para especificar el destino. <br /> (Todo gratis, están disponibles en todos los destinos)";
$lang->about_addon = 'Addon is para controlar las acciones y no para mostrar el resultado en HTML.<br /> Sólo con activar o desactivar el addon que desee, podrá obtener funciones útiles para la administración de tu sitio web.';
?>

View file

@ -13,5 +13,5 @@
$lang->addon_history = '変更内容';
$lang->about_addon_mid = "アドオンが使われる対象を指定します。<br />(選択なしの場合、全ての対象で利用可能)";
$lang->about_addon = 'アドオンは、HTMLの出力をコントロールするというより動作を制御する役割をします。お好みのアドオンを「使用/未使用」に設定するだけでサイトの運営に有用な機能が利用できます。';
$lang->about_addon = 'アドオンは、HTMLの出力をコントロールするというより動作を制御する役割をします。お好みのアドオンを「使用/未使用」に設定するだけでサイトの運営に有用な機能が利用出来ます。';
?>

View file

@ -1,8 +1,8 @@
<?php
/**
* @file zh-TW.lang.php
* @file modules/addon/lang/zh-TW.lang.php
* @author zero (zero@nzeo.com) 翻譯royallin
* @brief 正體中文語言
* @brief 附加元件(addon)模組正體中文語言
**/
$lang->addon = "附加元件";

View file

@ -11,7 +11,7 @@
<description xml:lang="en">This module shows a list of features of each module, and enables you to use a quite few of managers by applying layout for administrator.</description>
<description xml:lang="es">Este módulo muestra una lista de características de cada módulo, en donde puede activar la función de la administracion aplicando el diseño del administrador.</description>
<description xml:lang="zh-CN">列出各模块的功能并使用管理员布局,可以让其使用管理功能的模块。</description>
<description xml:lang="jp">各モジュールの機能を羅列し、管理者用のレイアウトを適用させ、管理機能が使用できるようにするモジュールです。</description>
<description xml:lang="jp">各モジュールの機能を羅列し、管理者用のレイアウトを適用させ、管理機能が使用出来るようにするモジュールです。</description>
<description xml:lang="ru">Этот модуль показывает список возможностей каждого модуля, и позволяет Вам использовать несколько менеджеров, применяя лейаут для администратора.</description>
<description xml:lang="zh-TW">列出各模組的功能並使用管理員版面,可讓其使用管理功能的模組。</description>
<version>0.1</version>

View file

@ -25,8 +25,8 @@
$lang->newest_news = "Latest News";
$lang->env_setup = "Setting";
$lang->default_url = "기본 URL";
$lang->about_default_url = "XE 가상 사이트(cafeXE등)의 기능을 사용할때 기본 URL을 입력해 주셔야 가상 사이트간 인증 연동이 되고 게시글/모듈등의 연결이 정상적으로 이루어집니다. (ex: http://도메인/설치경로)";
$lang->default_url = "Default URL";
$lang->about_default_url = "If you use a virtual site feature (e.g., cafeXE), input default URL (parent-site's address), then SSO would be enabled, thus connection to documents/modules works properly. ";
$lang->env_information = "Environment Information";
$lang->current_version = "Current Version";

View file

@ -27,7 +27,7 @@
$lang->env_setup = "Configuración";
$lang->default_url = "기본 URL";
$lang->about_default_url = "XE 가상 사이트(cafeXE등)의 기능을 사용할때 기본 URL을 입력해 주셔야 가상 사이트간 인증 연동이 되고 게시글/모듈등의 연결이 정상적으로 이루어집니다. (ex: http://도메인/설치경로)";
$lang->about_default_url = "XE sitio virtual (cafeXE, etc) tiene que introducir la URL base, al utilizar las capacidades de trabajo virtual y el tema de autenticación sayiteugan / módulos y las conexiones se realizan correctamente. (Ej: http:// dominio / ruta de instalación)";
$lang->env_information = "Información Ambiental";
$lang->current_version = "Versión actual";
@ -64,16 +64,16 @@
$lang->yesterday = "Yesterday";
$lang->today = "Today";
$lang->cmd_lang_select = "언어선택";
$lang->about_cmd_lang_select = "선택된 언어들만 서비스 됩니다";
$lang->about_recompile_cache = "쓸모없어졌거나 잘못된 캐시파일들을 정리할 수 있습니다";
$lang->use_ssl = "SSL 사용";
$lang->cmd_lang_select = "Selección de Idioma";
$lang->about_cmd_lang_select = "Seleccione el idioma es sólo el servicio";
$lang->about_recompile_cache = "Inválido inútil archivo de caché puede organizar jyeotgeona";
$lang->use_ssl = "Usar SSL";
$lang->ssl_options = array(
'none' => "사용안함",
'optional' => "선택적으로",
'always' => "항상사용"
'none' => "Desactivar",
'optional' => "Opcionalmente el",
'always' => "Utilice siempre el"
);
$lang->about_use_ssl = "선택적으로에서는 회원가입/정보수정등의 지정된 action에서 SSL을 사용하고 항상 사용은 모든 서비스가 SSL을 이용하게 됩니다.";
$lang->server_ports = "서버포트지정";
$lang->about_server_ports = "HTTP는 80, HTTPS는 443이외의 다른 포트를 사용하는 경우에 포트를 지정해주어야합니다.";
$lang->about_use_ssl = "Opcionalmente, la composición de suscripción / editar la información y el uso de SSL especificada en la acción es siempre el uso de SSL para todos los servicios que se utilizarán";
$lang->server_ports = "Especifique el puerto del servidor";
$lang->about_server_ports = "80 de HTTP, HTTPS al puerto 443 si se utiliza otro que se especifique lo contrario, el puerto va a necesitar.";
?>

View file

@ -25,14 +25,15 @@
$lang->newest_news = "最新ニュース";
$lang->env_setup = "環境設定";
$lang->sso_url = "SSOシングルサインオン URL";
$lang->about_sso_url = "複数のvirtual siteを運営する場合、どちらからログインしてもvirtual siteの間でログイン情報を維持できるようにするためには、基本になるサイトでのXEをインストールしたurlを登録してください。 (例: http://ドメイン/xe)";
$lang->default_url = '基本URL';
$lang->about_sso_url = "複数のvirtual siteを運営する場合、どちらからログインしてもvirtual siteの間でログイン情報を維持出来るようにするためには、基本になるサイトでのXEをインストールしたurlを登録して下さい。 (例: http://ドメイン/インストールパス)";
$lang->env_information = "環境情報";
$lang->current_version = "インストールバージョン";
$lang->current_path = "インストールパス";
$lang->released_version = "最新バージョン";
$lang->about_download_link = "インストールされたバージョンより新しいバージョンが配布されています。\n「ダウンロード」リンクをクリックするとダウンロードできます。";
$lang->about_download_link = "インストールされたバージョンより新しいバージョンが配布されています。\n「ダウンロード」リンクをクリックするとダウンロード出来ます。";
$lang->item_module = "モジュールリスト";
$lang->item_addon = "アドオンリスト";
@ -48,16 +49,16 @@
$lang->cmd_shortcut_management = "メニュー編集";
$lang->msg_is_not_administrator = '管理者のみアクセスできます';
$lang->msg_manage_module_cannot_delete = 'モジュール、アドオン、ウィジェットのショットカットは削除できません。';
$lang->msg_default_act_is_null = 'デフォルトの管理者のアクションが指定されていないため、ショットカットを登録することができません。';
$lang->msg_is_not_administrator = '管理者のみアクセス出来ます';
$lang->msg_manage_module_cannot_delete = 'モジュール、アドオン、ウィジェットのショットカットは削除出来ません。';
$lang->msg_default_act_is_null = 'デフォルトの管理者のアクションが指定されていないため、ショットカットを登録することが出来ません。';
$lang->welcome_to_xe = 'XEの管理者ページです。';
$lang->about_admin_page = "管理者ページはまだ未完成です。\nクローズベータバージョンの期間に、多くの方々からご意見をいただきながら、必ず必要なコンテンツを埋めていきたいと思います。";
$lang->about_lang_env = "上で設定された言語を、初めてサイトに訪問したユーザに同じく適用させるためには、希望する言語に変更してから「保存」ボタンをクリックしてください。";
$lang->about_lang_env = "上で設定された言語を、初めてサイトに訪問したユーザに同じく適用させるためには、希望する言語に変更してから「保存」ボタンをクリックしてさい。";
$lang->xe_license = 'XEのライセンスはGPLです。';
$lang->about_shortcut = 'よく使用するモジュールに登録されたショートカットは削除できます。';
$lang->about_shortcut = 'よく使用するモジュールに登録されたショートカットは削除出来ます。';
$lang->yesterday = "昨日";
$lang->today = "今日";

View file

@ -1,8 +1,8 @@
<?php
/**
* @file zh-TW.lang.php
* @file modules/admin/lang/zh-TW.lang.php
* @author zero (zero@nzeo.com) 翻譯royallin
* @brief 正體中文語言 (包含基本內容)
* @brief 管理(admin)模組正體中文語言 (包含基本內容)
**/
$lang->admin_info = '管理員資訊';

View file

@ -3,7 +3,7 @@
@import url("./pagination.css");
/* NHN > UIT Center > Open UI Technology Team > Jeong Chan Myeong(dece24@nhncorp.com) */
#xeAdmin {background-color:#fff; }
#xeAdmin {/* background-color:#fff; */}
#xeAdmin .open{ display:block !important;}
#xeAdmin h1.xeAdmin { float:left; white-space:nowrap; margin:0;padding:0;}
#xeAdmin caption{ text-align:left;}

View file

@ -159,7 +159,7 @@
<tr>
<th><div>{$lang->current_version}</div></th>
<td>
<strong>{$released_version}</strong> [<a href="{$download_link}" onclick="window.open(this.href);return false;">{$lang->cmd_view}</a>]
<strong>{$current_version}</strong><!--@if($current_version == $released_version)--> [<a href="{$download_link}" onclick="window.open(this.href);return false;">{$lang->cmd_view}</a>]<!--@end-->
</td>
</tr>
<tr>

View file

@ -30,6 +30,7 @@
// 기본 값외의 것들을 정리
if($args->use_category!='Y') $args->use_category = 'N';
if($args->except_notice!='Y') $args->except_notice = 'N';
if($args->use_anonymous!='Y') $args->use_anonymous= 'N';
if($args->consultation!='Y') $args->consultation = 'N';
if(!in_array($args->order_target,$this->order_target)) $args->order_target = 'list_order';
if(!in_array($args->order_type,array('asc','desc'))) $args->order_type = 'asc';

View file

@ -45,6 +45,12 @@
// 이미 존재하는 글인지 체크
$oDocument = $oDocumentModel->getDocument($obj->document_srl, $this->grant->manager);
// 익명 설정일 경우 여러가지 요소를 미리 제거 (알림용 정보들 제거)
if($this->module_info->use_anonymous == 'Y') {
$obj->notify_message = 'N';
$this->module_info->admin_mail = '';
}
// 이미 존재하는 경우 수정
if($oDocument->isExists() && $oDocument->document_srl == $obj->document_srl) {
$output = $oDocumentController->updateDocument($oDocument, $obj);
@ -76,6 +82,21 @@
// 오류 발생시 멈춤
if(!$output->toBool()) return $output;
// 익명 사용시 글의 글쓴이 정보를 모두 제거
if($this->module_info->use_anonymous == 'Y' && Context::get('is_logged')) {
$logged_info = Context::get('logged_info');
$document_args->document_srl = $output->get('document_srl');
$document = executeQuery('document.getDocument', $document_args);
if($document->toBool() && $document->data) {
$obj = $document->data;
$obj->member_srl = -1*$logged_info->member_srl;
$obj->email_address = $obj->homepage = $obj->user_id = '';
$obj->user_name = $obj->nick_name = 'anonymous';
$output = executeQuery('document.updateDocument', $obj);
if(!$output->toBool()) return $output;
}
}
// 결과를 리턴
$this->add('mid', Context::get('mid'));
$this->add('document_srl', $output->get('document_srl'));
@ -134,6 +155,12 @@
$oDocument = $oDocumentModel->getDocument($obj->document_srl);
if(!$oDocument->isExists()) return new Object(-1,'msg_not_permitted');
// 익명 설정일 경우 여러가지 요소를 미리 제거 (알림용 정보들 제거)
if($this->module_info->use_anonymous == 'Y') {
$obj->notify_message = 'N';
$this->module_info->admin_mail = '';
}
// comment 모듈의 model 객체 생성
$oCommentModel = &getModel('comment');
@ -141,8 +168,8 @@
$oCommentController = &getController('comment');
// comment_srl이 존재하는지 체크
// 만일 comment_srl이 n/a라면 getNextSequence()로 값을 얻어온다.
if(!$obj->comment_srl) {
// 만일 comment_srl이 n/a라면 getNextSequence()로 값을 얻어온다.
if(!$obj->comment_srl) {
$obj->comment_srl = getNextSequence();
} else {
$comment = $oCommentModel->getComment($obj->comment_srl, $this->grant->manager);
@ -185,9 +212,20 @@
$output = $oCommentController->updateComment($obj, $this->grant->manager);
$comment_srl = $obj->comment_srl;
}
if(!$output->toBool()) return $output;
// 익명 사용시 글의 글쓴이 정보를 모두 제거
if($this->module_info->use_anonymous == 'Y' && Context::get('is_logged')) {
$logged_info = Context::get('logged_info');
$comment = $oCommentModel->getComment($output->get('comment_srl'), $this->grant->manager);
$obj = $comment->getObjectVars();
$obj->member_srl = -1*$logged_info->member_srl;
$obj->email_address = $obj->homepage = $obj->user_id = '';
$obj->user_name = $obj->nick_name = 'anonymous';
$output = executeQuery('comment.updateComment', $obj);
if(!$output->toBool()) return $output;
}
$this->setMessage('success_registed');
$this->add('mid', Context::get('mid'));
$this->add('document_srl', $obj->document_srl);

Some files were not shown because too many files have changed in this diff Show more